<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Posts - Yifeitao ｜ 次生進化</title><link>https://yifeitao.com/ja/posts/</link><description>創造と学習と投資について</description><generator>Hugo -- gohugo.io</generator><language>ja</language><lastBuildDate>Tue, 19 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://yifeitao.com/ja/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>子どもからの問いに答える：生産効率は上がり続けているのに、なぜ人はもっと忙しくなったように見えるのか</title><link>https://yifeitao.com/ja/why-are-we-busier-as-productivity-increases/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/why-are-we-busier-as-productivity-increases/</guid><description>&lt;h2 id="一-まず本当かを問いそれからなぜを問う八時間労働制"&gt;一 まず「本当か」を問い、それから「なぜ」を問う：八時間労働制&lt;/h2&gt;
&lt;p&gt;全体の、平均的な観点から言えば、人類の労働時間は短くなっているはずだ。あまり遠い昔でなくとも、産業革命以降、労働者の労働時間はほぼ16時間労働制から8時間労働制に変わった。&lt;/p&gt;
&lt;p&gt;しかし今の人、とりわけ頭脳労働者がこの感慨を抱くのも、根拠がないわけではない。少なからぬ研究や観測が、この二十年の労働時間は明確に下降しておらず、むしろやや上昇していることを示している。&lt;/p&gt;
&lt;h2 id="二-尽きない欲望総需要の膨張"&gt;二 尽きない欲望：総需要の膨張&lt;/h2&gt;
&lt;p&gt;いくつかの経済体における人の平均労働時間を計算するには、おおよそ総仕事量を平均生産効率で割り、さらに総人数で割ればよい。平均生産効率の上昇は比較的明らかだが、総仕事量は人口の増加とともに膨張するだけでなく、人の欲望とともに膨張する。スマートフォンが現れる前、スマートフォンを欲しがる人は少なかった。しかし今では誰もが最上位モデルのiPhoneか、他ブランドのAndroidのフラッグシップを欲しがる。ただ私にいくら金があるかによる。古代、大部分の人は一生自分の属する村から出なかった。しかし今、ある家庭が一年のうち一度も旅行を企画しなければ、すでに貧乏人の部類に入れられそうだ。数か月おきに消費主義社会の大聖堂——ショッピングモール——に入れば、次々と現れる製品とサービスを見るだろう。欲望の膨張速度が生産効率の向上速度を超えれば、労働時間は必然的に長くなる。&lt;/p&gt;
&lt;h2 id="三-今日のことは今日終わらない決して退勤しない人"&gt;三 今日のことは今日終わらない：決して退勤しない人&lt;/h2&gt;
&lt;p&gt;従事している仕事が肉体労働なら、例えば木を植える仕事なら、今日の所定の任務を終えて退勤すれば休める。しかし頭脳労働なら、例えば私が以前あるゲーム会社で推薦アルゴリズムをやっていたように、本質的に退勤という概念はない。推薦アルゴリズムのデータシステムは効果を記録し続け、収益曲線が君の心を引っ張る。仕事のグループでは、顧客や上司がいつでも問題解決のために君を呼べる。頭脳労働の産出は日単位で成果を測ることが難しく、それゆえ「今日のことは今日終える」退勤も難しい。そして微信のような、いわゆるインスタントメッセージングソフトの出現が、この内心の感覚としての忙しさをさらに激しくした。深夜に仕事のグループが点滅するのを見たことのある人、休暇中にホテルに戻って企画書を直したことのある人、ましてや地下鉄や新幹線の中でノートPCを開いて仕事をしたことのある人なら、私が言っているあの心臓が締めつけられる感じが何かを知っている。&lt;/p&gt;
&lt;h2 id="四-できる者が多く働く生産効率向上の不均等"&gt;四 できる者が多く働く：生産効率向上の不均等&lt;/h2&gt;
&lt;p&gt;いわゆる生産効率の向上とは、実は経済体全体の効率のことで、個人を対象にしたものではない。例えばある生産ラインがあり、本来10人を必要とし、一人一日10個の製品を作り、毎日合計100個を生産していたとする。技術革新によって、生産ラインは2人で足り、一人一日100個を作り、毎日合計200個を生産する。この2人にとっては効率が10倍になったが、残りの8人にとっては失業が待っており、つまり生産効率はゼロである。では残った2人は楽になるのか。経済の法則、あるいは人間性が、経営者を次のように傾ける。より少ない人数を雇い、各人により高い給料を払うほうを選んでも、従業員をより暇にはしない。例えばソフトウェア開発の業界には、2倍3倍の給料で10倍のプログラマーを雇うという話がある。AIの時代には、この効率差はAIによってさらに拡大される。資本主義の経済法則は、仕事を10人に平均に配分して皆があまり忙しくならないようにはしない。一人に3倍の給料を払って10倍の仕事をさせ、残りの9人を失業させるのだ。結果は、君が失業するか、以前より忙しくなるかのどちらかである。&lt;/p&gt;
&lt;h2 id="五-求むれば皆苦しみ個人に残された自由な選択"&gt;五 求むれば皆苦しみ：個人に残された自由な選択&lt;/h2&gt;
&lt;p&gt;八時間労働制も社会福祉制度も、生産効率の向上の後に、人本主義の思想に基づいて資本主義を矯正するために生まれたものだ。この種の生産関係レベルの変化について、私たち普通の人も声を上げることはできるが、できることは結局限られている。ここまで話して、私は数千年前の釈迦牟尼が出家する前のことを思い出す。彼は貴公子で、父は彼が出家する運命を逃れさせようと、心を痛めるものを見せなかった。しかし釈迦牟尼は外を一回りして、やはり生老病死を見ずにはいられなかった。釈迦牟尼の時代から今まで、生産効率は無数の倍に上がったが、人類の困境は変わっていない。欲望が膨張し続ける限り、人は自分の欲望の中に閉じ込められ、無意味な仕事から解脱できない。私たちはよく、中産家庭の人がネットで半分は富の誇示、半分は愚痴の形で言うのを見る。一年の支出は何万何万で、この金は使わねばならない、あの金も使わねばならない、と。最も典型的な言い方はこうだ。私の子どもがファーストクラスに乗れるように、エコノミーで苦しませないために、私は努力しなければならない。もし捨てられる消費が一つもないなら、忙しさはただの自己成就的な予言にすぎない。&lt;/p&gt;
&lt;p&gt;もっと時間をかけて考えてほしい。この世界に生きるうえで、いったいいくらの金が必ず使わねばならないものなのか。もっと時間をかけて考えてほしい。自分の一生で、本当にやりたいことは何なのか。J.K.ローリングは言う。私たちが誰であるかを示すのは、能力ではなく私たち自身の選択だ、と。ブルース・リーは言う。人と人の千差万別の理由は、私たちの人生に何が起きたかではなく、人生の中で生命の勇気を試す重要な境遇に直面したとき、どのような方法で応答するかを選ぶことにある、と。釈迦牟尼は言う。生苦、老苦、病苦、死苦、怨憎会苦、愛別離苦、求不得苦、略して五取蘊苦、と。&lt;/p&gt;</description><content:encoded><![CDATA[<h2 id="一-まず本当かを問いそれからなぜを問う八時間労働制">一 まず「本当か」を問い、それから「なぜ」を問う：八時間労働制</h2>
<p>全体の、平均的な観点から言えば、人類の労働時間は短くなっているはずだ。あまり遠い昔でなくとも、産業革命以降、労働者の労働時間はほぼ16時間労働制から8時間労働制に変わった。</p>
<p>しかし今の人、とりわけ頭脳労働者がこの感慨を抱くのも、根拠がないわけではない。少なからぬ研究や観測が、この二十年の労働時間は明確に下降しておらず、むしろやや上昇していることを示している。</p>
<h2 id="二-尽きない欲望総需要の膨張">二 尽きない欲望：総需要の膨張</h2>
<p>いくつかの経済体における人の平均労働時間を計算するには、おおよそ総仕事量を平均生産効率で割り、さらに総人数で割ればよい。平均生産効率の上昇は比較的明らかだが、総仕事量は人口の増加とともに膨張するだけでなく、人の欲望とともに膨張する。スマートフォンが現れる前、スマートフォンを欲しがる人は少なかった。しかし今では誰もが最上位モデルのiPhoneか、他ブランドのAndroidのフラッグシップを欲しがる。ただ私にいくら金があるかによる。古代、大部分の人は一生自分の属する村から出なかった。しかし今、ある家庭が一年のうち一度も旅行を企画しなければ、すでに貧乏人の部類に入れられそうだ。数か月おきに消費主義社会の大聖堂——ショッピングモール——に入れば、次々と現れる製品とサービスを見るだろう。欲望の膨張速度が生産効率の向上速度を超えれば、労働時間は必然的に長くなる。</p>
<h2 id="三-今日のことは今日終わらない決して退勤しない人">三 今日のことは今日終わらない：決して退勤しない人</h2>
<p>従事している仕事が肉体労働なら、例えば木を植える仕事なら、今日の所定の任務を終えて退勤すれば休める。しかし頭脳労働なら、例えば私が以前あるゲーム会社で推薦アルゴリズムをやっていたように、本質的に退勤という概念はない。推薦アルゴリズムのデータシステムは効果を記録し続け、収益曲線が君の心を引っ張る。仕事のグループでは、顧客や上司がいつでも問題解決のために君を呼べる。頭脳労働の産出は日単位で成果を測ることが難しく、それゆえ「今日のことは今日終える」退勤も難しい。そして微信のような、いわゆるインスタントメッセージングソフトの出現が、この内心の感覚としての忙しさをさらに激しくした。深夜に仕事のグループが点滅するのを見たことのある人、休暇中にホテルに戻って企画書を直したことのある人、ましてや地下鉄や新幹線の中でノートPCを開いて仕事をしたことのある人なら、私が言っているあの心臓が締めつけられる感じが何かを知っている。</p>
<h2 id="四-できる者が多く働く生産効率向上の不均等">四 できる者が多く働く：生産効率向上の不均等</h2>
<p>いわゆる生産効率の向上とは、実は経済体全体の効率のことで、個人を対象にしたものではない。例えばある生産ラインがあり、本来10人を必要とし、一人一日10個の製品を作り、毎日合計100個を生産していたとする。技術革新によって、生産ラインは2人で足り、一人一日100個を作り、毎日合計200個を生産する。この2人にとっては効率が10倍になったが、残りの8人にとっては失業が待っており、つまり生産効率はゼロである。では残った2人は楽になるのか。経済の法則、あるいは人間性が、経営者を次のように傾ける。より少ない人数を雇い、各人により高い給料を払うほうを選んでも、従業員をより暇にはしない。例えばソフトウェア開発の業界には、2倍3倍の給料で10倍のプログラマーを雇うという話がある。AIの時代には、この効率差はAIによってさらに拡大される。資本主義の経済法則は、仕事を10人に平均に配分して皆があまり忙しくならないようにはしない。一人に3倍の給料を払って10倍の仕事をさせ、残りの9人を失業させるのだ。結果は、君が失業するか、以前より忙しくなるかのどちらかである。</p>
<h2 id="五-求むれば皆苦しみ個人に残された自由な選択">五 求むれば皆苦しみ：個人に残された自由な選択</h2>
<p>八時間労働制も社会福祉制度も、生産効率の向上の後に、人本主義の思想に基づいて資本主義を矯正するために生まれたものだ。この種の生産関係レベルの変化について、私たち普通の人も声を上げることはできるが、できることは結局限られている。ここまで話して、私は数千年前の釈迦牟尼が出家する前のことを思い出す。彼は貴公子で、父は彼が出家する運命を逃れさせようと、心を痛めるものを見せなかった。しかし釈迦牟尼は外を一回りして、やはり生老病死を見ずにはいられなかった。釈迦牟尼の時代から今まで、生産効率は無数の倍に上がったが、人類の困境は変わっていない。欲望が膨張し続ける限り、人は自分の欲望の中に閉じ込められ、無意味な仕事から解脱できない。私たちはよく、中産家庭の人がネットで半分は富の誇示、半分は愚痴の形で言うのを見る。一年の支出は何万何万で、この金は使わねばならない、あの金も使わねばならない、と。最も典型的な言い方はこうだ。私の子どもがファーストクラスに乗れるように、エコノミーで苦しませないために、私は努力しなければならない。もし捨てられる消費が一つもないなら、忙しさはただの自己成就的な予言にすぎない。</p>
<p>もっと時間をかけて考えてほしい。この世界に生きるうえで、いったいいくらの金が必ず使わねばならないものなのか。もっと時間をかけて考えてほしい。自分の一生で、本当にやりたいことは何なのか。J.K.ローリングは言う。私たちが誰であるかを示すのは、能力ではなく私たち自身の選択だ、と。ブルース・リーは言う。人と人の千差万別の理由は、私たちの人生に何が起きたかではなく、人生の中で生命の勇気を試す重要な境遇に直面したとき、どのような方法で応答するかを選ぶことにある、と。釈迦牟尼は言う。生苦、老苦、病苦、死苦、怨憎会苦、愛別離苦、求不得苦、略して五取蘊苦、と。</p>
]]></content:encoded><category>viewpoint</category><category domain="tags">思考</category><category domain="tags">生産性</category><category domain="tags">哲学</category></item><item><title>AIに蒸留されるのは我々の宿命だ！では、その後は？</title><link>https://yifeitao.com/ja/ai-distillation-destiny-and-then/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/ai-distillation-destiny-and-then/</guid><description>&lt;p&gt;今年、ザリガニやskillの流行に伴い、人々はますます不安を募らせている。自分の仕事の経験をskillに書き、それを上司がAIで置き換えて働く牛馬を不要にする。こうした事態は臨界状態にあり、不安にならないほうが無理だ。&lt;/p&gt;
&lt;p&gt;実際、AIが人間を「蒸留」することは、一部の職業ではすでに非常に成熟している。例えば翻訳だ。人間の翻訳者が提供したバイリンガル資料はすべてAIの養分になった。例えば絵師たちの絵もAIに食べられ消化された。プログラマーは言うまでもない。これは自分の労働成果を最も好んで共有する職業であり、そのオープンソースコードが最終的にプログラマー自身の墓掘り人になった。&lt;/p&gt;
&lt;p&gt;現在人々をより恐慌させているのは、AIがますます多くの道具を手中に収め、その能力が対話からデジタル世界の操作、さらには物理世界へと急速に拡張していることだけだ。縫製工がカメラを付けて自分の動作を収集し、自分を置き換えるロボットモデルを育てているのを見て、恐ろしいと思うだろうか。&lt;/p&gt;
&lt;p&gt;AIに蒸留される恐怖は二つの側面から来る。&lt;/p&gt;
&lt;h2 id="富の再分配の遅れ"&gt;富の再分配の遅れ&lt;/h2&gt;
&lt;p&gt;AIが人間を代替することの恐怖は、まず分配の問題から来る。総体として、AIは生産効率を高めるのだから必ず良いことだ。思考実験をしよう。あなたの月給が1万で、あなたが密かにAIの代替を使って自分の仕事をこなし、そのコストが1千だとすれば、あなたは9千の給料をもらいながら、一日中まったく出勤しなくてよい。あなたはそれを望むか？ 大部分の人は望むと答えるだろう。何しろ、本当に出勤が大好きな人はそれほど多くない。問題は、あなたの上司もそれを知っていて、中間業者に差額を稼がれたくないということだ。そこであなたは失業する。&lt;/p&gt;
&lt;p&gt;人件費の大幅な低下は、市場競争を通じて製品価格の大幅な低下をもたらす。そして皆がAIに代替され、仕事も給料もなく、製品を買う金もないため、最終的に供給側は大幅に過剰になる。&lt;/p&gt;
&lt;p&gt;伝統的な分配の枠組みでは、実際には主に資源の希少性によって分類され、資本、技術、人力などが分配に参与する。では、AIの労働成果は誰のものになるべきか。&lt;/p&gt;
&lt;p&gt;AIを発明し創造し維持する人は、必ず分配を受けるべきだ。しかしAIにはこれまでの技術にない特徴がある。それは全人類の知識を抽出して生まれたものであり、当然全人類に還元されるべきで、決して一部の人や団体の私器になってはならない。劉慈欣の小説『赡养人类』における「终产者」が一人で全人類の財産を占有する状況は、良識ある人なら誰も望まない。&lt;/p&gt;
&lt;p&gt;したがって、AIの富の再分配は、すべての人間が勝ち取るべきものだ。&lt;/p&gt;
&lt;h2 id="労働価値の再考"&gt;労働価値の再考&lt;/h2&gt;
&lt;p&gt;再分配の仕組みが解決し、AIが人類をよく養ったとしよう。それでも我々は逃れられない問題に直面する。人間としての価値とは一体何か。働いて金を稼いでいる間は、この問題は日々の「稼いで使う」循環に覆い隠されている。仕事をしているとき、自分の仕事に価値があると感じるか？ 本当に自分の仕事が好きか？ その仕事が金をくれなくても、やりたいと思うか？&lt;/p&gt;
&lt;p&gt;マラソンの起源は、実際の軍事闘争における価値ある労働にある。その価値はとうに現代の交通機関と通信施設に代替されたが、それでも多くの人が長距離走を好む。人類は囲碁でAIに勝つ望みを完全に失ったが、それでも多くの人が囲碁を好む。マラソン選手とプロ棋士という二つの職業は我々に示唆を与える。おそらく最終的にすべての人が追い求めるのは自己完成であり、功利主義的な意味で「役に立つ人間」であることは、むしろますます非現実的になっていく。&lt;/p&gt;
&lt;p&gt;いわゆる金銭的な自由は、稼ぐことと使うことの二方向に関わる。自分の欲望を低く抑えることで、おそらくAIが人類を養うのを待たずとも、多くの人はもう考え始められる。金を稼ぐ必要がなくなったとき、消費以外に我々は何ができるのか。&lt;/p&gt;</description><content:encoded><![CDATA[<p>今年、ザリガニやskillの流行に伴い、人々はますます不安を募らせている。自分の仕事の経験をskillに書き、それを上司がAIで置き換えて働く牛馬を不要にする。こうした事態は臨界状態にあり、不安にならないほうが無理だ。</p>
<p>実際、AIが人間を「蒸留」することは、一部の職業ではすでに非常に成熟している。例えば翻訳だ。人間の翻訳者が提供したバイリンガル資料はすべてAIの養分になった。例えば絵師たちの絵もAIに食べられ消化された。プログラマーは言うまでもない。これは自分の労働成果を最も好んで共有する職業であり、そのオープンソースコードが最終的にプログラマー自身の墓掘り人になった。</p>
<p>現在人々をより恐慌させているのは、AIがますます多くの道具を手中に収め、その能力が対話からデジタル世界の操作、さらには物理世界へと急速に拡張していることだけだ。縫製工がカメラを付けて自分の動作を収集し、自分を置き換えるロボットモデルを育てているのを見て、恐ろしいと思うだろうか。</p>
<p>AIに蒸留される恐怖は二つの側面から来る。</p>
<h2 id="富の再分配の遅れ">富の再分配の遅れ</h2>
<p>AIが人間を代替することの恐怖は、まず分配の問題から来る。総体として、AIは生産効率を高めるのだから必ず良いことだ。思考実験をしよう。あなたの月給が1万で、あなたが密かにAIの代替を使って自分の仕事をこなし、そのコストが1千だとすれば、あなたは9千の給料をもらいながら、一日中まったく出勤しなくてよい。あなたはそれを望むか？ 大部分の人は望むと答えるだろう。何しろ、本当に出勤が大好きな人はそれほど多くない。問題は、あなたの上司もそれを知っていて、中間業者に差額を稼がれたくないということだ。そこであなたは失業する。</p>
<p>人件費の大幅な低下は、市場競争を通じて製品価格の大幅な低下をもたらす。そして皆がAIに代替され、仕事も給料もなく、製品を買う金もないため、最終的に供給側は大幅に過剰になる。</p>
<p>伝統的な分配の枠組みでは、実際には主に資源の希少性によって分類され、資本、技術、人力などが分配に参与する。では、AIの労働成果は誰のものになるべきか。</p>
<p>AIを発明し創造し維持する人は、必ず分配を受けるべきだ。しかしAIにはこれまでの技術にない特徴がある。それは全人類の知識を抽出して生まれたものであり、当然全人類に還元されるべきで、決して一部の人や団体の私器になってはならない。劉慈欣の小説『赡养人类』における「终产者」が一人で全人類の財産を占有する状況は、良識ある人なら誰も望まない。</p>
<p>したがって、AIの富の再分配は、すべての人間が勝ち取るべきものだ。</p>
<h2 id="労働価値の再考">労働価値の再考</h2>
<p>再分配の仕組みが解決し、AIが人類をよく養ったとしよう。それでも我々は逃れられない問題に直面する。人間としての価値とは一体何か。働いて金を稼いでいる間は、この問題は日々の「稼いで使う」循環に覆い隠されている。仕事をしているとき、自分の仕事に価値があると感じるか？ 本当に自分の仕事が好きか？ その仕事が金をくれなくても、やりたいと思うか？</p>
<p>マラソンの起源は、実際の軍事闘争における価値ある労働にある。その価値はとうに現代の交通機関と通信施設に代替されたが、それでも多くの人が長距離走を好む。人類は囲碁でAIに勝つ望みを完全に失ったが、それでも多くの人が囲碁を好む。マラソン選手とプロ棋士という二つの職業は我々に示唆を与える。おそらく最終的にすべての人が追い求めるのは自己完成であり、功利主義的な意味で「役に立つ人間」であることは、むしろますます非現実的になっていく。</p>
<p>いわゆる金銭的な自由は、稼ぐことと使うことの二方向に関わる。自分の欲望を低く抑えることで、おそらくAIが人類を養うのを待たずとも、多くの人はもう考え始められる。金を稼ぐ必要がなくなったとき、消費以外に我々は何ができるのか。</p>
]]></content:encoded><category>viewpoint</category><category domain="tags">人工知能</category><category domain="tags">思考</category></item><item><title>二十年を隔てた思索：私の数学の天井はどこにあるのか</title><link>https://yifeitao.com/ja/twenty-years-reflection-my-math-ceiling/</link><pubDate>Sun, 12 Apr 2026 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/twenty-years-reflection-my-math-ceiling/</guid><description>&lt;p&gt;&lt;img src="https://assets.yifeitao.com/2026/04/cd024b1db2d71b28f5b17dee67f5a97c.png" alt=" " loading="lazy" decoding="async" referrerpolicy="no-referrer" /&gt;
&lt;/p&gt;
&lt;p&gt;私は三日かけて、途切れ途切れに『数学の覚醒——より明晰に考えることを学ぶ』を読み終えた。読んでいる間、妻とずっと高強度の議論をしていた。小中学校の数学の習得について、これまでの成績と現在なお残っている数学能力から見れば、私は優等生で、妻は落ちこぼれだった。それでも二人でこの本を熱く議論できた。これは一般の意味での数学の本ではなく、数学者が数学を研究するときの心理的風景を明らかにしようとするもので、むしろ心理学か哲学の本に近い。&lt;/p&gt;
&lt;p&gt;この本を読み終えたとき、私はスマホを置いて妻に言った。少し泣きたい、と。ただ、微信読書には少なからぬ低評価もあった。一冊の本を理解するには、あるいは作者と強い共鳴を生むには、一定の機縁が要るのだと思う。私の最初の四十年の人生をいくつかのキーワードで描くなら、「数学」という語を漏らすことはできない。それは私の初期の学習に強い自信を築いたが、後には私を深い疑惑と自己不信に陥れた。&lt;/p&gt;
&lt;p&gt;私の学習、とりわけ数学の学習について明確な記憶があるのは小学中学年からだ。農村がまだ非常に貧しく乏しかった時代、学習参考書はありふれたものではなかった。しかし両親は金を出して、街の新華書店で『毎日十五分』という参考書を買ってくれた。その数学の部分には特に難しい問題があり、今の基準で言えば、比較的やさしい算数オリンピックの問題を入れたようなものだった。両親は、いわゆる小学生に分かる方法でこうした問題を解くすべを知らなかった。しかし二人とも一応きちんと方程式を学んだことがあり、その夏休み、暑さをしのぐ幾日かの午後を費やして、方程式でこれらの問題を解くことを私に教えてくれた。当時の小学校の算数では方程式を学ばなかった（今の小学校の教科書はもっと早く方程式を導入しており、小学生が簡単な方程式を覚えるのはそれほど難しくないことが実証されている）。&lt;/p&gt;
&lt;p&gt;私は突然、非常に手に馴染む武器を手に入れたと感じた。この参考書を片づけただけでなく、祖父が出してくれた多くの民間の数学難問も、方程式で解けば瓜を切るように簡単だった。正解すればお年玉がもらえ、褒めもされた。数学の授業も同じだった。人は一般に、数学の学習に長け、数学の成績がよい者は頭のよい者だと考え、頭のよい者は何でも学べる、物理も化学も、国語も英語も、と考える。そしてこれが自己成就的な予言になった。私はいつも自分が同級生や教師の進度より先にいると感じ、授業はほとんど聞かず、とりわけ数学と理科の科目では、ほぼすべて自分で本を読み考え、先に練習問題を解いていた。結果も少しずつ順風満帆に突き進む感じがあった。小学校の算数オリンピックで全国二等賞を取り、中学最初の統一試験では学年二位に百点以上の差をつけて楽々とトップになり、さらに高校は特待で市の第一高校に入った。&lt;/p&gt;
&lt;p&gt;高校の数学の学習で、私は自分の能力の天井を感じ始めた。日常の学習と試験にはさほど困らず、数学の試験では依然として満点をよく取った。しかし問題の難度が上がると、小学校のとき方程式で解いたあの瓜を切るような軽さはなくなり、とりわけ高校の数学オリンピックでは力が及ばなかった。もっとも、このことは最初のうち私をそれほど焦らせなかった。高三の模擬試験でも、数学はほぼ145点以上、満点に近い状態だった。担任は数学の教師で、今の高考の状況からすれば、これ以上数学を深く研究する時間を費やす必要はなく、もっと国語と英語に時間をかけたほうが収益が高い、とまで言った。&lt;/p&gt;
&lt;p&gt;そして、高考の歴史の中でもちょっと名高い2003年の高考。数学の解答用紙の難度は例年をはるかに超えていた。普段数学の成績がまずまずだった私の男子同級生は、泣きながら試験場から出てきた。私も大して変わらなかった。選択肢問題と穴埋め問題の時点で強い違和感を覚え、最初の立体幾何の大問に至っては、ついに解き切れなかった。伝統的に、この問題は「点をくれる問題」と呼ばれているものだ。私はなんとかして自分の精神状態を落ち着けようとし、さらには最後の追加問題に挑む時間まで費やしたが、結果は期待に沿わず、110点余りだった。幸い、その後の理科総合では、問題も難しかったが、私は心を保つことができ、最終的な総点は清華・北大の合格ラインと5点ほどの差だった。当時の私は大学について実は何も知らず、社会の世論の中で清華・北大はよい学校だという説を受け入れていただけだった。普段の学習の状況からすれば合格して当然のはずで、最後に合格しなかったことを、私は自然と失敗と解釈した。後に中国科学技術大学のコンピュータ学科に入ったが、この失敗の影は私を長年覆い、私の大学生活と最初の職業選択は今から見れば惨憺たるものだった。&lt;/p&gt;
&lt;p&gt;三十歳を過ぎ、家庭を持ち仕事を持つようになってから、私はようやくこれらのことに対して少しずつ心を解いた。まず自分を解いたのは、これは視野の問題だと思い至ったことだ。当時の私にとって中科大に入ることは、正しい選択肢を失った後のやむを得ない選択だった。私の視野が、大学生活をどう始めればよいかを知らせなかった。もっと広い意味では、中科大に入ることは疑いなく成功であり、当時の私にはその成功感が感じられず、また誰も、大学の学習がもともと中学よりはるかに難しいのだと私に本当に理解させてくれなかった。中科大のキャンパスに入ったばかりのとき、多くの先輩が食堂の前で露店を出して本を売っていたのを覚えている。多くはトフルとGREの単語帳だった。当時の私はそれを見て、ぼんやりと、そして反感を覚えた。留学を志す者たちが、選択が正しいかどうかは別として、少なくとも計画を持ち、選択を持っていたことに、私はまったく気づいていなかった。&lt;/p&gt;
&lt;p&gt;そして、視野だけではすべてを説明できないとも思った。農村から出た子どもたちの中にも、大学に入ってから水を得た魚のように、すぐに私より高い高みに達した者がいる。では、これは知能の問題なのか。私の知能が大学の学習を支えるに足りず、大学の数学が分かったような分からないような状態になり、試験の点数は悪くなかったものの徹底的に理解できず、そのため何年も後に人工ニューラルネットワークを研究したとき、数学の欠課が多すぎると感じるのか。しかし知能という概念自体がもともと空虚で、それは次のことさえ説明できない。もし私が本番で調子を崩して中科大に入ったのなら、なぜ同じような点数で中科大に入った私の大学の同級生の多くが、大学でも私より充実した生活を送り、卒業後の発展もよりよかったのか。彼らはもともと私より賢く、ただ私より多く調子を崩しただけだ、とはさすがに言えないだろう。&lt;/p&gt;
&lt;p&gt;最後に、私は自信と勇気へと疑いを向けた。高考が私の自信と勇気を打ち砕き、微妙な敗北感を生んだからこそ、大学生活のぼんやりとした日々が生まれたのではないか。しかしこれは他人に語るに足りない隠微な心理体験で、以前は家族にしか話したことがなかった。自分をここまで解剖して、私は『数学の覚醒』の話に戻ることができる。なぜこの本が私を感動させたのかを。この本はフランスの数学者の手になるもので、自分自身と、アインシュタイン、デカルトなど一級の数学者・科学者が数学を研究するときの心理的風景を分析し、私を完全に解き放ち、自分と和解させてくれた。&lt;/p&gt;
&lt;p&gt;作者は、名の知られた数学者でありながら、ほとんどどんな数学者向けの専門書も読み通すことが難しいこと、数学の博士課程の学生の学位論文の解説も聞き取れないことを、勇気をもって認めている。アインシュタインはある中学生に、自分が直面している数学上の困難は中学生より少なくない、と語った。これらは謙遜や社交辞令ではなく、誠実な言葉である。数学者も普通人と同じように、数学の前で巨大な困難に直面する。ではなぜ、人と人の間の数学的能力の差はこれほど大きいのか。蘇炳添の百メートルの記録は9秒83で、四肢健全な普通の人は蘇炳添には勝てないが、せいぜい20秒、30秒あれば走り切れる。しかし数学における人と人の差は、ある者は百メートルを走るのに一時間かかるかのようだ。&lt;/p&gt;
&lt;p&gt;数学が関わるのは抽象的対象の想像と操作であり、これは誰もが生まれつき持つ能力である。しかしこれらの抽象的対象の頭の中での想像と操作は、言語や運動と違い、模倣によって学ぶことが難しい。だから多くの人が早々に諦め、自分には才能がないと定義してしまう。論理推論は数学の一つの表現言語にすぎず、月を指す指であって、数学のすべての真実ではない。数学がまず関わるのは好奇心と想像力であり、最終的には直観である。これらはいずれ「天井」に突き当たる。この「天井」を何度も突き抜けた人が、数学者と呼ばれる。ここに関わるのは知能ではなく、勇気と自信である。抽象的な概念の前では、巨大な無知感が人を容易に打ち倒す。しかし、最も偉大な数学者が直面する無知も同じように恐ろしいものだと知り、そのうえで彼らの到達した高みを見れば、少なくともいくばくかの勇気が湧いてくる。上を目指して取れば中を得る。もちろんデカルトのような偉大な数学者になれる者は少ないが、確かなことは、数学において大部分の人は自分を大きく過小評価しているということだ。私を含めて。&lt;/p&gt;
&lt;p&gt;信じることによってのみ、それは存在し実現する。数学はある意味で自己成就的な予言であり、人生もまたそうではないだろうか。&lt;/p&gt;</description><content:encoded><![CDATA[<p><img src="https://assets.yifeitao.com/2026/04/cd024b1db2d71b28f5b17dee67f5a97c.png" alt=" " loading="lazy" decoding="async" referrerpolicy="no-referrer" />
</p>
<p>私は三日かけて、途切れ途切れに『数学の覚醒——より明晰に考えることを学ぶ』を読み終えた。読んでいる間、妻とずっと高強度の議論をしていた。小中学校の数学の習得について、これまでの成績と現在なお残っている数学能力から見れば、私は優等生で、妻は落ちこぼれだった。それでも二人でこの本を熱く議論できた。これは一般の意味での数学の本ではなく、数学者が数学を研究するときの心理的風景を明らかにしようとするもので、むしろ心理学か哲学の本に近い。</p>
<p>この本を読み終えたとき、私はスマホを置いて妻に言った。少し泣きたい、と。ただ、微信読書には少なからぬ低評価もあった。一冊の本を理解するには、あるいは作者と強い共鳴を生むには、一定の機縁が要るのだと思う。私の最初の四十年の人生をいくつかのキーワードで描くなら、「数学」という語を漏らすことはできない。それは私の初期の学習に強い自信を築いたが、後には私を深い疑惑と自己不信に陥れた。</p>
<p>私の学習、とりわけ数学の学習について明確な記憶があるのは小学中学年からだ。農村がまだ非常に貧しく乏しかった時代、学習参考書はありふれたものではなかった。しかし両親は金を出して、街の新華書店で『毎日十五分』という参考書を買ってくれた。その数学の部分には特に難しい問題があり、今の基準で言えば、比較的やさしい算数オリンピックの問題を入れたようなものだった。両親は、いわゆる小学生に分かる方法でこうした問題を解くすべを知らなかった。しかし二人とも一応きちんと方程式を学んだことがあり、その夏休み、暑さをしのぐ幾日かの午後を費やして、方程式でこれらの問題を解くことを私に教えてくれた。当時の小学校の算数では方程式を学ばなかった（今の小学校の教科書はもっと早く方程式を導入しており、小学生が簡単な方程式を覚えるのはそれほど難しくないことが実証されている）。</p>
<p>私は突然、非常に手に馴染む武器を手に入れたと感じた。この参考書を片づけただけでなく、祖父が出してくれた多くの民間の数学難問も、方程式で解けば瓜を切るように簡単だった。正解すればお年玉がもらえ、褒めもされた。数学の授業も同じだった。人は一般に、数学の学習に長け、数学の成績がよい者は頭のよい者だと考え、頭のよい者は何でも学べる、物理も化学も、国語も英語も、と考える。そしてこれが自己成就的な予言になった。私はいつも自分が同級生や教師の進度より先にいると感じ、授業はほとんど聞かず、とりわけ数学と理科の科目では、ほぼすべて自分で本を読み考え、先に練習問題を解いていた。結果も少しずつ順風満帆に突き進む感じがあった。小学校の算数オリンピックで全国二等賞を取り、中学最初の統一試験では学年二位に百点以上の差をつけて楽々とトップになり、さらに高校は特待で市の第一高校に入った。</p>
<p>高校の数学の学習で、私は自分の能力の天井を感じ始めた。日常の学習と試験にはさほど困らず、数学の試験では依然として満点をよく取った。しかし問題の難度が上がると、小学校のとき方程式で解いたあの瓜を切るような軽さはなくなり、とりわけ高校の数学オリンピックでは力が及ばなかった。もっとも、このことは最初のうち私をそれほど焦らせなかった。高三の模擬試験でも、数学はほぼ145点以上、満点に近い状態だった。担任は数学の教師で、今の高考の状況からすれば、これ以上数学を深く研究する時間を費やす必要はなく、もっと国語と英語に時間をかけたほうが収益が高い、とまで言った。</p>
<p>そして、高考の歴史の中でもちょっと名高い2003年の高考。数学の解答用紙の難度は例年をはるかに超えていた。普段数学の成績がまずまずだった私の男子同級生は、泣きながら試験場から出てきた。私も大して変わらなかった。選択肢問題と穴埋め問題の時点で強い違和感を覚え、最初の立体幾何の大問に至っては、ついに解き切れなかった。伝統的に、この問題は「点をくれる問題」と呼ばれているものだ。私はなんとかして自分の精神状態を落ち着けようとし、さらには最後の追加問題に挑む時間まで費やしたが、結果は期待に沿わず、110点余りだった。幸い、その後の理科総合では、問題も難しかったが、私は心を保つことができ、最終的な総点は清華・北大の合格ラインと5点ほどの差だった。当時の私は大学について実は何も知らず、社会の世論の中で清華・北大はよい学校だという説を受け入れていただけだった。普段の学習の状況からすれば合格して当然のはずで、最後に合格しなかったことを、私は自然と失敗と解釈した。後に中国科学技術大学のコンピュータ学科に入ったが、この失敗の影は私を長年覆い、私の大学生活と最初の職業選択は今から見れば惨憺たるものだった。</p>
<p>三十歳を過ぎ、家庭を持ち仕事を持つようになってから、私はようやくこれらのことに対して少しずつ心を解いた。まず自分を解いたのは、これは視野の問題だと思い至ったことだ。当時の私にとって中科大に入ることは、正しい選択肢を失った後のやむを得ない選択だった。私の視野が、大学生活をどう始めればよいかを知らせなかった。もっと広い意味では、中科大に入ることは疑いなく成功であり、当時の私にはその成功感が感じられず、また誰も、大学の学習がもともと中学よりはるかに難しいのだと私に本当に理解させてくれなかった。中科大のキャンパスに入ったばかりのとき、多くの先輩が食堂の前で露店を出して本を売っていたのを覚えている。多くはトフルとGREの単語帳だった。当時の私はそれを見て、ぼんやりと、そして反感を覚えた。留学を志す者たちが、選択が正しいかどうかは別として、少なくとも計画を持ち、選択を持っていたことに、私はまったく気づいていなかった。</p>
<p>そして、視野だけではすべてを説明できないとも思った。農村から出た子どもたちの中にも、大学に入ってから水を得た魚のように、すぐに私より高い高みに達した者がいる。では、これは知能の問題なのか。私の知能が大学の学習を支えるに足りず、大学の数学が分かったような分からないような状態になり、試験の点数は悪くなかったものの徹底的に理解できず、そのため何年も後に人工ニューラルネットワークを研究したとき、数学の欠課が多すぎると感じるのか。しかし知能という概念自体がもともと空虚で、それは次のことさえ説明できない。もし私が本番で調子を崩して中科大に入ったのなら、なぜ同じような点数で中科大に入った私の大学の同級生の多くが、大学でも私より充実した生活を送り、卒業後の発展もよりよかったのか。彼らはもともと私より賢く、ただ私より多く調子を崩しただけだ、とはさすがに言えないだろう。</p>
<p>最後に、私は自信と勇気へと疑いを向けた。高考が私の自信と勇気を打ち砕き、微妙な敗北感を生んだからこそ、大学生活のぼんやりとした日々が生まれたのではないか。しかしこれは他人に語るに足りない隠微な心理体験で、以前は家族にしか話したことがなかった。自分をここまで解剖して、私は『数学の覚醒』の話に戻ることができる。なぜこの本が私を感動させたのかを。この本はフランスの数学者の手になるもので、自分自身と、アインシュタイン、デカルトなど一級の数学者・科学者が数学を研究するときの心理的風景を分析し、私を完全に解き放ち、自分と和解させてくれた。</p>
<p>作者は、名の知られた数学者でありながら、ほとんどどんな数学者向けの専門書も読み通すことが難しいこと、数学の博士課程の学生の学位論文の解説も聞き取れないことを、勇気をもって認めている。アインシュタインはある中学生に、自分が直面している数学上の困難は中学生より少なくない、と語った。これらは謙遜や社交辞令ではなく、誠実な言葉である。数学者も普通人と同じように、数学の前で巨大な困難に直面する。ではなぜ、人と人の間の数学的能力の差はこれほど大きいのか。蘇炳添の百メートルの記録は9秒83で、四肢健全な普通の人は蘇炳添には勝てないが、せいぜい20秒、30秒あれば走り切れる。しかし数学における人と人の差は、ある者は百メートルを走るのに一時間かかるかのようだ。</p>
<p>数学が関わるのは抽象的対象の想像と操作であり、これは誰もが生まれつき持つ能力である。しかしこれらの抽象的対象の頭の中での想像と操作は、言語や運動と違い、模倣によって学ぶことが難しい。だから多くの人が早々に諦め、自分には才能がないと定義してしまう。論理推論は数学の一つの表現言語にすぎず、月を指す指であって、数学のすべての真実ではない。数学がまず関わるのは好奇心と想像力であり、最終的には直観である。これらはいずれ「天井」に突き当たる。この「天井」を何度も突き抜けた人が、数学者と呼ばれる。ここに関わるのは知能ではなく、勇気と自信である。抽象的な概念の前では、巨大な無知感が人を容易に打ち倒す。しかし、最も偉大な数学者が直面する無知も同じように恐ろしいものだと知り、そのうえで彼らの到達した高みを見れば、少なくともいくばくかの勇気が湧いてくる。上を目指して取れば中を得る。もちろんデカルトのような偉大な数学者になれる者は少ないが、確かなことは、数学において大部分の人は自分を大きく過小評価しているということだ。私を含めて。</p>
<p>信じることによってのみ、それは存在し実現する。数学はある意味で自己成就的な予言であり、人生もまたそうではないだろうか。</p>
]]></content:encoded><category>reading</category><category domain="tags">数学</category></item><item><title>スマホがいつでも状態を切り替えさせる呪いからどう逃れるか</title><link>https://yifeitao.com/ja/break-the-phone-loop/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/break-the-phone-loop/</guid><description>&lt;p&gt;携帯性と常時接続により、スマホはあなたと世界を非常に便利に結びつける。システム通知、推薦システム、広告、赤い点のバッジ、釣りタイトル。そのどれもが能動的にあなたの注意力を呼び起こし、あなたの時間を霸占しようとする。スマホは、いつでもどこでもオンラインになれるため、現代人最大の妨害源になっている。&lt;/p&gt;
&lt;p&gt;スマホはマルチモードのデバイスであり、状態と場面を頻繁に切り替えられる。あるときはショッピングモールになって買い物をさせ、あるときはカフェになっておしゃべりや有名人のゴシップを見させる。スマホのような計算機デバイスの中核技術の一つはマルチプロセス・マルチスレッドだが、人間が習慣とする時間配分はタイムスライス方式のポーリングではない。&lt;/p&gt;
&lt;p&gt;インターネット以前の場面を想像しよう。本を読みたければ、特定の時間を確保し、静かな場所を見つけ、紙の本を手に取って読む。わざわざ図書館まで本を探しに行くことさえある。読書中に特に面白い内容を見つけて友人に共有したければ、まず頭かメモに書き留めるしかない。そして友人に会う時間を確保したときに、このことを話す。ここでは、読書と社交は分離しており、独立している。&lt;/p&gt;
&lt;p&gt;しかし今は非常に便利だ。本を読み、スマホをそばに置き、面白い内容を見つけたらすぐ撮影して友人に送る。便利だろう？ ここでは、あなたは自ら読書と社交を混ぜ合わせている。さらに悪いことに、あなたは無意識のうちにショート動画を見たり、淘宝や拼多多を物色したりするほうに切り替わってしまう。スマホを手に取っただけで、より短く平板で速い情報に引き寄せられ、読書をやり遂げるには多くの意志力を使わなければならない。人の注意力の仕組みは、実はこうした頻繁な状態の切り替えに向いていない。&lt;/p&gt;
&lt;p&gt;初期のスマートフォンはPDA、すなわちパーソナルアシスタントと呼ばれた。スマートフォンは数十年発展してきたが、当初の想定効果にはまったく達していない。スマートフォンは我々のパーソナルアシスタントにはならず、むしろ各メーカーが我々の注意力の上で馬を走らせる場になった。我々はいつでもどこでも他人に応答し、あるいはいつでもどこでもスマホの中のドーパミンを探す。&lt;/p&gt;
&lt;p&gt;現在、人工知能は日に千里の勢いで発展しており、今度こそスマホを本当にパーソナルアシスタントにできる希望があると思う。それは我々のニーズに応じて、異なる場面で異なる状態を提示し、我々を妨害するのではなく助けることができる。しかし事態がますます悪くなるかどうかは誰にも分からない。少なくともその理想状態が来るまでは、我々自身が自分の注意力をちゃんと管理するために多くのことをしなければならない。&lt;/p&gt;
&lt;h2 id="単一モードのデバイスに回帰する"&gt;単一モードのデバイスに回帰する&lt;/h2&gt;
&lt;p&gt;紙とペンに回帰する。現在のAIはこの点で大いに役立つ。例えば読書のノート取りは、スマホやノートPCから完全に離れて、紙とペンに戻れる。読書が終わってからスマホを取り出し、ノートを撮影すれば、現在のAIはあなたが書いたものを非常に正確に認識できる。こうすればスマホを随時使うことを避けつつ、電子化の便利さも完全には放棄しない。&lt;/p&gt;
&lt;p&gt;また、寝室は眠る場所であり、スマホで時刻を見たり目覚ましを設定したりするのではなく、より伝統的な目覚まし時計が必要かもしれない。そうすればスマホは寝室から出ていける。&lt;/p&gt;
&lt;h2 id="スマホのスクリーンタイム管理ソフトを活用する"&gt;スマホのスクリーンタイム管理ソフトを活用する&lt;/h2&gt;
&lt;p&gt;現在のスマホやPCには豊富な時間管理ソフトがある。例えばiOSのCape。こうしたソフトは一般にアプリをグループ化し、時間帯ごとに無効化できる。これで使用場面の切り替えを初歩的に実現できる。例えば娯楽系のアプリをグループ化し、特定の時間帯だけ有効にする。ただし正直に言えば、現在のスマホOSではこの方面はまだ非常に粗く、本当に場面切り替えの程度には到底達していない。サードパーティのスクリーンタイム管理ソフトも少し糊を塗る程度のことしかできない。しかし少なくとも初歩的な試みはできる。これは未来の知能時代のスマホとスマホソフトの進化の方向であるべきだと思う。ソフトと機能は、私が必要とするときにだけ現れるべきだ。&lt;/p&gt;
&lt;h2 id="ソフトの機能モジュールをオフに設定する"&gt;ソフトの機能モジュールをオフに設定する&lt;/h2&gt;
&lt;p&gt;この方面では少しマシなソフトもある。例えばWeChatは、その発見ページの中の動画チャンネルや朋友圈（モーメンツ）を必要に応じてオフにできる。例えばAlipayもショート動画モジュールをオフにできる。しかしWeChatもAlipayも、まだまだ無数のオフにできない機能がある。大部分のソフト、特に国内のソフトは、ユーザーがオンデマンドでカスタマイズできるという点で実にひどい。これはおそらく彼らのビジネスモデルによって決まっている。どのソフトもショート動画を見せ、どのソフトも高利貸しができる。我々は頭が清醒なときに、自分がソフトのどの機能を必要とするかを決められるべきだが、現実はひどい。我々は手錠をかけられたまま踊るしかない。&lt;/p&gt;
&lt;h2 id="ロブスターで情報の流れを再構築することを探る"&gt;「ロブスター」で情報の流れを再構築することを探る&lt;/h2&gt;
&lt;p&gt;現在のあらゆるいわゆるパーソナライズ推薦システムは、実は完全にあなたの意思に従って推薦しているわけではない。むしろあなたの人間性の中の脆弱で怠惰な部分を増幅し、クリック率などの指標を目標に最適化している。では「ロブスター」などのエージェントが急速に発展する時代には、情報の流れを再構築する機会がある。我々は頭が清醒なときに自分のエージェントに、自分がどんなものを見たいかを伝え、それに初歩的なフィルタリングをさせ、本当の助手の役割を果たさせることができる。そうすれば理論上、情報過多を大いに緩和できるはずだ。この方向はすでに探っている企業があり、例えばBlueskyが推出したAttieである。&lt;/p&gt;</description><content:encoded><![CDATA[<p>携帯性と常時接続により、スマホはあなたと世界を非常に便利に結びつける。システム通知、推薦システム、広告、赤い点のバッジ、釣りタイトル。そのどれもが能動的にあなたの注意力を呼び起こし、あなたの時間を霸占しようとする。スマホは、いつでもどこでもオンラインになれるため、現代人最大の妨害源になっている。</p>
<p>スマホはマルチモードのデバイスであり、状態と場面を頻繁に切り替えられる。あるときはショッピングモールになって買い物をさせ、あるときはカフェになっておしゃべりや有名人のゴシップを見させる。スマホのような計算機デバイスの中核技術の一つはマルチプロセス・マルチスレッドだが、人間が習慣とする時間配分はタイムスライス方式のポーリングではない。</p>
<p>インターネット以前の場面を想像しよう。本を読みたければ、特定の時間を確保し、静かな場所を見つけ、紙の本を手に取って読む。わざわざ図書館まで本を探しに行くことさえある。読書中に特に面白い内容を見つけて友人に共有したければ、まず頭かメモに書き留めるしかない。そして友人に会う時間を確保したときに、このことを話す。ここでは、読書と社交は分離しており、独立している。</p>
<p>しかし今は非常に便利だ。本を読み、スマホをそばに置き、面白い内容を見つけたらすぐ撮影して友人に送る。便利だろう？ ここでは、あなたは自ら読書と社交を混ぜ合わせている。さらに悪いことに、あなたは無意識のうちにショート動画を見たり、淘宝や拼多多を物色したりするほうに切り替わってしまう。スマホを手に取っただけで、より短く平板で速い情報に引き寄せられ、読書をやり遂げるには多くの意志力を使わなければならない。人の注意力の仕組みは、実はこうした頻繁な状態の切り替えに向いていない。</p>
<p>初期のスマートフォンはPDA、すなわちパーソナルアシスタントと呼ばれた。スマートフォンは数十年発展してきたが、当初の想定効果にはまったく達していない。スマートフォンは我々のパーソナルアシスタントにはならず、むしろ各メーカーが我々の注意力の上で馬を走らせる場になった。我々はいつでもどこでも他人に応答し、あるいはいつでもどこでもスマホの中のドーパミンを探す。</p>
<p>現在、人工知能は日に千里の勢いで発展しており、今度こそスマホを本当にパーソナルアシスタントにできる希望があると思う。それは我々のニーズに応じて、異なる場面で異なる状態を提示し、我々を妨害するのではなく助けることができる。しかし事態がますます悪くなるかどうかは誰にも分からない。少なくともその理想状態が来るまでは、我々自身が自分の注意力をちゃんと管理するために多くのことをしなければならない。</p>
<h2 id="単一モードのデバイスに回帰する">単一モードのデバイスに回帰する</h2>
<p>紙とペンに回帰する。現在のAIはこの点で大いに役立つ。例えば読書のノート取りは、スマホやノートPCから完全に離れて、紙とペンに戻れる。読書が終わってからスマホを取り出し、ノートを撮影すれば、現在のAIはあなたが書いたものを非常に正確に認識できる。こうすればスマホを随時使うことを避けつつ、電子化の便利さも完全には放棄しない。</p>
<p>また、寝室は眠る場所であり、スマホで時刻を見たり目覚ましを設定したりするのではなく、より伝統的な目覚まし時計が必要かもしれない。そうすればスマホは寝室から出ていける。</p>
<h2 id="スマホのスクリーンタイム管理ソフトを活用する">スマホのスクリーンタイム管理ソフトを活用する</h2>
<p>現在のスマホやPCには豊富な時間管理ソフトがある。例えばiOSのCape。こうしたソフトは一般にアプリをグループ化し、時間帯ごとに無効化できる。これで使用場面の切り替えを初歩的に実現できる。例えば娯楽系のアプリをグループ化し、特定の時間帯だけ有効にする。ただし正直に言えば、現在のスマホOSではこの方面はまだ非常に粗く、本当に場面切り替えの程度には到底達していない。サードパーティのスクリーンタイム管理ソフトも少し糊を塗る程度のことしかできない。しかし少なくとも初歩的な試みはできる。これは未来の知能時代のスマホとスマホソフトの進化の方向であるべきだと思う。ソフトと機能は、私が必要とするときにだけ現れるべきだ。</p>
<h2 id="ソフトの機能モジュールをオフに設定する">ソフトの機能モジュールをオフに設定する</h2>
<p>この方面では少しマシなソフトもある。例えばWeChatは、その発見ページの中の動画チャンネルや朋友圈（モーメンツ）を必要に応じてオフにできる。例えばAlipayもショート動画モジュールをオフにできる。しかしWeChatもAlipayも、まだまだ無数のオフにできない機能がある。大部分のソフト、特に国内のソフトは、ユーザーがオンデマンドでカスタマイズできるという点で実にひどい。これはおそらく彼らのビジネスモデルによって決まっている。どのソフトもショート動画を見せ、どのソフトも高利貸しができる。我々は頭が清醒なときに、自分がソフトのどの機能を必要とするかを決められるべきだが、現実はひどい。我々は手錠をかけられたまま踊るしかない。</p>
<h2 id="ロブスターで情報の流れを再構築することを探る">「ロブスター」で情報の流れを再構築することを探る</h2>
<p>現在のあらゆるいわゆるパーソナライズ推薦システムは、実は完全にあなたの意思に従って推薦しているわけではない。むしろあなたの人間性の中の脆弱で怠惰な部分を増幅し、クリック率などの指標を目標に最適化している。では「ロブスター」などのエージェントが急速に発展する時代には、情報の流れを再構築する機会がある。我々は頭が清醒なときに自分のエージェントに、自分がどんなものを見たいかを伝え、それに初歩的なフィルタリングをさせ、本当の助手の役割を果たさせることができる。そうすれば理論上、情報過多を大いに緩和できるはずだ。この方向はすでに探っている企業があり、例えばBlueskyが推出したAttieである。</p>
]]></content:encoded><category>investment</category><category domain="tags">スマホ</category></item><item><title>茅台、政務酒から商務酒、そして家庭酒へ</title><link>https://yifeitao.com/ja/moutai-positioning-evolution/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/moutai-positioning-evolution/</guid><description>&lt;p&gt;&lt;img src="https://assets.yifeitao.com/2026/04/0ecbd4640fd6d4d0b8b76a3b1bbef4ca.png" alt=" " loading="lazy" decoding="async" referrerpolicy="no-referrer" /&gt;
&lt;/p&gt;
&lt;p&gt;かつて茅台は国宴における「政治的正当性」そのものだった。いまでは静かに、千家万戸の家庭の食卓、婚礼、友人との小宴にまで入り込んでいる。一本の酒に三つの人生がある。政務酒から商務酒へ、そして家庭酒へ。茅台の30年にわたる転換は、単なる販路の付け替えではなく、マクロの周期に自ら適応する自己進化だ。「B端の希少資源」から「C端の真実の消費」へ、「酒を売る」ことから「ライフスタイルを売る」ことへ。&lt;/p&gt;
&lt;p&gt;貴州茅台の公式な歴史資料と決算の振り返りによれば、初期には政務向けの調達が一時50%近くを占めた。2012年末の「八項規定」の後、会社は「三つの転換、五つの変化」を掲げ、商務の場面が急速に立ち上がった。2021年以降は不動産周期の底と消費の低迷が重なり、茅台はC端への突破を速めた。2022年にi茅台が稼働し、直販チャネルの比率は2018年の低い水準から急速に高まった。会社は「消費者を中心に据え、市場化への転換を進める」と明言し、客層・場面・サービスという三つの転換に焦点を絞り、「自社販売＋代理店＋代理販売＋委託販売」の協働モデルを打ち出して、チャネルを家庭・個人の消費場面へさらに下ろしていった。&lt;/p&gt;
&lt;h2 id="一政務酒の時代国酒の政治的裏書き1950s2012年"&gt;一、政務酒の時代——国酒の「政治的裏書き」（1950s–2012年）&lt;/h2&gt;
&lt;p&gt;1951年、地方政府は三つの私営酒廠を統合して茅台酒廠を設立し、周恩来がそれを国宴酒に定めた。1972年のニクソン訪中では茅台が外交の贈り物となり、国慶節や観兵式などの重大な催しでは空輸で専用供給された。初期の販売は主に国営の糖酒公司と団体購入のルートを通じ、政務および国有企業の調達が50%近くを占めた。卸価格は経済の高成長とともに一路高騰し、2012年以前には2000元を超えたこともある。&lt;/p&gt;
&lt;p&gt;当時の茅台は、酒そのものよりも、身分の象徴を飲むものだった。ブランドのプレミアムは「政治的な後光」に由来する。希少性と裏書き、そして末端での品薄。会社の決算も当時の報道も、この段階の販売伸び率が44%に達し、B端の政務という場面に完全に依存していたことを示している。&lt;/p&gt;
&lt;h2 id="二反腐敗の危機と商務酒の不本意な台頭20132021年"&gt;二、反腐敗の危機と商務酒の不本意な台頭（2013–2021年）&lt;/h2&gt;
&lt;p&gt;2012年末の「八項規定」は嵐のようだった。公費による三公消費が急減し、茅台はまともに直撃を受ける。2013〜2014年、株価は高値から半減し（約50%の下落）、卸価格は1200元台から最安830元前後まで落ち、販売伸び率は44%から2%へ急落した。会社の決算は「前例のない圧力」を初めて認めた。&lt;/p&gt;
&lt;p&gt;危機が転換を迫った。2013年から茅台は「三つの転換、五つの変化」を掲げ、政務から高級商務（企業の宴席、贈答）へと軸足を移す。代理店は急速に増え、飲食店の末端が主力となった。2015年以降は大規模な新規代理店の開拓を止め、ECとシリーズ酒の下沈へと向かう。政務に代わって商務の場面が主な増収源となった。&lt;/p&gt;
&lt;p&gt;2018年以降、株価は「株王」の座に返り咲く。データが示すのは、商務酒によって茅台が市場のなかで生きる術を学んだということだ。「鉄の茶碗」から「市場の飯」へ。チャネルの利潤は圧縮されたが、より広いB端の空間が開けた。&lt;/p&gt;
&lt;h2 id="三家庭酒への蝶変不動産低谷下のc端突破2022年現在"&gt;三、家庭酒への蝶変——不動産低谷下のC端突破（2022年〜現在）&lt;/h2&gt;
&lt;p&gt;2021年以降、中国の不動産は下落周期に入り、高級消費は低迷し、茅台の卸価格は圧力にさらされた。2025年の前三半期の売上伸び率はわずか6.32%、通期目標は初めて一桁台に引き下げられた。2026年3月には飛天の卸価格が一時1600元を割り込み、近年の安値を更新した。&lt;/p&gt;
&lt;p&gt;会社は果断に「一足飛びでC端へ」を加速した。2022年3月にi茅台が稼働し、その年の直販収入は105.4%急増。2024年の直販チャネル収入は748.43億元、構成比43.87%、売上総利益率95.33%（卸売代理の89.42%を大きく上回る）。i茅台の通年収入は200.24億元。2025年上半期には、直販比率はさらに44.8%前後で安定した。&lt;/p&gt;
&lt;p&gt;茅台は戦略を全面的に格上げし、市場化運営案を発表した。個性化商品（陳年茅台、精品茅台、干支酒、鼓楽飛天、小容量飛天など）に「代理販売」モデルを適用し、「自社販売＋代理店＋代理販売＋委託販売」の協働という新たな枠組みを正式に形づくる。代理販売モデルでは物権は移転せず、代理店は代金の全額を前払いする必要がなく、保証金を納めるだけでよい。オンライン小売、実店舗、飲食、私域などの資源を通じて消費者に届き、約5%のサービス料（手数料）を得る。たとえば53度500mlの精品茅台は小売価格2299元で、代理店の取り分は約115元。代理販売の商品はすべてi茅台の平台を通じて販売を完結させねばならず、従来の団体購入客は専門店専用のQRコードを読み取って調達できる。「オンラインで注文し、店舗で受け取る」を実現し、主に個人客に応える。&lt;/p&gt;
&lt;p&gt;茅台の責任者は明確にこう述べる。「自ら変わろうとし、チャネル事業者に奉仕し、役割の転換を推し進めねばならない。伝統的な『売り手』の役割から、茅台のオフラインでの展示とサービスを担う機能へと移り、メーカーと代理店が協働して消費者に応える合力を形づくる」。この措置は価格決定権を直接取り戻し、非標準品の価格盤を安定させ、チャネルでの投機を減らす。同時に代理店を「坐商」から「行商」へと変え、軽資産でサービスを厚くし、真に末端を耕させる。&lt;/p&gt;
&lt;p&gt;場面の移行が最もはっきりと表れる。商務の宴席から、家庭の食卓、婚礼、長寿の祝い、友人との小宴といった私的な祝いの場へ。店舗には「家宴専区」が設けられ、i茅台の利用者の比率は上がり続け、消費者からは「家庭の集まりで茅台を使う割合が増えた」という声が届く。90后（1990年代生まれ）、85后が主力となり、買ってすぐ飲む、小容量を自分用に買う、という流れが趨勢になった。茅台は「政務酒の栄光、商務酒の生存」から「家庭酒の帰着点」へと向かう。一杯の酒が、ありのままの生活に寄り添う。&lt;/p&gt;
&lt;h2 id="四背後の論理と未来への示唆"&gt;四、背後の論理と未来への示唆&lt;/h2&gt;
&lt;p&gt;茅台の「三変」の本質は、マクロの周期がミクロの転換を迫ったことにある。反腐が政務への依存を「断乳」させ、不動産の低迷がC端の目覚めを促した。会社は政策の追い風から消費者の主権へと軸を移し、商業の論理を取り戻した。代理販売モデルは、まさにこの転換の最新の注釈だ。チャネルの利潤を「投機的」なものから「安定的」なものへ変え、代理店に在庫の抱え込みや値上がり狙いではなく、C端サービスの深耕を迫る。アナリストは、C端の運営力と人脈・圈層の資源を持つ代理店がより多くの割当を得て、ただ「転売」するだけの旧来型は自然に淘汰されると指摘する。&lt;/p&gt;
&lt;p&gt;業界にとって、これは一つの見本である。白酒企業は先んじてデジタル化と場面化を受け入れ、若い客層と個人消費を奪い合わねばならない。茅台の「家庭酒」戦略の成否は、開栓率と若年層への浸透にかかっている。現時点では、会社の実行は揺るぎない。i茅台はC端の中核の手がかりとなり、卸価格と株価は転換のなかで次第に落ち着きを取り戻しつつある。&lt;/p&gt;
&lt;h2 id="五結び"&gt;五、結び&lt;/h2&gt;
&lt;p&gt;政務酒は栄光、商務酒は生存、そして家庭酒こそが帰着点である。茅台の転換は企業の物語であるだけでなく、時代を映す鏡でもある。権力の象徴から生活への寄り添いへ。そこには中国の消費がB端からC端へとミクロに格上げされていく姿が映っている。今後は、国酒の香りが本当に普通の家庭まで届くような、さらなる革新を期待したい。&lt;/p&gt;
&lt;p&gt;あなたの食卓で、茅台はどの酒だろうか。コメントでの議論を歓迎する。&lt;/p&gt;</description><content:encoded><![CDATA[<p><img src="https://assets.yifeitao.com/2026/04/0ecbd4640fd6d4d0b8b76a3b1bbef4ca.png" alt=" " loading="lazy" decoding="async" referrerpolicy="no-referrer" />
</p>
<p>かつて茅台は国宴における「政治的正当性」そのものだった。いまでは静かに、千家万戸の家庭の食卓、婚礼、友人との小宴にまで入り込んでいる。一本の酒に三つの人生がある。政務酒から商務酒へ、そして家庭酒へ。茅台の30年にわたる転換は、単なる販路の付け替えではなく、マクロの周期に自ら適応する自己進化だ。「B端の希少資源」から「C端の真実の消費」へ、「酒を売る」ことから「ライフスタイルを売る」ことへ。</p>
<p>貴州茅台の公式な歴史資料と決算の振り返りによれば、初期には政務向けの調達が一時50%近くを占めた。2012年末の「八項規定」の後、会社は「三つの転換、五つの変化」を掲げ、商務の場面が急速に立ち上がった。2021年以降は不動産周期の底と消費の低迷が重なり、茅台はC端への突破を速めた。2022年にi茅台が稼働し、直販チャネルの比率は2018年の低い水準から急速に高まった。会社は「消費者を中心に据え、市場化への転換を進める」と明言し、客層・場面・サービスという三つの転換に焦点を絞り、「自社販売＋代理店＋代理販売＋委託販売」の協働モデルを打ち出して、チャネルを家庭・個人の消費場面へさらに下ろしていった。</p>
<h2 id="一政務酒の時代国酒の政治的裏書き1950s2012年">一、政務酒の時代——国酒の「政治的裏書き」（1950s–2012年）</h2>
<p>1951年、地方政府は三つの私営酒廠を統合して茅台酒廠を設立し、周恩来がそれを国宴酒に定めた。1972年のニクソン訪中では茅台が外交の贈り物となり、国慶節や観兵式などの重大な催しでは空輸で専用供給された。初期の販売は主に国営の糖酒公司と団体購入のルートを通じ、政務および国有企業の調達が50%近くを占めた。卸価格は経済の高成長とともに一路高騰し、2012年以前には2000元を超えたこともある。</p>
<p>当時の茅台は、酒そのものよりも、身分の象徴を飲むものだった。ブランドのプレミアムは「政治的な後光」に由来する。希少性と裏書き、そして末端での品薄。会社の決算も当時の報道も、この段階の販売伸び率が44%に達し、B端の政務という場面に完全に依存していたことを示している。</p>
<h2 id="二反腐敗の危機と商務酒の不本意な台頭20132021年">二、反腐敗の危機と商務酒の不本意な台頭（2013–2021年）</h2>
<p>2012年末の「八項規定」は嵐のようだった。公費による三公消費が急減し、茅台はまともに直撃を受ける。2013〜2014年、株価は高値から半減し（約50%の下落）、卸価格は1200元台から最安830元前後まで落ち、販売伸び率は44%から2%へ急落した。会社の決算は「前例のない圧力」を初めて認めた。</p>
<p>危機が転換を迫った。2013年から茅台は「三つの転換、五つの変化」を掲げ、政務から高級商務（企業の宴席、贈答）へと軸足を移す。代理店は急速に増え、飲食店の末端が主力となった。2015年以降は大規模な新規代理店の開拓を止め、ECとシリーズ酒の下沈へと向かう。政務に代わって商務の場面が主な増収源となった。</p>
<p>2018年以降、株価は「株王」の座に返り咲く。データが示すのは、商務酒によって茅台が市場のなかで生きる術を学んだということだ。「鉄の茶碗」から「市場の飯」へ。チャネルの利潤は圧縮されたが、より広いB端の空間が開けた。</p>
<h2 id="三家庭酒への蝶変不動産低谷下のc端突破2022年現在">三、家庭酒への蝶変——不動産低谷下のC端突破（2022年〜現在）</h2>
<p>2021年以降、中国の不動産は下落周期に入り、高級消費は低迷し、茅台の卸価格は圧力にさらされた。2025年の前三半期の売上伸び率はわずか6.32%、通期目標は初めて一桁台に引き下げられた。2026年3月には飛天の卸価格が一時1600元を割り込み、近年の安値を更新した。</p>
<p>会社は果断に「一足飛びでC端へ」を加速した。2022年3月にi茅台が稼働し、その年の直販収入は105.4%急増。2024年の直販チャネル収入は748.43億元、構成比43.87%、売上総利益率95.33%（卸売代理の89.42%を大きく上回る）。i茅台の通年収入は200.24億元。2025年上半期には、直販比率はさらに44.8%前後で安定した。</p>
<p>茅台は戦略を全面的に格上げし、市場化運営案を発表した。個性化商品（陳年茅台、精品茅台、干支酒、鼓楽飛天、小容量飛天など）に「代理販売」モデルを適用し、「自社販売＋代理店＋代理販売＋委託販売」の協働という新たな枠組みを正式に形づくる。代理販売モデルでは物権は移転せず、代理店は代金の全額を前払いする必要がなく、保証金を納めるだけでよい。オンライン小売、実店舗、飲食、私域などの資源を通じて消費者に届き、約5%のサービス料（手数料）を得る。たとえば53度500mlの精品茅台は小売価格2299元で、代理店の取り分は約115元。代理販売の商品はすべてi茅台の平台を通じて販売を完結させねばならず、従来の団体購入客は専門店専用のQRコードを読み取って調達できる。「オンラインで注文し、店舗で受け取る」を実現し、主に個人客に応える。</p>
<p>茅台の責任者は明確にこう述べる。「自ら変わろうとし、チャネル事業者に奉仕し、役割の転換を推し進めねばならない。伝統的な『売り手』の役割から、茅台のオフラインでの展示とサービスを担う機能へと移り、メーカーと代理店が協働して消費者に応える合力を形づくる」。この措置は価格決定権を直接取り戻し、非標準品の価格盤を安定させ、チャネルでの投機を減らす。同時に代理店を「坐商」から「行商」へと変え、軽資産でサービスを厚くし、真に末端を耕させる。</p>
<p>場面の移行が最もはっきりと表れる。商務の宴席から、家庭の食卓、婚礼、長寿の祝い、友人との小宴といった私的な祝いの場へ。店舗には「家宴専区」が設けられ、i茅台の利用者の比率は上がり続け、消費者からは「家庭の集まりで茅台を使う割合が増えた」という声が届く。90后（1990年代生まれ）、85后が主力となり、買ってすぐ飲む、小容量を自分用に買う、という流れが趨勢になった。茅台は「政務酒の栄光、商務酒の生存」から「家庭酒の帰着点」へと向かう。一杯の酒が、ありのままの生活に寄り添う。</p>
<h2 id="四背後の論理と未来への示唆">四、背後の論理と未来への示唆</h2>
<p>茅台の「三変」の本質は、マクロの周期がミクロの転換を迫ったことにある。反腐が政務への依存を「断乳」させ、不動産の低迷がC端の目覚めを促した。会社は政策の追い風から消費者の主権へと軸を移し、商業の論理を取り戻した。代理販売モデルは、まさにこの転換の最新の注釈だ。チャネルの利潤を「投機的」なものから「安定的」なものへ変え、代理店に在庫の抱え込みや値上がり狙いではなく、C端サービスの深耕を迫る。アナリストは、C端の運営力と人脈・圈層の資源を持つ代理店がより多くの割当を得て、ただ「転売」するだけの旧来型は自然に淘汰されると指摘する。</p>
<p>業界にとって、これは一つの見本である。白酒企業は先んじてデジタル化と場面化を受け入れ、若い客層と個人消費を奪い合わねばならない。茅台の「家庭酒」戦略の成否は、開栓率と若年層への浸透にかかっている。現時点では、会社の実行は揺るぎない。i茅台はC端の中核の手がかりとなり、卸価格と株価は転換のなかで次第に落ち着きを取り戻しつつある。</p>
<h2 id="五結び">五、結び</h2>
<p>政務酒は栄光、商務酒は生存、そして家庭酒こそが帰着点である。茅台の転換は企業の物語であるだけでなく、時代を映す鏡でもある。権力の象徴から生活への寄り添いへ。そこには中国の消費がB端からC端へとミクロに格上げされていく姿が映っている。今後は、国酒の香りが本当に普通の家庭まで届くような、さらなる革新を期待したい。</p>
<p>あなたの食卓で、茅台はどの酒だろうか。コメントでの議論を歓迎する。</p>
]]></content:encoded><category>investment</category><category domain="tags">貴州茅台</category></item><item><title>保有は購入に等しいか</title><link>https://yifeitao.com/ja/holding-vs-buying/</link><pubDate>Wed, 06 Aug 2025 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/holding-vs-buying/</guid><description>&lt;p&gt;段永平（ドアン・ヨンピン）の話によれば、バフェットと雑談していた折に「保有は購入に等しいのか」と尋ねたところ、バフェットは「もちろんそうだ。それは事実であって、見解ではない」と答えたという。だが雪球（シュエチュー）の人々の考証によれば、バフェットは他のいかなる場でも似たようなことを口にしていない。それどころか、バフェットはこう述べている。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;今年の年次報告書で、私はコカ・コーラとジレットが無敵の企業であると述べ、それがどれほど偉大であるかを描写した。卓越した経営者が率いる偉大な企業だ。&lt;/p&gt;
&lt;p&gt;ただし、私の見解を、これらの企業を無条件に買うべきだという勧めと受け取らないでもらいたい。&lt;/p&gt;
&lt;p&gt;さもなければ、少なくとも短期的には、こうした企業に対して過大な価格を支払うことになりかねない。&lt;/p&gt;
&lt;p&gt;常に一つのリスクが存在する。&lt;strong&gt;企業の業績が、あなたが支払った価格に追いつくまでには数年を要するということだ。どれほど偉大な企業であっても、株価は企業の業績を先取りしうる。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;バフェットはこれらの企業を保有しながら、買うことは勧めていないように見える。&lt;/p&gt;
&lt;p&gt;では、いったいどう理解すればよいのか。議論が尽きないのは、二つの重要な要素を見落としているからではないかと思う。&lt;strong&gt;取引の摩擦コスト&lt;/strong&gt;と&lt;strong&gt;ポジション管理&lt;/strong&gt;である。&lt;/p&gt;
&lt;p&gt;「保有は購入に等しい」が事実であるためには、一つの基本前提が要る。株式の売買に摩擦コストがかからないと仮定することだ。この仮定の下で簡単な思考実験をすれば、埋没費用を捨てることが投資に与える影響について、きわめて重要な視点が得られる。&lt;strong&gt;株式の売買に摩擦コストがかからないと仮定しよう。毎日大引けの後、あなたの株はシステムによって終値で自動的に売却され、翌日の寄り付き前に、あなたはどの株を買うかを考える。さて、何を買うのか。もし元々の判断が「持ち高を変えない」というものなら、売却前とまったく同じ株を、同じ株数ずつ買い戻すはずだ。これが「保有は購入に等しい」の意味のすべてである。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;取引の摩擦コストの影響については、マンガーが2023年のデイリー・ジャーナル株主総会で語った話に良い例がある。株主が「バークシャーは銀行株を好ましく思っていないのに、なぜデイリー・ジャーナルは銀行株を持ち続けるのか」と尋ねたのに対し、マンガーはこう答えた。デイリー・ジャーナルが持つ銀行株は取得原価がきわめて低く、含み益が大きい。売却すれば、売却収入の40%をキャピタルゲイン税として政府に納めることになる。だから売りたくないのだ、と。&lt;/p&gt;
&lt;p&gt;キャピタルゲイン税がなくても、売買手数料があるだけで長期保有への傾きが生じる。取引の摩擦コストがまったくないなら、保有中あるいは観察中のどの企業にわずかな変化が生じても——ファンダメンタルズの変化であれ価格の変化であれ——勝率とオッズが変わるのだから、理論上はわずかな組み入れ調整が可能だ。しかし摩擦コストを考慮に入れれば、企業のファンダメンタルズか価格に重大な変化が起きたときにしか調整はしない。&lt;/p&gt;
&lt;p&gt;「保有は購入に等しい」の「購入」とは、実のところ、理想的な状況下で持ち高を組み直すことを指すべきであって、保有したまま買い増すことではない。ある投資対象を保有したうえで買い増すのであれば、あるいは他の持ち高を動かすことでその投資対象の相対的なポジションが変わるのであれば、それは現行のポートフォリオに対する新たな見方を示している。&lt;/p&gt;
&lt;p&gt;つまり結局のところ、「保有は購入に等しいか」を本質から論じるには、保有とは何か、購入とは何かをはっきりさせねばならない。文脈が違い、語る人が違えば、同じ言葉が別の意味を帯びうる。&lt;/p&gt;
&lt;p&gt;しかし、この言葉を弁別することよりも重要なのは、価値投資家が取得原価を思考に持ち込まないことを学び、常に自分の持ち高を点検することだ。頻繁に売買はしないとしても、思考の水準では資産の比較が止むことがない。金は眠らないからだ。いわゆる投資とは、本質的に機会費用の比較にほかならない。&lt;/p&gt;</description><content:encoded><![CDATA[<p>段永平（ドアン・ヨンピン）の話によれば、バフェットと雑談していた折に「保有は購入に等しいのか」と尋ねたところ、バフェットは「もちろんそうだ。それは事実であって、見解ではない」と答えたという。だが雪球（シュエチュー）の人々の考証によれば、バフェットは他のいかなる場でも似たようなことを口にしていない。それどころか、バフェットはこう述べている。</p>
<blockquote>
<p>今年の年次報告書で、私はコカ・コーラとジレットが無敵の企業であると述べ、それがどれほど偉大であるかを描写した。卓越した経営者が率いる偉大な企業だ。</p>
<p>ただし、私の見解を、これらの企業を無条件に買うべきだという勧めと受け取らないでもらいたい。</p>
<p>さもなければ、少なくとも短期的には、こうした企業に対して過大な価格を支払うことになりかねない。</p>
<p>常に一つのリスクが存在する。<strong>企業の業績が、あなたが支払った価格に追いつくまでには数年を要するということだ。どれほど偉大な企業であっても、株価は企業の業績を先取りしうる。</strong></p>
</blockquote>
<p>バフェットはこれらの企業を保有しながら、買うことは勧めていないように見える。</p>
<p>では、いったいどう理解すればよいのか。議論が尽きないのは、二つの重要な要素を見落としているからではないかと思う。<strong>取引の摩擦コスト</strong>と<strong>ポジション管理</strong>である。</p>
<p>「保有は購入に等しい」が事実であるためには、一つの基本前提が要る。株式の売買に摩擦コストがかからないと仮定することだ。この仮定の下で簡単な思考実験をすれば、埋没費用を捨てることが投資に与える影響について、きわめて重要な視点が得られる。<strong>株式の売買に摩擦コストがかからないと仮定しよう。毎日大引けの後、あなたの株はシステムによって終値で自動的に売却され、翌日の寄り付き前に、あなたはどの株を買うかを考える。さて、何を買うのか。もし元々の判断が「持ち高を変えない」というものなら、売却前とまったく同じ株を、同じ株数ずつ買い戻すはずだ。これが「保有は購入に等しい」の意味のすべてである。</strong></p>
<p>取引の摩擦コストの影響については、マンガーが2023年のデイリー・ジャーナル株主総会で語った話に良い例がある。株主が「バークシャーは銀行株を好ましく思っていないのに、なぜデイリー・ジャーナルは銀行株を持ち続けるのか」と尋ねたのに対し、マンガーはこう答えた。デイリー・ジャーナルが持つ銀行株は取得原価がきわめて低く、含み益が大きい。売却すれば、売却収入の40%をキャピタルゲイン税として政府に納めることになる。だから売りたくないのだ、と。</p>
<p>キャピタルゲイン税がなくても、売買手数料があるだけで長期保有への傾きが生じる。取引の摩擦コストがまったくないなら、保有中あるいは観察中のどの企業にわずかな変化が生じても——ファンダメンタルズの変化であれ価格の変化であれ——勝率とオッズが変わるのだから、理論上はわずかな組み入れ調整が可能だ。しかし摩擦コストを考慮に入れれば、企業のファンダメンタルズか価格に重大な変化が起きたときにしか調整はしない。</p>
<p>「保有は購入に等しい」の「購入」とは、実のところ、理想的な状況下で持ち高を組み直すことを指すべきであって、保有したまま買い増すことではない。ある投資対象を保有したうえで買い増すのであれば、あるいは他の持ち高を動かすことでその投資対象の相対的なポジションが変わるのであれば、それは現行のポートフォリオに対する新たな見方を示している。</p>
<p>つまり結局のところ、「保有は購入に等しいか」を本質から論じるには、保有とは何か、購入とは何かをはっきりさせねばならない。文脈が違い、語る人が違えば、同じ言葉が別の意味を帯びうる。</p>
<p>しかし、この言葉を弁別することよりも重要なのは、価値投資家が取得原価を思考に持ち込まないことを学び、常に自分の持ち高を点検することだ。頻繁に売買はしないとしても、思考の水準では資産の比較が止むことがない。金は眠らないからだ。いわゆる投資とは、本質的に機会費用の比較にほかならない。</p>
]]></content:encoded><category>investment</category></item><item><title>配当、物語、賭博——株式の三層構造とそのリスク</title><link>https://yifeitao.com/ja/three-layers-of-stocks/</link><pubDate>Thu, 09 Jan 2025 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/three-layers-of-stocks/</guid><description>&lt;p&gt;&lt;img src="https://mmbiz.qpic.cn/mmbiz_jpg/NxlumZAmv88avGB5QfHVicSMtfJm327pQPKXgbOKJ3HgpMb9SgjEK0NicMFK78p12msDBeKmkH6Yu05lVuXgEJIA/640?wx_fmt=jpeg&amp;amp;from=appmsg&amp;amp;tp=webp&amp;amp;wxfrom=5&amp;amp;wx_lazy=1#imgIndex=0" alt=" " loading="lazy" decoding="async" referrerpolicy="no-referrer" /&gt;
&lt;/p&gt;
&lt;p&gt;同じ株式でも、人の目には違うものとして映る。ある人にとっては企業の配当を受け取るための証書であり、別の人にとっては賭博のチップである。&lt;/p&gt;
&lt;h2 id="配当の論理"&gt;配当の論理&lt;/h2&gt;
&lt;p&gt;株式の最も底にある論理は、配当を分かち合うことにある。歴史を振り返れば、企業は稼いだ利益を、配当や自社株買いという形で株主と分かち合ってきた。貴州茅台（マオタイ）や騰訊控股（テンセント）がそうした企業である。こうした企業のリスクは次のとおりだ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;企業が実際には稼いでおらず、決算書の上でだけ稼いでいるように見える
&lt;ol&gt;
&lt;li&gt;利益はあるがキャッシュフローがない&lt;/li&gt;
&lt;li&gt;リスクの後送り。銀行や保険のような企業は、今は稼いでいるように見えても、不良債権や保険金支払いの巨大なリスクを隠しているかもしれない&lt;/li&gt;
&lt;li&gt;会計不正&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;企業は稼いでいるが、少数株主と分かち合わない
&lt;ol&gt;
&lt;li&gt;配当もせず、安値での自社株買いもしないまま、無闇に投資する（高値での自社株買いを含む）&lt;/li&gt;
&lt;li&gt;経営陣が会社の利益を侵食し、各種の関連当事者取引で足元をすくう&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;以前は稼げていたが、今後は下り坂で稼げなくなる
&lt;ol&gt;
&lt;li&gt;企業が腐敗し、競争力を失う&lt;/li&gt;
&lt;li&gt;次元の違う競争相手に打撃を受け、斜陽産業になる&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この層では、利益と配当に値段をつけ、その持続可能性を見極めねばならない。&lt;/p&gt;
&lt;h2 id="物語の論理"&gt;物語の論理&lt;/h2&gt;
&lt;p&gt;最終的には配当が分かち合われるという論理を土台に、市場に合意が生まれ、ある企業が将来大きく稼ぐという見方が広がる。そこではたいてい、筋の通った物語が語られる。電気自動車が燃油車を取って代わり、小米（シャオミ）が電気自動車の巨人になる。人工知能が台頭して百度（バイドゥ）が再び偉大になる。拼多多（ピンドゥオドゥオ）が中国の巨大な生産能力を活かして製品に市場を見出し、「節約」という心智を握る——といった具合だ。こうした企業には第一層のリスクがすべて当てはまるうえ、さらに多くのリスクがある。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;物語は当たったが、その企業が主役ではない。たとえば人工知能は確かに台頭したが、それは百度とは無関係かもしれない。&lt;/li&gt;
&lt;li&gt;物語そのものが誤っている。たとえば電気自動車による燃油車の代替は、本当の趨勢ではないのかもしれない。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この層では、物語に値段をつけねばならない。難易度はおそらく一段、いや桁違いに上がる。ここにはベンチャー投資に通じる論理が混じっている。&lt;/p&gt;
&lt;h2 id="賭博の論理"&gt;賭博の論理&lt;/h2&gt;
&lt;p&gt;物語の論理のさらに上では、その物語を本当に信じる必要はなく、それが今いわゆる相場の加熱材料になっていると信じれば足りる。これが賭博の論理であり、賭場には賭けの対象が要る。賭博の論理からすれば、前述の二層のリスクはもはやリスクですらない。リスクはただ一つ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;人気の題材はいつでも入れ替わり、賭けの対象の変化は予測しがたい。
この層では、値段をつけることなどできはしない。わずかに高頻度のクオンツ取引に機会があるだけだろう。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;投資家として、私が興味を持つのは最初の二層だけである。ポジションの大半を第一層の論理に、ごく一部を第二層の論理に置きたい。第三層には近づかない。&lt;/p&gt;</description><content:encoded><![CDATA[<p><img src="https://mmbiz.qpic.cn/mmbiz_jpg/NxlumZAmv88avGB5QfHVicSMtfJm327pQPKXgbOKJ3HgpMb9SgjEK0NicMFK78p12msDBeKmkH6Yu05lVuXgEJIA/640?wx_fmt=jpeg&amp;from=appmsg&amp;tp=webp&amp;wxfrom=5&amp;wx_lazy=1#imgIndex=0" alt=" " loading="lazy" decoding="async" referrerpolicy="no-referrer" />
</p>
<p>同じ株式でも、人の目には違うものとして映る。ある人にとっては企業の配当を受け取るための証書であり、別の人にとっては賭博のチップである。</p>
<h2 id="配当の論理">配当の論理</h2>
<p>株式の最も底にある論理は、配当を分かち合うことにある。歴史を振り返れば、企業は稼いだ利益を、配当や自社株買いという形で株主と分かち合ってきた。貴州茅台（マオタイ）や騰訊控股（テンセント）がそうした企業である。こうした企業のリスクは次のとおりだ。</p>
<ol>
<li>企業が実際には稼いでおらず、決算書の上でだけ稼いでいるように見える
<ol>
<li>利益はあるがキャッシュフローがない</li>
<li>リスクの後送り。銀行や保険のような企業は、今は稼いでいるように見えても、不良債権や保険金支払いの巨大なリスクを隠しているかもしれない</li>
<li>会計不正</li>
</ol>
</li>
<li>企業は稼いでいるが、少数株主と分かち合わない
<ol>
<li>配当もせず、安値での自社株買いもしないまま、無闇に投資する（高値での自社株買いを含む）</li>
<li>経営陣が会社の利益を侵食し、各種の関連当事者取引で足元をすくう</li>
</ol>
</li>
<li>以前は稼げていたが、今後は下り坂で稼げなくなる
<ol>
<li>企業が腐敗し、競争力を失う</li>
<li>次元の違う競争相手に打撃を受け、斜陽産業になる</li>
</ol>
</li>
</ol>
<p>この層では、利益と配当に値段をつけ、その持続可能性を見極めねばならない。</p>
<h2 id="物語の論理">物語の論理</h2>
<p>最終的には配当が分かち合われるという論理を土台に、市場に合意が生まれ、ある企業が将来大きく稼ぐという見方が広がる。そこではたいてい、筋の通った物語が語られる。電気自動車が燃油車を取って代わり、小米（シャオミ）が電気自動車の巨人になる。人工知能が台頭して百度（バイドゥ）が再び偉大になる。拼多多（ピンドゥオドゥオ）が中国の巨大な生産能力を活かして製品に市場を見出し、「節約」という心智を握る——といった具合だ。こうした企業には第一層のリスクがすべて当てはまるうえ、さらに多くのリスクがある。</p>
<ol>
<li>物語は当たったが、その企業が主役ではない。たとえば人工知能は確かに台頭したが、それは百度とは無関係かもしれない。</li>
<li>物語そのものが誤っている。たとえば電気自動車による燃油車の代替は、本当の趨勢ではないのかもしれない。</li>
</ol>
<p>この層では、物語に値段をつけねばならない。難易度はおそらく一段、いや桁違いに上がる。ここにはベンチャー投資に通じる論理が混じっている。</p>
<h2 id="賭博の論理">賭博の論理</h2>
<p>物語の論理のさらに上では、その物語を本当に信じる必要はなく、それが今いわゆる相場の加熱材料になっていると信じれば足りる。これが賭博の論理であり、賭場には賭けの対象が要る。賭博の論理からすれば、前述の二層のリスクはもはやリスクですらない。リスクはただ一つ。</p>
<ol>
<li>人気の題材はいつでも入れ替わり、賭けの対象の変化は予測しがたい。
この層では、値段をつけることなどできはしない。わずかに高頻度のクオンツ取引に機会があるだけだろう。</li>
</ol>
<p>投資家として、私が興味を持つのは最初の二層だけである。ポジションの大半を第一層の論理に、ごく一部を第二層の論理に置きたい。第三層には近づかない。</p>
]]></content:encoded><category>investment</category></item><item><title>しつけを捨て、野に放つ</title><link>https://yifeitao.com/ja/the-gardener-and-the-carpenter/</link><pubDate>Sun, 20 Oct 2019 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/the-gardener-and-the-carpenter/</guid><description>&lt;blockquote&gt;
&lt;p&gt;本稿は&lt;a href="https://book.douban.com/subject/34481379/"
rel="noopener noreferrer" target="_blank" class="external"&gt;『庭師と大工』&lt;/a&gt;
の抜粋と短評である。紙の本、あるいは微信読書の電子版を勧める。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;『庭師と大工』の著者は、子どもの学習と発達を専門とする優れた研究者であり、心理学者であり哲学者でもある。本書の学術的な水準は高い。育児書でありながら、進化論や哲学の高さから論じる本は、やはり珍しい。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;あなたは庭師か、それとも大工か&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;著者は、現在の中産階級に主流の、不安に駆られた育児モデル——いわゆる「しつけ」モデル——を完全に否定する。「しつけ」、英語の parenting は、1950〜60年代になってようやく形をなした言葉だ。中産階級が台頭し、伝統的な子育てが立ち行かなくなった後の流行である。このモデルは工業化生産の中でプラスの役割を果たしたかもしれないが、より複雑な未来を前にすれば、反省せざるを得ない。庭師と大工は、中国語で最良の隠喩とは限らない。大工が形を削り出すのは確かだが、中国式の庭師の傑作である「盆景」も、負けず劣らずひどい。ここでの庭師は、植物を野放図に育てることを許す者であるべきだ。「理想の」子どもなどいないというのは、多くの中国の親にとっては致命的事態だろう。子育てには二つのパラドックスがある。依存と独立、遊びと学習。どちらへ一直線に進めばいいという単純な問題ではない。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;「しつけ」は出来の悪い近代の発明である&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;「混沌は階梯である」。子どもの混沌は人類発展の階梯だ。探索は子どもの天性であり、子どもの使命と言ってもいい。子どもに青写真を描き、枠をはめてやることが、まことに傲慢な行為だというのは、原始社会の不安定な生活環境でもそうだったし、現代と、発展の速い未来の現実でも同じだ。中国の伝統的な教育理念にある「玉は琢かざれば器を成さず」は、工業文明下の「しつけ」と意気投合し、さらにエスカレートした。この「しつけ」モデルは、学校に似た枠に沿って子どもを設計する。伝統的な教育には親子関係に基づく直感があったが、今はその直感すら教条に譲り渡している。たとえば、子どもが泣いたら抱くべきかどうか、親は直感で判断できず、育児書の指示に従う。ましてや「優秀な子」の比較競争の中の不安においてはなおさらだ。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;子ども時代——人類進化の重要な戦略&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;著者は子ども時代の重要性を、人類の進化戦略の高さに置く。現実には、多くの親は子ども時代を、ただ避けて通れない成人準備期間としか見ていない。早く物わかりがよくなり、成績優秀で、手がかからなくなってほしいと願う。著者は進化論の観点から子ども時代の意味を分析する。これが問題の核心を捉えていると思う。この子ども時代の名誉回復は、単なる人文的配慮ではなく、認知の高さで圧倒している。「スタートラインで負けてはいけない」から始まって、一生競争し続けて生活の中で幸福になる能力を持たないか、どこかの時点で堕落して、反動的に快楽を追い求めるか、どちらかだ。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;愛——進化し続けるための保障&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;著者は子どものへの愛を三つの層で論じる。親、祖父母、非血縁の養育者。進化論の観点から、人類が愛という形で囚人のジレンマを突破し、遺伝子の層でも文化の層でも子どもの世話の暗号を深く刻んだことを説く。愛するから世話をするのではなく、世話をするから愛するのである。私の実感では、現在の社会文化はこの伝統をある程度疎外している。「やんちゃな子」への過敏な非難が巷に満ち、子どものような完全な行為能力を持たない者に対する、予測不可能性への恐怖がある。たとえば飛行機の中で泣きわめく2歳児の母親を責める。社会全体の「しつけ」神話はこうだ。親がきちんと教育さえすれば、どんなに小さな子どもでも大人のように大人しく公共の秩序を守れる——そしてこれはまさに人間性に反している。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;見ながら学ぶ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;この章は、子どもが観察と模倣によって学ぶことを論じる。現存する教育制度はせいぜい数百年の歴史しかない。現代の中産階級の家庭の親は、学校教育に適応しただけでなく、そのセットをできるだけ早く自分の子どもに適用しようとし、より古く、自然な模倣学習には十分注意を払わない。よくある説明はミラーニューロンだが、それは怠惰で過度に単純化した説明にすぎない。子どもの模倣は非常に複雑で精緻で、大人の知覚を超えている（いつ覚えたのか分からない）。第一に、子どもの模倣は過程の模倣ではなく、大人の意図を理解しようとし、そこから因果関係を見つけ、自分の思考に取り込み、最終的には自分が関心を持つ結果を模倣する。大人が専門家らしく振る舞わないと、子どもはより多くを取捨選択する。大人が専門家らしく振る舞うと、子どもは細部をより多く模倣する。それが良いこととは限らない。模倣には社会的属性もある。子どもは自分に似た人をより模倣し、儀式的で実用性のない動作を模倣して集団に溶け込もうとする。現代の親への示唆は、中国の古語「身教は言教に勝る」がいつまでも古びないということだ。四六時中子どもに小言を言うより、自分をしっかりやって、子どもと良い相互作用をつくり、子どもが家庭や社会の活動に参加する条件を十分に整えてやるほうがいい。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;聞きながら学ぶ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;この章は、子どもが言語を通じてどう学ぶかを論じる。ここが人間が他の動物をはるかに超えている点だ。子どもは大人の話を聞くが、丸ごと受け入れるわけではない。大人が信頼に値するかどうかを判断する。その判断は多くの要素による。話し手が自信を持っているか、その分野の専門家か、話し手との関係はどうか。要するに、信頼の構築が必要だ。子どもは「なぜ」をよく聞くが、ほとんどの場合、本当に世界の原理を探求したいのだ。多くの場合、直接聞くほうが観察より効率的な学習法だ。たとえば、なぜ雨が降るのかを知りたいとき。子どもを適当にあしらってはいけないし、時々答えられなくても心配いらない。探求の熱意はとても高いからだ。子どもは大人の言葉遣いから偏見を抽出する。たとえば「日本人はみんな悪い」と「日本人には悪い人もいる」では効果がまったく違う。親がすべきは何かを教えようとすることではなく、良い相互作用を保ち、会話の中で良い親子関係を築き、「なぜ」によく答え、子どもにも「なぜ」をよく聞き、より多くの人と話させることだ。この問答が構成するのは本当の生活であって、作為的なものではない。子どもの感受性の高さゆえ、親は博学ぶることも公正中立ぶることもできず、すべては本音の流露しかない。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;遊びながら学ぶ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;遊びの効果は測りにくい。測った途端、それはもう遊びではないかもしれないからだ。人間に限らず、知能の発達した動物はみな遊びを好む。よくある遊び方に取っ組み合い遊びがある。子犬同士の噛み合い、子ども同士の身体のぶつかり合い。こうした遊びは子どもの社会的能力を高める。私の観察では、現在の中国の親の大半はこうした遊びを禁じている。子ども同士が少し身体的にぶつかると、大人が喧嘩を始めそうになる。遊びは好奇心に駆られる。子どもの遊びは科学者の実験に少し似ていて、仮説と検証、ランダムな探索がある。人間は他の動物より「ふり遊び」が得意だ。これは反事実的推論の能力で、虚構の、ある程度論理のある世界を構築する。文学作品にも同じ力がある。ふり遊びの得意な子は他人の考えをより理解できる。架空の友達を持つ子も少なくなく、それは大人をよく怯えさせる。子どもの遊びの中で、親は導くのではなく支えるべきだ。導くと子どもの探索の考えが途絶え、大人の段取り通りの退屈な模倣になる。親が積極的にできるのは、遊べるものがより多くある環境をつくることだ。ただしそれはいくら金をかけるかでは決まらない。棒切れ一本が良い玩具になることもある。実際、大人も肩書きを下ろせば、子どもの遊びに加わるのを嫌いとは限らない。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;練習しながら学ぶ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;この章は主に学齢期の子どもと学校教育を論じる。学齢という概念は学校教育に基づくが、子どもの心理発達には確かにそうした変化の層がある。探索型の学習が主から習得型の学習が主へと移行し、成人生活の基礎を築く。習得型の学習には練習が必要で、脳神経の再構築であり、技能を無意識の状態に変える過程だ。別の角度から見れば、これも一種の退化である。現在の学校教育は工業化生産とともに生まれたもので、人間の常態ではない。それ以前の教育は徒弟制の教育であり、このモデルは今でも一部の領域で主導的な役割を果たしている。スポーツや音楽の学習のように。学校教育が育てるのは「学校に通うのが上手い人」だ。一斉授業という形式は、子どもに高い集中力を要求する。そしてその能力は、古今の現実の中で、必ずしも有利な能力ではない。しかしアメリカの現代教育体系は、長時間集中できない子どもをますます注意欠陥多動性障害と定義する。中国も同じ傾向だ。集中力という特性のスペクトル上で、各子どもの位置は違う。それは進化の多様性にすぎない。著者は、学校がさまざまな子どもに適応すべきだと主張し、子どもに薬を飲ませるべきではないと言う。進化の観点では、思春期は人間が成人へ向かう過程であり、人の動機の仕組みと制御の仕組みに関わる。思春期の子どもは同年代の評価に影響されやすく、冷静な大人には不可解に思える報酬をより重んじる。現代の子どもは思春期の到来が早まったが、徒弟制の中で育った子どもほど本当の仕事の経験を持たず、自分の行動を制御して本当に意味のある成果を出すことができない。子どもが科学者を職業にしたいと思っても、実際に科学者と一緒に働けるのは二十代になってからだ。学校教育も家庭教育も、庭師モデルであるべきだが、現実はむしろ大工モデルが多い。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;テクノロジーと子どもの未来&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;あなたの子どもは情報時代の先住民で、あなた自身は移民にすぎない。うちの子がろくに話せないのにiPadを器用に操作するのを見て、私は著者の判断に深く同意した。現代の親のテクノロジーへの恐怖は新しい恐怖ではない。ソクラテスは、文字を書くという当時の新テクノロジーに深い懸念を表明した。そしてその懸念は現実になった。我々は口承ではなく文字による継承に、より依存するようになった。しかし人類の文化は滅びず、むしろ大いに栄えた。テクノロジーが次の世代をどこへ連れて行くのか、唯一確かな答えは「分からない」しかない。子どものすべてを制御し、未来の人生を段取りするなど、なんとおかしなことか。青少年は新しい文化の中で育ち、過去と同じ対人関係の難問に直面する。いや、それ以上だ。ネット上の見知らぬ他人の悪意に向き合う必要がある。この避けがたく滑り込んでいく未来こそ、この世代の運命だ。親としてできるのは制御ではなく、かといって「自然に任せる」でもなく、過去と未来をつなぐ橋になることだ。子どもは伝統の中で育ち、栄養を吸収し、また自らの革新を持つ。我々は子どもと一緒に本を読み続けられるが、電子機器と隔絶することも絶対にできない。この世界の本当の姿がそうだからだ。ここまで書いて、少し感傷的になる。結局は長江の後浪が前浪を押し、前浪は砂浜で死ぬ。世代には世代の責任があり、世代には世代の哀しみと愁いがある。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;子どもを育てる意味&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;哲学的に言えば、子どもを育てる意味を定義することはできない。子どもができる前と後のあなたは、まったく同一人物ではないからだ。多様な価値観はディンクスの考えを尊重するが、自分が持たなかったものが価値ないふりを決してしてはいけない。社会発展の観点では、現在の社会の運営の仕方は親子関係を傷つけている。親の仕事と子どもにはほとんど関係がない。社会は子どもの養育に報いない。子どもは大人の競争の負担になる。かつての顔見知りの社会では、共同体の成員がみな子どもに親切だった。冷たく独立的な都市生活では、そうしたものはもう存在しない。あるのは、子どもが早く成熟して見えることを求める圧力だけだ。ネット上の「やんちゃな子」への容赦ない打ち殺しも、発端は一部の親の「大きな赤ん坊」のような振る舞いだが、社会全体の子どもへのある種の差別を反映してもいる。顔見知りの社会が避けがたく解体した後、政府と社会が子育ての責任を負わなければならない。子育てにせよ老人の扶養にせよ、社会全体が考え直す必要がある。赤裸々な経済的利益の衡量の外に、考慮すべき問題はないのか。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;親になるとは、一連の矛盾の中で均衡を探す芸術である&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;良い育児書は断定的な答えを出せない。この本の結論もそうだ。それが真相だからだ。毎日、私は子どもに硬軟さまざまな要求をする。他の人を妨害したからかもしれないし、単にこうするほうが彼にとって良いと思うからかもしれない。しかし毎日、その要求が妥当か、必須か、自分が一人合点しているだけではないかと疑う。「どうやって」「どのように」で始まる育児書は数千、数万とある。それらはたいてい断定的に方法をくれる。しかし、自分を省みる限り、子どもの前で断定的ではいられない。どんな専制的な親も、子どもがいつの日か独り立ちすることを望むと認める。しかし幼い子どもには確かに親の助けが要る。この依存と成長・独立の矛盾は永遠で、万能の解決策はない。私の実感では、子どもは磁器ではない。親の一、二度の誤りで粉々になったりしない。恐ろしいのは親の断定だ。これがきっと君のためになる——反省のないことが、すべての悲劇の起源である。この本のような良い育児書は、あなたの反省に思考の起点を与える。しかし読み終えて、すべてはようやく始まる。&lt;/p&gt;</description><content:encoded><![CDATA[<blockquote>
<p>本稿は<a href="https://book.douban.com/subject/34481379/"
   rel="noopener noreferrer" target="_blank" class="external">『庭師と大工』</a>
の抜粋と短評である。紙の本、あるいは微信読書の電子版を勧める。</p>
</blockquote>
<p>『庭師と大工』の著者は、子どもの学習と発達を専門とする優れた研究者であり、心理学者であり哲学者でもある。本書の学術的な水準は高い。育児書でありながら、進化論や哲学の高さから論じる本は、やはり珍しい。</p>
<p><strong>あなたは庭師か、それとも大工か</strong></p>
<p>著者は、現在の中産階級に主流の、不安に駆られた育児モデル——いわゆる「しつけ」モデル——を完全に否定する。「しつけ」、英語の parenting は、1950〜60年代になってようやく形をなした言葉だ。中産階級が台頭し、伝統的な子育てが立ち行かなくなった後の流行である。このモデルは工業化生産の中でプラスの役割を果たしたかもしれないが、より複雑な未来を前にすれば、反省せざるを得ない。庭師と大工は、中国語で最良の隠喩とは限らない。大工が形を削り出すのは確かだが、中国式の庭師の傑作である「盆景」も、負けず劣らずひどい。ここでの庭師は、植物を野放図に育てることを許す者であるべきだ。「理想の」子どもなどいないというのは、多くの中国の親にとっては致命的事態だろう。子育てには二つのパラドックスがある。依存と独立、遊びと学習。どちらへ一直線に進めばいいという単純な問題ではない。</p>
<p><strong>「しつけ」は出来の悪い近代の発明である</strong></p>
<p>「混沌は階梯である」。子どもの混沌は人類発展の階梯だ。探索は子どもの天性であり、子どもの使命と言ってもいい。子どもに青写真を描き、枠をはめてやることが、まことに傲慢な行為だというのは、原始社会の不安定な生活環境でもそうだったし、現代と、発展の速い未来の現実でも同じだ。中国の伝統的な教育理念にある「玉は琢かざれば器を成さず」は、工業文明下の「しつけ」と意気投合し、さらにエスカレートした。この「しつけ」モデルは、学校に似た枠に沿って子どもを設計する。伝統的な教育には親子関係に基づく直感があったが、今はその直感すら教条に譲り渡している。たとえば、子どもが泣いたら抱くべきかどうか、親は直感で判断できず、育児書の指示に従う。ましてや「優秀な子」の比較競争の中の不安においてはなおさらだ。</p>
<p><strong>子ども時代——人類進化の重要な戦略</strong></p>
<p>著者は子ども時代の重要性を、人類の進化戦略の高さに置く。現実には、多くの親は子ども時代を、ただ避けて通れない成人準備期間としか見ていない。早く物わかりがよくなり、成績優秀で、手がかからなくなってほしいと願う。著者は進化論の観点から子ども時代の意味を分析する。これが問題の核心を捉えていると思う。この子ども時代の名誉回復は、単なる人文的配慮ではなく、認知の高さで圧倒している。「スタートラインで負けてはいけない」から始まって、一生競争し続けて生活の中で幸福になる能力を持たないか、どこかの時点で堕落して、反動的に快楽を追い求めるか、どちらかだ。</p>
<p><strong>愛——進化し続けるための保障</strong></p>
<p>著者は子どものへの愛を三つの層で論じる。親、祖父母、非血縁の養育者。進化論の観点から、人類が愛という形で囚人のジレンマを突破し、遺伝子の層でも文化の層でも子どもの世話の暗号を深く刻んだことを説く。愛するから世話をするのではなく、世話をするから愛するのである。私の実感では、現在の社会文化はこの伝統をある程度疎外している。「やんちゃな子」への過敏な非難が巷に満ち、子どものような完全な行為能力を持たない者に対する、予測不可能性への恐怖がある。たとえば飛行機の中で泣きわめく2歳児の母親を責める。社会全体の「しつけ」神話はこうだ。親がきちんと教育さえすれば、どんなに小さな子どもでも大人のように大人しく公共の秩序を守れる——そしてこれはまさに人間性に反している。</p>
<p><strong>見ながら学ぶ</strong></p>
<p>この章は、子どもが観察と模倣によって学ぶことを論じる。現存する教育制度はせいぜい数百年の歴史しかない。現代の中産階級の家庭の親は、学校教育に適応しただけでなく、そのセットをできるだけ早く自分の子どもに適用しようとし、より古く、自然な模倣学習には十分注意を払わない。よくある説明はミラーニューロンだが、それは怠惰で過度に単純化した説明にすぎない。子どもの模倣は非常に複雑で精緻で、大人の知覚を超えている（いつ覚えたのか分からない）。第一に、子どもの模倣は過程の模倣ではなく、大人の意図を理解しようとし、そこから因果関係を見つけ、自分の思考に取り込み、最終的には自分が関心を持つ結果を模倣する。大人が専門家らしく振る舞わないと、子どもはより多くを取捨選択する。大人が専門家らしく振る舞うと、子どもは細部をより多く模倣する。それが良いこととは限らない。模倣には社会的属性もある。子どもは自分に似た人をより模倣し、儀式的で実用性のない動作を模倣して集団に溶け込もうとする。現代の親への示唆は、中国の古語「身教は言教に勝る」がいつまでも古びないということだ。四六時中子どもに小言を言うより、自分をしっかりやって、子どもと良い相互作用をつくり、子どもが家庭や社会の活動に参加する条件を十分に整えてやるほうがいい。</p>
<p><strong>聞きながら学ぶ</strong></p>
<p>この章は、子どもが言語を通じてどう学ぶかを論じる。ここが人間が他の動物をはるかに超えている点だ。子どもは大人の話を聞くが、丸ごと受け入れるわけではない。大人が信頼に値するかどうかを判断する。その判断は多くの要素による。話し手が自信を持っているか、その分野の専門家か、話し手との関係はどうか。要するに、信頼の構築が必要だ。子どもは「なぜ」をよく聞くが、ほとんどの場合、本当に世界の原理を探求したいのだ。多くの場合、直接聞くほうが観察より効率的な学習法だ。たとえば、なぜ雨が降るのかを知りたいとき。子どもを適当にあしらってはいけないし、時々答えられなくても心配いらない。探求の熱意はとても高いからだ。子どもは大人の言葉遣いから偏見を抽出する。たとえば「日本人はみんな悪い」と「日本人には悪い人もいる」では効果がまったく違う。親がすべきは何かを教えようとすることではなく、良い相互作用を保ち、会話の中で良い親子関係を築き、「なぜ」によく答え、子どもにも「なぜ」をよく聞き、より多くの人と話させることだ。この問答が構成するのは本当の生活であって、作為的なものではない。子どもの感受性の高さゆえ、親は博学ぶることも公正中立ぶることもできず、すべては本音の流露しかない。</p>
<p><strong>遊びながら学ぶ</strong></p>
<p>遊びの効果は測りにくい。測った途端、それはもう遊びではないかもしれないからだ。人間に限らず、知能の発達した動物はみな遊びを好む。よくある遊び方に取っ組み合い遊びがある。子犬同士の噛み合い、子ども同士の身体のぶつかり合い。こうした遊びは子どもの社会的能力を高める。私の観察では、現在の中国の親の大半はこうした遊びを禁じている。子ども同士が少し身体的にぶつかると、大人が喧嘩を始めそうになる。遊びは好奇心に駆られる。子どもの遊びは科学者の実験に少し似ていて、仮説と検証、ランダムな探索がある。人間は他の動物より「ふり遊び」が得意だ。これは反事実的推論の能力で、虚構の、ある程度論理のある世界を構築する。文学作品にも同じ力がある。ふり遊びの得意な子は他人の考えをより理解できる。架空の友達を持つ子も少なくなく、それは大人をよく怯えさせる。子どもの遊びの中で、親は導くのではなく支えるべきだ。導くと子どもの探索の考えが途絶え、大人の段取り通りの退屈な模倣になる。親が積極的にできるのは、遊べるものがより多くある環境をつくることだ。ただしそれはいくら金をかけるかでは決まらない。棒切れ一本が良い玩具になることもある。実際、大人も肩書きを下ろせば、子どもの遊びに加わるのを嫌いとは限らない。</p>
<p><strong>練習しながら学ぶ</strong></p>
<p>この章は主に学齢期の子どもと学校教育を論じる。学齢という概念は学校教育に基づくが、子どもの心理発達には確かにそうした変化の層がある。探索型の学習が主から習得型の学習が主へと移行し、成人生活の基礎を築く。習得型の学習には練習が必要で、脳神経の再構築であり、技能を無意識の状態に変える過程だ。別の角度から見れば、これも一種の退化である。現在の学校教育は工業化生産とともに生まれたもので、人間の常態ではない。それ以前の教育は徒弟制の教育であり、このモデルは今でも一部の領域で主導的な役割を果たしている。スポーツや音楽の学習のように。学校教育が育てるのは「学校に通うのが上手い人」だ。一斉授業という形式は、子どもに高い集中力を要求する。そしてその能力は、古今の現実の中で、必ずしも有利な能力ではない。しかしアメリカの現代教育体系は、長時間集中できない子どもをますます注意欠陥多動性障害と定義する。中国も同じ傾向だ。集中力という特性のスペクトル上で、各子どもの位置は違う。それは進化の多様性にすぎない。著者は、学校がさまざまな子どもに適応すべきだと主張し、子どもに薬を飲ませるべきではないと言う。進化の観点では、思春期は人間が成人へ向かう過程であり、人の動機の仕組みと制御の仕組みに関わる。思春期の子どもは同年代の評価に影響されやすく、冷静な大人には不可解に思える報酬をより重んじる。現代の子どもは思春期の到来が早まったが、徒弟制の中で育った子どもほど本当の仕事の経験を持たず、自分の行動を制御して本当に意味のある成果を出すことができない。子どもが科学者を職業にしたいと思っても、実際に科学者と一緒に働けるのは二十代になってからだ。学校教育も家庭教育も、庭師モデルであるべきだが、現実はむしろ大工モデルが多い。</p>
<p><strong>テクノロジーと子どもの未来</strong></p>
<p>あなたの子どもは情報時代の先住民で、あなた自身は移民にすぎない。うちの子がろくに話せないのにiPadを器用に操作するのを見て、私は著者の判断に深く同意した。現代の親のテクノロジーへの恐怖は新しい恐怖ではない。ソクラテスは、文字を書くという当時の新テクノロジーに深い懸念を表明した。そしてその懸念は現実になった。我々は口承ではなく文字による継承に、より依存するようになった。しかし人類の文化は滅びず、むしろ大いに栄えた。テクノロジーが次の世代をどこへ連れて行くのか、唯一確かな答えは「分からない」しかない。子どものすべてを制御し、未来の人生を段取りするなど、なんとおかしなことか。青少年は新しい文化の中で育ち、過去と同じ対人関係の難問に直面する。いや、それ以上だ。ネット上の見知らぬ他人の悪意に向き合う必要がある。この避けがたく滑り込んでいく未来こそ、この世代の運命だ。親としてできるのは制御ではなく、かといって「自然に任せる」でもなく、過去と未来をつなぐ橋になることだ。子どもは伝統の中で育ち、栄養を吸収し、また自らの革新を持つ。我々は子どもと一緒に本を読み続けられるが、電子機器と隔絶することも絶対にできない。この世界の本当の姿がそうだからだ。ここまで書いて、少し感傷的になる。結局は長江の後浪が前浪を押し、前浪は砂浜で死ぬ。世代には世代の責任があり、世代には世代の哀しみと愁いがある。</p>
<p><strong>子どもを育てる意味</strong></p>
<p>哲学的に言えば、子どもを育てる意味を定義することはできない。子どもができる前と後のあなたは、まったく同一人物ではないからだ。多様な価値観はディンクスの考えを尊重するが、自分が持たなかったものが価値ないふりを決してしてはいけない。社会発展の観点では、現在の社会の運営の仕方は親子関係を傷つけている。親の仕事と子どもにはほとんど関係がない。社会は子どもの養育に報いない。子どもは大人の競争の負担になる。かつての顔見知りの社会では、共同体の成員がみな子どもに親切だった。冷たく独立的な都市生活では、そうしたものはもう存在しない。あるのは、子どもが早く成熟して見えることを求める圧力だけだ。ネット上の「やんちゃな子」への容赦ない打ち殺しも、発端は一部の親の「大きな赤ん坊」のような振る舞いだが、社会全体の子どもへのある種の差別を反映してもいる。顔見知りの社会が避けがたく解体した後、政府と社会が子育ての責任を負わなければならない。子育てにせよ老人の扶養にせよ、社会全体が考え直す必要がある。赤裸々な経済的利益の衡量の外に、考慮すべき問題はないのか。</p>
<p><strong>親になるとは、一連の矛盾の中で均衡を探す芸術である</strong></p>
<p>良い育児書は断定的な答えを出せない。この本の結論もそうだ。それが真相だからだ。毎日、私は子どもに硬軟さまざまな要求をする。他の人を妨害したからかもしれないし、単にこうするほうが彼にとって良いと思うからかもしれない。しかし毎日、その要求が妥当か、必須か、自分が一人合点しているだけではないかと疑う。「どうやって」「どのように」で始まる育児書は数千、数万とある。それらはたいてい断定的に方法をくれる。しかし、自分を省みる限り、子どもの前で断定的ではいられない。どんな専制的な親も、子どもがいつの日か独り立ちすることを望むと認める。しかし幼い子どもには確かに親の助けが要る。この依存と成長・独立の矛盾は永遠で、万能の解決策はない。私の実感では、子どもは磁器ではない。親の一、二度の誤りで粉々になったりしない。恐ろしいのは親の断定だ。これがきっと君のためになる——反省のないことが、すべての悲劇の起源である。この本のような良い育児書は、あなたの反省に思考の起点を与える。しかし読み終えて、すべてはようやく始まる。</p>
]]></content:encoded><category>reading</category><category domain="tags">子育て</category><category domain="tags">読書ノート</category></item><item><title>学習問答集2019</title><link>https://yifeitao.com/ja/learning-faq-2019/</link><pubDate>Sun, 18 Aug 2019 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/learning-faq-2019/</guid><description>&lt;p&gt;&lt;strong&gt;0 なぜ問答集を書くのか&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最近、学習科学に関する本や資料を集中的に読んだ。自分の感じたことと考えを初歩的に整理したいが、骨組みのしっかりした文章にすると一冊分の容量が必要になるかもしれない。自分にはまだ遠く及ばない。この領域の研究は初歩的に五年計画で、この文章を良いスタートとしよう。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1 なぜ学習という話題に関心を持つのか&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;私的な理由は二つある。一つは、自分が人工知能などの複雑な技術を学ぶときに多くの困難に遭ったこと。二つは、自分の子どもに身をもって示す経験を与えたいこと。もっと大きな視点から見れば、人間の学習の仕組みは現在の機械学習よりはるかに複雑だ。脳科学、認知科学、心理学などの発展に基づいて、学習科学はいくつかの成果を上げたが、より多くは未知であり、しかもこれらの限られた成果も有効に普及していない。医学と同じで、学習における個人の体験は重要だ。だから習俗や民間療法は、科学の結論よりもしばしば生命力を持つ。プログラマーは学習の重要性を最も感じやすい職業の一つだ。新しい技術が次々と現れ、その一行一行のコードの背後には、おそらく反復作業をする誰かの代替がある。インターネットが情報の格差をますます平らにした後、富豪ランキングに成績優秀者がますます多く現れるのを我々は見る。これは認知の優位が情報の優位を取って代わったことの一つの写しだ。高得点を取る、大金を稼ぐという功利的目的であれ、真理を追う喜びであれ、学習は必須の修行だ。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2 学習は学生だけのものか&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;読書と学習を、学校で教育を受けること、高得点を取って卒業証書を得ることと同一視するのは、学習への最大の誤解だ。「愚かな」人工知能を実装したことがあれば、どの子どもも学習の天才だと分かる。しかし制度化された教育の落ちこぼれは、学習の初心と情熱を消しやすい。制度化された教育の成功者も、社会で失敗し、「読書無用論」の典型にされることがある。多くの人の進歩は勤め始めの数年で止まる。最後の大規模な学習は、仕事に適応するために強いられたものだけだ。彼らが親になると、自分の知識水準はもう停滞しているのに、わが子の成績優秀を望み、教育訓練機関の「月給五万でも子ども一人育てられない」というステマ記事の中で不安になる。しかし学習は本質的に、人として生まれた以上のある種の本能にすぎず、一般に言う読書は、学習の道筋の一つにすぎない。孔子は言った、三人行けば必ず我が師あり。孔子はまた言った、学びて時にこれを習う、また説ばしからずや。私が彼よりうまく言えるはずがない。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3 学習に関する観念のうち、最も最も重要な一点は何か&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最も重要なのは、知能と能力に対する「全体理論」を捨て、「漸進理論」を受け入れることだ。簡単に言えば、知能と能力は生まれつきで変えられないと信じるのではなく、学習によって高められると信じることだ。天才と凡庸、高IQと低IQ、賢いと愚か、という二分法は、人の進歩への最大の害悪だ。人間に生来の差異があることは否定しないが、常人の努力の程度では、たいてい才能と比べる段階にすらない。すべての人の能力が一本のスペクトルをなすなら、誰もが自分の位置を持つ。それは二分でもなく、固定でもない。誰もが自分の能力の天井に突き当たる。天才的な科学者も例外ではない。彼らも一生かけて一つの問題が分からないことがある。もし生まれつき能力が劣っていて、それが変えられないと信じるなら、能力が上がるはずがない。逆に生まれつき能力が優れていて、それが変えられないと信じる人は、天井に突き当たり、困難と挫折に遭うと、自分のIQと能力を疑い、避けがたく失敗するか逃避する。これが「小聡明あれど大智慧なし」ということだ。異なる信念を一生持ち続けることは、天と地ほどの差になる。しかもこれは単なる信念ではない。脳科学はとうに、人の神経細胞がずっと新生しうることを証明している。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4 努力が重要か、方法が重要か&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;これは当然、偽の問題だ。答えはもちろん両方とも重要だ。しかしより深い問題は、どんな努力が正しい努力かということだ。伝統的な観念では、学習は厳粛なものとされ、正座して背筋を伸ばし、頭を梁に吊るし錐で腿を刺すのが正道とされた。成績が良いのにあまり努力しているように見えない者には、天資が良いと褒め、その天資を無駄にするな、もっと努力しろと励ます。逆に、努力しているように見えて成績は平凡な者には、その努力を惜しまず褒める。成績が悪く努力もしない落ちこぼれよりは、いつもましだ。学習素材を繰り返し読み、本に線を引き、きれいなノートを取ることは、科学的研究によって無効と証明されたよくある学習法だ。こうした方法に共通する特徴は、学習者にかなりの時間を使わせ、資料の上に留まる努力をさせることだ。どんなに明晰で美しいノートも、自分の頭に転化できなければ無用だ。役に立つ方法はすべて主体性の原則に基づく。学んでいるものを本当に理解しようとする努力には、少しの自己欺瞞もあってはならない。無知に打たれる感覚はつらい。独りよがりの努力に隠れるのは心地よい。しかし楽に学べる方法など、そもそも存在しない。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5 なぜ試験が重要なのか&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最も一般的で最も有効な学習法の一つが試験だ。試験を学習成果を検証する道具とだけ見なし、点数を唯一の追求目標とし、点数至上主義に走るか、素質教育を大いに語って試験を避けるか——それが試験という道具への最大の誤解と浪費だ。第一に、試験は「もう覚えた」という幻覚を消す究極の武器だ。教材やノートを繰り返し読むと、必ずこの幻覚が生じる。第二に、試験は学習内容の想起を強制し、記憶と理解を定着させる絶好の方法だ。良い教師はさまざまな手段で学生を試す。事前テスト、授業中テスト、事後テスト。目的は学生を順位付けすることではなく、学生に自分の記憶を引き出させ、印象を深め、差を見つけさせることだ。正式な学習でなくても、たとえば専門と関係ない本を読むときも、試験の手段を十分に使える。最も簡単には、一章読み終えたら本を閉じ、自分にいくつか問いかける。いま読んだ素材は主に何を述べていたか。これらの見解に賛成か。自分の既存の知識や経験とどんなつながりが持てるか。賛成なら、実際の生活や仕事でどう使うか。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6 読書と学習が重要なのに、なぜ本の虫がいるのか&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;なぜ多くの道理を分かっていながら、それでもこの人生をうまく生きられないのか。道理の問題ではなく、自分の問題だ。読書と学習を麻雀のような娯楽と見なすなら、本の虫になるのも悪くない。しかし進歩を求めるなら、読書と学習は始まりにすぎず、終わりではない。本の虫は本棚に何冊あるか、読書の速さ、年間の読書冊数に熱を上げ、知識をひけらかすことに熱を上げ、中身のある知識をどれだけ得たかに熱を上げる。しかしどれだけの知識と観念が自分の頭に根を下ろしたか、それらが完全で自己整合的で進化し続ける体系をなしているか、どれだけの観念が実践に移されたかには関心を持たない。曾国藩は兵を率いて戦える書生で、毎日日記を書いて自己反省した。反省したのは、実践活動で自分の理念をどう貫くかということだ。紙の上で得たものは常に浅く、この事を究めんとすれば必ず躬行を要す。古人よりうまく言えるはずがない。孔子と曾国藩が毎日自己反省する必要があったのに、なぜ我々には不要なのか。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7 練習すればするほど、よく学べるのか&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;一万時間天才理論は広く流布した観念で、その背後にある「意図的練習」の理論も誤解の多い理論だ。努力は必ず報われるというのは心安らぐ話だが、有効な練習は単純な繰り返しでは済まない。科学研究も天才個人の経験も示すのは、有効な練習は極めて主体性の高い練習でなければならないということだ。まず退いて進むべく、十分に細かいモジュールに分け、モジュール別に、弱点に狙いを定めて練習する。次に、その練習も単純な繰り返しではいけない。変化に富み、互いに織り交ぜる必要がある。これらの研究成果は直観に反する。人は繰り返しの練習のほうがよく身につき、変化と織り交ぜの練習は効果が劣るとつい感じる。これは克服しがたい幻覚だ。本当に有効な練習は脳力を高度に消耗し、長時間続けることは不可能だ。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8 なぜ本を読んでも覚えられず、理解できないのか&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;最新の記憶理論は、記憶の検索は記憶の初回生成より重要だと考える。誰もが一度見たら忘れないことはできる。問題は、記憶の断片が脳内に散らばり、再組織化して検索できないことだ。唯一の方法は、それらの間に多くの結びつきを作ることだ。ちょうど、もともと遅れた村落が四方八方に通じるセメント道路を敷けば、もう遅れた村落ではなくなるように。体系化されていない知識には多くの小技がある。たとえば語呂合わせを作る。「大の月の覚え方、七の前は単、七の後は双」。体系化された知識で最も重要なのは自分の知識体系を築くことだ。すべての新知識は、既存の知識と経験になるべく多く結びつける。明らかに、これは簡単で気楽な過程ではない。多くの人に試験前の詰め込み復習の経験があり、時に悪くない成績を取る。しかしこれも幻覚だ。苦しい努力を経て自分の体系に取り込まれなかった知識は、やはり本に返される。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;9 少し睡眠を削って多く学ぶことはできないか&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;成功者の神話の一つは、彼らは三、四時間しか眠らないということだ。しかし彼らは飛行機で寝不足を補え、オフィスにベッドを置ける。彼らは意思決定層として脳力活動の強度が低い。彼らは単に嘘をついているのかもしれない。もしあなたが高強度の脳力活動者なら、たとえば大学院生やコードを書くプログラマーなら、睡眠を犠牲にすることは、早く死ぬ可能性のほかに、学習効率を深刻に下げる。脳科学は、神経シナプスの形成には十分な睡眠の過程が必須だと示す。新しい神経シナプスを形成できない学習はすべて時間の浪費だ。現代人の生活習慣はますます夜更かしに傾き、子どももこの文化的変遷の影響を受ける。そして子どもが宿題の負担に押されて睡眠不足になるのは、脳科学への嘲笑だ。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;10 落ちこぼれはどう生まれるのか&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;日本の映画『ビリギャル』では、主人公は大学受験を目指すが数学の基礎がひどく悪い。塾の先生の方法は小学の算数から教えることだった。これは誇張ではなく、実際のモデルがいる。制度化教育の欠陥は、大多数に向けた基準を定めざるを得ないことにある。8歳ではどの程度の言語を身につけるべきか、9歳ではどれだけの数学を知るべきか。そうすれば必ず落ちこぼれる者がいる。落ちこぼれた者はさまざまな負のレッテルを貼られやすい。12歳になってようやく心が成熟して数学に適したとしても、もうその機会はない。たいていそうした子どもは、自分が学習活動にもう何の参加感も持っていない。欧米にも子どもの具体的な状況に応じた異年齢混合の学習クラスがあるが、12歳の子どもが小学三年の数学を学ぶとなれば、親も子どもも面子が立たない。こうした場合、塾こそ最良の出口かもしれない。どの領域の知識も、まず遅く、次に速く、基礎を固める必要がある。学習は家を建てるようなものだ。万丈の高楼も平地から起つ。浮砂に高台を築くな。古人よりうまく言えるはずがない。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;11 なぜ強く念じ続ければ、必ず反響があるのか&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;妊婦がお腹に子を宿しているとき、夫は街を歩いてより多くの妊婦に気づくようになる。ベンゼン環の構造を必死に考えていると、夜、自分の尻尾を噛む蛇の夢を見るかもしれない。一つの問題に全力で取り組んでいるとき、たとえ止まっても、頭の中にはバックグラウンドプロセスのようなものが残る。感覚はひとりでに関連情報を集め、夢はさまざまな案を試す。突破口やインスピレーションは自然に生じるが、ゼロから来るのではない。全力を尽くした後に緩んだ脳にだけ訪れる。研究によれば、天才もたいてい自分の専門領域で突出しているにすぎず、その閃きや神がかり的な筆は、無数の刻苦の努力の後の自然な贈り物にすぎない。金持ちになりたいのに、そのために毎日考える時間が十分もないなら、どうして空から餡餅が落ちてこようか。強く念じ続けた後の反響は確率事象だが、その確率は高められる。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;主要参考図書：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;以下は本文で参照した書目である（リンク先はいずれも中国語版のページ）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://book.douban.com/subject/28551589/"
rel="noopener noreferrer" target="_blank" class="external"&gt;有效学习&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://book.douban.com/subject/27081766/"
rel="noopener noreferrer" target="_blank" class="external"&gt;如何学习&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://book.douban.com/subject/33424179/"
rel="noopener noreferrer" target="_blank" class="external"&gt;所谓学习好，就是方法好&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://book.douban.com/subject/30353486/"
rel="noopener noreferrer" target="_blank" class="external"&gt;认知天性 : 让学习轻而易举的心理学规律&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://book.douban.com/subject/26952718/"
rel="noopener noreferrer" target="_blank" class="external"&gt;好好学习 : 个人知识管理精进指南&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://book.douban.com/subject/30206813/"
rel="noopener noreferrer" target="_blank" class="external"&gt;科学学习 : 斯坦福黄金学习法则&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://book.douban.com/subject/27047949/"
rel="noopener noreferrer" target="_blank" class="external"&gt;学习的艺术&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://book.douban.com/subject/26895988/"
rel="noopener noreferrer" target="_blank" class="external"&gt;学习之道&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://book.douban.com/subject/25783654/"
rel="noopener noreferrer" target="_blank" class="external"&gt;如何高效学习 : 1年完成麻省理工4年33门课程的整体性学习法&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;</description><content:encoded><![CDATA[<p><strong>0 なぜ問答集を書くのか</strong></p>
<p>最近、学習科学に関する本や資料を集中的に読んだ。自分の感じたことと考えを初歩的に整理したいが、骨組みのしっかりした文章にすると一冊分の容量が必要になるかもしれない。自分にはまだ遠く及ばない。この領域の研究は初歩的に五年計画で、この文章を良いスタートとしよう。</p>
<p><strong>1 なぜ学習という話題に関心を持つのか</strong></p>
<p>私的な理由は二つある。一つは、自分が人工知能などの複雑な技術を学ぶときに多くの困難に遭ったこと。二つは、自分の子どもに身をもって示す経験を与えたいこと。もっと大きな視点から見れば、人間の学習の仕組みは現在の機械学習よりはるかに複雑だ。脳科学、認知科学、心理学などの発展に基づいて、学習科学はいくつかの成果を上げたが、より多くは未知であり、しかもこれらの限られた成果も有効に普及していない。医学と同じで、学習における個人の体験は重要だ。だから習俗や民間療法は、科学の結論よりもしばしば生命力を持つ。プログラマーは学習の重要性を最も感じやすい職業の一つだ。新しい技術が次々と現れ、その一行一行のコードの背後には、おそらく反復作業をする誰かの代替がある。インターネットが情報の格差をますます平らにした後、富豪ランキングに成績優秀者がますます多く現れるのを我々は見る。これは認知の優位が情報の優位を取って代わったことの一つの写しだ。高得点を取る、大金を稼ぐという功利的目的であれ、真理を追う喜びであれ、学習は必須の修行だ。</p>
<p><strong>2 学習は学生だけのものか</strong></p>
<p>読書と学習を、学校で教育を受けること、高得点を取って卒業証書を得ることと同一視するのは、学習への最大の誤解だ。「愚かな」人工知能を実装したことがあれば、どの子どもも学習の天才だと分かる。しかし制度化された教育の落ちこぼれは、学習の初心と情熱を消しやすい。制度化された教育の成功者も、社会で失敗し、「読書無用論」の典型にされることがある。多くの人の進歩は勤め始めの数年で止まる。最後の大規模な学習は、仕事に適応するために強いられたものだけだ。彼らが親になると、自分の知識水準はもう停滞しているのに、わが子の成績優秀を望み、教育訓練機関の「月給五万でも子ども一人育てられない」というステマ記事の中で不安になる。しかし学習は本質的に、人として生まれた以上のある種の本能にすぎず、一般に言う読書は、学習の道筋の一つにすぎない。孔子は言った、三人行けば必ず我が師あり。孔子はまた言った、学びて時にこれを習う、また説ばしからずや。私が彼よりうまく言えるはずがない。</p>
<p><strong>3 学習に関する観念のうち、最も最も重要な一点は何か</strong></p>
<p>最も重要なのは、知能と能力に対する「全体理論」を捨て、「漸進理論」を受け入れることだ。簡単に言えば、知能と能力は生まれつきで変えられないと信じるのではなく、学習によって高められると信じることだ。天才と凡庸、高IQと低IQ、賢いと愚か、という二分法は、人の進歩への最大の害悪だ。人間に生来の差異があることは否定しないが、常人の努力の程度では、たいてい才能と比べる段階にすらない。すべての人の能力が一本のスペクトルをなすなら、誰もが自分の位置を持つ。それは二分でもなく、固定でもない。誰もが自分の能力の天井に突き当たる。天才的な科学者も例外ではない。彼らも一生かけて一つの問題が分からないことがある。もし生まれつき能力が劣っていて、それが変えられないと信じるなら、能力が上がるはずがない。逆に生まれつき能力が優れていて、それが変えられないと信じる人は、天井に突き当たり、困難と挫折に遭うと、自分のIQと能力を疑い、避けがたく失敗するか逃避する。これが「小聡明あれど大智慧なし」ということだ。異なる信念を一生持ち続けることは、天と地ほどの差になる。しかもこれは単なる信念ではない。脳科学はとうに、人の神経細胞がずっと新生しうることを証明している。</p>
<p><strong>4 努力が重要か、方法が重要か</strong></p>
<p>これは当然、偽の問題だ。答えはもちろん両方とも重要だ。しかしより深い問題は、どんな努力が正しい努力かということだ。伝統的な観念では、学習は厳粛なものとされ、正座して背筋を伸ばし、頭を梁に吊るし錐で腿を刺すのが正道とされた。成績が良いのにあまり努力しているように見えない者には、天資が良いと褒め、その天資を無駄にするな、もっと努力しろと励ます。逆に、努力しているように見えて成績は平凡な者には、その努力を惜しまず褒める。成績が悪く努力もしない落ちこぼれよりは、いつもましだ。学習素材を繰り返し読み、本に線を引き、きれいなノートを取ることは、科学的研究によって無効と証明されたよくある学習法だ。こうした方法に共通する特徴は、学習者にかなりの時間を使わせ、資料の上に留まる努力をさせることだ。どんなに明晰で美しいノートも、自分の頭に転化できなければ無用だ。役に立つ方法はすべて主体性の原則に基づく。学んでいるものを本当に理解しようとする努力には、少しの自己欺瞞もあってはならない。無知に打たれる感覚はつらい。独りよがりの努力に隠れるのは心地よい。しかし楽に学べる方法など、そもそも存在しない。</p>
<p><strong>5 なぜ試験が重要なのか</strong></p>
<p>最も一般的で最も有効な学習法の一つが試験だ。試験を学習成果を検証する道具とだけ見なし、点数を唯一の追求目標とし、点数至上主義に走るか、素質教育を大いに語って試験を避けるか——それが試験という道具への最大の誤解と浪費だ。第一に、試験は「もう覚えた」という幻覚を消す究極の武器だ。教材やノートを繰り返し読むと、必ずこの幻覚が生じる。第二に、試験は学習内容の想起を強制し、記憶と理解を定着させる絶好の方法だ。良い教師はさまざまな手段で学生を試す。事前テスト、授業中テスト、事後テスト。目的は学生を順位付けすることではなく、学生に自分の記憶を引き出させ、印象を深め、差を見つけさせることだ。正式な学習でなくても、たとえば専門と関係ない本を読むときも、試験の手段を十分に使える。最も簡単には、一章読み終えたら本を閉じ、自分にいくつか問いかける。いま読んだ素材は主に何を述べていたか。これらの見解に賛成か。自分の既存の知識や経験とどんなつながりが持てるか。賛成なら、実際の生活や仕事でどう使うか。</p>
<p><strong>6 読書と学習が重要なのに、なぜ本の虫がいるのか</strong></p>
<p>なぜ多くの道理を分かっていながら、それでもこの人生をうまく生きられないのか。道理の問題ではなく、自分の問題だ。読書と学習を麻雀のような娯楽と見なすなら、本の虫になるのも悪くない。しかし進歩を求めるなら、読書と学習は始まりにすぎず、終わりではない。本の虫は本棚に何冊あるか、読書の速さ、年間の読書冊数に熱を上げ、知識をひけらかすことに熱を上げ、中身のある知識をどれだけ得たかに熱を上げる。しかしどれだけの知識と観念が自分の頭に根を下ろしたか、それらが完全で自己整合的で進化し続ける体系をなしているか、どれだけの観念が実践に移されたかには関心を持たない。曾国藩は兵を率いて戦える書生で、毎日日記を書いて自己反省した。反省したのは、実践活動で自分の理念をどう貫くかということだ。紙の上で得たものは常に浅く、この事を究めんとすれば必ず躬行を要す。古人よりうまく言えるはずがない。孔子と曾国藩が毎日自己反省する必要があったのに、なぜ我々には不要なのか。</p>
<p><strong>7 練習すればするほど、よく学べるのか</strong></p>
<p>一万時間天才理論は広く流布した観念で、その背後にある「意図的練習」の理論も誤解の多い理論だ。努力は必ず報われるというのは心安らぐ話だが、有効な練習は単純な繰り返しでは済まない。科学研究も天才個人の経験も示すのは、有効な練習は極めて主体性の高い練習でなければならないということだ。まず退いて進むべく、十分に細かいモジュールに分け、モジュール別に、弱点に狙いを定めて練習する。次に、その練習も単純な繰り返しではいけない。変化に富み、互いに織り交ぜる必要がある。これらの研究成果は直観に反する。人は繰り返しの練習のほうがよく身につき、変化と織り交ぜの練習は効果が劣るとつい感じる。これは克服しがたい幻覚だ。本当に有効な練習は脳力を高度に消耗し、長時間続けることは不可能だ。</p>
<p><strong>8 なぜ本を読んでも覚えられず、理解できないのか</strong></p>
<p>最新の記憶理論は、記憶の検索は記憶の初回生成より重要だと考える。誰もが一度見たら忘れないことはできる。問題は、記憶の断片が脳内に散らばり、再組織化して検索できないことだ。唯一の方法は、それらの間に多くの結びつきを作ることだ。ちょうど、もともと遅れた村落が四方八方に通じるセメント道路を敷けば、もう遅れた村落ではなくなるように。体系化されていない知識には多くの小技がある。たとえば語呂合わせを作る。「大の月の覚え方、七の前は単、七の後は双」。体系化された知識で最も重要なのは自分の知識体系を築くことだ。すべての新知識は、既存の知識と経験になるべく多く結びつける。明らかに、これは簡単で気楽な過程ではない。多くの人に試験前の詰め込み復習の経験があり、時に悪くない成績を取る。しかしこれも幻覚だ。苦しい努力を経て自分の体系に取り込まれなかった知識は、やはり本に返される。</p>
<p><strong>9 少し睡眠を削って多く学ぶことはできないか</strong></p>
<p>成功者の神話の一つは、彼らは三、四時間しか眠らないということだ。しかし彼らは飛行機で寝不足を補え、オフィスにベッドを置ける。彼らは意思決定層として脳力活動の強度が低い。彼らは単に嘘をついているのかもしれない。もしあなたが高強度の脳力活動者なら、たとえば大学院生やコードを書くプログラマーなら、睡眠を犠牲にすることは、早く死ぬ可能性のほかに、学習効率を深刻に下げる。脳科学は、神経シナプスの形成には十分な睡眠の過程が必須だと示す。新しい神経シナプスを形成できない学習はすべて時間の浪費だ。現代人の生活習慣はますます夜更かしに傾き、子どももこの文化的変遷の影響を受ける。そして子どもが宿題の負担に押されて睡眠不足になるのは、脳科学への嘲笑だ。</p>
<p><strong>10 落ちこぼれはどう生まれるのか</strong></p>
<p>日本の映画『ビリギャル』では、主人公は大学受験を目指すが数学の基礎がひどく悪い。塾の先生の方法は小学の算数から教えることだった。これは誇張ではなく、実際のモデルがいる。制度化教育の欠陥は、大多数に向けた基準を定めざるを得ないことにある。8歳ではどの程度の言語を身につけるべきか、9歳ではどれだけの数学を知るべきか。そうすれば必ず落ちこぼれる者がいる。落ちこぼれた者はさまざまな負のレッテルを貼られやすい。12歳になってようやく心が成熟して数学に適したとしても、もうその機会はない。たいていそうした子どもは、自分が学習活動にもう何の参加感も持っていない。欧米にも子どもの具体的な状況に応じた異年齢混合の学習クラスがあるが、12歳の子どもが小学三年の数学を学ぶとなれば、親も子どもも面子が立たない。こうした場合、塾こそ最良の出口かもしれない。どの領域の知識も、まず遅く、次に速く、基礎を固める必要がある。学習は家を建てるようなものだ。万丈の高楼も平地から起つ。浮砂に高台を築くな。古人よりうまく言えるはずがない。</p>
<p><strong>11 なぜ強く念じ続ければ、必ず反響があるのか</strong></p>
<p>妊婦がお腹に子を宿しているとき、夫は街を歩いてより多くの妊婦に気づくようになる。ベンゼン環の構造を必死に考えていると、夜、自分の尻尾を噛む蛇の夢を見るかもしれない。一つの問題に全力で取り組んでいるとき、たとえ止まっても、頭の中にはバックグラウンドプロセスのようなものが残る。感覚はひとりでに関連情報を集め、夢はさまざまな案を試す。突破口やインスピレーションは自然に生じるが、ゼロから来るのではない。全力を尽くした後に緩んだ脳にだけ訪れる。研究によれば、天才もたいてい自分の専門領域で突出しているにすぎず、その閃きや神がかり的な筆は、無数の刻苦の努力の後の自然な贈り物にすぎない。金持ちになりたいのに、そのために毎日考える時間が十分もないなら、どうして空から餡餅が落ちてこようか。強く念じ続けた後の反響は確率事象だが、その確率は高められる。</p>
<p><strong>主要参考図書：</strong></p>
<p>以下は本文で参照した書目である（リンク先はいずれも中国語版のページ）。</p>
<ul>
<li><a href="https://book.douban.com/subject/28551589/"
   rel="noopener noreferrer" target="_blank" class="external">有效学习</a>
</li>
<li><a href="https://book.douban.com/subject/27081766/"
   rel="noopener noreferrer" target="_blank" class="external">如何学习</a>
</li>
<li><a href="https://book.douban.com/subject/33424179/"
   rel="noopener noreferrer" target="_blank" class="external">所谓学习好，就是方法好</a>
</li>
<li><a href="https://book.douban.com/subject/30353486/"
   rel="noopener noreferrer" target="_blank" class="external">认知天性 : 让学习轻而易举的心理学规律</a>
</li>
<li><a href="https://book.douban.com/subject/26952718/"
   rel="noopener noreferrer" target="_blank" class="external">好好学习 : 个人知识管理精进指南</a>
</li>
<li><a href="https://book.douban.com/subject/30206813/"
   rel="noopener noreferrer" target="_blank" class="external">科学学习 : 斯坦福黄金学习法则</a>
</li>
<li><a href="https://book.douban.com/subject/27047949/"
   rel="noopener noreferrer" target="_blank" class="external">学习的艺术</a>
</li>
<li><a href="https://book.douban.com/subject/26895988/"
   rel="noopener noreferrer" target="_blank" class="external">学习之道</a>
</li>
<li><a href="https://book.douban.com/subject/25783654/"
   rel="noopener noreferrer" target="_blank" class="external">如何高效学习 : 1年完成麻省理工4年33门课程的整体性学习法</a>
</li>
</ul>
]]></content:encoded><category>methodology</category><category domain="tags">学習</category><category domain="tags">FAQ</category></item><item><title>蛙とキャッシュ：実用的に簡略化した動的計画法</title><link>https://yifeitao.com/ja/frog-and-cache/</link><pubDate>Tue, 23 Apr 2019 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/frog-and-cache/</guid><description>&lt;h2 id="1-一匹の蛙から"&gt;1. 一匹の蛙から&lt;/h2&gt;
&lt;p&gt;&lt;img src="https://i.imgur.com/zuhczaLm.jpg" alt=" " loading="lazy" decoding="async" referrerpolicy="no-referrer" /&gt;
&lt;/p&gt;
&lt;p&gt;ある蛙が、&lt;code&gt;n&lt;/code&gt;段の階段を跳び下りて池に入ろうとしている。1回で1段あるいは2段だけ跳べるとすると、池に降りる跳び方は全部で何通りあるだろうか（たとえば&lt;code&gt;n=30&lt;/code&gt;のとき）。&lt;/p&gt;
&lt;p&gt;数学の言葉で言えば、蛙の跳び方の関数&lt;code&gt;f(n)&lt;/code&gt;を求めることになる。非負整数を引数にとる関数なので、小さい場合から考えればよく、&lt;code&gt;f(1)=1, f(2)=2&lt;/code&gt;はすぐに導ける。問題は、その先の虜挙がどんどん面倒になることである。&lt;/p&gt;
&lt;p&gt;自分がその蛙だと考えてみよう。&lt;code&gt;n&lt;/code&gt;段の階段を前にして、1回目に1段跳べば残りは&lt;code&gt;n-1&lt;/code&gt;段で、&lt;code&gt;f(n-1)&lt;/code&gt;通りの跳び方がある。1回目に2段跳ぶこともでき、その場合は残りが&lt;code&gt;n-2&lt;/code&gt;段で&lt;code&gt;f(n-2)&lt;/code&gt;通りである。したがってこの問題の答えは見慣れたあれ、不思議なフィボナッチ数列になる：&lt;/p&gt;
&lt;p&gt;$$
\begin{aligned} F_{0} &amp;amp;=0 \ F_{1} &amp;amp;=1 \ F_{n} &amp;amp;=F_{n-1}+F_{n-2} \quad(\mathrm{n} \geq 2) \end{aligned}
$$&lt;/p&gt;
&lt;p&gt;この種の関数値の問題を解く第一歩は、漸化式を見つけることである。その漸化式をpythonのコードに翻訳する：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;def&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;fib&lt;/span&gt;(n):
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; n&lt;span style="color:#f92672"&gt;==&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; n&lt;span style="color:#f92672"&gt;==&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; fib(n&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;)&lt;span style="color:#f92672"&gt;+&lt;/span&gt;fib(n&lt;span style="color:#f92672"&gt;-&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;2&lt;/span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;%%time
fib(30)
Wall time: 269 ms
832040&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;実行時間は&lt;code&gt;284ms&lt;/code&gt;で、かなり遅い。なぜ遅いのか。同じ計算の繰り返しがあまりに多いからである。&lt;code&gt;f(5)&lt;/code&gt;の計算を例にとると、呼び出し関係は次のようになる：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;f(5)==&amp;gt;f(4), f(3)
f(4)==&amp;gt;f(3), f(2), f(3)==&amp;gt;f(2), f(1)
f(3)==&amp;gt;f(2), f(1), f(2)==&amp;gt;f(1), f(0), f(2)==&amp;gt;f(1), f(0), f(1)
f(2)==&amp;gt;f(1), f(0), f(1), f(1), f(0), f(1), f(0), f(1)
f(1), f(0), f(1), f(1), f(0), f(1), f(0), f(1)&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;そこで自然な発想は、中間の計算結果をすべてキャッシュしておくことである。幸いなことに、pythonにはこの「電池」が標準で備わっている。&lt;/p&gt;</description><content:encoded><![CDATA[<h2 id="1-一匹の蛙から">1. 一匹の蛙から</h2>
<p><img src="https://i.imgur.com/zuhczaLm.jpg" alt=" " loading="lazy" decoding="async" referrerpolicy="no-referrer" />
</p>
<p>ある蛙が、<code>n</code>段の階段を跳び下りて池に入ろうとしている。1回で1段あるいは2段だけ跳べるとすると、池に降りる跳び方は全部で何通りあるだろうか（たとえば<code>n=30</code>のとき）。</p>
<p>数学の言葉で言えば、蛙の跳び方の関数<code>f(n)</code>を求めることになる。非負整数を引数にとる関数なので、小さい場合から考えればよく、<code>f(1)=1, f(2)=2</code>はすぐに導ける。問題は、その先の虜挙がどんどん面倒になることである。</p>
<p>自分がその蛙だと考えてみよう。<code>n</code>段の階段を前にして、1回目に1段跳べば残りは<code>n-1</code>段で、<code>f(n-1)</code>通りの跳び方がある。1回目に2段跳ぶこともでき、その場合は残りが<code>n-2</code>段で<code>f(n-2)</code>通りである。したがってこの問題の答えは見慣れたあれ、不思議なフィボナッチ数列になる：</p>
<p>$$
\begin{aligned} F_{0} &amp;=0 \ F_{1} &amp;=1 \ F_{n} &amp;=F_{n-1}+F_{n-2} \quad(\mathrm{n} \geq 2) \end{aligned}
$$</p>
<p>この種の関数値の問題を解く第一歩は、漸化式を見つけることである。その漸化式をpythonのコードに翻訳する：</p>


<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">def</span> <span style="color:#a6e22e">fib</span>(n):
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> n<span style="color:#f92672">==</span><span style="color:#ae81ff">0</span>:
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> n<span style="color:#f92672">==</span><span style="color:#ae81ff">1</span>:
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> fib(n<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>)<span style="color:#f92672">+</span>fib(n<span style="color:#f92672">-</span><span style="color:#ae81ff">2</span>)</span></span></code></pre></div>


<pre tabindex="0"><code>%%time
fib(30)

Wall time: 269 ms
832040</code></pre>
<p>実行時間は<code>284ms</code>で、かなり遅い。なぜ遅いのか。同じ計算の繰り返しがあまりに多いからである。<code>f(5)</code>の計算を例にとると、呼び出し関係は次のようになる：</p>


<pre tabindex="0"><code>f(5)==&gt;f(4), f(3)
f(4)==&gt;f(3), f(2), f(3)==&gt;f(2), f(1)
f(3)==&gt;f(2), f(1), f(2)==&gt;f(1), f(0), f(2)==&gt;f(1), f(0), f(1)
f(2)==&gt;f(1), f(0), f(1), f(1), f(0), f(1), f(0), f(1)
f(1), f(0), f(1), f(1), f(0), f(1), f(0), f(1)</code></pre>
<p>そこで自然な発想は、中間の計算結果をすべてキャッシュしておくことである。幸いなことに、pythonにはこの「電池」が標準で備わっている。</p>


<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">from</span> functools <span style="color:#f92672">import</span> lru_cache
</span></span><span style="display:flex;"><span><span style="color:#a6e22e">@lru_cache</span>()
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">def</span> <span style="color:#a6e22e">fib</span>(n):
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> n<span style="color:#f92672">==</span><span style="color:#ae81ff">0</span>:
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> n<span style="color:#f92672">==</span><span style="color:#ae81ff">1</span>:
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> fib(n<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>)<span style="color:#f92672">+</span>fib(n<span style="color:#f92672">-</span><span style="color:#ae81ff">2</span>)</span></span></code></pre></div>


<pre tabindex="0"><code>%%time
fib(30)
Wall time: 0 ns
832040</code></pre>
<p>速すぎて時間が計測できなかった。pythonにおける<code>lru_cache</code>の基本原理は辞書を構築することで、辞書の<code>key</code>が呼び出しの引数、<code>value</code>がその引数に対する計算結果である。おおよそ次のコードと等価である：</p>


<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">def</span> <span style="color:#a6e22e">fib</span>(n):
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> n <span style="color:#f92672">in</span> fib<span style="color:#f92672">.</span>cache:
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> fib<span style="color:#f92672">.</span>cache[n]
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">if</span> n<span style="color:#f92672">==</span><span style="color:#ae81ff">0</span>:
</span></span><span style="display:flex;"><span>        ans <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">elif</span> n<span style="color:#f92672">==</span><span style="color:#ae81ff">1</span>:
</span></span><span style="display:flex;"><span>        ans <span style="color:#f92672">=</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">elif</span>:
</span></span><span style="display:flex;"><span>        ans <span style="color:#f92672">=</span> fib(n<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>)<span style="color:#f92672">+</span>fib(n<span style="color:#f92672">-</span><span style="color:#ae81ff">2</span>)
</span></span><span style="display:flex;"><span>    fib<span style="color:#f92672">.</span>cache[n] <span style="color:#f92672">=</span> ans
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> ans
</span></span><span style="display:flex;"><span>fib<span style="color:#f92672">.</span>cache <span style="color:#f92672">=</span> {}</span></span></code></pre></div>
<p>もちろん、この問題に限れば、より細かいキャッシュの方法を使うこともできるし、再帰をやめてループに書き換えることもできる（キャッシュを2つだけ保持するのに等しく、空間の使用量を大幅に減らせる。ただし、さまざまな<code>n</code>の値を繰り返し計算するのであれば、むしろ前の方法のほうが適しているかもしれない）：</p>


<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#66d9ef">def</span> <span style="color:#a6e22e">fib</span>(n):
</span></span><span style="display:flex;"><span>    a, b <span style="color:#f92672">=</span> <span style="color:#ae81ff">0</span>, <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">for</span> i <span style="color:#f92672">in</span> range(n):
</span></span><span style="display:flex;"><span>        a, b <span style="color:#f92672">=</span> b, a<span style="color:#f92672">+</span>b
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">return</span> a</span></span></code></pre></div>
<p>この問題は <a href="https://leetcode-cn.com/problems/climbing-stairs"
   rel="noopener noreferrer" target="_blank" class="external">leetcode 70</a>
 と等しい。leetcode上でのpython3の解答は次のとおりである：</p>


<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">from</span> functools <span style="color:#f92672">import</span> lru_cache
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">Solution</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">@lru_cache</span>()
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">def</span> <span style="color:#a6e22e">climbStairs</span>(self, n: int) <span style="color:#f92672">-&gt;</span> int:
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">if</span> n<span style="color:#f92672">==</span><span style="color:#ae81ff">0</span>:
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">if</span> n<span style="color:#f92672">==</span><span style="color:#ae81ff">1</span>:
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> self<span style="color:#f92672">.</span>climbStairs(n<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>)<span style="color:#f92672">+</span>self<span style="color:#f92672">.</span>climbStairs(n<span style="color:#f92672">-</span><span style="color:#ae81ff">2</span>)</span></span></code></pre></div>
<p>実行時間52 ms、メモリ消費13.2MB。</p>
<h2 id="2-実用的に簡略化した動的計画法">2. 実用的に簡略化した動的計画法</h2>
<p>この蛙から比較的汎用な示唆を取り出し、漸化式を構成できる同種の問題を解こう：</p>
<ol>
<li>漸化式を見つけて再帰関数を立て、問題を複数の部分問題の求解へ帰着させる。</li>
<li>同じ部分問題を繰り返し計算しないよう、キャッシュを用い、空間と引き換えに時間を得る。</li>
</ol>
<p>一般のアルゴリズム教科書や面接問題の解説では、このキャッシュ構造の設計にかなりの時間を割いている。実際のエンジニアリングの問題では、キャッシュ空間を多少多く使うことにそれほど敏感でないことも多く、したがって再帰関数を書き、汎用的なキャッシュの仕組みを加えるだけでほぼ解決する。キャッシュ空間が問題になって初めて、問題に適したより小さなキャッシュを検討すればよい。</p>
<p>この方法を検証するため、さらにいくつかの問題を見てみよう。leetcodeから直接いくつか拾って解く。</p>
<h3 id="21-最大部分配列和">2.1 <a href="https://leetcode-cn.com/problems/maximum-subarray/"
   rel="noopener noreferrer" target="_blank" class="external">最大部分配列和</a>
</h3>
<p>整数配列<code>nums</code>が与えられたとき、和が最大となる連続部分配列（少なくとも1つの要素を含む）を見つけ、その最大和を返す。</p>
<p><strong>例:</strong></p>
<blockquote>
<p>入力: [-2,1,-3,4,-1,2,1,-5,4],
出力: 6
説明: 連続部分配列 [4,-1,2,1] の和が最大で、6 である。</p>
</blockquote>
<p>配列の各位置で終わる部分配列について得られる最大和の漸化式を考える。
$$
\begin{aligned}  f(0)&amp;=nums(0) \ f(k)&amp;=max(f(k-1), 0)+nums(k) \quad(k&gt;0) \end{aligned}
$$
これに基づけば、最終的な結果が次となることは容易に分かる。
$$
ans = max_{i=0}^n(f(i))
$$
leetcode上でpython3のコードに翻訳すると次のとおりである：</p>


<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">from</span> functools <span style="color:#f92672">import</span> lru_cache
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">Solution</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">def</span> <span style="color:#a6e22e">maxSubArray</span>(self, nums: List[int]) <span style="color:#f92672">-&gt;</span> int:
</span></span><span style="display:flex;"><span>        self<span style="color:#f92672">.</span>nums <span style="color:#f92672">=</span> nums
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> max(self<span style="color:#f92672">.</span>f(i) <span style="color:#66d9ef">for</span> i <span style="color:#f92672">in</span> range(len(nums)))
</span></span><span style="display:flex;"><span>    
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">@lru_cache</span>()
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">def</span> <span style="color:#a6e22e">f</span>(self, k):
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">if</span> k <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>:
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">return</span> self<span style="color:#f92672">.</span>nums[<span style="color:#ae81ff">0</span>]
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">else</span>:
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">return</span> max(self<span style="color:#f92672">.</span>f(k<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>), <span style="color:#ae81ff">0</span>) <span style="color:#f92672">+</span> self<span style="color:#f92672">.</span>nums[k]</span></span></code></pre></div>
<p>実行時間76 ms、メモリ消費13.7 MB。</p>
<h3 id="22-最小経路和">2.2 <a href="https://leetcode-cn.com/problems/minimum-path-sum/"
   rel="noopener noreferrer" target="_blank" class="external">最小経路和</a>
</h3>
<p>非負整数を含む <em>m</em> x <em>n</em> のグリッドが与えられたとき、左上から右下への経路であって、経路上の数値の総和が最小となるものを見つけよ。</p>
<p><strong>例:</strong></p>
<blockquote>
<p>入力:
[
[1,3,1],
[1,5,1],
[4,2,1]
]
出力: 7
説明: 経路 1→3→1→1→1 の総和が最小だからである。</p>
</blockquote>
<p>行列の各位置を右下角としたときの最小経路和を求めると、次の漸化式が容易に得られる：</p>
<p>$$
\begin{align}
f(0, 0) &amp;= grid(0, 0) \\
f(x, 0) &amp;= f(x-1, 0) + grid(x, 0) \quad(x&gt;0) \\
f(0, y) &amp;= f(0, y-1) + grid(0, y) \quad(y&gt;0) \\
f(x, y) &amp;= \min(f(x-1, y), f(x, y-1)) + grid(x, y) \quad(x&gt;0, y&gt;0)
\end{align}
$$</p>
<p>leetcode上でpython3のコードに翻訳すると次のとおりである：</p>


<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#f92672">from</span> functools <span style="color:#f92672">import</span> lru_cache
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">class</span> <span style="color:#a6e22e">Solution</span>:
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">def</span> <span style="color:#a6e22e">minPathSum</span>(self, grid: List[List[int]]) <span style="color:#f92672">-&gt;</span> int:
</span></span><span style="display:flex;"><span>        self<span style="color:#f92672">.</span>grid <span style="color:#f92672">=</span> grid
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">return</span> self<span style="color:#f92672">.</span>f(len(grid)<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>, len(grid[<span style="color:#ae81ff">0</span>])<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>)
</span></span><span style="display:flex;"><span>    <span style="color:#a6e22e">@lru_cache</span>()
</span></span><span style="display:flex;"><span>    <span style="color:#66d9ef">def</span> <span style="color:#a6e22e">f</span>(self, x, y):
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">if</span> x <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> <span style="color:#f92672">and</span> y <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>:
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">return</span> self<span style="color:#f92672">.</span>grid[<span style="color:#ae81ff">0</span>][<span style="color:#ae81ff">0</span>]
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">elif</span> y <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>:
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">return</span> self<span style="color:#f92672">.</span>f(x<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>, <span style="color:#ae81ff">0</span>) <span style="color:#f92672">+</span> self<span style="color:#f92672">.</span>grid[x][<span style="color:#ae81ff">0</span>]
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">elif</span> x <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span>:
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">return</span> self<span style="color:#f92672">.</span>f(<span style="color:#ae81ff">0</span>, y<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>) <span style="color:#f92672">+</span> self<span style="color:#f92672">.</span>grid[<span style="color:#ae81ff">0</span>][y]
</span></span><span style="display:flex;"><span>        <span style="color:#66d9ef">else</span>:
</span></span><span style="display:flex;"><span>            <span style="color:#66d9ef">return</span> min(self<span style="color:#f92672">.</span>f(x<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>,y), self<span style="color:#f92672">.</span>f(x,y<span style="color:#f92672">-</span><span style="color:#ae81ff">1</span>)) <span style="color:#f92672">+</span> self<span style="color:#f92672">.</span>grid[x][y]</span></span></code></pre></div>
<p>実行時間1052ms、メモリ消費13.9M。</p>
]]></content:encoded><category>coding</category><category domain="tags">アルゴリズム</category><category domain="tags">動的計画法</category></item><item><title>二値分類問題のスコア値と損失関数</title><link>https://yifeitao.com/ja/score-and-loss-function-of-binary-classification/</link><pubDate>Wed, 21 Feb 2018 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/score-and-loss-function-of-binary-classification/</guid><description>&lt;p&gt;二値分類問題は教師あり学習における最も基本的な問題の一つである。本稿は、スコア値と損失関数の観点から、二値分類問題を解く数多くの機械学習アルゴリズムを整理することを目的とする。各アルゴリズムの詳細については、関連する教科書&lt;sup id="fnref:1"&gt;&lt;a href="#fn:1" class="footnote-ref" role="doc-noteref"&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;sup id="fnref:2"&gt;&lt;a href="#fn:2" class="footnote-ref" role="doc-noteref"&gt;2&lt;/a&gt;&lt;/sup&gt;を参照されたい。&lt;/p&gt;
&lt;p&gt;&lt;img src="loss.png" alt=" " loading="lazy" decoding="async" referrerpolicy="no-referrer" width="528" height="370" /&gt;
&lt;/p&gt;</description><content:encoded><![CDATA[<p>二値分類問題は教師あり学習における最も基本的な問題の一つである。本稿は、スコア値と損失関数の観点から、二値分類問題を解く数多くの機械学習アルゴリズムを整理することを目的とする。各アルゴリズムの詳細については、関連する教科書<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup><sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>を参照されたい。</p>
<p><img src="loss.png" alt=" " loading="lazy" decoding="async" referrerpolicy="no-referrer" width="528" height="370" />
</p>
<p>データ集合$D={(\mathbf x_1, y_1), (\mathbf x_2, y_2), &hellip;, (\mathbf x_m, y_m)}$ が与えられ、ここで$y_i\in {-1, 1} $、$\mathbf x_i=(x_{i1}, x_{i2}, &hellip;x_{id})$はd次元ベクトルである。なお、資料によっては二値分類に${0, 1}$を用いることを好むが、二値分類をどの数値で表すかに原理上の違いはなく、数学的な表現に若干の差異が生じるだけである。</p>
<p>スコア値は機械学習アルゴリズムにおける正式な用語ではないが、次のような見方を導入してよいだろう。サンプル$\mathbf x$についてのスコア関数$s(\mathbf x)$を構成したい。その基本的性質は単純で、目標値$y$と同符号であること、すなわち正サンプルのスコアは正の数、負サンプルのスコアは負の数であることを要求する。そうすれば最終的な二値分類関数は$sign(s(\mathbf x))$となる。</p>
<p>では、スコア関数をどのように構成すればよいか。直感的な考え方は、サンプルの$d$個の属性を重み付きで総和することであり、これによって各属性のスコアにおける重要度を反映できる。こうして構成したスコアが0のところで識別の働きをもつとは限らないため、さらにバイアス項を加える。したがってスコア関数は$s(\mathbf x)=w^T\mathbf x+b$となり、この基本的なスコア関数から多くのアルゴリズムが派生する。</p>
<p>二値分類問題を評価する基本尺度は分類誤り率である。各サンプルについて損失関数を計算するなら、分類が正しければ損失0、誤っていれば損失1となる。この種の損失関数は一般に0-1損失関数と呼ばれ、$l_{0-1}=\mathbb{I}[sign(s(\mathbf x))\neq y]$と書ける。</p>
<p>正負のサンプルを統一的に扱うために$z=s(\mathbf x)*y$ とおくと、分類が正しいとき$z$は必ず正の値となる。これを絶対スコア値と呼ぶことにしよう。$z$は分類が正しいかどうかの尺度である。このとき$l_{0-1}=\mathbb{I}[sign(z)= -1]$であるから、$l_{0-1}$は$z$に関する区分関数となる。最適化理論の観点から見ると、この関数は勾配も<a href="https://zh.wikipedia.org/wiki/%E6%AC%A1%E5%AF%BC%E6%95%B0"
   rel="noopener noreferrer" target="_blank" class="external">劣勾配</a>
も求められないため、その近似を見つけて最適化する必要がある。近似$\widetilde l$の基本要件は、常に非負の値であること、そしてそれが小さいとき$l_{0-1}$も小さいことである。</p>
<p>スコア値は属性$X$の線形結合であり、別の角度から見れば、スコア値は重み$w$についての線形結合でもある。一般には$X$を新しい特徴空間へ変換して$\phi (\mathbf x)$を得る。するとスコア値は$z=(w^T\mathbf \phi (\mathbf x)+b)y$となる。以上の分析はほぼそのまま成り立ち、モデルの複雑さが増すだけである。以下の分析は特に断らない限り元の空間で行う。</p>
<h2 id="1-線形回帰">1 線形回帰</h2>
<p>スコア値が目標値と同符号であることを要求するが、目標をもう少し狭く設定して、スコア値を直接${-1, 1}$としてもよい。これが線形回帰問題であり、損失関数には誤差の二乗を用いる（直感的に理解することもできるし、サンプルの誤差が正規分布に従うと考えて最尤の観点から導くこともできるが、本稿の主題ではない）。$l_{sqr}=(s(\mathbf x)-y)^2=(s(\mathbf x) * y-y^2)^2=(z-1)^2$に注意すれば、誤差関数は絶対スコア値$z$に関する二次関数である。図から分かるように、$l_{sqr}$は常に$l_{0-1}$より大きく、しかも$l_{sqr}$が小さいとき$l_{0-1}$も小さいので、$l_{0-1}$の近似として用いることができる。</p>
<p>線形回帰には閉形式解$w=(X^TX)^{-1}X^Ty$があるため、線形回帰で二値分類を行うのは非常に簡単である。しかし効果は一般にあまりよくない。なぜか。$l_{sqr}$の曲線から分かるように、絶対スコア値が大きいとき$l_{0-1}$は0であるべきであり、直感的には絶対スコア値が大きいことは識別度が高いという良いことなのに、$l_{sqr}$はかえってより大きな罰を与える。これは不合理である。線形回帰はそれなりの$w$を与えることができ、他のアルゴリズムの初期値として利用できる。</p>
<h2 id="2-パーセプトロン学習">2 パーセプトロン学習</h2>
<p>パーセプトロン学習は次のような直感的な考え方で理解できる。絶対スコア値について、それが正の数であれば分類は正しく、誤差は0とみなす。負の数であれば、0から遠いほど誤差が大きいとみなし、すなわち$l_p=max(0, -z)$とする。$l_p$の曲線から見ても、これも$l_{0-1}$の近似である。区分関数ではあるが劣勾配は求められ、$z\geqslant 0$のとき勾配を0とみなし、$z&lt;0$のとき$\frac{dl_p}{dw}=\frac {dl_p}{dz}\frac{dz}{dw}=-1*y\mathbf x=-y\mathbf x$となる。確率的勾配降下法を用いれば$w\leftarrow w+\eta y\mathbf x$、つまりスコアを誤ったときにのみ最適化を行う。これがまさにパーセプトロン学習アルゴリズムの行っていることである。</p>
<h2 id="3-サポートベクターマシン">3 サポートベクターマシン</h2>
<p>パーセプトロン学習の誤差関数はさらに改良できる。絶対スコア値が十分に大きければ、そのサンプルを正サンプルとみなすことにいっそう安心できる。$z$は$w,b$についてスケール可能であることを考慮し、十分に大きいとは1より大きいことと定義してよい。そこで$l_{hinge}=max(0, 1-z)$が得られ、この損失関数はヒンジ損失関数と呼ばれる。構造リスクを考慮すると、最適化目標は次となる。</p>
<p>$$
\underset{w,b}{min}=\frac{1}{2}\left |w  \right |^2+C\sum_{i=1}^{m}max(0, 1-z)
$$</p>
<p>スラック変数を用いることでソフトマージンのサポートベクターマシンになり、二次計画問題として解いてモデルを求めることができる。</p>
<p>スコア値の観点から理解すると、スコア値が十分に大きいことで、モデルは新しいサンプルに対して良好な頑健性をもつ。これがまさにサポートベクターマシンの優れている点である。特徴空間を導入すると、サポートベクターマシンの求解過程では内積を大量に計算する必要があるが、特徴空間の内積を元の空間のカーネル関数に簡約することでカーネル法を導入できる。</p>
<h2 id="4-ロジスティック回帰">4 ロジスティック回帰</h2>
<p>$z$の値をもとに、分類が正しい確率、すなわちその程度を測る確率を算出したい。つまり$z$の値域を$(-\infty , +\infty )$から$(0,1)$へ写像する。そのためにはsigmoid関数が良い選択であり、勾配が求められ、しかも0のところで確率がちょうど0.5になる。すなわち</p>
<p>$$
sigmoid(z)=\frac {1}{1+exp(-z)}
$$</p>
<p>次に、このsigmoid関数に基づいて損失関数$l_{0-1}(z)$を模擬する。損失関数は$z$について減少し、しかも常に正の数であることを要求する。確率の対数をとってから符号を反転することを考えれば、次のようになる。</p>
<p>$$
l_{log}(z)=-log(sigmoid(z))=log(1+exp(-z))
$$</p>
<p>図から分かるように、これも$l_{0-1}(z)$の一種の近似である。対数損失関数を最適化目標とすると、</p>
<p>$$
\underset{w,b}{min}=\sum_{i=1}^{m}log(1+exp(-z))+ \lambda\left |w  \right |^2
$$</p>
<p>これは正則化付きのロジスティック回帰であり、$l_{log}(z)$は至る所で微分可能であるため、勾配降下法などの最適化手法で解くことができる。</p>
<h2 id="5-adaboost">5 AdaBoost</h2>
<p>指数関数も同様に$l_{0-1}$を近似する基本条件を満たす。すなわち損失関数を$l_{exp}(z)=exp(-z)$と定義する。</p>
<p>指数損失関数と加法モデルを組み合わせることで、AdaBoostアルゴリズムを導出できる。</p>
<p>加法モデルとは次のように理解できる。得られた特徴空間におけるd次元ベクトル$\phi(\mathbf x)$がd個の弱分類器に対応すると仮定する。弱分類器とは、ランダムに推測する50%の正解率より少しだけ高い分類器のことである。Boost法とは、これらの弱分類器を有効に組み合わせて強分類器を構築する方法である。加法モデルは本質的に依然として線形モデルであり、スコア関数はやはり$s(\mathbf x)=w^T\mathbf \phi (\mathbf x)$となる。（弱分類器自体がバイアスをもちうることを考慮し、$b=0$とする。）ただしここでの$\phi(\mathbf x)$は単純な属性変換ではなく、1つの弱分類器を表す（本質的に見れば、これも一種の属性変換である）。</p>
<p>AdaBoostは段階的に反復する過程である。$m-1$回の反復を経てすでにスコア関数$s_{m-1}(\mathbf x)=\sum_{i=1}^{m-1}w_i\phi_i(\mathbf x)$が得られていると仮定し、第$m$回の反復後に$w_m, \phi_m(\mathbf x), s_m(\mathbf X)$が得られるとすると、$s_m(\mathbf X)=s_{m-1}(\mathbf X)+w_m\phi_m(\mathbf x)$となる。AdaBoostの最適化目標は、各段階で得られるスコア関数を指数損失関数について最小化することであり、すなわち</p>
<p>$$
w_m, \phi_m = arg\underset{w,\phi}{min}\sum_{i=1}^Nexp(-z_{mi})  \quad z_{mi}=y_is_m(\mathbf X_i)
$$</p>
<p>この式のさらなる導出についてはここでは詳述しない。</p>
<h2 id="まとめ">まとめ</h2>
<p>以上、6種類の損失関数を紹介した。いずれもスコア値に関する単調非増加関数であり、うち後半の5種類は0-1損失関数の近似的な代替である。代替関数を解くことで元の問題の解が得られるかどうかについては深い研究があり、代替損失の「一致性」問題と呼ばれる<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>。</p>
<p>さらに、すべてのサンプルの中から正例を見つけて順序付けしたい場合、スコア値は最適化に参加する時点で順序付けの性質を備えている必要がある。対数損失と指数損失は単調減少であり、これらを最適化目標とするモデルが算出するスコア値は順位付けに参加できる。他のいくつかの損失関数は単調減少ではないため、対応するスコア値は順位付けに適さない。</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>統計的学習方法 李航&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>機械学習 周志华&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p><a href="https://projecteuclid.org/download/pdf_1/euclid.aos/1079120130"
   rel="noopener noreferrer" target="_blank" class="external">https://projecteuclid.org/download/pdf_1/euclid.aos/1079120130</a>
&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>]]></content:encoded><category>coding</category><category domain="tags">機械学習</category><category domain="tags">分類</category></item><item><title>ビットコインFAQ</title><link>https://yifeitao.com/ja/bitcoin-faq/</link><pubDate>Thu, 10 Aug 2017 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/bitcoin-faq/</guid><description>&lt;p&gt;このビットコインFAQは、FAQの形式でビットコインを簡単に紹介することを試みる。主に&lt;a href="https://bitcoin.org/bitcoin.pdf"
rel="noopener noreferrer" target="_blank" class="external"&gt;ビットコイン白書&lt;/a&gt;
とプリンストン大学の教科書&lt;a href="https://u.jd.com/C2NMOf"
rel="noopener noreferrer" target="_blank" class="external"&gt;『ブロックチェーン：技術が金融を駆動する』&lt;/a&gt;
を参考にした。もちろん個人的な理解も多く含まれるので、議論は歓迎する。&lt;/p&gt;
&lt;p&gt;【2017-08-10 初稿 / 2020-05-01 小幅更新】&lt;/p&gt;
&lt;h2 id="1-ビットコインとは何か"&gt;1. ビットコインとは何か？&lt;/h2&gt;
&lt;p&gt;ビットコインはデジタル通貨である。特定の中央機関が発行するのではなく、インターネットに依存し、暗号学と分散コンピューティングの理論に基づいて発行される。誰もが参加できる。総量は有限であり、デジタル世界の黄金のようなものだと考えればよい。&lt;/p&gt;
&lt;h2 id="2-ビットコインは何の役に立つのか"&gt;2. ビットコインは何の役に立つのか？&lt;/h2&gt;
&lt;p&gt;現時点でビットコインで買える最も重要なものは各国の通貨である。ビットコインはデジタル通貨として、法定通貨の一部を代替することを当初の設計意図としており、理論上は貨幣にできることは何でもできる。しかし現状、ビットコインでの直接的な買い物はまだ非常に初期の実験段階にあり、対応する店舗は少数だ。最も有名なのは&lt;a href="https://support.microsoft.com/zh-cn/help/13942/microsoft-account-how-to-use-bitcoin-to-add-money-to-your-account"
rel="noopener noreferrer" target="_blank" class="external"&gt;マイクロソフト&lt;/a&gt;
である。個人的には、ビットコインの広範な利用を妨げる理由は三点あると考える。第一に、ビットコイン決済の手数料が現状かなり高いこと。この問題の解決策をめぐる論争は、ビットコインの分岐（フォーク）すら引き起こした。すなわち、大きなブロックを支持するBCHと、ライトニングネットワークを支持するBCCである。第二に、ビットコインの価格変動が依然として激しすぎ、多くの人がこれを投資対象あるいは投機対象と見なしていること。第三に、通貨間の競争関係から、ほとんどの政府が好意的ではないことだ。&lt;/p&gt;
&lt;p&gt;ビットコインは現在デジタルゴールドと喩えられ、その価値貯蔵の側面が強調されている。しかしビットコインの決済価値こそがその価値の基底であり、最終的に一般的な取引に使えなければ、その価値は疑わしい。&lt;/p&gt;
&lt;h2 id="3-通貨には国家の信用の裏付けが必要だがビットコインにはそれがないではその信用はどこから来るのか"&gt;3. 通貨には国家の信用の裏付けが必要だが、ビットコインにはそれがない。ではその信用はどこから来るのか？&lt;/h2&gt;
&lt;p&gt;通貨に必ずしも国家の信用の裏付けが必要なわけではない。例えば金は今でも国際的に通用する通貨として使える。通貨の信用は、どれだけの人がそれを通貨だと信じているかから来る。国家が発行する紙幣はある物語を語り、暗号学的なコンセンサスに基づいて発行されるビットコインは別の物語を語る。人類がより大規模な協力を組織できるのは、まさに物語を信じる能力を持っているからだ。（&lt;a href="https://u.jd.com/oYTXl4"
rel="noopener noreferrer" target="_blank" class="external"&gt;『サピエンス全史』&lt;/a&gt;
を読むことを勧める）&lt;/p&gt;
&lt;p&gt;ビットコインの信用の源泉は確かに理解しにくい。それは分散的な方法で、「誰がいくら持っているか」という問いについてコンセンサスを達成しており、このシステムに参加する者なら誰もそれを否認できない。理解すべきなのは、あらゆる現代通貨は物語だということだ。通貨の特徴は、その通貨価値を認める人が多ければ多いほど、通貨価値が高まるということである。したがって、そこに信仰の要素があることは否めない。&lt;/p&gt;
&lt;h2 id="4-ではビットコインはネズミ講あるいはポンジスキームなのか"&gt;4. ではビットコインはネズミ講、あるいはポンジ・スキームなのか？&lt;/h2&gt;
&lt;p&gt;ビットコインとネズミ講やポンジ・スキームには一点共通するものがある。どちらも少しの信仰を必要とする。しかし違いは主に、ビットコインへの信仰がこの通貨に実際の価値をもたらすという点にある。その価値は通貨として存在することにあり、それ以外ではない。一方、ネズミ講やポンジ・スキームがもたらすのは、騙される人がさらに増えることだ。&lt;/p&gt;
&lt;p&gt;ビットコインのコミュニティに最初に集まったのはギークやサイファーパンクの連中で、彼らが望んだのは新しい通貨体系の構築であり、出発点は決して金を騙し取ることではなかった。もちろん現在、ビットコインやブロックチェーンの煽りがもたらす巨大な投機機会に伴い、&lt;strong&gt;いわゆる「幣圈（コイン界隈）」はおそらく詐欺師の密度が最も高い場所である&lt;/strong&gt;。私がすべての人に出す助言は「分からないものには投資しない」だ。&lt;/p&gt;
&lt;h2 id="5-ビットコインは一体どうやって発行されるのか"&gt;5. ビットコインは一体どうやって発行されるのか？&lt;/h2&gt;
&lt;p&gt;ジェネシスブロックの50ビットコインを除き、他のビットコインはすべて記帳権への報酬であり、ビットコインネットワークの運用の中で徐々に生み出される。ビットコインは定期的にすべての未確認取引を確認・記帳する必要があり、この記帳権を得た者は一定のビットコイン報酬を得る。これらの報酬がビットコインの原初的な供給源である。一批の取引の記帳が完了するたびに、いわゆるブロックにまとめられる。各ブロックは前のブロックを指すポインタを持ち、それゆえブロックチェーンと呼ばれる。&lt;/p&gt;
&lt;h2 id="6-誰がいくつ持っているかはどう記録されるのか銀行の口座のようなものがあるのか"&gt;6. 誰がいくつ持っているかはどう記録されるのか？銀行の口座のようなものがあるのか？&lt;/h2&gt;
&lt;p&gt;銀行口座に似た概念は存在しない。ビットコインのブロックチェーンは、ビットコインの生成と、その生成以降のすべての送金記録を記録しているだけである。あるアドレスに送金され、まだ送金されていない状態であれば、そのアドレスがそのビットコインの所有権を持つ。&lt;/p&gt;
&lt;h2 id="7-アドレスとは何か"&gt;7. アドレスとは何か？&lt;/h2&gt;
&lt;p&gt;アドレスは一種の身分証明と理解できる。それは公開されており、誰もがあなたの家の門にある表札番号を見られるのと同じだ。しかしこの扉を開けられる鍵を持っているのはあなただけである。ここでは暗号学の署名アルゴリズムが使われている。総じて、秘密鍵によってこのアドレス（公開鍵）が自分の管理下にあることを証明できる。&lt;/p&gt;
&lt;h2 id="8-ビットコインは本当に一枚一枚のコインがあるのか"&gt;8. ビットコインは本当に一枚一枚のコインがあるのか？&lt;/h2&gt;
&lt;p&gt;先に述べたように、ビットコインのブロックチェーンは大きな帳簿である。したがって人民元のように一枚一枚のコインが存在するのではなく、あるアドレスにどれだけの量のビットコインがまだ使われずに残っているかを誰もが見られるだけであり、そのアドレスのビットコインは秘密鍵を持つ者が署名して確認した後にしか使えない。ゆえにビットコインの実体は秘密鍵である。秘密鍵を知った者はビットコインを使えるからだ。&lt;/p&gt;
&lt;h2 id="9-ビットコインはどう保存するのか"&gt;9. ビットコインはどう保存するのか？&lt;/h2&gt;
&lt;p&gt;まず、前述のとおり、ビットコインの保存で最重要なのは秘密鍵の保存であり、これがビットコインウォレットの主要な機能である。秘密鍵が漏れればビットコインは失われる。また、あるアドレスにいくつのコインがあるかは公開されたブロックチェーンによって確定し、誰でもビットコインネットワークに接続して検証できる。&lt;/p&gt;
&lt;h2 id="10-では一体誰が記帳するのかなぜその記帳者を信頼するのか"&gt;10. では一体誰が記帳するのか？なぜその記帳者を信頼するのか？&lt;/h2&gt;
&lt;p&gt;これがビットコインの最も精妙な設計である。誰が記帳するかは不確定な事柄であり、各ノードはこの記帳の権利を競うために長時間の計算（電力の消費を伴う）を行わなければならない。記帳権を得た後、でたらめに記帳すれば他のノードに承認されず、生成したブロックも無効となる。前のブロックを指してブロックチェーンを形成してはいるが、他の者がより多くの承認を得るブロックを生成し、より長いブロックチェーンを作れば、あなたの短いチェーンは無効となり、電力を浪費したうえにブロックのビットコイン報酬も得られない。この精妙な設計は、人間が利益を追う存在であることを通じて信頼性を達成している。&lt;/p&gt;
&lt;h2 id="11-マイニングとマイニングマシンとは何か"&gt;11. マイニングとマイニングマシンとは何か？&lt;/h2&gt;
&lt;p&gt;前項のとおり、記帳権を争う作業、すなわち記帳権から生じるビットコイン報酬を争うことをマイニングと呼ぶ。マイニングではあるハッシュ演算を行い、生成されるハッシュ値に一定数の0を含ませる必要がある。この0の数はビットコインネットワーク全体のハッシュ計算能力の向上に応じて大きくなり、ブロックのパッケージ速度、つまりビットコインの生成速度をほぼ一定に保つ。したがって計算速度の競争はほとんど軍備競争であり、初期のCPU、GPUから、現在のハッシュ値計算専用のマイニングマシンに至るまで続いている。&lt;/p&gt;
&lt;p&gt;マイニングで得られる報酬は一定期間ごとに半減し、徐々にマイナーが得る報酬は少なくなっていく。しかしビットコインネットワークには別の仕組みもある。送金する者は誰でもわずかな送金手数料を支払い、それがマイナーのパッケージ成功への報酬となる。&lt;/p&gt;
&lt;h2 id="12-ビットコインはどうやって手に入れるのか"&gt;12. ビットコインはどうやって手に入れるのか？&lt;/h2&gt;
&lt;p&gt;現在、記帳権の競争、つまりマイニングでビットコインを得るのはすでに専門的で困難であり、専門のマイニングマシンを買い、いわゆるマイニングプールに参加して算力とビットコイン報酬を分担しなければならない。&lt;/p&gt;
&lt;p&gt;最も簡単な方法は、ビットコインを持つ人から人民元で買うことだ。売買の方法については、各国の規制が厳しくなるにつれ、取引所の多くは株式のような法定通貨とビットコインの直接取引をすでにサポートせず、いわゆる場外取引（P2P）プラットフォームのみをサポートしている。つまりプラットフォームは淘宝のような保証を行うだけで、保証すらなく情報を掲載するだけのところもあり、ビットコインの売買はC2Cである。有名で保証付き取引のある大手プラットフォームで買うことを勧める。具体的な推薦はここではしない。&lt;/p&gt;
&lt;h2 id="13-各ブロックがビットコインを生むならビットコインはどんどん増えるのか"&gt;13. 各ブロックがビットコインを生むなら、ビットコインはどんどん増えるのか？&lt;/h2&gt;
&lt;p&gt;増えない。各ブロックの報酬は一定期間ごとに半減するため、これは比率1/2の等比数列であり、総量は2100万枚となる。したがってビットコインはデフレ的に設計されている。&lt;/p&gt;
&lt;h2 id="14-デフレ通貨はますます多くの商品と交換できるようになるならば理論上誰もがビットコインを貯め込んで使わなくなり通貨価値はなくなるのではないか"&gt;14. デフレ通貨はますます多くの商品と交換できるようになる。ならば理論上、誰もがビットコインを貯め込んで使わなくなり、通貨価値はなくなるのではないか？&lt;/h2&gt;
&lt;p&gt;確かによい問いだ。私の理解では、ある時点（ビットコインが然るべき地位を得て価格が安定した時）になれば、ビットコインの保有者は自然にビットコインを使うようになる。今の金の保有者と同じである。またビットコインは、インフレを許容する他の通貨とともに通貨体系を構成できる。現在の金と法定通貨の関係と同じだ。&lt;/p&gt;
&lt;h2 id="15-ビットコインは匿名だから麻薬の購入に使われていると聞いたが"&gt;15. ビットコインは匿名だから麻薬の購入に使われていると聞いたが？&lt;/h2&gt;
&lt;p&gt;ビットコインは公開された大きな帳簿だが、そのアドレスは文字列であり、確かに直接人と結びつけることはできないため、ある程度の匿名性がある。しかし同時に、その帳簿は公開され、履歴は変更不可でいつでも閲覧できる。この観点からすれば、その匿名性は現金にも劣る。ビットコインのアドレスと人が結びつけられれば、すべての履歴が追跡される。実際、ビットコインで麻薬を売っていたシルクロードはFBIに摘発された。ビットコインはあくまで道具であり、本来的に犯罪に有利なわけではない。&lt;/p&gt;
&lt;h2 id="16-ビットコインはマネーロンダリングに使われていると聞いたが"&gt;16. ビットコインはマネーロンダリングに使われていると聞いたが？&lt;/h2&gt;
&lt;p&gt;前の問いと同じく、ビットコインが本来的にマネーロンダリングに有利だとは思わない。中国政府はすでに取引所でのビットコインを用いたマネーロンダリングのリスクを規制し始めている。ビットコインはもっとコンプライアンスに適った合法的な用途に使われるべきだと考える。&lt;/p&gt;
&lt;h2 id="17-ビットコインはただの技術でありどの組織も発行していないのなら似たようなデジタル通貨がいくらでも生まれるのではないかならばビットコインに特別な価値はあるのか"&gt;17. ビットコインはただの技術であり、どの組織も発行していないのなら、似たようなデジタル通貨がいくらでも生まれるのではないか？ならばビットコインに特別な価値はあるのか？&lt;/h2&gt;
&lt;p&gt;確かに任意の数の類似のデジタル通貨を生み出すことはできるし、その技術はより優れていることさえありうる。しかし二点注意すべきことがある。ビットコインには先行者優位があり、デジタル通貨の価値は参加者が多ければ多いほどよい。ビットコインがすでに高地を占めている状況では、他のデジタル通貨がゼロから優位を築くのは難しい。次に、ビットコイン自身も技術革新によって進化できる。&lt;/p&gt;</description><content:encoded><![CDATA[<p>このビットコインFAQは、FAQの形式でビットコインを簡単に紹介することを試みる。主に<a href="https://bitcoin.org/bitcoin.pdf"
   rel="noopener noreferrer" target="_blank" class="external">ビットコイン白書</a>
とプリンストン大学の教科書<a href="https://u.jd.com/C2NMOf"
   rel="noopener noreferrer" target="_blank" class="external">『ブロックチェーン：技術が金融を駆動する』</a>
を参考にした。もちろん個人的な理解も多く含まれるので、議論は歓迎する。</p>
<p>【2017-08-10 初稿 / 2020-05-01 小幅更新】</p>
<h2 id="1-ビットコインとは何か">1. ビットコインとは何か？</h2>
<p>ビットコインはデジタル通貨である。特定の中央機関が発行するのではなく、インターネットに依存し、暗号学と分散コンピューティングの理論に基づいて発行される。誰もが参加できる。総量は有限であり、デジタル世界の黄金のようなものだと考えればよい。</p>
<h2 id="2-ビットコインは何の役に立つのか">2. ビットコインは何の役に立つのか？</h2>
<p>現時点でビットコインで買える最も重要なものは各国の通貨である。ビットコインはデジタル通貨として、法定通貨の一部を代替することを当初の設計意図としており、理論上は貨幣にできることは何でもできる。しかし現状、ビットコインでの直接的な買い物はまだ非常に初期の実験段階にあり、対応する店舗は少数だ。最も有名なのは<a href="https://support.microsoft.com/zh-cn/help/13942/microsoft-account-how-to-use-bitcoin-to-add-money-to-your-account"
   rel="noopener noreferrer" target="_blank" class="external">マイクロソフト</a>
である。個人的には、ビットコインの広範な利用を妨げる理由は三点あると考える。第一に、ビットコイン決済の手数料が現状かなり高いこと。この問題の解決策をめぐる論争は、ビットコインの分岐（フォーク）すら引き起こした。すなわち、大きなブロックを支持するBCHと、ライトニングネットワークを支持するBCCである。第二に、ビットコインの価格変動が依然として激しすぎ、多くの人がこれを投資対象あるいは投機対象と見なしていること。第三に、通貨間の競争関係から、ほとんどの政府が好意的ではないことだ。</p>
<p>ビットコインは現在デジタルゴールドと喩えられ、その価値貯蔵の側面が強調されている。しかしビットコインの決済価値こそがその価値の基底であり、最終的に一般的な取引に使えなければ、その価値は疑わしい。</p>
<h2 id="3-通貨には国家の信用の裏付けが必要だがビットコインにはそれがないではその信用はどこから来るのか">3. 通貨には国家の信用の裏付けが必要だが、ビットコインにはそれがない。ではその信用はどこから来るのか？</h2>
<p>通貨に必ずしも国家の信用の裏付けが必要なわけではない。例えば金は今でも国際的に通用する通貨として使える。通貨の信用は、どれだけの人がそれを通貨だと信じているかから来る。国家が発行する紙幣はある物語を語り、暗号学的なコンセンサスに基づいて発行されるビットコインは別の物語を語る。人類がより大規模な協力を組織できるのは、まさに物語を信じる能力を持っているからだ。（<a href="https://u.jd.com/oYTXl4"
   rel="noopener noreferrer" target="_blank" class="external">『サピエンス全史』</a>
を読むことを勧める）</p>
<p>ビットコインの信用の源泉は確かに理解しにくい。それは分散的な方法で、「誰がいくら持っているか」という問いについてコンセンサスを達成しており、このシステムに参加する者なら誰もそれを否認できない。理解すべきなのは、あらゆる現代通貨は物語だということだ。通貨の特徴は、その通貨価値を認める人が多ければ多いほど、通貨価値が高まるということである。したがって、そこに信仰の要素があることは否めない。</p>
<h2 id="4-ではビットコインはネズミ講あるいはポンジスキームなのか">4. ではビットコインはネズミ講、あるいはポンジ・スキームなのか？</h2>
<p>ビットコインとネズミ講やポンジ・スキームには一点共通するものがある。どちらも少しの信仰を必要とする。しかし違いは主に、ビットコインへの信仰がこの通貨に実際の価値をもたらすという点にある。その価値は通貨として存在することにあり、それ以外ではない。一方、ネズミ講やポンジ・スキームがもたらすのは、騙される人がさらに増えることだ。</p>
<p>ビットコインのコミュニティに最初に集まったのはギークやサイファーパンクの連中で、彼らが望んだのは新しい通貨体系の構築であり、出発点は決して金を騙し取ることではなかった。もちろん現在、ビットコインやブロックチェーンの煽りがもたらす巨大な投機機会に伴い、<strong>いわゆる「幣圈（コイン界隈）」はおそらく詐欺師の密度が最も高い場所である</strong>。私がすべての人に出す助言は「分からないものには投資しない」だ。</p>
<h2 id="5-ビットコインは一体どうやって発行されるのか">5. ビットコインは一体どうやって発行されるのか？</h2>
<p>ジェネシスブロックの50ビットコインを除き、他のビットコインはすべて記帳権への報酬であり、ビットコインネットワークの運用の中で徐々に生み出される。ビットコインは定期的にすべての未確認取引を確認・記帳する必要があり、この記帳権を得た者は一定のビットコイン報酬を得る。これらの報酬がビットコインの原初的な供給源である。一批の取引の記帳が完了するたびに、いわゆるブロックにまとめられる。各ブロックは前のブロックを指すポインタを持ち、それゆえブロックチェーンと呼ばれる。</p>
<h2 id="6-誰がいくつ持っているかはどう記録されるのか銀行の口座のようなものがあるのか">6. 誰がいくつ持っているかはどう記録されるのか？銀行の口座のようなものがあるのか？</h2>
<p>銀行口座に似た概念は存在しない。ビットコインのブロックチェーンは、ビットコインの生成と、その生成以降のすべての送金記録を記録しているだけである。あるアドレスに送金され、まだ送金されていない状態であれば、そのアドレスがそのビットコインの所有権を持つ。</p>
<h2 id="7-アドレスとは何か">7. アドレスとは何か？</h2>
<p>アドレスは一種の身分証明と理解できる。それは公開されており、誰もがあなたの家の門にある表札番号を見られるのと同じだ。しかしこの扉を開けられる鍵を持っているのはあなただけである。ここでは暗号学の署名アルゴリズムが使われている。総じて、秘密鍵によってこのアドレス（公開鍵）が自分の管理下にあることを証明できる。</p>
<h2 id="8-ビットコインは本当に一枚一枚のコインがあるのか">8. ビットコインは本当に一枚一枚のコインがあるのか？</h2>
<p>先に述べたように、ビットコインのブロックチェーンは大きな帳簿である。したがって人民元のように一枚一枚のコインが存在するのではなく、あるアドレスにどれだけの量のビットコインがまだ使われずに残っているかを誰もが見られるだけであり、そのアドレスのビットコインは秘密鍵を持つ者が署名して確認した後にしか使えない。ゆえにビットコインの実体は秘密鍵である。秘密鍵を知った者はビットコインを使えるからだ。</p>
<h2 id="9-ビットコインはどう保存するのか">9. ビットコインはどう保存するのか？</h2>
<p>まず、前述のとおり、ビットコインの保存で最重要なのは秘密鍵の保存であり、これがビットコインウォレットの主要な機能である。秘密鍵が漏れればビットコインは失われる。また、あるアドレスにいくつのコインがあるかは公開されたブロックチェーンによって確定し、誰でもビットコインネットワークに接続して検証できる。</p>
<h2 id="10-では一体誰が記帳するのかなぜその記帳者を信頼するのか">10. では一体誰が記帳するのか？なぜその記帳者を信頼するのか？</h2>
<p>これがビットコインの最も精妙な設計である。誰が記帳するかは不確定な事柄であり、各ノードはこの記帳の権利を競うために長時間の計算（電力の消費を伴う）を行わなければならない。記帳権を得た後、でたらめに記帳すれば他のノードに承認されず、生成したブロックも無効となる。前のブロックを指してブロックチェーンを形成してはいるが、他の者がより多くの承認を得るブロックを生成し、より長いブロックチェーンを作れば、あなたの短いチェーンは無効となり、電力を浪費したうえにブロックのビットコイン報酬も得られない。この精妙な設計は、人間が利益を追う存在であることを通じて信頼性を達成している。</p>
<h2 id="11-マイニングとマイニングマシンとは何か">11. マイニングとマイニングマシンとは何か？</h2>
<p>前項のとおり、記帳権を争う作業、すなわち記帳権から生じるビットコイン報酬を争うことをマイニングと呼ぶ。マイニングではあるハッシュ演算を行い、生成されるハッシュ値に一定数の0を含ませる必要がある。この0の数はビットコインネットワーク全体のハッシュ計算能力の向上に応じて大きくなり、ブロックのパッケージ速度、つまりビットコインの生成速度をほぼ一定に保つ。したがって計算速度の競争はほとんど軍備競争であり、初期のCPU、GPUから、現在のハッシュ値計算専用のマイニングマシンに至るまで続いている。</p>
<p>マイニングで得られる報酬は一定期間ごとに半減し、徐々にマイナーが得る報酬は少なくなっていく。しかしビットコインネットワークには別の仕組みもある。送金する者は誰でもわずかな送金手数料を支払い、それがマイナーのパッケージ成功への報酬となる。</p>
<h2 id="12-ビットコインはどうやって手に入れるのか">12. ビットコインはどうやって手に入れるのか？</h2>
<p>現在、記帳権の競争、つまりマイニングでビットコインを得るのはすでに専門的で困難であり、専門のマイニングマシンを買い、いわゆるマイニングプールに参加して算力とビットコイン報酬を分担しなければならない。</p>
<p>最も簡単な方法は、ビットコインを持つ人から人民元で買うことだ。売買の方法については、各国の規制が厳しくなるにつれ、取引所の多くは株式のような法定通貨とビットコインの直接取引をすでにサポートせず、いわゆる場外取引（P2P）プラットフォームのみをサポートしている。つまりプラットフォームは淘宝のような保証を行うだけで、保証すらなく情報を掲載するだけのところもあり、ビットコインの売買はC2Cである。有名で保証付き取引のある大手プラットフォームで買うことを勧める。具体的な推薦はここではしない。</p>
<h2 id="13-各ブロックがビットコインを生むならビットコインはどんどん増えるのか">13. 各ブロックがビットコインを生むなら、ビットコインはどんどん増えるのか？</h2>
<p>増えない。各ブロックの報酬は一定期間ごとに半減するため、これは比率1/2の等比数列であり、総量は2100万枚となる。したがってビットコインはデフレ的に設計されている。</p>
<h2 id="14-デフレ通貨はますます多くの商品と交換できるようになるならば理論上誰もがビットコインを貯め込んで使わなくなり通貨価値はなくなるのではないか">14. デフレ通貨はますます多くの商品と交換できるようになる。ならば理論上、誰もがビットコインを貯め込んで使わなくなり、通貨価値はなくなるのではないか？</h2>
<p>確かによい問いだ。私の理解では、ある時点（ビットコインが然るべき地位を得て価格が安定した時）になれば、ビットコインの保有者は自然にビットコインを使うようになる。今の金の保有者と同じである。またビットコインは、インフレを許容する他の通貨とともに通貨体系を構成できる。現在の金と法定通貨の関係と同じだ。</p>
<h2 id="15-ビットコインは匿名だから麻薬の購入に使われていると聞いたが">15. ビットコインは匿名だから麻薬の購入に使われていると聞いたが？</h2>
<p>ビットコインは公開された大きな帳簿だが、そのアドレスは文字列であり、確かに直接人と結びつけることはできないため、ある程度の匿名性がある。しかし同時に、その帳簿は公開され、履歴は変更不可でいつでも閲覧できる。この観点からすれば、その匿名性は現金にも劣る。ビットコインのアドレスと人が結びつけられれば、すべての履歴が追跡される。実際、ビットコインで麻薬を売っていたシルクロードはFBIに摘発された。ビットコインはあくまで道具であり、本来的に犯罪に有利なわけではない。</p>
<h2 id="16-ビットコインはマネーロンダリングに使われていると聞いたが">16. ビットコインはマネーロンダリングに使われていると聞いたが？</h2>
<p>前の問いと同じく、ビットコインが本来的にマネーロンダリングに有利だとは思わない。中国政府はすでに取引所でのビットコインを用いたマネーロンダリングのリスクを規制し始めている。ビットコインはもっとコンプライアンスに適った合法的な用途に使われるべきだと考える。</p>
<h2 id="17-ビットコインはただの技術でありどの組織も発行していないのなら似たようなデジタル通貨がいくらでも生まれるのではないかならばビットコインに特別な価値はあるのか">17. ビットコインはただの技術であり、どの組織も発行していないのなら、似たようなデジタル通貨がいくらでも生まれるのではないか？ならばビットコインに特別な価値はあるのか？</h2>
<p>確かに任意の数の類似のデジタル通貨を生み出すことはできるし、その技術はより優れていることさえありうる。しかし二点注意すべきことがある。ビットコインには先行者優位があり、デジタル通貨の価値は参加者が多ければ多いほどよい。ビットコインがすでに高地を占めている状況では、他のデジタル通貨がゼロから優位を築くのは難しい。次に、ビットコイン自身も技術革新によって進化できる。</p>
<h2 id="18-ビットコインの分裂とはどういうことか">18. ビットコインの分裂とはどういうことか？</h2>
<p>ビットコインの関連ルールとソフトウェアはすべてオープンソースである。したがって、現行の理念に同意しない者が現れた場合、あるブロックから新しいルールに従って取引をパッケージ（マイニング）し、元のルールで掘られたブロックを受け入れないことができる。逆に元のルールも新しいルールで掘られたブロックと互換性がなくなる。ゆえにこのブロックから二本のブロックチェーンがそれぞれ独立して存在する。この分裂ブロック以前の未使用のビットコインは、同時に二つのチェーン分支に送金できる。したがって元の1ビットコインが、新しい二つのチェーン上でそれぞれ1ビットコインになるのに等しい。</p>
<h2 id="19-この分裂はビットコインが倍になったのと同じではないか">19. この分裂はビットコインが倍になったのと同じではないか？</h2>
<p>完全にそうではない。分裂後のビットコインは、参加者が足で投票することで価値に差が生じる。既定事実の観点からすれば、価値の高いものだけが正統なビットコインである。現在ビットコインの送金手数料は高く、この問題の解決には二つの案が生まれた。一つはブロックサイズの拡大であり、これを支持する人々はBCHと呼ばれるデジタル通貨にフォークした。もう一つはより複雑なプロトコルで、暫定的にBTCの称号を保持している。</p>
<h2 id="20-ビットコインとブロックチェーンの関係は">20. ビットコインとブロックチェーンの関係は？</h2>
<p>ブロックチェーン技術はビットコインの研究開発から生まれ、現在ではさらに多くの技術が派生している。しかしブロックチェーン技術の応用シナリオはさらに詰める必要があり、現在の熱狂は泡沫が非常に大きい。個人的には、ビットコインに代表されるデジタル通貨こそがブロックチェーンが真に実装された応用シナリオだと考えている。多くの応用シナリオはブロックチェーン技術を使う必要がまったくないが、デジタル通貨はむしろ必要である可能性が高い。この点はここで詳述できない。ハイエクの『貨幣の非国家化』を参照されたい。</p>
<h2 id="21-ビットコインにどう投資するか">21. ビットコインにどう投資するか？</h2>
<p>大部分の人にとって、ビットコインに投資する唯一実行可能な方法は、生活にまったく影響しない少額の金でビットコインを買い、5〜10年長期保有することだ。ビットコインの価格は依然として激しく変動しており、上げを追い下げを売る行為はすべてギャンブラーの境地に陥る。<strong>どんな投資でも、分からないものには投資しないことを常に忘れないこと。</strong></p>
]]></content:encoded><category>life</category><category domain="tags">ビットコイン</category><category domain="tags">FAQ</category></item><item><title>ケリーの公式</title><link>https://yifeitao.com/ja/kelly-formula/</link><pubDate>Thu, 16 Feb 2017 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/kelly-formula/</guid><description>&lt;p&gt;1万円を持ってある賭博に参加するとしよう。いくら賭けるかは自由で、勝てば賭け金が倍になり、負ければ丸ごと失われる。勝率が60%だとすると、最大の収益を得るには毎回いくら賭けるべきか。&lt;/p&gt;
&lt;p&gt;愚かな者は一度で全額を賭けてしまうだろう。勝つ確率のほうが負ける確率より高いのだから。だが40%の確率で、一瞬にして無一文になる。&lt;/p&gt;
&lt;p&gt;毎回、残った元手の一定の割合を賭けるとしよう。その割合はいくらが適切か。100回賭けて60回勝ち、40回負けるとすれば、割合を$x$として、利益は&lt;/p&gt;
&lt;p&gt;$f(x)=10000*(1+x)^{60} *(1-x)^{40}$&lt;/p&gt;
&lt;p&gt;この最大値を求めればよい。&lt;/p&gt;
&lt;p&gt;一般に、1を投じるごとに追加の収益Wを得るか、元本Lを失うかするとし、勝率をp、敗率をqとすれば、期待収益は&lt;/p&gt;
&lt;p&gt;$$f(x)=(1+Wx)^{p} (1-Lx)^{q} $$&lt;/p&gt;
&lt;p&gt;最大値を求めるため、まず導関数を求める。&lt;/p&gt;
&lt;p&gt;$$f^{&amp;rsquo;}(x)=Wp(1+Wx)^{p-1} (1-Lx)^{q} -L(1-p)(1+Wx)^{p} (1-Lx)^{q-1}=0$$&lt;/p&gt;
&lt;p&gt;容易に次が得られる。&lt;/p&gt;
&lt;p&gt;$$x=\frac {bp-q} {bL}$$&lt;/p&gt;
&lt;p&gt;L=1、つまり負ければ元手がすべて失われるとき、この式をケリーの公式と呼ぶ。冒頭の問題ではp=0.6、q=0.4、b=1であり、x=20%と計算できる。つまり毎回、現在の元手の20%を投じるべきだ。勝率が0.9ならx=0.8。勝率が0.5ならx=0、五分五分の賭博には決して参加してはならない。勝率が0.5を下回るなら、なおさらである。&lt;/p&gt;
&lt;p&gt;ケリーの公式は近似にすぎず、多くの仮定を置いている。何度も繰り返し博弈できること、資金が無限に分割できること、勝率が安定していること。投資の営みとは隔たりが大きい。それでも投資の大まかな見積もりの道具にはなる。ケリーの公式から見れば、一定の現金を残し、それを元手に立て直す備えをしておくことは十分に必要だ。投資において確率の計算は欠かせない。投資における勝率の見積もりそのものが、いわば玄学めいているとしても、グレアムが言ったように、定量計算が難しいからといって定量計算を放棄することはできない。&lt;/p&gt;</description><content:encoded><![CDATA[<p>1万円を持ってある賭博に参加するとしよう。いくら賭けるかは自由で、勝てば賭け金が倍になり、負ければ丸ごと失われる。勝率が60%だとすると、最大の収益を得るには毎回いくら賭けるべきか。</p>
<p>愚かな者は一度で全額を賭けてしまうだろう。勝つ確率のほうが負ける確率より高いのだから。だが40%の確率で、一瞬にして無一文になる。</p>
<p>毎回、残った元手の一定の割合を賭けるとしよう。その割合はいくらが適切か。100回賭けて60回勝ち、40回負けるとすれば、割合を$x$として、利益は</p>
<p>$f(x)=10000*(1+x)^{60} *(1-x)^{40}$</p>
<p>この最大値を求めればよい。</p>
<p>一般に、1を投じるごとに追加の収益Wを得るか、元本Lを失うかするとし、勝率をp、敗率をqとすれば、期待収益は</p>
<p>$$f(x)=(1+Wx)^{p} (1-Lx)^{q} $$</p>
<p>最大値を求めるため、まず導関数を求める。</p>
<p>$$f^{&rsquo;}(x)=Wp(1+Wx)^{p-1} (1-Lx)^{q} -L(1-p)(1+Wx)^{p} (1-Lx)^{q-1}=0$$</p>
<p>容易に次が得られる。</p>
<p>$$x=\frac {bp-q} {bL}$$</p>
<p>L=1、つまり負ければ元手がすべて失われるとき、この式をケリーの公式と呼ぶ。冒頭の問題ではp=0.6、q=0.4、b=1であり、x=20%と計算できる。つまり毎回、現在の元手の20%を投じるべきだ。勝率が0.9ならx=0.8。勝率が0.5ならx=0、五分五分の賭博には決して参加してはならない。勝率が0.5を下回るなら、なおさらである。</p>
<p>ケリーの公式は近似にすぎず、多くの仮定を置いている。何度も繰り返し博弈できること、資金が無限に分割できること、勝率が安定していること。投資の営みとは隔たりが大きい。それでも投資の大まかな見積もりの道具にはなる。ケリーの公式から見れば、一定の現金を残し、それを元手に立て直す備えをしておくことは十分に必要だ。投資において確率の計算は欠かせない。投資における勝率の見積もりそのものが、いわば玄学めいているとしても、グレアムが言ったように、定量計算が難しいからといって定量計算を放棄することはできない。</p>
]]></content:encoded><category>life</category><category domain="tags">投資</category><category domain="tags">数学</category></item><item><title>繰り返しの力</title><link>https://yifeitao.com/ja/the-power-of-repeat/</link><pubDate>Mon, 06 Feb 2017 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/the-power-of-repeat/</guid><description>&lt;p&gt;学校を出て仕事についてから、高校以前に学んだ多くのことは概念がはっきりしている一方、大学で学んだことはいくらか確かでないことに気づいた。&lt;/p&gt;
&lt;p&gt;考えてみると、最大の原因は、大学で学んだことの情報量が高校のそれよりはるかに多いのに、総学習時間は長くなく、加えて当時の自分は高校のときほど目標が明確でなく、方向感覚がないからそれほど努力もしなかった、ということだろう。だから学んだ材料を結局何度も読むことはなかった。一方、高校のわずかな知識は、繰り返し繰り返し練習を重ねたものだった。&lt;/p&gt;
&lt;p&gt;高校のあの強度の練習は、知識そのものを学ぶには過剰であり、人間を三六九等に分けて大学に振り分けるための軍備競争にすぎない、と私は思う。しかし物事はしばしば一方の極から他方の極へと振れる。繰り返しの練習に辟易したあまり、大学に入るとあらゆる練習を嫌悪するようになる。即時フィードバックのある練習、適度な繰り返しは、永続的な概念を築く有効な方法である。実践が有効だと証明しているだけでなく、脳神経科学の研究結論にも合致する。&lt;/p&gt;
&lt;p&gt;我々は各種の学習方法を研究し、時間と労力を省く近道を探すことができる。しかし方法が最も重要なのではなく、最も重要なのは、言い古されたあの道理である。たとえば続けること、たとえば繰り返し練習すること。これらの基礎の上に、方法を論じる意味がある。&lt;/p&gt;
&lt;p&gt;実のところ、年齢を重ねると理解力は増していく。そして一つの領域で深く耕せば知識体系がすでに築かれ、新たに加わる知識に対して必要な繰り返しの回数は少なくて済む。しかしそのすべては、以前の知識が確かなものであるという基礎の上に成り立つ。&lt;/p&gt;
&lt;p&gt;だから学習というものは、少しの自己欺瞞も許されない。欠いたものは必ず現世報となって返ってくる。この道理はもちろん早く知るに越したことはないが、人生の目標がないときには、知っても何の役にも立たないだろう。&lt;/p&gt;</description><content:encoded><![CDATA[<p>学校を出て仕事についてから、高校以前に学んだ多くのことは概念がはっきりしている一方、大学で学んだことはいくらか確かでないことに気づいた。</p>
<p>考えてみると、最大の原因は、大学で学んだことの情報量が高校のそれよりはるかに多いのに、総学習時間は長くなく、加えて当時の自分は高校のときほど目標が明確でなく、方向感覚がないからそれほど努力もしなかった、ということだろう。だから学んだ材料を結局何度も読むことはなかった。一方、高校のわずかな知識は、繰り返し繰り返し練習を重ねたものだった。</p>
<p>高校のあの強度の練習は、知識そのものを学ぶには過剰であり、人間を三六九等に分けて大学に振り分けるための軍備競争にすぎない、と私は思う。しかし物事はしばしば一方の極から他方の極へと振れる。繰り返しの練習に辟易したあまり、大学に入るとあらゆる練習を嫌悪するようになる。即時フィードバックのある練習、適度な繰り返しは、永続的な概念を築く有効な方法である。実践が有効だと証明しているだけでなく、脳神経科学の研究結論にも合致する。</p>
<p>我々は各種の学習方法を研究し、時間と労力を省く近道を探すことができる。しかし方法が最も重要なのではなく、最も重要なのは、言い古されたあの道理である。たとえば続けること、たとえば繰り返し練習すること。これらの基礎の上に、方法を論じる意味がある。</p>
<p>実のところ、年齢を重ねると理解力は増していく。そして一つの領域で深く耕せば知識体系がすでに築かれ、新たに加わる知識に対して必要な繰り返しの回数は少なくて済む。しかしそのすべては、以前の知識が確かなものであるという基礎の上に成り立つ。</p>
<p>だから学習というものは、少しの自己欺瞞も許されない。欠いたものは必ず現世報となって返ってくる。この道理はもちろん早く知るに越したことはないが、人生の目標がないときには、知っても何の役にも立たないだろう。</p>
]]></content:encoded><category>methodology</category><category domain="tags">学習</category><category domain="tags">方法論</category></item><item><title>五段階読書法</title><link>https://yifeitao.com/ja/five-steps-reading/</link><pubDate>Wed, 18 Jan 2017 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/five-steps-reading/</guid><description>&lt;p&gt;最近の自分の読書法を簡単にまとめておく。まだ不断に更新していく必要がある。&lt;/p&gt;
&lt;p&gt;読書の基本目標は知行合一であるべきなので、娯楽を目的とする読書は本稿の対象外とする。本稿は書籍にも、中短編の文章を読むのにも当てはまる。&lt;/p&gt;
&lt;h2 id="第一段階-速覧"&gt;第一段階 速覧&lt;/h2&gt;
&lt;p&gt;この段階は私のようなせっかちな人間のために設けたものだ。良い本を手にすると、いつもいても立ってもいられずに読み終えたくなる。もっとも、どうなれば一冊を読み終えたことになるのか、よく考えればこれ自体かなり考え込むべき重大な問題ではある。だからどうしても抑えられないなら、自分を許してまず一度速く読んでしまえばよい。おおよその印象を残すだけでも意味がある。もう一つは、速く読んでみてこの本は精読に値しないと分かる場合で、これも自分の時間の節約になる。そういう観点からすれば、速読も必要ない。ざっと目を通して大体をつかめばよく、本を選ぶ過程だと思えばよい。&lt;/p&gt;
&lt;h2 id="第二段階-演読"&gt;第二段階 演読&lt;/h2&gt;
&lt;p&gt;この言葉が私の造語かどうかは分からないが、要するに詳しく読むこと、作者の思考を頭の中で演じられる程度まで詳しく読むことである。この水準に達しないなら、理由はいくつか考えられる。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;君の理解力が足りない、背景知識が足りない。この本はまだ君が読む時期に来ていない。&lt;/li&gt;
&lt;li&gt;何度も読む必要がある。&lt;/li&gt;
&lt;li&gt;これは駄本である。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;この三つをどう見分けるかは実に難しいことで、経験の蓄積が要る。一般に、ある領域をよく知るほど見分けは楽になる。&lt;/p&gt;
&lt;p&gt;演読の目的は、本の内容を本当に消化し、作者の思想を理解することにある。&lt;/p&gt;
&lt;p&gt;注意すべきは、この過程ではなるべくノートを取らないこと、ましてや線を引かないことだ。手元の忙しさで思考の怠惰を覆い、「真剣に読んでいる」姿を作って自分を欺いてはならない。&lt;/p&gt;
&lt;h2 id="第三段階-抽出"&gt;第三段階 抽出&lt;/h2&gt;
&lt;p&gt;本を閉じてノートを取り始める。本の情報量に応じて、一部を読み終えた時点でやるか、全部読み終えてからやるかは柔軟に決めればよい。&lt;/p&gt;
&lt;p&gt;本を閉じてノートを取るのは、簡単で有効な自己点検の手段である。学んだことを紙の上にフィードバックすることを要求する。このノートは要点を列挙する形でよく、その要点から記憶し理解したことを復述できれば足りる。もちろん時間があれば詳しいほどよい。どうしても時間や条件がなければ、せめて本を閉じて自問自答するだけでもよい。&lt;/p&gt;
&lt;p&gt;ノートを取り終えたら、本を開いて照合し、誤りや抜けがないか見る。&lt;/p&gt;
&lt;h2 id="第四段階-ネットワーク化"&gt;第四段階 ネットワーク化&lt;/h2&gt;
&lt;p&gt;読んだものを確実に身につけたいなら、鍵はそれを自分の知識体系の一部に変え、既存の神経回路網に接続することだ。基本的方法は次のとおり。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;比較：すでに身につけた知識と比べ、どこが同じでどこが違うかを見る。既存の知識の別の姿なのか、あるいは重要な補完なのか。&lt;/li&gt;
&lt;li&gt;反省：本に書かれていることに不正確なところはないか、詳しくないところはないか、あるいはより分かりやすい言い方に置き換えられないか。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="第五段階-実践"&gt;第五段階 実践&lt;/h2&gt;
&lt;p&gt;これが最後の段階であり、最も重要で省略できない段階である。とりわけ方法論を示す本についてはそうだ。一冊の本の中に一つの重要な実践手段があり、それを君が理解し納得したなら、最善はそれに従ってやってみることだ。これが読書の最良の帰結であり、一冊の本にそんな点が一つあれば、価値は百倍である。&lt;/p&gt;
&lt;p&gt;もちろん、すべての本に直接実践できる方法論があるわけではない。その場合は次善の策がいくつかある。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;読書ノート。このノートは第三段階のノートの改良版とするのがよく、自分の理解で整理し直すか、自分の理解を加えるか、学んだ道理で新しい問題を説明する。&lt;/li&gt;
&lt;li&gt;対話。この本を読んでいない人に内容を紹介する。相手に応じて適切な方法と内容を選ぶが、伝える思想の核は同じにする。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ここまで来て、だいたい一冊を読み終えたことになる。&lt;/p&gt;
&lt;p&gt;最後に述べておくが、この五つの段階は厳密に切り離されたり順序づけられたものではない。実際に適用するときは柔軟に取捨し、交差させて行えばよい。ただし最後の段階だけは省略できない。それを省けば娯楽的な読書にすぎず、たとえ読んだのがかなり真面目な本であってもそうだ。&lt;/p&gt;</description><content:encoded><![CDATA[<p>最近の自分の読書法を簡単にまとめておく。まだ不断に更新していく必要がある。</p>
<p>読書の基本目標は知行合一であるべきなので、娯楽を目的とする読書は本稿の対象外とする。本稿は書籍にも、中短編の文章を読むのにも当てはまる。</p>
<h2 id="第一段階-速覧">第一段階 速覧</h2>
<p>この段階は私のようなせっかちな人間のために設けたものだ。良い本を手にすると、いつもいても立ってもいられずに読み終えたくなる。もっとも、どうなれば一冊を読み終えたことになるのか、よく考えればこれ自体かなり考え込むべき重大な問題ではある。だからどうしても抑えられないなら、自分を許してまず一度速く読んでしまえばよい。おおよその印象を残すだけでも意味がある。もう一つは、速く読んでみてこの本は精読に値しないと分かる場合で、これも自分の時間の節約になる。そういう観点からすれば、速読も必要ない。ざっと目を通して大体をつかめばよく、本を選ぶ過程だと思えばよい。</p>
<h2 id="第二段階-演読">第二段階 演読</h2>
<p>この言葉が私の造語かどうかは分からないが、要するに詳しく読むこと、作者の思考を頭の中で演じられる程度まで詳しく読むことである。この水準に達しないなら、理由はいくつか考えられる。</p>
<ol>
<li>君の理解力が足りない、背景知識が足りない。この本はまだ君が読む時期に来ていない。</li>
<li>何度も読む必要がある。</li>
<li>これは駄本である。</li>
</ol>
<p>この三つをどう見分けるかは実に難しいことで、経験の蓄積が要る。一般に、ある領域をよく知るほど見分けは楽になる。</p>
<p>演読の目的は、本の内容を本当に消化し、作者の思想を理解することにある。</p>
<p>注意すべきは、この過程ではなるべくノートを取らないこと、ましてや線を引かないことだ。手元の忙しさで思考の怠惰を覆い、「真剣に読んでいる」姿を作って自分を欺いてはならない。</p>
<h2 id="第三段階-抽出">第三段階 抽出</h2>
<p>本を閉じてノートを取り始める。本の情報量に応じて、一部を読み終えた時点でやるか、全部読み終えてからやるかは柔軟に決めればよい。</p>
<p>本を閉じてノートを取るのは、簡単で有効な自己点検の手段である。学んだことを紙の上にフィードバックすることを要求する。このノートは要点を列挙する形でよく、その要点から記憶し理解したことを復述できれば足りる。もちろん時間があれば詳しいほどよい。どうしても時間や条件がなければ、せめて本を閉じて自問自答するだけでもよい。</p>
<p>ノートを取り終えたら、本を開いて照合し、誤りや抜けがないか見る。</p>
<h2 id="第四段階-ネットワーク化">第四段階 ネットワーク化</h2>
<p>読んだものを確実に身につけたいなら、鍵はそれを自分の知識体系の一部に変え、既存の神経回路網に接続することだ。基本的方法は次のとおり。</p>
<ol>
<li>比較：すでに身につけた知識と比べ、どこが同じでどこが違うかを見る。既存の知識の別の姿なのか、あるいは重要な補完なのか。</li>
<li>反省：本に書かれていることに不正確なところはないか、詳しくないところはないか、あるいはより分かりやすい言い方に置き換えられないか。</li>
</ol>
<h2 id="第五段階-実践">第五段階 実践</h2>
<p>これが最後の段階であり、最も重要で省略できない段階である。とりわけ方法論を示す本についてはそうだ。一冊の本の中に一つの重要な実践手段があり、それを君が理解し納得したなら、最善はそれに従ってやってみることだ。これが読書の最良の帰結であり、一冊の本にそんな点が一つあれば、価値は百倍である。</p>
<p>もちろん、すべての本に直接実践できる方法論があるわけではない。その場合は次善の策がいくつかある。</p>
<ol>
<li>読書ノート。このノートは第三段階のノートの改良版とするのがよく、自分の理解で整理し直すか、自分の理解を加えるか、学んだ道理で新しい問題を説明する。</li>
<li>対話。この本を読んでいない人に内容を紹介する。相手に応じて適切な方法と内容を選ぶが、伝える思想の核は同じにする。</li>
</ol>
<p>ここまで来て、だいたい一冊を読み終えたことになる。</p>
<p>最後に述べておくが、この五つの段階は厳密に切り離されたり順序づけられたものではない。実際に適用するときは柔軟に取捨し、交差させて行えばよい。ただし最後の段階だけは省略できない。それを省けば娯楽的な読書にすぎず、たとえ読んだのがかなり真面目な本であってもそうだ。</p>
]]></content:encoded><category>methodology</category><category domain="tags">読書</category><category domain="tags">方法論</category></item><item><title>高可配置性ソフトウェア開発</title><link>https://yifeitao.com/ja/development-of-highly-configurable-software/</link><pubDate>Tue, 17 Jan 2017 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/development-of-highly-configurable-software/</guid><description>&lt;p&gt;可配置性はソフトウェア工学の実践における重要な問題の一つである。設定ファイルは実行ファイルとともに、ソフトウェアの実行時バージョン管理を構成する要素となる。Visual Basic、Python、Lua などのインタプリタ型言語は、いわゆる「スクリプト」の形で現れることが多く、オペレーティングシステムやゲームなどの大規模ソフトウェアの可配置性をさらに高めてきた。また、ドメイン駆動設計はドメインモデルを強調すると同時に、設定ドメインモデルを記述するドメイン固有言語の発展も促した。産業制御の分野では、ソフトウェアの可配置性は組態（コンフィギュレーション）という概念で語られる。ゲーム開発の分野では、一般にエンジンとスクリプトという概念で語られる。&lt;/p&gt;
&lt;h2 id="1-基本原理"&gt;1 基本原理&lt;/h2&gt;
&lt;p&gt;ソフトウェアの複雑さの根源は現実世界の複雑さにある。ソフトウェアの複雑さが人の理解能力を超えると、ソフトウェア開発の困難、さらには失敗をもたらす。優れたソフトウェア工学の方法論は現実世界の良好な抽象モデルを与え、合理的な抽象階層構造によってソフトウェアの複雑さを管理し、人がある全体から細部へと階層的にソフトウェアを把握できるようにする。現実世界に由来する複雑さは減少も消滅もしないが、制約を受けることになる。&lt;/p&gt;
&lt;p&gt;高可配置性は、急速な要求変更の問題をある程度解決できる。ソフトウェアの中で不変の部分をモデルとして捉え、変わりやすい部分を設定ファイルなどの方法で制約するのである。&lt;/p&gt;
&lt;pre class="mermaid"&gt;graph TB
subgraph ソフトウェア1
complexity2[複雑性]--&amp;gt;abstract[共通抽象]
end
subgraph ソフトウェア
complexity1[複雑性]--&amp;gt;complexity3[複雑性]
end&lt;/pre&gt;
&lt;h2 id="2-構築方法"&gt;2 構築方法&lt;/h2&gt;
&lt;p&gt;高可配置性ソフトウェアを構築するには、まずドメインの特徴に応じて汎用ソフトウェアモデルを確立し、次にそのモデルに対して設定技術を用いる。異なる設定とモデルの組み合わせが、最終的に異なるソフトウェアインスタンスを構築する。&lt;/p&gt;
&lt;pre class="mermaid"&gt;graph TB
subgraph ソフトウェア2
config2[ソフトウェア設定2]--&amp;gt;abstract2[汎用モデル]
end
subgraph ソフトウェア1
config1[ソフトウェア設定1]--&amp;gt;abstract1[汎用モデル]
end&lt;/pre&gt;
&lt;h3 id="21-モデリング"&gt;2.1 モデリング&lt;/h3&gt;
&lt;p&gt;モデリングの問題は非常に複雑な問題であり、設計時のシナリオによって異なる。ドメイン知識と設計経験を必要とし、ドメインの専門家と密接に協力する必要がある。この分野にはいくつかの古典がある：&lt;a href="https://book.douban.com/subject/26819666/"
rel="noopener noreferrer" target="_blank" class="external"&gt;『エリック・エヴァンスのドメイン駆動設計』&lt;/a&gt;
と&lt;a href="https://book.douban.com/subject/25844633/"
rel="noopener noreferrer" target="_blank" class="external"&gt;『実践ドメイン駆動設計』&lt;/a&gt;
。&lt;/p&gt;
&lt;h3 id="22-設定技術"&gt;2.2 設定技術&lt;/h3&gt;
&lt;h4 id="221-設定ファイル"&gt;2.2.1 設定ファイル&lt;/h4&gt;
&lt;p&gt;設定ファイルは最も広く使われ、最も基本的な設定技術である。設定ファイルは主にソフトウェアの起動および実行に必要なデータを記述するために用いられ、一般にソフトウェアの実行ロジックを直接記述するものではない。一般的な設定ファイル形式には ini、xml、json などがある。簡単な比較を下表に示す。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;形式&lt;/th&gt;
&lt;th&gt;表現力&lt;/th&gt;
&lt;th&gt;可読性&lt;/th&gt;
&lt;th&gt;典型的な用途&lt;/th&gt;
&lt;th&gt;例&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;ini&lt;/td&gt;
&lt;td&gt;弱い、ネスト不可&lt;/td&gt;
&lt;td&gt;最も良い&lt;/td&gt;
&lt;td&gt;ソフトウェアの起動パラメータ。&lt;/td&gt;
&lt;td&gt;起動ディレクトリ、IP アドレス。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;xml&lt;/td&gt;
&lt;td&gt;最も強い&lt;/td&gt;
&lt;td&gt;最も悪い&lt;/td&gt;
&lt;td&gt;複雑なオブジェクトのシリアライズ。&lt;/td&gt;
&lt;td&gt;データフレームの構造と解析規則。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;json&lt;/td&gt;
&lt;td&gt;普通&lt;/td&gt;
&lt;td&gt;普通&lt;/td&gt;
&lt;td&gt;Web API インタフェース。&lt;/td&gt;
&lt;td&gt;天気予報サービスのインタフェース。&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id="222-スクリプト言語"&gt;2.2.2 スクリプト言語&lt;/h4&gt;
&lt;p&gt;大規模なプログラムは、しばしば複数のプログラミング言語を組み合わせて実現される。一般に、コンパイル型言語でシステムの比較的固定された部分と実行効率が重要な部分を実装し、インタプリタ型言語でシステムの変わりやすい部分を実装する。たとえば Linux オペレーティングシステムは C で多くのツールを実装し、bash スクリプトでそれらのツールを総合的に組み合わせて応用する。大規模ゲームは C++ のゲームエンジン上に構築され、Lua スクリプトなどでゲームの動作ロジックを記述する。&lt;/p&gt;</description><content:encoded><![CDATA[<p>可配置性はソフトウェア工学の実践における重要な問題の一つである。設定ファイルは実行ファイルとともに、ソフトウェアの実行時バージョン管理を構成する要素となる。Visual Basic、Python、Lua などのインタプリタ型言語は、いわゆる「スクリプト」の形で現れることが多く、オペレーティングシステムやゲームなどの大規模ソフトウェアの可配置性をさらに高めてきた。また、ドメイン駆動設計はドメインモデルを強調すると同時に、設定ドメインモデルを記述するドメイン固有言語の発展も促した。産業制御の分野では、ソフトウェアの可配置性は組態（コンフィギュレーション）という概念で語られる。ゲーム開発の分野では、一般にエンジンとスクリプトという概念で語られる。</p>
<h2 id="1-基本原理">1 基本原理</h2>
<p>ソフトウェアの複雑さの根源は現実世界の複雑さにある。ソフトウェアの複雑さが人の理解能力を超えると、ソフトウェア開発の困難、さらには失敗をもたらす。優れたソフトウェア工学の方法論は現実世界の良好な抽象モデルを与え、合理的な抽象階層構造によってソフトウェアの複雑さを管理し、人がある全体から細部へと階層的にソフトウェアを把握できるようにする。現実世界に由来する複雑さは減少も消滅もしないが、制約を受けることになる。</p>
<p>高可配置性は、急速な要求変更の問題をある程度解決できる。ソフトウェアの中で不変の部分をモデルとして捉え、変わりやすい部分を設定ファイルなどの方法で制約するのである。</p>
<pre class="mermaid">graph TB
    subgraph ソフトウェア1
        complexity2[複雑性]--&gt;abstract[共通抽象]
    end
    subgraph ソフトウェア
        complexity1[複雑性]--&gt;complexity3[複雑性]
    end</pre>

<h2 id="2-構築方法">2 構築方法</h2>
<p>高可配置性ソフトウェアを構築するには、まずドメインの特徴に応じて汎用ソフトウェアモデルを確立し、次にそのモデルに対して設定技術を用いる。異なる設定とモデルの組み合わせが、最終的に異なるソフトウェアインスタンスを構築する。</p>
<pre class="mermaid">graph TB
    subgraph ソフトウェア2
        config2[ソフトウェア設定2]--&gt;abstract2[汎用モデル]
    end
    subgraph ソフトウェア1
        config1[ソフトウェア設定1]--&gt;abstract1[汎用モデル]
    end</pre>

<h3 id="21-モデリング">2.1 モデリング</h3>
<p>モデリングの問題は非常に複雑な問題であり、設計時のシナリオによって異なる。ドメイン知識と設計経験を必要とし、ドメインの専門家と密接に協力する必要がある。この分野にはいくつかの古典がある：<a href="https://book.douban.com/subject/26819666/"
   rel="noopener noreferrer" target="_blank" class="external">『エリック・エヴァンスのドメイン駆動設計』</a>
と<a href="https://book.douban.com/subject/25844633/"
   rel="noopener noreferrer" target="_blank" class="external">『実践ドメイン駆動設計』</a>
。</p>
<h3 id="22-設定技術">2.2 設定技術</h3>
<h4 id="221-設定ファイル">2.2.1 設定ファイル</h4>
<p>設定ファイルは最も広く使われ、最も基本的な設定技術である。設定ファイルは主にソフトウェアの起動および実行に必要なデータを記述するために用いられ、一般にソフトウェアの実行ロジックを直接記述するものではない。一般的な設定ファイル形式には ini、xml、json などがある。簡単な比較を下表に示す。</p>
<table>
  <thead>
      <tr>
          <th>形式</th>
          <th>表現力</th>
          <th>可読性</th>
          <th>典型的な用途</th>
          <th>例</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>ini</td>
          <td>弱い、ネスト不可</td>
          <td>最も良い</td>
          <td>ソフトウェアの起動パラメータ。</td>
          <td>起動ディレクトリ、IP アドレス。</td>
      </tr>
      <tr>
          <td>xml</td>
          <td>最も強い</td>
          <td>最も悪い</td>
          <td>複雑なオブジェクトのシリアライズ。</td>
          <td>データフレームの構造と解析規則。</td>
      </tr>
      <tr>
          <td>json</td>
          <td>普通</td>
          <td>普通</td>
          <td>Web API インタフェース。</td>
          <td>天気予報サービスのインタフェース。</td>
      </tr>
  </tbody>
</table>
<h4 id="222-スクリプト言語">2.2.2 スクリプト言語</h4>
<p>大規模なプログラムは、しばしば複数のプログラミング言語を組み合わせて実現される。一般に、コンパイル型言語でシステムの比較的固定された部分と実行効率が重要な部分を実装し、インタプリタ型言語でシステムの変わりやすい部分を実装する。たとえば Linux オペレーティングシステムは C で多くのツールを実装し、bash スクリプトでそれらのツールを総合的に組み合わせて応用する。大規模ゲームは C++ のゲームエンジン上に構築され、Lua スクリプトなどでゲームの動作ロジックを記述する。</p>
<h4 id="223-ドメイン固有言語">2.2.3 ドメイン固有言語</h4>
<p>ドメイン固有言語は一般的な設定ファイルとプログラムコードの中間に位置する。すなわち、ある特定のドメインに向けた、表現力が制限された計算機プログラミング言語である。</p>
<p>ドメイン固有言語はさらに内部ドメイン固有言語、外部ドメイン固有言語、言語ワークベンチなどに分かれる。内部ドメイン固有言語は主要言語のプログラムコードの特殊な書き方であり、設定とは見なせない。外部ドメイン固有言語は新しい言語を設計して表現するもので、依然としてテキスト設定の範囲に属する。言語ワークベンチは主に可視化された設定方式を提供するもので、可視化プログラミングとも呼ばれる。</p>
<p>ドメイン固有言語は設定ファイルとスクリプトプログラムの中間に位置し、ドメイン内で高い表現力を提供するとともに、ドメインの専門家にも理解しやすい。専門家の知識をソフトウェアへと生成することを加速できる。</p>
<p>モデルの必要に応じて、上記 3 つの設定技術はいずれも高可配置性ソフトウェア開発に適用できる。下表では 3 つの設定技術の主な特徴と典型的な用途を比較する。</p>
<table>
  <thead>
      <tr>
          <th>設定技術</th>
          <th>表現力</th>
          <th>可読性</th>
          <th>典型的な用途</th>
          <th>例</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>設定ファイル</td>
          <td>ソフトウェアの実行に必要なデータを記述する。一般にソフトウェアの実行ロジックを直接記述しない。</td>
          <td>具体的な設定ファイル形式による。</td>
          <td>ソフトウェアの起動パラメータ。</td>
          <td>起動ディレクトリ、ネットワーク通信アドレス。</td>
      </tr>
      <tr>
          <td>スクリプト言語</td>
          <td>ソフトウェアの実行ロジックを直接記述する。</td>
          <td>プログラマにしか適さず、ドメインの専門家には理解しにくい。</td>
          <td>基本インタフェースの形式が固定されている場合に、変わりやすいロジックを記述する。</td>
          <td>C++ で構築した機器監視インタフェースの上で、Python スクリプトで監視フローを記述する。</td>
      </tr>
      <tr>
          <td>ドメイン固有言語</td>
          <td>ドメインモデルの設定を記述し、それによって間接的にソフトウェアの実行ロジックを記述する。</td>
          <td>プログラマにもドメインの専門家にも適する。</td>
          <td>認容度の高いドメインモデルが確立され、モデルの設定が豊富で変わりやすい場合。</td>
          <td>「状態-反応」モデルで故障処理を表現し、ドメイン固有言語を確立して具体的な内容を記述する。</td>
      </tr>
  </tbody>
</table>
<h2 id="3-エンジニアリング実践">3 エンジニアリング実践</h2>
<p>図に示すように、高可配置性ソフトウェア開発は実際に従来のソフトウェア開発プロセスを変え、ソフトウェアのライフサイクルにおける設定の重要な位置づけを際立たせる。以下では、高可配置性が従来のソフトウェア開発の各段階に与える影響を述べる。</p>
<pre class="mermaid">graph TB
    subgraph 高可配置性ソフトウェアプロセス
    	requirements2[要件分析]--&gt;construct2[ソフトウェア本体構築]
    	construct2--&gt;config[ソフトウェア設定]
        config--&gt;test2[ソフトウェア本体テスト]
        config--&gt;config_test[ソフトウェア設定テスト]
		test2--&gt;maintain2[ソフトウェア本体保守] 
		config_test--&gt;config_maintain[ソフトウェア設定保守]
    end
    
    subgraph 一般的なソフトウェアプロセス
    	requirements1[要件分析]--&gt;construct1[ソフトウェア構築]
        construct1--&gt;test1[ソフトウェアテスト]
		test1--&gt;maintain1[ソフトウェア保守] 
    end</pre>

<h3 id="31-要件分析">3.1 要件分析</h3>
<p>要件分析の段階では、通常の開発と比べて、高可配置性ソフトウェア開発では以下の問題を重点的に分析する必要がある：</p>
<ol>
<li>高可配置性技術を採用する必要性。これは主にソフトウェアの適用範囲によって決まる。すなわち、ソフトウェアに展開可能性を持たせるかどうか、ソフトウェアが対応すべき要求が変わりやすいかどうかである。適応すべきシナリオが多いほど、要求が変わりやすいほど必要性は大きくなる。ソフトウェアがほぼ固定された一つのシナリオにしか使われないなら、設定を用いる必要はない。</li>
<li>モデル要求と設定要求を区別すること。要求収集の際には、ソフトウェアの各種の適用シナリオにおける要求を収集し、ソフトウェアの展開に伴って生じうる要求の拡張を分析し、できるだけ多くの事例を分析し、深く分析してシステムの不変性を抽出し、システムのモデルを抽象化する。そしてシステムの変わりやすい部分を設定要求として識別する。</li>
</ol>
<h3 id="32--ソフトウェア構築">3.2  ソフトウェア構築</h3>
<p>高可配置性ソフトウェア開発におけるソフトウェア構築は二つの段階に分かれる：</p>
<ol>
<li>ソフトウェア本体の構築：この段階はプログラマが行う。高可配置性はアーキテクチャ設計への要求が高く、オブジェクト指向パラダイムを用いる場合には、オブジェクト指向の設計原則を深く理解し適用する必要があり、各種の構造型設計パターン、およびリフレクションや依存性注入といった実行時関連技術を大量に応用する必要がある；</li>
<li>ソフトウェア設定の段階：この段階はプログラマが行うこともでき、ドメインの専門家が行うこともできる。設定がソフトウェアの重要な構成部分となるため、設定ファイルはソースコードと同様に厳格に管理し、バージョン管理システムに組み入れるべきである。手作業の設定は誤りを生じやすいため、できるだけ可視化された設定ツールを提供し、利用者が勝手に設定を変更することを制限すべきである。</li>
</ol>
<h3 id="33-ソフトウェアテスト">3.3 ソフトウェアテスト</h3>
<p>ソフトウェアの二段階の開発に対応して、高可配置性ソフトウェアのテストも二つの部分に分かれる：</p>
<ol>
<li>
<p>ソフトウェア本体のテスト。テストケースを構築する際には、各種のシナリオの設定を設計すべきである。これらのシナリオではモデルの境界状況を考慮し、テストを通じてソフトウェア本体の欠陥をできるだけ取り除き、ソフトウェアの展開・普及時に設定後に欠陥が発見されることを減らす。</p>
</li>
<li>
<p>ソフトウェア設定のテスト。設定テストを完了して初めて具体的なシナリオで応用できる。設定の過程はプログラマではなくドメインの専門家が行うことが多いため、設定の検証を行い、設定完了後のテストツールとテスト方法の細則を提供して、ドメインの専門家もソフトウェアのテストを完了できるようにするのがよい。</p>
</li>
</ol>
<h3 id="34--ソフトウェア保守">3.4  ソフトウェア保守</h3>
<p>ソフトウェアの二段階の開発に対応して、高可配置性ソフトウェアの保守も二つの部分に分かれる：</p>
<ol>
<li>
<p>ソフトウェア本体の保守。汎用的な機能のアップグレードはソフトウェア本体のアップグレードによって行う。ソフトウェア本体の機能の変更は設定との互換性を保つべきであり、設定の形式を変更せざるを得ない場合には、設定のアップグレード変換機能を提供すべきである；</p>
</li>
<li>
<p>ソフトウェア設定の保守。利用者の要求と適用シナリオが変化し、その変化がソフトウェア本体の想定の範囲内であれば、ドメインの専門家が設定を変更して完了できる。ソフトウェア設定は次第に利用者の重要な資産となる。</p>
</li>
</ol>
]]></content:encoded><category>coding</category><category domain="tags">ソフトウェア工学</category><category domain="tags">プログラミング</category></item><item><title>個人財務管理の15原則</title><link>https://yifeitao.com/ja/the-15-principle-of-personal-finance/</link><pubDate>Thu, 05 Jan 2017 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/the-15-principle-of-personal-finance/</guid><description>&lt;p&gt;アメリカの大学の学部向け教科書である&lt;a href="https://book.douban.com/subject/4894568/"
rel="noopener noreferrer" target="_blank" class="external"&gt;『個人財務管理』&lt;/a&gt;
は、内容がかなり豊富で、現金管理、株式・債券・投信・保険、住宅と車の購入、老後の計画、さらには遺言まで扱っている。十数年前の学部時代にこの本に出会わなかったのは残念だが、今読んだので、子供に教えるにはまだ間に合う。&lt;/p&gt;
&lt;p&gt;この本はアメリカの状況を書いたものなので、多くの内容は原理的な参考価値しかなく、具体的な応用には中国の実情を参照する必要がある。だから私もざっと目を通しただけだが、本書が全体を貫く形でまとめた個人財務管理の15原則は、強い普遍性を持っている。ここに抜き書きして列挙し、ついでに簡単な私の理解を述べておく。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;リスクとリターンのトレードオフ：リスクとリターンは概して正の相関がある。だから「高リターン・低リスク」をうたうファイナンシャルプランナーは、ほぼ詐欺師と定義してよい。ただし絶対ではない。知識の差、情報の差によって、低リスクで比較的高いリターンを得ることはありうるし、逆に低リターンの商品が高リスクであることもある。ある種のネット貸金プラットフォームがそうだ。&lt;/li&gt;
&lt;li&gt;貨幣の時間価値：複利を理解しなければ投資は理解できない。中国では義理で金を貸し借りするが、十年前に1万元貸して十年後に1万元返してもらう、年率7%で計算すればほぼ倍になっている。&lt;/li&gt;
&lt;li&gt;分散はリスク低減に資する：いわゆる「東が暗ければ西が明るい」。ただし投資対象間の相関に注意すること。&lt;/li&gt;
&lt;li&gt;すべてのリスクが同じではない：分散はシステミックリスクを消せない。経済全体が崩壊すれば、どの株や債券を買ってもほぼ終わりだ。&lt;/li&gt;
&lt;li&gt;競争的な投資市場の根源：入札の仕組みを通じて、市場は概して効率的であり、市場に勝つことはきわめて難しい。いわゆる「豚もそう考えている」という冗談のとおりで、要するにこの原理である。年率50%から100%のリターンを株式市場で得たいと言う人をよく聞くが、賭博を楽しむように祈るしかない。&lt;/li&gt;
&lt;li&gt;税制要因が個人の財務意思決定に与える影響：カジノを開く者が儲かる。&lt;/li&gt;
&lt;li&gt;流動性の重要性：高い流動性はプレミアムを、低い流動性はディスカウントをもたらす。生活費の3〜6か月分は確保しておくべきで、T+0やT+1で換金できるMMFや逆レポなどの商品に振り向けられる。&lt;/li&gt;
&lt;li&gt;計画がなければ何も成らない：私は2015年末から財務の総括と計画を始めたが、効果は明らかだと感じている。&lt;/li&gt;
&lt;li&gt;知識が最良の保障である：カモになるな。&lt;/li&gt;
&lt;li&gt;重大な災害や事故の脅威から身を守る：掛け捨て保険こそ保険の本質である。&lt;/li&gt;
&lt;li&gt;投資の時間軸：株式投資は少なくとも5年は持てるものでなければならない。ビットコインは私は少なくとも20年持つ。&lt;/li&gt;
&lt;li&gt;委託・代理問題——販売手法に注意：広告を見ず契約書を見るほうが確かだと思う。&lt;/li&gt;
&lt;li&gt;まず自分に支払う：金を受け取ったら、まず貯蓄・投資か自己研鑽を考える。&lt;/li&gt;
&lt;li&gt;金がすべてではない：正しすぎるほどの陳腐な言葉だ。&lt;/li&gt;
&lt;li&gt;さあ、行動を始めよう！投資と資産管理は早いほどよい。これまで始めていなかった人は今日から始めればよい。&lt;/li&gt;
&lt;/ol&gt;</description><content:encoded><![CDATA[<p>アメリカの大学の学部向け教科書である<a href="https://book.douban.com/subject/4894568/"
   rel="noopener noreferrer" target="_blank" class="external">『個人財務管理』</a>
は、内容がかなり豊富で、現金管理、株式・債券・投信・保険、住宅と車の購入、老後の計画、さらには遺言まで扱っている。十数年前の学部時代にこの本に出会わなかったのは残念だが、今読んだので、子供に教えるにはまだ間に合う。</p>
<p>この本はアメリカの状況を書いたものなので、多くの内容は原理的な参考価値しかなく、具体的な応用には中国の実情を参照する必要がある。だから私もざっと目を通しただけだが、本書が全体を貫く形でまとめた個人財務管理の15原則は、強い普遍性を持っている。ここに抜き書きして列挙し、ついでに簡単な私の理解を述べておく。</p>
<ol>
<li>リスクとリターンのトレードオフ：リスクとリターンは概して正の相関がある。だから「高リターン・低リスク」をうたうファイナンシャルプランナーは、ほぼ詐欺師と定義してよい。ただし絶対ではない。知識の差、情報の差によって、低リスクで比較的高いリターンを得ることはありうるし、逆に低リターンの商品が高リスクであることもある。ある種のネット貸金プラットフォームがそうだ。</li>
<li>貨幣の時間価値：複利を理解しなければ投資は理解できない。中国では義理で金を貸し借りするが、十年前に1万元貸して十年後に1万元返してもらう、年率7%で計算すればほぼ倍になっている。</li>
<li>分散はリスク低減に資する：いわゆる「東が暗ければ西が明るい」。ただし投資対象間の相関に注意すること。</li>
<li>すべてのリスクが同じではない：分散はシステミックリスクを消せない。経済全体が崩壊すれば、どの株や債券を買ってもほぼ終わりだ。</li>
<li>競争的な投資市場の根源：入札の仕組みを通じて、市場は概して効率的であり、市場に勝つことはきわめて難しい。いわゆる「豚もそう考えている」という冗談のとおりで、要するにこの原理である。年率50%から100%のリターンを株式市場で得たいと言う人をよく聞くが、賭博を楽しむように祈るしかない。</li>
<li>税制要因が個人の財務意思決定に与える影響：カジノを開く者が儲かる。</li>
<li>流動性の重要性：高い流動性はプレミアムを、低い流動性はディスカウントをもたらす。生活費の3〜6か月分は確保しておくべきで、T+0やT+1で換金できるMMFや逆レポなどの商品に振り向けられる。</li>
<li>計画がなければ何も成らない：私は2015年末から財務の総括と計画を始めたが、効果は明らかだと感じている。</li>
<li>知識が最良の保障である：カモになるな。</li>
<li>重大な災害や事故の脅威から身を守る：掛け捨て保険こそ保険の本質である。</li>
<li>投資の時間軸：株式投資は少なくとも5年は持てるものでなければならない。ビットコインは私は少なくとも20年持つ。</li>
<li>委託・代理問題——販売手法に注意：広告を見ず契約書を見るほうが確かだと思う。</li>
<li>まず自分に支払う：金を受け取ったら、まず貯蓄・投資か自己研鑽を考える。</li>
<li>金がすべてではない：正しすぎるほどの陳腐な言葉だ。</li>
<li>さあ、行動を始めよう！投資と資産管理は早いほどよい。これまで始めていなかった人は今日から始めればよい。</li>
</ol>
]]></content:encoded><category>investment</category><category domain="tags">資産管理</category><category domain="tags">投資</category></item><item><title>人事を尽くして天命を待つ、その確率論的原則</title><link>https://yifeitao.com/ja/the-principle-of-probability-of-destiny/</link><pubDate>Wed, 04 Jan 2017 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/the-principle-of-probability-of-destiny/</guid><description>&lt;p&gt;なぜ馬雲（ジャック・マー）はあれほど金持ちなのか。&lt;/p&gt;
&lt;p&gt;世間に流布する成功美談を探せば、多くの分析が見つかる。たいていは馬雲の幼少期から語り始め、あたかも彼が運命づけられた商業の巨人であるかのようだ。&lt;/p&gt;
&lt;p&gt;中国の三十数年の歴史的過程を分析すれば、馬雲に似た人物が現れるのはほとんど必然である。中国には世界最大の市場があり、そこに情報革命の波が重なった。新経済の富豪が現れるのは必然で、いわゆる「大風起こりて猪、飛揚す」である。&lt;/p&gt;
&lt;p&gt;すると問題はこうなる。なぜその人物が馬雲なのか。歴史から見ればこれはただの偶然の出来事であり、馬雲でなければ李雲、張雲だった。成功美談はすべて後知恵であり、結びつけられるすべての要因を最終的な成功に結びつける。なぜなら成功美談は読む者に一瞬の幻覚を与えねばならないからだ。私にも成功できる、本に書いてあるとおりにやれば。&lt;/p&gt;
&lt;p&gt;成功ということについて、古人はすでに道理を言い尽くしていると思う。すなわち「人事を尽くして天命を待つ」である。これを確率の観点からもう一度読み解いてみたい。&lt;/p&gt;
&lt;p&gt;一人の成功はつねに確率の出来事であり、運命のうち不可制御な要素が多すぎる。誰も自分の運命を統御できるとは保証できない。馬雲を過去に戻し、並行宇宙でもう一度やらせたとしても、おそらく微小な変化で彼は長者番付の首位に入れなくなる。それでも彼は大部分の人より充実して生きるだろうと私は信じる。何しろ彼は大多数の人より努力して考え、その考えを実行してきたのだから。&lt;/p&gt;
&lt;p&gt;成功は確率の出来事であり、努力はその確率を高める。とりわけ持続的な努力はそうだ。成功率50%のことを二回続ければ、成功確率は75%に上がる。人生は賭博と違い、一度の機会をつかめば一気に飛躍できるからだ。例えばフラッピー・バードで小銭を稼いだベトナム人は、それ以前に十数本のアプリを作って一つも当たらなかった。彼もただ自分の粘りで一つの成功を待ち当てたにすぎない。&lt;/p&gt;
&lt;p&gt;本当に役に立つ道理は、聞いてすぐ人を興奮させるものではないかもしれない。「人事を尽くして天命を待つ」はそういう道理だ。自分の最大の努力を尽くせと求めながら、成功には過度の期待を抱くなとも言う。浮ついた人々のうち、それができる者が何人いるだろうか。&lt;/p&gt;
&lt;p&gt;努力しても必ず成功するとは限らないのに、なぜ努力するのか。&lt;/p&gt;
&lt;p&gt;努力は成功の確率を高める。空から餅が降っても、外に出て拾わなければならない。&lt;/p&gt;
&lt;p&gt;努力し続けても、ついに成功できなかったらどうするのか。&lt;/p&gt;
&lt;p&gt;まず、成功は努力への報いと見るべきである。努力の後の報いには大小があり、それは確率の出来事だ。だからより成長に注目すべきで、そもそも成功か失敗かという明確な境界は本質的に存在しない。一歩引いて見れば、たとえ最後まで「成功」しなくても、人は努力して一生を生き抜くことができれば、この生を無駄にしない。それはすでに生命の意味に近づいており、天の恵みと見るべきである。&lt;/p&gt;</description><content:encoded><![CDATA[<p>なぜ馬雲（ジャック・マー）はあれほど金持ちなのか。</p>
<p>世間に流布する成功美談を探せば、多くの分析が見つかる。たいていは馬雲の幼少期から語り始め、あたかも彼が運命づけられた商業の巨人であるかのようだ。</p>
<p>中国の三十数年の歴史的過程を分析すれば、馬雲に似た人物が現れるのはほとんど必然である。中国には世界最大の市場があり、そこに情報革命の波が重なった。新経済の富豪が現れるのは必然で、いわゆる「大風起こりて猪、飛揚す」である。</p>
<p>すると問題はこうなる。なぜその人物が馬雲なのか。歴史から見ればこれはただの偶然の出来事であり、馬雲でなければ李雲、張雲だった。成功美談はすべて後知恵であり、結びつけられるすべての要因を最終的な成功に結びつける。なぜなら成功美談は読む者に一瞬の幻覚を与えねばならないからだ。私にも成功できる、本に書いてあるとおりにやれば。</p>
<p>成功ということについて、古人はすでに道理を言い尽くしていると思う。すなわち「人事を尽くして天命を待つ」である。これを確率の観点からもう一度読み解いてみたい。</p>
<p>一人の成功はつねに確率の出来事であり、運命のうち不可制御な要素が多すぎる。誰も自分の運命を統御できるとは保証できない。馬雲を過去に戻し、並行宇宙でもう一度やらせたとしても、おそらく微小な変化で彼は長者番付の首位に入れなくなる。それでも彼は大部分の人より充実して生きるだろうと私は信じる。何しろ彼は大多数の人より努力して考え、その考えを実行してきたのだから。</p>
<p>成功は確率の出来事であり、努力はその確率を高める。とりわけ持続的な努力はそうだ。成功率50%のことを二回続ければ、成功確率は75%に上がる。人生は賭博と違い、一度の機会をつかめば一気に飛躍できるからだ。例えばフラッピー・バードで小銭を稼いだベトナム人は、それ以前に十数本のアプリを作って一つも当たらなかった。彼もただ自分の粘りで一つの成功を待ち当てたにすぎない。</p>
<p>本当に役に立つ道理は、聞いてすぐ人を興奮させるものではないかもしれない。「人事を尽くして天命を待つ」はそういう道理だ。自分の最大の努力を尽くせと求めながら、成功には過度の期待を抱くなとも言う。浮ついた人々のうち、それができる者が何人いるだろうか。</p>
<p>努力しても必ず成功するとは限らないのに、なぜ努力するのか。</p>
<p>努力は成功の確率を高める。空から餅が降っても、外に出て拾わなければならない。</p>
<p>努力し続けても、ついに成功できなかったらどうするのか。</p>
<p>まず、成功は努力への報いと見るべきである。努力の後の報いには大小があり、それは確率の出来事だ。だからより成長に注目すべきで、そもそも成功か失敗かという明確な境界は本質的に存在しない。一歩引いて見れば、たとえ最後まで「成功」しなくても、人は努力して一生を生き抜くことができれば、この生を無駄にしない。それはすでに生命の意味に近づいており、天の恵みと見るべきである。</p>
]]></content:encoded><category>methodology</category><category domain="tags">確率</category><category domain="tags">人生</category></item><item><title>インターネットで情報を得る三つの方法：漫遊・購読・検索</title><link>https://yifeitao.com/ja/3-ways-to-get-information-on-internet/</link><pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/3-ways-to-get-information-on-internet/</guid><description>&lt;p&gt;数週間前、私はスマホのほぼすべてのアプリの通知を切った。すると翌週、各種アプリを使うたびに、通知をオンにして重要な情報を逃さないようにと繰り返し促された。無視したが、重要な情報を逃したようでもなかった。このいわゆる情報時代において、私たちが毎日受け取る情報は古代の皇帝より多いかもしれないが、本当に必要なものがどれほどあるかは大いに疑わしい。あなたは情報の海を泳いでいるつもりでも、実際には他人に注意力と、いわゆる退屈な時間を収穫されているだけだ。インターネットは極めて強力な道具であり、これをうまく使うには自分自身が強くなければならない。さもなければ容易に道具の奴隷になる。本稿ではインターネットで情報を得る三つの方法、漫遊・購読・検索を整理する。&lt;/p&gt;
&lt;h2 id="1-漫遊"&gt;1 漫遊&lt;/h2&gt;
&lt;p&gt;ここでの漫遊とは、ある程度、明確な目的を持たずにインターネット上をぶらつくことを指す。この方法はインターネットが情報獲得の方法にもたらした最大の変革であり、最大の諸刃の剣でもある。ハイパーリンクが登場して以来、情報間の結びつきは便利になり無限に拡張した。伝統的な情報の組織化はほとんどが線形・木構造だったが、インターネットの情報組織は網状であり、多くの利点をもたらす。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;網状はあらゆる複雑な構造を模擬できるため、情報構造をより忠実に表現する可能性を提供する。例えばウィキペディアの伝統的な百科事典に対する構造上の優位である。&lt;/li&gt;
&lt;li&gt;情報の内部と外部の境界がより曖昧になり、「参考文献」がより入手しやすくなる。インターネット上で特集を組むのは伝統的メディアよりはるかに容易だ。&lt;/li&gt;
&lt;li&gt;無限の驚きと出会う可能性を提供する。漫遊の過程で、以前は知らなかったものに出会い、思考の火花がぶつかり合い、情報の孤島と自分の認知の障壁を打ち破ることができる。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;しかしこの方法の欠陥も明らかだ。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;あまりに多くのゴミ情報に過剰な時間を奪われる。情報を作り出す多くの人は下心があり、各種の釣りタイトルが四六時中あなたの注意力を覗き込んでいる。&lt;/li&gt;
&lt;li&gt;得られる情報は非常に断片的で体系をなさない。インターネットの情報は依然として無料が主流で、書籍に比べて品質は依然として相対的に低い。&lt;/li&gt;
&lt;li&gt;漫遊は浮ついた情緒を伴いやすく、いわゆる情報過多をもたらす。啓発記事で立志を代替し、知ることで理解を代替し、知っていることで知識を代替する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;漫遊をよい方向に機能させるには、最も必要なのは自分自身の強さであり、価値観や批判的思考などを含む。そうしてこそ情報の海の中で養分を吸収し続けられる。さもなければ溺れるだけだ。&lt;/p&gt;
&lt;h2 id="2-購読"&gt;2 購読&lt;/h2&gt;
&lt;p&gt;購読はインターネット以前の伝統的メディアが人とやり取りする主な方法だったが、インターネットの発展に伴い、インターネット上で情報を得る方法の一つにもなった。ほとんどの情報提供者はユーザーに購読してほしがり、長期的な関係を築くことで利益を得る。その形式はフォローやプッシュ通知などでありうる。例えばWeChatの公众号（公式アカウント）や朋友圈（モーメンツ）は情報漫遊への一種の復古であり反動である。WeChatの公众号の記事は共有のハイパーリンクさえ意図的に不安定にして、自前の小さな生態系を作ろうとしている。購読には多くの変種があり、最も前衛的なのは機械学習による推薦機構で、本質的には個人の興味に基づく購読である。購読が復古であれ前衛であれ、利点がある。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;購読は一種の選別機構であり、自分が本当に関心のある人や事柄に注意を集中でき、あるいは信頼できる人をフォローすることで情報をフィルタリングできる。&lt;/li&gt;
&lt;li&gt;購読は有料化の仕組みを組み込みやすく、高品質な知識サービスを構築できる。高速な反復と同時に情報の高品質を保てる。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;しかし購読にもリスクがある。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;サークル化。能動的な選別であれ機械的な選別であれ、最後に聞き見るのは自分が見たい聞きたいものばかりになる。自分の好みを世界の真実と理解するのは大きなリスクだ。&lt;/li&gt;
&lt;li&gt;能動的に購読しているように見えて、その背後には大きな受動性がある。人は自分の選択を擁護する傾向があり、ある人のファンになるとその誤りを美化するかもしれず、金を払っていれば最初の選択をさらに固める。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="3-検索"&gt;3 検索&lt;/h2&gt;
&lt;p&gt;検索は学術研究に必須の素養であり、インターネット時代を生きる現代人にも必須の素養だと思う。検索エンジンはインターネットにおけるハイパーリンク以降の最も偉大な発明である。検索を通じて、情報を得る者は初めてインターネットを道具として扱える。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;便利な検索は孤立した知識を身につけることの価値を非常に低くする。例えばテレビのクイズ番組にある「中国の線路の幅はどれくらいか？」のような問題だ。したがって新しい領域に入るのは容易になる。&lt;/li&gt;
&lt;li&gt;検索は強い目的性を持ち、情報を我が物とすることに良い出発点がある。ネットを2時間ぶらついても何を見たか思い出せない、という現象はもう起きない。&lt;/li&gt;
&lt;li&gt;検索はしばしば即座に問題を解決できる。あなたがその問題に遭遇した最初の不運な人でない限り。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;検索が機能するには、検索の基本スキルを高める以外に、最も重要なのは自分自身の治学水準の向上である。さもなければ検索で思考を代替する誤りに陥り、インターネットという外付けの脳が与える情報に満足し、自分で総合的に運用して創意を出すことができなくなる。&lt;/p&gt;
&lt;h2 id="4-総合"&gt;4 総合&lt;/h2&gt;
&lt;p&gt;概念を整理するために三つの方法を挙げたが、実際の場面はしばしば三者の結合である。例えば新浪微博（Weibo）であるプログラマーをフォローし（購読）、彼がとある新しいプログラミング言語が面白いと言い、リンクを添えていたので何気なく開いてみる（漫遊）。本当に良さそうなので、Googleで言語の公式サイトなど多くの情報を検索し（検索）、1時間集中して学ぶ。しかしこうもなりうる。Weiboでとあるプログラマーをフォローし（購読）、彼がおかしな動画をリポストしたので何気なく開いてみる（漫遊）。その結果、一つ見てまた一つ見て、1時間後には自分が何をしているか分からない。&lt;/p&gt;
&lt;p&gt;これらの情報獲得の方法にはそれぞれ利点がある。鍵は使うときに「意識的」であることだ。自分の脳に常に自分の状態を意識させる。最も自由な漫遊状態であっても、一定の時間制限を設けるべきだ。さもなければ無数の注意力のブラックホールが、あなたの時間を訳も分からぬうちに殺してしまう。&lt;/p&gt;
&lt;p&gt;インターネットは強力な道具であり、弱者に対しては碾圧すら加える。自分の判断力・分析力を高め続けなければ、絶えず注意力を収穫され、絶えず洗脳され、世の中にはもっともらしい言葉があふれていると感じながら、それでもこの人生をうまく生きられない。&lt;/p&gt;</description><content:encoded><![CDATA[<p>数週間前、私はスマホのほぼすべてのアプリの通知を切った。すると翌週、各種アプリを使うたびに、通知をオンにして重要な情報を逃さないようにと繰り返し促された。無視したが、重要な情報を逃したようでもなかった。このいわゆる情報時代において、私たちが毎日受け取る情報は古代の皇帝より多いかもしれないが、本当に必要なものがどれほどあるかは大いに疑わしい。あなたは情報の海を泳いでいるつもりでも、実際には他人に注意力と、いわゆる退屈な時間を収穫されているだけだ。インターネットは極めて強力な道具であり、これをうまく使うには自分自身が強くなければならない。さもなければ容易に道具の奴隷になる。本稿ではインターネットで情報を得る三つの方法、漫遊・購読・検索を整理する。</p>
<h2 id="1-漫遊">1 漫遊</h2>
<p>ここでの漫遊とは、ある程度、明確な目的を持たずにインターネット上をぶらつくことを指す。この方法はインターネットが情報獲得の方法にもたらした最大の変革であり、最大の諸刃の剣でもある。ハイパーリンクが登場して以来、情報間の結びつきは便利になり無限に拡張した。伝統的な情報の組織化はほとんどが線形・木構造だったが、インターネットの情報組織は網状であり、多くの利点をもたらす。</p>
<ol>
<li>網状はあらゆる複雑な構造を模擬できるため、情報構造をより忠実に表現する可能性を提供する。例えばウィキペディアの伝統的な百科事典に対する構造上の優位である。</li>
<li>情報の内部と外部の境界がより曖昧になり、「参考文献」がより入手しやすくなる。インターネット上で特集を組むのは伝統的メディアよりはるかに容易だ。</li>
<li>無限の驚きと出会う可能性を提供する。漫遊の過程で、以前は知らなかったものに出会い、思考の火花がぶつかり合い、情報の孤島と自分の認知の障壁を打ち破ることができる。</li>
</ol>
<p>しかしこの方法の欠陥も明らかだ。</p>
<ol>
<li>あまりに多くのゴミ情報に過剰な時間を奪われる。情報を作り出す多くの人は下心があり、各種の釣りタイトルが四六時中あなたの注意力を覗き込んでいる。</li>
<li>得られる情報は非常に断片的で体系をなさない。インターネットの情報は依然として無料が主流で、書籍に比べて品質は依然として相対的に低い。</li>
<li>漫遊は浮ついた情緒を伴いやすく、いわゆる情報過多をもたらす。啓発記事で立志を代替し、知ることで理解を代替し、知っていることで知識を代替する。</li>
</ol>
<p>漫遊をよい方向に機能させるには、最も必要なのは自分自身の強さであり、価値観や批判的思考などを含む。そうしてこそ情報の海の中で養分を吸収し続けられる。さもなければ溺れるだけだ。</p>
<h2 id="2-購読">2 購読</h2>
<p>購読はインターネット以前の伝統的メディアが人とやり取りする主な方法だったが、インターネットの発展に伴い、インターネット上で情報を得る方法の一つにもなった。ほとんどの情報提供者はユーザーに購読してほしがり、長期的な関係を築くことで利益を得る。その形式はフォローやプッシュ通知などでありうる。例えばWeChatの公众号（公式アカウント）や朋友圈（モーメンツ）は情報漫遊への一種の復古であり反動である。WeChatの公众号の記事は共有のハイパーリンクさえ意図的に不安定にして、自前の小さな生態系を作ろうとしている。購読には多くの変種があり、最も前衛的なのは機械学習による推薦機構で、本質的には個人の興味に基づく購読である。購読が復古であれ前衛であれ、利点がある。</p>
<ol>
<li>購読は一種の選別機構であり、自分が本当に関心のある人や事柄に注意を集中でき、あるいは信頼できる人をフォローすることで情報をフィルタリングできる。</li>
<li>購読は有料化の仕組みを組み込みやすく、高品質な知識サービスを構築できる。高速な反復と同時に情報の高品質を保てる。</li>
</ol>
<p>しかし購読にもリスクがある。</p>
<ol>
<li>サークル化。能動的な選別であれ機械的な選別であれ、最後に聞き見るのは自分が見たい聞きたいものばかりになる。自分の好みを世界の真実と理解するのは大きなリスクだ。</li>
<li>能動的に購読しているように見えて、その背後には大きな受動性がある。人は自分の選択を擁護する傾向があり、ある人のファンになるとその誤りを美化するかもしれず、金を払っていれば最初の選択をさらに固める。</li>
</ol>
<h2 id="3-検索">3 検索</h2>
<p>検索は学術研究に必須の素養であり、インターネット時代を生きる現代人にも必須の素養だと思う。検索エンジンはインターネットにおけるハイパーリンク以降の最も偉大な発明である。検索を通じて、情報を得る者は初めてインターネットを道具として扱える。</p>
<ol>
<li>便利な検索は孤立した知識を身につけることの価値を非常に低くする。例えばテレビのクイズ番組にある「中国の線路の幅はどれくらいか？」のような問題だ。したがって新しい領域に入るのは容易になる。</li>
<li>検索は強い目的性を持ち、情報を我が物とすることに良い出発点がある。ネットを2時間ぶらついても何を見たか思い出せない、という現象はもう起きない。</li>
<li>検索はしばしば即座に問題を解決できる。あなたがその問題に遭遇した最初の不運な人でない限り。</li>
</ol>
<p>検索が機能するには、検索の基本スキルを高める以外に、最も重要なのは自分自身の治学水準の向上である。さもなければ検索で思考を代替する誤りに陥り、インターネットという外付けの脳が与える情報に満足し、自分で総合的に運用して創意を出すことができなくなる。</p>
<h2 id="4-総合">4 総合</h2>
<p>概念を整理するために三つの方法を挙げたが、実際の場面はしばしば三者の結合である。例えば新浪微博（Weibo）であるプログラマーをフォローし（購読）、彼がとある新しいプログラミング言語が面白いと言い、リンクを添えていたので何気なく開いてみる（漫遊）。本当に良さそうなので、Googleで言語の公式サイトなど多くの情報を検索し（検索）、1時間集中して学ぶ。しかしこうもなりうる。Weiboでとあるプログラマーをフォローし（購読）、彼がおかしな動画をリポストしたので何気なく開いてみる（漫遊）。その結果、一つ見てまた一つ見て、1時間後には自分が何をしているか分からない。</p>
<p>これらの情報獲得の方法にはそれぞれ利点がある。鍵は使うときに「意識的」であることだ。自分の脳に常に自分の状態を意識させる。最も自由な漫遊状態であっても、一定の時間制限を設けるべきだ。さもなければ無数の注意力のブラックホールが、あなたの時間を訳も分からぬうちに殺してしまう。</p>
<p>インターネットは強力な道具であり、弱者に対しては碾圧すら加える。自分の判断力・分析力を高め続けなければ、絶えず注意力を収穫され、絶えず洗脳され、世の中にはもっともらしい言葉があふれていると感じながら、それでもこの人生をうまく生きられない。</p>
]]></content:encoded><category>methodology</category><category domain="tags">インターネット</category><category domain="tags">情報収集</category></item><item><title>「デバッグの法則」（Debugging Rules!）——デバッグは技術である</title><link>https://yifeitao.com/ja/debug-is-technology/</link><pubDate>Sat, 24 Dec 2016 00:00:00 +0000</pubDate><guid>https://yifeitao.com/ja/debug-is-technology/</guid><description>&lt;p&gt;一般に、エンジニアがあるものを芸術、あるいは玄学と呼ぶときは、その難度が高く、従うべき規則があまりないことを意味する。デバッグはこの範疇に属する。ほとんどすべてのプログラマは、バグに翻弄されて七転八倒した経験を持つ。時にあれこれいじっているうちに問題は解決したように見えるが、なぜ解決したのかは分からない。それを説明不能な玄学現象として扱うしかない。最も厄介なバグは、たまにしか現れず再現が難しいもので、学名をハイゼンベルクバグという。&lt;/p&gt;
&lt;p&gt;しかし、ソフトウェアはやはり科学技術の範疇に属するものであり、デバッグもまた技術的な仕事であるべきだ。「デバッグの法則」（Debugging Rules!）は、デバッグ技術を扱った珍しい書物である。九つの普遍的な原則は、ソフトウェアとハードウェアの開発・保守に当てはまるだけでなく、日常生活にさえ応用できる。この本を見つけるのにも少し苦労したが、幸いなことに図霊コミュニティには&lt;a href="http://www.ituring.com.cn/book/84"
rel="noopener noreferrer" target="_blank" class="external"&gt;正規の電子書籍&lt;/a&gt;
が売られていた。&lt;/p&gt;
&lt;p&gt;正直に言えば、著者が挙げる例の多くはハードウェア寄りで、理解するのにやや隔たりを感じる。しかし九つの原則は実に実用的で、私の以前の開発・デバッグの経験の中でも無意識にいくつかはまとめていたかもしれない。それでもこの本を読むと、武術の心法を手に入れたような感覚がある。読んだ後、以下で九つの原則をもう一度たどり、理解を深める。&lt;/p&gt;
&lt;h2 id="1-システムを理解する"&gt;1 システムを理解する&lt;/h2&gt;
&lt;p&gt;これは最も重要な原則である。バグを分析するには、当然システムがどのように動作するかを理解する必要がある。そのためには基本原理をいくつか学び、身につける必要があり、具体的なクラスライブラリ、ツール、技術については関連するドキュメントを真剣に読む必要がある。私が公式ドキュメントを真剣に読む習慣を身につけたのはここ数年のことである。検索エンジンの発達によって、我々は google 指向プログラミングの習慣を身につけてしまった。問題に直面すると、いつも一気に解決しようとする。結果として多くの回り道をすることになる。道標を見る時間を惜しむからだ。本書は特に「一字一句」マニュアルを読むことを強調しており、これは浮ついた人間への頭からの一撃である。システムを理解せずにデバッグを始めることと、原理を理解せずにコードを書くことは一脈相通じるもので、俗に「偶然指向プログラミング」と呼ばれる。&lt;/p&gt;
&lt;h2 id="2-失敗を再現する"&gt;2 失敗を再現する&lt;/h2&gt;
&lt;p&gt;この原則はバグを再現することの重要性と方法を説く。バグは必ずある特定の条件下で発生する。その特定の条件を丹念に突き止めれば、半分は成功したも同然である。私のハードウェア保守の経験から言えば、バグを発見した人がその過程全体を詳細に記録できれば、非常に役立つ。多くのバグは発生条件が厳しく、だからプログラマの口癖の一つが「私のところでは問題ないです」なのである。こうしたバグに対しては、まずシミュレーションの方法を見つけるのがよい。たとえばソフトウェアの動作や相互作用の速度を上げる、ストレステストを行うなどである。次に、ソフトウェア内部に詳細で合理的なバグ記録の仕組みを持ち、内部から再現条件を見つけやすくする。&lt;/p&gt;
&lt;h2 id="3-考えず見る"&gt;3 考えず、見る&lt;/h2&gt;
&lt;p&gt;この原則は観測の重要性を強調する。空想するよりも現実に向き合うことが大切である。言語は思考に影響する。だからバグに遭遇したときの口癖は「ちょっと見てみます」であるべきで、「たぶん〜が原因だと思います」ではない。我々はあらゆる手段を尽くしてバグの細部をはっきりと見るべきであり、成熟したプログラムにはデバッグ用の基盤が備わっているべきである。私の経験から言えば、少なくともログは不可欠である。初級のプログラマはブレークポイントだけに頼ってデバッグする習慣があるが、問題はブレークポイント自体がプログラムの実行フローを変えてしまうことである（特にマルチスレッドの場合）。もちろん推測も依然として有用で、観測の範囲を絞り込む助けになる。あるいは少なくとも観測の優先順位を決めるのに役立ち、そこで経験が生きる。しかしどうであれ、経験は観測に代わりえない。&lt;/p&gt;
&lt;h2 id="4-分割統治"&gt;4 分割統治&lt;/h2&gt;
&lt;p&gt;二分探索法は探索の時間計算量を線形から対数に変えられる。これはプログラム中の探索アルゴリズムだけでなく、デバッグ時の方法論でもある。システムにこの意識があれば、鍵となるのはシステムをどう分割するかであり、ここで原則1に戻る。少なくともブレークポイントでデバッグするとき、バグの位置を見つけるのに二分法が使えるし、ログを挿入するときにもこの原則を応用できる。さらに本書ではバグ同士が互いに影響し合う現象にも触れている。私はむしろバグのシーソー現象と言ってもよいとさえ思う。解決の道は一つも見逃さないことである。バグをデバッグしているうちにコードの品質があまりに悪いことに気づき、リファクタリングが必要になることもある。そうでなければ砂の上に高台は築けない。効果的なリファクタリングを経て、バグが自然に発見され解消されることさえある。&lt;/p&gt;
&lt;h2 id="5-一度に一箇所だけ変える"&gt;5 一度に一箇所だけ変える&lt;/h2&gt;
&lt;p&gt;この原則は実験科学における対照の原則に似ている。一度に一つの変数だけを考察し、正常な状況と異常な状況を比較し、いかなるテスト条件の差異も見落としてはいけない。前の条ではバグを一つも見逃さないと言ったが、一つずつ片付ける必要もある。リファクタリングの際も、理解していないコードをやたらにいじらないよう注意すべきである。多くのコードの危険性は、一箇所を触ると全体に響くことにある。これがバグ修正時の最大のリスクだと思う。しばしば一つのバグを消すと同時にいくつかのバグを増やすことになる。やはり原則1に戻り、システムを理解することである。とはいえ、先人が書いたコードを理解するのは容易ではないこともある。これはまた、コードを書くときに徳を積むべきことを我々に示している。コードはコンパイラのためにあるのではなく、後に我々のコードを保守する人のためにあるのだ。&lt;/p&gt;
&lt;h2 id="6-監査証跡を残す"&gt;6 監査証跡を残す&lt;/h2&gt;
&lt;p&gt;この原則は記録の重要性と方法を説く。医者が診察するのと同じで、適切な質問をし、具体的で有効な答えを出す必要がある。私の経験では、バグのデバッグを始めると、人はすっかり深みにはまって抜け出せなくなることがある。記録を取ることで、思考の泥沼から自分を引き離し、デバッグの計画と方法を絶えず修正できる。専用のシステムソフトウェアでは、ソフトウェアの利用者に、バグの発生状況を有効な言葉で記録する方法を訓練する必要がある。記録がなければ、デバッグする側は適切な質問で利用者の記憶を呼び覚まさねばならない。また、深夜に解決できないバグは一眠りする必要があると思う。拡散思考が自動的に働き、たいてい朝には解決している。&lt;/p&gt;
&lt;h2 id="7-プラグを確認する"&gt;7 プラグを確認する&lt;/h2&gt;
&lt;p&gt;この原則は、いわゆる「初歩的なミス」について述べている。母が「パソコンのスピーカーから音が出ない」と言ってきたら、まず電源が入っているかを聞く、という類である。あるいは main 関数を mian 関数と書いてしまうとか。一度、ブレークポイントを置いてデバッグしてもブレークポイントで止まらず、後で分かったのは、似たコードが二箇所あり、ブレークポイントを間違った場所に置いていたことだった。シナリオと経験に照らして、そのシナリオでよくある初歩的なミスを犯していないか自問すれば、多くの場合すぐに効果が出る。多くの電気機器の取扱説明書の故障 FAQ でも、プラグの確認が強調されている。初歩的なミスが「初歩的」なのは難度であって、頻度ではない。&lt;/p&gt;
&lt;h2 id="8-新しい視点を得る"&gt;8 新しい視点を得る&lt;/h2&gt;
&lt;p&gt;この原則は助けを求めることと交流について述べている。ここで重要なのは、他者の視点によって自分の思考の固定観念を打ち破ることである。だから相手には現象だけを詳細に説明し、自分の推測は言わないほうがよい。相手の判断を汚染してしまうからだ。プログラマにとって、このときの google 指向プログラミングの力は驚異的である。おそらく九割の問題は、実際に質問する必要はなく、適切な検索語を見つけて検索すればよい。中国のプログラマにとって、英語で検索することは必須の技能である。もちろん、見つけたものを本当に理解することも非常に重要で、薬を見たらすぐ飲む、ではいけない。もし google で本当に検索できなければ、あなたのレベルが少し高い証拠である。そのときは stackoverflow などのコミュニティで質問すればよい。&lt;/p&gt;
&lt;h2 id="9-バグを修正しなければバグは依然として存在する"&gt;9 バグを修正しなければ、バグは依然として存在する&lt;/h2&gt;
&lt;p&gt;この原則は、甘い期待を抱くな、バグが一瞬顔を出しただけだからといってダチョウ政策を取るな、ということを述べている。来るべきものは必ず来る。報いがないのではない、時が来ていないだけである。もちろん実際の状況は複雑でありうる。ソフトウェア工学はもともと時間・コスト・品質の妥協の産物である。しかし、たとえ一部のバグを見逃すとしても、それによって生じうる結果を分析し、十分な防御機構を築くべきである。だから多くのソフトウェア認証体系にはソフトウェア安全水準の規格がある。ここにはバグの再現と一を聞いて十を知るという問題も関わる。本当にバグの原因を見つけ、有効な修正手段を提供したことを確認し、同様の問題をすべて洗い出す必要がある。たとえばメモリリークを一つ修正したら、そうしたリークを引き起こすすべてのコードを修正しなければならない。&lt;/p&gt;
&lt;h2 id="附記デバッグしやすいコードの書き方"&gt;附記：デバッグしやすいコードの書き方&lt;/h2&gt;
&lt;p&gt;デバッグの原則から逆に見ると、ソフトウェアの構築自体にも大いに役立つ。何しろデバッグは穴を塞ぐだけのものであり、書かれるコードのバグが少ないほうがよく、デバッグのときに便利なように手段を多く用意しておくのがよい。ここでも個人の経験を簡単にまとめておく。不断の改善が必要かもしれない。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;プログラムにはログの仕組みを備えるべきで、プログラムの debug 版ではデバッグ情報を出力しやすくする。release 版であっても、ソフトウェアに問題が発生したとき（たとえば C# で例外が投げられたとき）の詳細な状況を記録すべきである；&lt;/li&gt;
&lt;li&gt;人間が読むのに適したコードを書くべきである。そうでなければ後の保守をする人が読んでも分からない。どうデバッグせよというのか。どう書くかは『コードコンプリート』に最も詳しく書かれている。各種の慣習的な書き方のほかに、相手の身になって考えることも重要だと思う；&lt;/li&gt;
&lt;li&gt;各種のクラスライブラリやツールを使うときは、できるだけ原理を理解し、公式ドキュメントを丹念に読む。たとえばメモリリークをどう防ぐか、マルチスレッドの状況にどう対処するかを詳しく説明しているクラスライブラリもある。よく見てから使えば、禍根を植えることが少なくなる。少なくともデバッグのときに蠅のように当てもなく原因を推測する必要はなくなる；&lt;/li&gt;
&lt;li&gt;テストしやすいコードを書く。そうすればデバッグのときに問題を切り離しやすく、二分法も使いやすい。この点は TDD の実践が比較的十分に論じており、私自身も強化する必要がある。&lt;/li&gt;
&lt;/ol&gt;</description><content:encoded><![CDATA[<p>一般に、エンジニアがあるものを芸術、あるいは玄学と呼ぶときは、その難度が高く、従うべき規則があまりないことを意味する。デバッグはこの範疇に属する。ほとんどすべてのプログラマは、バグに翻弄されて七転八倒した経験を持つ。時にあれこれいじっているうちに問題は解決したように見えるが、なぜ解決したのかは分からない。それを説明不能な玄学現象として扱うしかない。最も厄介なバグは、たまにしか現れず再現が難しいもので、学名をハイゼンベルクバグという。</p>
<p>しかし、ソフトウェアはやはり科学技術の範疇に属するものであり、デバッグもまた技術的な仕事であるべきだ。「デバッグの法則」（Debugging Rules!）は、デバッグ技術を扱った珍しい書物である。九つの普遍的な原則は、ソフトウェアとハードウェアの開発・保守に当てはまるだけでなく、日常生活にさえ応用できる。この本を見つけるのにも少し苦労したが、幸いなことに図霊コミュニティには<a href="http://www.ituring.com.cn/book/84"
   rel="noopener noreferrer" target="_blank" class="external">正規の電子書籍</a>
が売られていた。</p>
<p>正直に言えば、著者が挙げる例の多くはハードウェア寄りで、理解するのにやや隔たりを感じる。しかし九つの原則は実に実用的で、私の以前の開発・デバッグの経験の中でも無意識にいくつかはまとめていたかもしれない。それでもこの本を読むと、武術の心法を手に入れたような感覚がある。読んだ後、以下で九つの原則をもう一度たどり、理解を深める。</p>
<h2 id="1-システムを理解する">1 システムを理解する</h2>
<p>これは最も重要な原則である。バグを分析するには、当然システムがどのように動作するかを理解する必要がある。そのためには基本原理をいくつか学び、身につける必要があり、具体的なクラスライブラリ、ツール、技術については関連するドキュメントを真剣に読む必要がある。私が公式ドキュメントを真剣に読む習慣を身につけたのはここ数年のことである。検索エンジンの発達によって、我々は google 指向プログラミングの習慣を身につけてしまった。問題に直面すると、いつも一気に解決しようとする。結果として多くの回り道をすることになる。道標を見る時間を惜しむからだ。本書は特に「一字一句」マニュアルを読むことを強調しており、これは浮ついた人間への頭からの一撃である。システムを理解せずにデバッグを始めることと、原理を理解せずにコードを書くことは一脈相通じるもので、俗に「偶然指向プログラミング」と呼ばれる。</p>
<h2 id="2-失敗を再現する">2 失敗を再現する</h2>
<p>この原則はバグを再現することの重要性と方法を説く。バグは必ずある特定の条件下で発生する。その特定の条件を丹念に突き止めれば、半分は成功したも同然である。私のハードウェア保守の経験から言えば、バグを発見した人がその過程全体を詳細に記録できれば、非常に役立つ。多くのバグは発生条件が厳しく、だからプログラマの口癖の一つが「私のところでは問題ないです」なのである。こうしたバグに対しては、まずシミュレーションの方法を見つけるのがよい。たとえばソフトウェアの動作や相互作用の速度を上げる、ストレステストを行うなどである。次に、ソフトウェア内部に詳細で合理的なバグ記録の仕組みを持ち、内部から再現条件を見つけやすくする。</p>
<h2 id="3-考えず見る">3 考えず、見る</h2>
<p>この原則は観測の重要性を強調する。空想するよりも現実に向き合うことが大切である。言語は思考に影響する。だからバグに遭遇したときの口癖は「ちょっと見てみます」であるべきで、「たぶん〜が原因だと思います」ではない。我々はあらゆる手段を尽くしてバグの細部をはっきりと見るべきであり、成熟したプログラムにはデバッグ用の基盤が備わっているべきである。私の経験から言えば、少なくともログは不可欠である。初級のプログラマはブレークポイントだけに頼ってデバッグする習慣があるが、問題はブレークポイント自体がプログラムの実行フローを変えてしまうことである（特にマルチスレッドの場合）。もちろん推測も依然として有用で、観測の範囲を絞り込む助けになる。あるいは少なくとも観測の優先順位を決めるのに役立ち、そこで経験が生きる。しかしどうであれ、経験は観測に代わりえない。</p>
<h2 id="4-分割統治">4 分割統治</h2>
<p>二分探索法は探索の時間計算量を線形から対数に変えられる。これはプログラム中の探索アルゴリズムだけでなく、デバッグ時の方法論でもある。システムにこの意識があれば、鍵となるのはシステムをどう分割するかであり、ここで原則1に戻る。少なくともブレークポイントでデバッグするとき、バグの位置を見つけるのに二分法が使えるし、ログを挿入するときにもこの原則を応用できる。さらに本書ではバグ同士が互いに影響し合う現象にも触れている。私はむしろバグのシーソー現象と言ってもよいとさえ思う。解決の道は一つも見逃さないことである。バグをデバッグしているうちにコードの品質があまりに悪いことに気づき、リファクタリングが必要になることもある。そうでなければ砂の上に高台は築けない。効果的なリファクタリングを経て、バグが自然に発見され解消されることさえある。</p>
<h2 id="5-一度に一箇所だけ変える">5 一度に一箇所だけ変える</h2>
<p>この原則は実験科学における対照の原則に似ている。一度に一つの変数だけを考察し、正常な状況と異常な状況を比較し、いかなるテスト条件の差異も見落としてはいけない。前の条ではバグを一つも見逃さないと言ったが、一つずつ片付ける必要もある。リファクタリングの際も、理解していないコードをやたらにいじらないよう注意すべきである。多くのコードの危険性は、一箇所を触ると全体に響くことにある。これがバグ修正時の最大のリスクだと思う。しばしば一つのバグを消すと同時にいくつかのバグを増やすことになる。やはり原則1に戻り、システムを理解することである。とはいえ、先人が書いたコードを理解するのは容易ではないこともある。これはまた、コードを書くときに徳を積むべきことを我々に示している。コードはコンパイラのためにあるのではなく、後に我々のコードを保守する人のためにあるのだ。</p>
<h2 id="6-監査証跡を残す">6 監査証跡を残す</h2>
<p>この原則は記録の重要性と方法を説く。医者が診察するのと同じで、適切な質問をし、具体的で有効な答えを出す必要がある。私の経験では、バグのデバッグを始めると、人はすっかり深みにはまって抜け出せなくなることがある。記録を取ることで、思考の泥沼から自分を引き離し、デバッグの計画と方法を絶えず修正できる。専用のシステムソフトウェアでは、ソフトウェアの利用者に、バグの発生状況を有効な言葉で記録する方法を訓練する必要がある。記録がなければ、デバッグする側は適切な質問で利用者の記憶を呼び覚まさねばならない。また、深夜に解決できないバグは一眠りする必要があると思う。拡散思考が自動的に働き、たいてい朝には解決している。</p>
<h2 id="7-プラグを確認する">7 プラグを確認する</h2>
<p>この原則は、いわゆる「初歩的なミス」について述べている。母が「パソコンのスピーカーから音が出ない」と言ってきたら、まず電源が入っているかを聞く、という類である。あるいは main 関数を mian 関数と書いてしまうとか。一度、ブレークポイントを置いてデバッグしてもブレークポイントで止まらず、後で分かったのは、似たコードが二箇所あり、ブレークポイントを間違った場所に置いていたことだった。シナリオと経験に照らして、そのシナリオでよくある初歩的なミスを犯していないか自問すれば、多くの場合すぐに効果が出る。多くの電気機器の取扱説明書の故障 FAQ でも、プラグの確認が強調されている。初歩的なミスが「初歩的」なのは難度であって、頻度ではない。</p>
<h2 id="8-新しい視点を得る">8 新しい視点を得る</h2>
<p>この原則は助けを求めることと交流について述べている。ここで重要なのは、他者の視点によって自分の思考の固定観念を打ち破ることである。だから相手には現象だけを詳細に説明し、自分の推測は言わないほうがよい。相手の判断を汚染してしまうからだ。プログラマにとって、このときの google 指向プログラミングの力は驚異的である。おそらく九割の問題は、実際に質問する必要はなく、適切な検索語を見つけて検索すればよい。中国のプログラマにとって、英語で検索することは必須の技能である。もちろん、見つけたものを本当に理解することも非常に重要で、薬を見たらすぐ飲む、ではいけない。もし google で本当に検索できなければ、あなたのレベルが少し高い証拠である。そのときは stackoverflow などのコミュニティで質問すればよい。</p>
<h2 id="9-バグを修正しなければバグは依然として存在する">9 バグを修正しなければ、バグは依然として存在する</h2>
<p>この原則は、甘い期待を抱くな、バグが一瞬顔を出しただけだからといってダチョウ政策を取るな、ということを述べている。来るべきものは必ず来る。報いがないのではない、時が来ていないだけである。もちろん実際の状況は複雑でありうる。ソフトウェア工学はもともと時間・コスト・品質の妥協の産物である。しかし、たとえ一部のバグを見逃すとしても、それによって生じうる結果を分析し、十分な防御機構を築くべきである。だから多くのソフトウェア認証体系にはソフトウェア安全水準の規格がある。ここにはバグの再現と一を聞いて十を知るという問題も関わる。本当にバグの原因を見つけ、有効な修正手段を提供したことを確認し、同様の問題をすべて洗い出す必要がある。たとえばメモリリークを一つ修正したら、そうしたリークを引き起こすすべてのコードを修正しなければならない。</p>
<h2 id="附記デバッグしやすいコードの書き方">附記：デバッグしやすいコードの書き方</h2>
<p>デバッグの原則から逆に見ると、ソフトウェアの構築自体にも大いに役立つ。何しろデバッグは穴を塞ぐだけのものであり、書かれるコードのバグが少ないほうがよく、デバッグのときに便利なように手段を多く用意しておくのがよい。ここでも個人の経験を簡単にまとめておく。不断の改善が必要かもしれない。</p>
<ol>
<li>プログラムにはログの仕組みを備えるべきで、プログラムの debug 版ではデバッグ情報を出力しやすくする。release 版であっても、ソフトウェアに問題が発生したとき（たとえば C# で例外が投げられたとき）の詳細な状況を記録すべきである；</li>
<li>人間が読むのに適したコードを書くべきである。そうでなければ後の保守をする人が読んでも分からない。どうデバッグせよというのか。どう書くかは『コードコンプリート』に最も詳しく書かれている。各種の慣習的な書き方のほかに、相手の身になって考えることも重要だと思う；</li>
<li>各種のクラスライブラリやツールを使うときは、できるだけ原理を理解し、公式ドキュメントを丹念に読む。たとえばメモリリークをどう防ぐか、マルチスレッドの状況にどう対処するかを詳しく説明しているクラスライブラリもある。よく見てから使えば、禍根を植えることが少なくなる。少なくともデバッグのときに蠅のように当てもなく原因を推測する必要はなくなる；</li>
<li>テストしやすいコードを書く。そうすればデバッグのときに問題を切り離しやすく、二分法も使いやすい。この点は TDD の実践が比較的十分に論じており、私自身も強化する必要がある。</li>
</ol>
]]></content:encoded><category>coding</category><category domain="tags">プログラミング</category><category domain="tags">デバッグ</category><category domain="tags">読書ノート</category></item></channel></rss>