大器无成

大器はその大きさゆえに、決して完成することはない

ストロークと心理ゲーム、人生脚本について

エリック・バーンの唱えた「心理ゲーム」あるいは「人生脚本」の考え方について。基本的な考え方から系統立てて書いてくれているページが(原著を含めて)あまり多くなかったので、自分なりの解釈をここにまとめておく。

ふつうの解説的なものの中ではこの@ITの連載が一番わかりやすかったと思うので、そちらを参照してもらうとより詳しい部分がわかると思う。

自分の中に世界のモデルを作る、ということ

いろいろ考えた結果、エリック・バーンの提唱した考え方は、おそらく「世界のルールを自分なりに理解する」という枠組みによってわかりやすく理解できるのではないかと思った。そこで「世界のルールとは何か、どうやってそれを学んでいくのか」ということから考えていくことにする。

人を含めて多くの動物は、自分自身の頭の中に「世界のモデル」を持っている。ここで世界のモデルと呼んでいるのは、たとえば「ここで自分が皿から手を離せば、皿は地面に落ちて割れてしまう」というような物理的な理解だけでなく「人間とは利己的なものである」というような信念、あるいは「広い一戸建てを持つことが社会人にとって重要である」というような価値観も含む。自分の今生きている世界がどのような理屈で動いているかについて、具体的なものから抽象的なものまで色々なレベルで持っている知識をまとめたものが、ここで言うところの世界のモデルである。

しかし誰も、世界のモデルが全て備わった状態で生まれてくるわけではない。人間の場合、いちおう目や耳から入る情報がある程度脳に伝わり、あるいは脳の活動によって腕や足がある程度動くように、そこそこ配線された状態で生まれてはくる。しかし赤ん坊や幼児は、基本的には「社会人とはこういうものである」というような価値観を理解しているわけではない。

芥川龍之介の「河童」では、胎児の河童が生まれる前に「この世界に生まれてきたいか」を尋ねられて、自分でそれを選ぶことができる、という話が出てくるけれど、人間の場合はこのような(高尚な?)ことはできない。気付いたらこの世に生まれていて、否が応でも世の中のことを学びながら成長していくことになる。一部の物事(箸の持ち方とか、お金の使い方とか)は大人たちが明示的に教えてくれるけれど、ほとんどの物事(人生に何が大切かとか、自分が何者であるかとか)は暗黙的にしか示されない。なんとかして自分で学んでいくしかない。

強化学習の考え方

このようにどれがヒントかわからない状態で、人間や動物はどのように学んでいくというのか?

ひとつのフレームワークとして考えられるのが、強化学習の考え方である。たとえば全くルールのわからないゲーム(全く新しいパチスロの台とか)をしていたとしても、どこかのタイミングで玉がたくさん出てきたりすれば「これまでのタイミングのどこかで、自分が何か『正しい』ことをしたのだ」、という感覚になることができる(強化学習の用語では「報酬」にあたる感覚)。それまでの自分の行動のどれ(もしかしたら特定の行動の組み合わせかもしれない)が実際にその出玉(報酬)に結びついたのかはまだわからないけれど、それは自分のこれまでの行動のどれかが起点となった可能性が高い。そこで今までしていた行動を色々試していくと、どいういうときにたくさん玉がでてくるのかが少しずつわかってくる。

最初は「激しい音が出始めること」だとか「目の前の絵が目まぐるしく変化すること」だとかが出玉を予想するサインだと気づき、そのうち「この穴に玉が入ることが重要なのだ」ということがわかってくる。このように、「たとえ報酬が与えられることが少なく、ルールが明らかでなくても、そこから逆算して試行錯誤していくことで少しずつルールと戦略を自分なりに理解していくことができる」というのが強化学習の考え方の基本になる。

このような方法論を用いることで(もちろんその他の様々なトリックも使うけれど)、たとえルールについて初めまったく無知であっても戦略的に行動できるようになる。最近のAIの隆盛が、そのひとつの証左である。ブレイクスルーとなったのは「AIが人間並にテレビゲームをできるようになった」という論文だけれど、現在では2速歩行のロボットにパルクールを仕込むとか、ロボットにけん玉を仕込む、といったことができるようになってきている。

強化学習の方法論を用いることで、どんなに複雑なルールであっても、そして時に教える側さえ何がコツなのかよくわかっていない場合でも、少なくともルールを学んでいくことが可能になる。

動物と人間の報酬システム

それでは人間を含む動物では、何をすれば報酬となるのか?実際にはその詳細は完全にはわかっていないのだけれど、少なくともドーパミンという物質が脳内に分泌されることが重要であるということは確からしい。サルやネズミに電極を挿し、彼らが特定のボタンを押したときにドーパミンが分泌されるようにすると、彼らは最終的にはボタンを押し続けるようになってしまう。人間でもコカインの麻薬としての効能・中毒性は、ドーパミンの作用を増幅できることに由来する。世の中の人がたまにつかう「脳汁」という表現も、おそらくはドーパミンの分泌に近いものをさしていると考えられる。

直接的にドーパミンを分泌させなくても、動物にとって「快」となるようなルールを強制的に作ってやることで、特定の行動を取らせることができるようになる。餌を使った犬の躾では、犬が特定の行動を取れた時だけ餌をあげるようにしたり、特定の行動を取れなかった(あるいは悪い行動をした)ときに罰を与えたりすることで、特定の文脈で特定の行動をとれるように学習させるものである。犬の例は最もよく知られたものだけれども、ハトやネズミ、サルのような他のネズミでも同様のことができる。最近(といってもここ半世紀くらい?)は、発達障害などの子供に対しても似たような方法を用いることで、最低限困らないレベルの行動を学習させることもあるようだ。このように直接的に脳内報酬に頼らなくても、「アメとムチ」を適切に与えることによって行動を学習できるのは、おそらく動物がもともと強化学習的に世界のルールを学んでいることによるのだと考えられる。

ストローク:人間特有の報酬システム

もちろん人間も動物の一種なので、動物と同じように食べ物や水を「報酬」とすることはできる。ただ人間に特有なのは、コミュニケーションを用いて他者の行動を肯定・否定できること である。ほとんどの人は、たとえば褒められたり感謝されたりすれば悪い気はしないし、逆に叱られたり不満を述べられればおそらく心がささくれ立つだろう。食べ物のような直接的な報酬を使わなくても、たとえば言葉を投げかけるという行為そのものが「報酬」あるいは「罰」として働きうるのである。

エリック・バーンは、このようなコミュニケーションを通じた報酬あるいは罰のことをストロークと呼んだ。おそらく意味合いとしては、テニスやゴルフにおけるストロークのように、相手に言葉というボールを打ちかける行為、ということなのだと思う。

ストロークの考えかたでとくに重要なのは、相手に投げかけているコミュニケーションに「自分という人格の肯定・否定」、「相手という人格の肯定・否定」のニュアンスを載せている、という点である(いちおう個人的には「自分の肯定・否定」という側面も重要なのではないかと思っているのだけれど、以下に出てくる議論ではほとんどの場合「相手の肯定・否定」の意味でストロークという言葉が使われる)。たとえば相手に対して感謝したり褒めたりするのは「肯定的なストローク」、逆に貶めたり叱ったりするのは「否定的なストローク」と呼ばれる。基本的には、肯定的なストローク(報酬)を受ければ受けるほど、それを与えられた人は自己肯定感が強くなるだろうし、否定的なストローク(罰)が多いほど自己否定感が強くなると考えられる。

コミュニケーションは必ずしも言語的である必要はない。たとえば撫でるとか抱きしめるとか、あるいは体罰のような、そういった身体的なコミュニケーションでも肯定的あるいは否定的な意思表示をすることができる。その意味では、言語を習得するもっと前から、ストロークの応酬・受容は始まっていると言える。

ここでエリック・バーンが着目したのは、「ストロークがないよりは、否定的でもあった方がまし」という点である。たとえばクラスに気になる女の子がいる小学生の男の子の場合、相手とまったく接点がなくてなんのやり取りもできないのに比べれば、文句を言われてもいいから嫌がらせをしてなんらかの反応をもらえた方がまし、ということに対応するのだろう。世にいう「愛の反対は無関心」というのに近いと思う。

最初の「世界のモデル」のところで出てきたように、人間は報酬や罰を通して自分のいる世界のことを学んでいく。とくに社会的な世界のルールは、肯定的あるいは否定的なストロークを通して学んでいくことになる。ただし報酬も罰もない状況では、何をどう学べば良いかわからない。この混乱がおそらく不安要素となり、「なんでも良いからストロークがほしい」という状態につながるのではないだろうかと思う。

思うにエリック・バーンの考え方の根本には、「全ての人間は、肯定的であれ否定的であれ(大なり小なり)ストロークを求めて生まれてくる」という社会性の仮定のようなものがある気がする(もちろんその後の人生でいろいろなことを学ぶので、大人がどこまでストロークを求めるかについては状況がより複雑になりうる)。

心理ゲーム:ストロークを得るための戦略

ストロークを得るために人々が獲得する(とエリック・バーンが主張する)のが、心理ゲームと呼ばれるものである。これは強化学習に引きつけて言えば、「ストロークを通じて学習していくコミュニケーション上の行動戦略」と言える。

シンプルな例で言えば、子供の「お手伝い」が挙げられる。たとえば食器を並べたり片付けたりするというお手伝いをすることで、子供は親や保護者に「感謝される」ということを学ぶ。これが肯定的な動機付けになって、子供は感謝という肯定的なストロークを得るためによりお手伝いをしたがるようになる、というものである。

ここで重要な考え方は、「感謝を通じて子供がいい子になった」と捉えるのではなく、「『よい子』という役割を演じるために、子供がお手伝いという行動戦略をとった」と解釈するということである。ひねくれた考え方かもしれないけれど、「子供がいい子であるかどうか」はあくまで親あるいは保護者の視点であり、そちら側からの一方的な価値判断でしかない。そして子供の側が、「お手伝いは本質的に善いことである」と認識している必要もない。子供としては「こうすれば感謝される(そして嬉しい思いができる)からそうしている」というだけの可能性は多少なりともあるだろうし、実際に子供のときにそのように考えて行動していた記憶のある人もいるかもしれない。学ぶ側からすれば、コミュニケーション自体が報酬を得るための手段であり、世界の仕組みを再確認するための「ゲーム」だと言える。

この考え方の有用な点は、典型的な「よい子」では必ずしもしないような行動についても説明できることである。よく出てくる例で、「子供が『自分がいかにバカか』を親に認めさせる」というものがある(ちょっと長いですが):

子 「僕はバカなんだよ」

父 「おまえはバカじゃないよ」

子 「いや、僕はバカなんだ」

父 「バカじゃないよ。夏休みのキャンプのとき活躍してたじゃないか。先生がお前のこと褒めてたぞ」

子 「先生がそんなこと褒めてくれるわけないじゃないか」

父 「いや、先生から直接聞いたんだって」

子 「親には良いように言うもんだよ。先生は僕のこと、バカって言っているよ」

父 「そりゃ、冗談で言ってるんだよ」

子 「いや、バカなんだ。学校の成績を見りゃ分かるじゃないか」

父 「バカじゃない。勉強はやればできるんだよ」

子 「努力はしているよ。でも頭が悪いんだよ。タネも悪いし」

父 「頭は悪くない。もっと努力したらどうだ?」

子 「でも、どうせバカなんだよ、意味ないじゃないか」

父 「やってもみずに言うんじゃない!」

子 「どうせバカだから無駄なの!」

父 「バカじゃない!」

子 「バカだ!」

父 「バカじゃないって言ってるだろ!! このバカ野郎!」

この例では、親の視点からすると「どうすれば子供に自分の価値をわかってもらえるのか」というふうにみがちだけれど、「子供が否定的なストロークを得るために仕掛けている行動戦略」だと考えると比較的理解しやすい(そこに解決策がある、と言っているわけではない)。そもそも子供側のゴールが「親から『お前はバカだ』と言われる」なら、どれだけ説得しようともそれに応じるわけはない。

幼少期の発達に絡めたエリック・バーンの解説としては、「このような否定的な心理ゲームは、ストロークの不足によって生まれた」というものである。肯定的であれ否定的であれ、じゅうぶんなストロークが得られなかったと感じた子供が「なんとかして構ってほしい」という動機で生み出した戦略が心理ゲームなのだと言える。子供側からは、その心理ゲームを肯定的なものにできるかどうかをあらかじめ選ぶことができない。肯定的なストロークすら得られていなければ、今までの行動から得られた体験から「最もストロークが得やすい行動戦略」として否定的ストロークを得るゲームを選んでしまう可能性はじゅうぶんにある。

また心理ゲームの獲得に当たり、「子供側でストロークを得るための戦略を筋道立てて立てられるか?」というポイントも重要になる。たとえ肯定的なストロークがある程度与えられていたとしても、たとえば親がものすごい気分屋だったりする場合、子供側で「特定の行動が肯定的なストロークにつながる」ということが分からない可能性もある。その場合、必ずしも心理ゲームとして、肯定的なストロークを得るための戦略が選ばれるとは限らない。このあたりはAIの学習に通じるところがある。「ただ褒めたり感謝したりすればよい」というわけではなく、コミュニケーションを取る側に筋の通った理が(おそらく)必要になるのも、難しい点だと思う。

交流分析:心理ゲームの役割分担

先の節で少し出てきたように、人間は(大人であっても)必ずしも筋の通った振る舞いをするとは限らない。気分やコミュニケーションの相手、その時の状況によって、その人の行動は簡単に変わってしまう。「心理ゲーム」という観点から眺めることで、コミュニケーションのありようを「主張のやりとり」ではなく「複数の人間が、自分のほしいストロークを得るために即興で作る演劇」と捉えることができるようになる。こうすることで、その即興劇の中で個々の人間がとる行動を「役割」として抽出しつつ、なお個々の人間の「本質」のようなものを議論することができるようになる。

即興劇における役割をより体系化したものが、エリック・バーンの提唱した交流分析だと考えることができる(たぶん)。詳しい説明は他の記事にしてもらうとして、基本の役割は以下の(2 x 2 + 1)種類に分けられる:

  • Parent(P; 親のような役割):相手を気にかけ、育てたいという立場。
    • Critical parent (CP; 批判的な親):これは善い、これは悪い、とルールを示して自他を律する役割。
    • Nurturing parent(NP; 優しい親):支援的な立場から相手をサポートする役割。
  • Adult(A; 大人の役割):論理的、客観的に状況を整理する立場。感情に流されず、冷静に判断する役割。
  • Child(C; 子供のような役割):自分本位に感じたり行動する立場。
    • Free child(FC; 自由な子供):もって生まれた無邪気さや直感、創造力を発揮する役割。
    • Adapted child(AC; 順応した子供):誰かの言いつけに従って振る舞う役割。

重要なのは、特定の即興劇には特定の役割のペアがあって、個々の人間のどちらかがどちらかの役割を演じる必要がある、ということである。上で出てきた2つの心理ゲームの例では、どちらも子供の方がACの役割を、大人の方が(多少なりとも)CPの役割を担っている。現実の社会生活でも、たとえば誰かが誰かを叱る、という状況では、叱る側がCPの立場を、叱られる側がACの立場をとりやすい。逆に片方がNPとして「サポーター」のような役割を取っている際には、相手がFCの役割をとることができないとうまく場がもたない。また会社の会議のような場では、参加する全員がAとして振る舞えなければ、重要事に冷静にあたることができない。このように、コミュニケーションあるいは心理ゲームという即興劇において、様々な場面の人々の振る舞いを、上の5つによって類型化してとらえることができる。

そして上記の5つの役割は、一人の人間の中で共存しうる。言うなれば「即興劇の役割」でしかないので、状況に応じて色々に出し分けているだけなのである。

むしろエリック・バーン的には、上の5つの要素を状況に応じて適切に出せる人間が「よく成熟した人格」であると考えている(のだと思う)。ただしそういうことのできる人はそれほど多くないし、ほとんどの場合はどれかの要素が全面に出過ぎていたり、あるいは出てこなさすぎたりして、凸凹の様相を呈しやすい。あるひとはどのような場面でもCPとして振る舞いたがったりするし(いわゆる「老害」というのはそういうものなのかもしれない)、人によってはどんな場面でもACになってしまう場合がある(「キョロ充」と呼ばれる人の性格は、これに近いのかも)。

ただし、強化学習の(そしてエリック・バーンの)観点から見れば、そのような凸凹は「いままで経験したストロークの偏りから、そういう行動戦略だけが前面に出てきてしまっている」状態でしかない。言い換えると、今ほとんど出てこないような役割であっても、様々な即興劇で意識的に練習していくことで、その役割に対応した行動戦略を身につけて(あるいはより前面にに出して)いくことができる、ということでもある。そういう意味で、交流分析的な視点は、自分というキャラクターに満足いかない人にとっての改善のヒントになりうる考え方でもある。

人生脚本:自分にとっての自分の人生、自分の世界

ここまでは、コミュニケーションの特定の文脈における行動戦略として、心理ゲームや交流分析を考えてきた。そこからもとの議論(世界のルールを学ぶ)を振り返って考えてみると、「個々の文脈における戦略から、どのように世界のルールが立ち現れてくるのか?」という問題が出てくる。

じっさいのところ、個別のケースからより一般的なルールへの抽象化がどのように起こるのかはよくわかっていない。まあ「100の条文を覚えるよりも1の原理を覚えた方が応用力は高くなる」可能性があると思うので、少ないコストで様々な場面に対応するための戦略として「抽象化・一般化を志向する」というのはありなのかもしれない。とくに世の中に転がっている解説でも、一般化がなぜ起こるのかについて真面目に議論している雰囲気はない。

なんにせよわかっているのは、個別のケースを包括的に解釈する流れの一環として「一般化」という現象が起こる、ということである。たとえば日常の様々な場面で「これはダメ、ああしなさい」といった指示を親から受け続けた子供は、「自分は判断してはいけない、指示に従わなければいけない」あるいは「自分は判断することのできない人間である」といった一般的なルールをつくる可能性がある。

さらに人生というものが人との(あるいは自分との)コミュニケーションを軸にして成り立っていると考えれば、「自分がどのような心理ゲームを持っていて、どのような役割を演じるか」という行動戦略的な側面も重要になる。

これらの自己認識、人間関係のルール、自分が摂れる行動戦略といったものを総称したものが人生脚本である(のだと思う)。3行くらいでまとめると、人生脚本は大まかにいかのような構成要素からなる:

  • この世の中はどのようにできているか
  • 自分はそのなかでどのような位置付けで、どのような役割を演じるか
  • 自分と周囲はどのようなドラマを演じて、最終的に自分はどのような結末を迎えるか

これも心理ゲームや交流分析の場合と同様、「幼少期からの発達過程を通じて、今までに経験した事柄から類推した精一杯の仮説である」ということに着目するのが重要だと思う。幼少期に見えていた世界の全てが、大人になって見えている世界のなかのどのくらいの割合を占めているか?おそらくごく一部でしかないのではないか。そのごく一部の中の論理をベースに解釈した人生、あるいは世界のルールが「一般的」である可能性はそれほど高くないと考えられる。心理ゲームと同様、「脚本」として自分のなかの信念を相対化することで、できるだけ客観的に自分の価値観をみることができないか、というのがエリック・バーン的な考え方なのだと思う。

禁止令とドライバー:ルールを一言に集約する

この中でエリック・バーンがとくに重視するのが、「べきだ論」的な信念である(と思う)。これは人生脚本の核となるような、さまざまな事例をもとに一般化された行動指針である。御伽噺でいうところの「教訓」のようなものとも言えるかもしれない。

これらの信念は、大まかに以下の2種類に分けられる:

  • 禁止令:「〜であってはいけない」という形を取る。「幸せになってはいけない」「考えてはいけない」など。
  • ドライバー:「〜でなければいけない」という形を取る。「完璧でなければいけない」「家族を大事にしなければいけない」など。

まあこのへんの言葉はただわかりやすくするためのラベルづけでしかなくて、重要なのは「〜であるべきだ」という形式をとる、という点になる。

哲学における善悪の議論でよく出てくるのが「『である論』から『べきだ論』は出てこない」というものである。「〜である」というものは物理的な世界の一般論を説いているだけだけれど、「〜べきだ」というのはそこに善悪の判断が入ったものであり、性質が違う。物理現象はあくまで「〜である」の集合なので、それをどれだけ一般化しても「〜である」の形にしかならない。「〜べきだ」という善悪の判断は、人間が特定の価値基準に則して自分の行動を決定する際にしか出てこない。その意味では人間の(もって生まれた)創造性を縛る効果のあるルールである、とも言える。

じっさい、ネットに転がっている解説によると、禁止令やドライバーは人生に関わる重要な決定で顔を出すことが多い、らしい。たとえば「今の仕事を続けるか、転職するか?」というような決定において:

  • 「幸せになってはいけない」という禁止令を持っていれば、たとえば「『転職して楽になる』なんて考えを自分が持ってしまってよいのか?」という疑問として自分を縛りうる。
  • 「考えてはいけない」という禁止令なら、たとえば「みんな反対しているのだから、アドバイス通り今の仕事をしていたほうが良いのでは?」という考えが頭をよぎることになる。
  • 「完璧でなければいけない」というドライバーなら、たとえば「今の仕事をこんな中途半端で投げ出してしまってよいのか?」という自責、あるいは「ほんとうにきちんと考えた結果の結論が出せているのか?」という疑問が生じるかもしれない。

このときの特徴はおそらく、AC(順応した子供)としての恐怖が自分を縛ってしまっているところだと思う。本来ならA(大人)として理性的な決断をした方がよいだろうに、「親がなんというだろうか?」「上司にどんな顔をされるか?」といった考えに苛まれてしまうことで考えに歪みが生じうる。もちろん、自分がCP(厳しい親)として意識的に「この信念が自分にとって大切だ」と思っているならそれも悪くはないのだけれど、ACとしての感覚が無意識的にそうさせている場合は「自分自身の人生を生きられている」という感覚を損ない、どのような結果になっても自己肯定感の低下を招くかもしれない。

おそらくこのへんのコアの信念を見つけてそれをなんとかすることで、いまよりなんぼかマシな人生にしてみようぜ、というのがエリック・バーン的な考え方になるのだと思う。自分の行動を縛る信念というのはそれなりに愛着(執着?)があるものも多いと思うので、それをなんとかしようというのがもともとの考え方になるだろう。具体的には:

  • 強化学習的に見ることで、「自分がこのような信念や戦略を持っているのはたまたま、そのような順番で今までの経験をしてきたからである」ととらえる。
  • 「ゲーム」あるいは「脚本」という「おはなし」のかたちに抽出することで、できるだけ他人事として、個々のやり取りでの自分の演じる「役割」を客観的に捉えられないか試みる。
  • 自分の経験したことの少ない「役割」に意識的になって、個々の場面で特定のおはなし・戦略に則ることができないか、試行錯誤してみる。

といった方法論に帰着するのではないだろうか。

トレーディング事始

とくに始めたわけではないけれど、最近のZoom飲み会で聞きかじった話をまとめておく。

  • 株式・証券市場は、本質的な揺らぎの存在するシステムである
  • 揺らぎの種類も、様々なタイムスケール(日レベル・月レベル etc.)のものがいろいろある
  • 実際のところ、どういうファクターがそれぞれ市場にどのような揺らぎをもたらすのか、完全に把握できている人はいない
  • 揺らぎが大きいが故に、取引の結果生じた損得が「自分の考えた仮説と一致した」結果なのか、単純な運の結果なのか、にわかには判断できない(しかし人は往々にして、前者の結果であると言いたくなる)
  • ただ同時に「どのような視点で市場の原理を切り取るか」「どのように過去のデータを解析して、自分のモデルをサポートするか」について自分なりのモデルを組むことができる。だからこそ面白い

だそうな。

Variational Autoencoders

について学んだ。学びきれていませんが:

https://towardsdatascience.com/understanding-variational-autoencoders-vaes-f70510919f73

アイディアとしては、ただ素直に

  1. 観測値
  2. 次元削減したベクトル
  3. 復元値

となるようなエンコーダ・デコーダを推定するのではなくベイズ推定のモデル

  1. 観測値
  2. 次元削減したベクトルを確率的に表現する正規分布(平均と分散のベクトルとして表される)
  3. 復元値を確率的に表現する正規分布(平均ベクトルとして表される、分散はハイパーパラメータ)

を表現するようなエンコーダ・デコーダを推定する、というところ。

これに加えて、事前確率として「次元削減したベクトル値が本来従うべき確率分布」を与えることで、次元削減された空間がコンパクトかつ連続的な空間になる(記事中では「無意味な出力が生成されえない」と表現されている)ように拘束してやることができる。

デコーダの再現精度(復元値分布の分散)をハイパーパラメータとしていじってやることで、再現の正確性と次元削減空間の連続性のトレードオフを調整してやることができる(というかこの部分が一番大変そう)。

この人の記事は、表現が難しいけれどコンセプトをきちんと教えてくれていてよい気がする。

8月22日追記

TensorFlowを用いたVAEの実装チュートリアルは、以下のものが比較的わかりやすそう:

danijar.com

こちらはPyTorchを用いたバージョン:

vxlabs.com

おいしいフィルターコーヒー

ここ数年のコーヒー生活でわかってきた、フィルターコーヒーTipsのまとめ。

酸味とコク

この2つをいかにバランスよく出すかが、コーヒーの出来を決める。 身も蓋もないことを言えば最終的には「好みの豆を使う」ことに尽きるけれど、コーヒーをどう淹れるかに応じて、このへんのバランスを微妙に調節することができる。

実のところ「苦味」も調節されている気がするのだけれど、あまりきちんと評価できていない。これは豆の炒り具合による部分が大きい気がしなくもない。

あと、ほんとうは「香り」という欠かせないファクターがあるのだけれど、こちらのコントロールはほぼ無理なので割愛。よい金属フィルターを使うとか、よいマシーンを使うとかしてください。

抽出を左右するファクター:粗さ、温度、時間

基本的にはカラムクロマトグラフィーみたいなものなので、苦味・酸味・コクの個々の成分について、ある程度の典型的なタイムコースが存在する。

  • 酸味:最初に出てきやすい。抽出温度が高ければ高いほど、あるいは粉が細かければ細かいほど、出方が著しいように思う。
  • コク:後のほうに出てくる。抽出温度が高くなっても、出てくるタイムコースはそれほど変わらないように感じる。粉が細かくなると、逆に失われやすくなるように思う。

抽出温度は、沸騰させて火からおろしてからの時間でなんとなく変えている。たぶん70℃〜90℃くらいの振れ幅。

粉の挽き具合は、味に大きな影響を及ぼす。エスプレッソ用なんかの細かいやつだとコクを出すのは至難の技なので、酸味フェチでもないのであればフレンチプレス用のような粗めの粉を使った方がよい。

抽出時間の調節

最速の抽出方法は「ガッと入れてバッと出す」みたいな感じ。とにかくお湯全量を一気に入れて、全部が出てくるのを待つ、という姿勢。多くの場合それだと酸味が効きすぎるので、なんとかして抽出時間を引き延ばしてコクを増やす方策を考える:

  • お湯を何回かに分けて入れる:フィルターの上に載っているお湯の量が多いほど水圧は高くなるはずなので、そのぶんフィルターを通り切るまでの時間は短くなると考えられる。逆に少しずつお湯を入れれば、そのぶんフィルター内にお湯がたまる時間が増えると期待される。
  • お湯の液面が、粉から溢れないようにする:粉を通らずに下に落ちるお湯の量が増えると、そのぶん単位量あたりの粉がお湯にさらされる時間が減ってしまう。一方、お湯に浸かっていない粉の部分が増えても、かえってその部分の抽出時間が減ってしまう。理想的には「粉の層がちょうどひたるくらい」の液面で持続させることだと思われる。

抽出時間をかせぐ「ベター」な方法

ただし現実問題として、何回もお湯を入れ直したり、ずっとちびちびお湯を入れ続けたりするのはつらい。実際には、以下のように粉の「ろうと状構造」をつくる方法がベターな気がする:

  1. 粉全体にお湯を染み込ませる:カラムクロマトグラフィーで言う「アクティベーション」の過程。とは言っても、粉の層の最深部まできちんとお湯が到達したかどうかを知るのは難しい。実際には、下のようなことをしている:
    1. フィルターの中心から円を描くような感じで、少しずつ湿った部分を広げていく(真ん中の部分の方が粉の量が多いので)。
    2. フィルターの下に10滴以上、粉まみれのお湯が落ちてきたことをもって、「お湯がいきわたった」と判断する。
  2. 水流強めでお湯を回し入れる:ステップ3以降の「ろうと状構造」を作ることが目的。目的とする「ろうと状構造」の縁よりすこし高いくらいまで液面を上げる。
    • 最初は液面に乾き気味の粉が浮いていることがある。たぶんこれらの粉を意識して沈めたほうがよいのではないかと思う。
    • お湯の中で粉をきちんと対流させたほうがきれいな「ろうと状構造」ができやすいと思うので、入れ始めの段階では「中心部から円を描くように入れる場所を変え、だんだんとその円を広げていく」という感じがよいと思う。
    • 液面から粉が消えて泡だけが見えるようになったら、あまり縁のほうにお湯を入れない方がよい(ろうとの「壁」が崩れてしまうことがある)。ろうとを崩さないように、中心部に回し入れるようにする。
  3. フィルターの表面からお湯が消えるまで待つ:粉が対流をやめて沈殿するのを待つのが目的。うまくいっていれば、この段階で漏斗状の構造が見えてくるはず。
    • もし粉の面がほぼ平面になってしまっていたら、おそらくお湯を入れるフェーズの後半で縁の部分にお湯をかけすぎたのだと思われる。
    • ろうとの壁の厚みが不均一な場合も、おそらく壁ができた後にお湯をかけたことで壁が崩れてしまったのだと思われる。
    • ろうとの壁の厚みにそれほど違いはないが高さが不均一な場合、おそらく最初に作った液面が高すぎたのではないかと思われる。
    • どんな状況であれ後のステップができないことはないので、諦めて抽出を続ける。
  4. フィルター中心部にひたすらお湯を流し込み続ける:基本的には、以下の繰り返し:
    • ろうとの壁を崩さないように、中心部に少しずつお湯を入れていく。
    • 液面がろうとの縁まで上がったら、入れるのをやめる。

ほんとうは、ろうとの形状によって部分ごとの抽出時間に違いが生じてしまっていると思う。ただ現状ではそのあたりをきちんと計算して最適な形にすることはできていない…経験則的には、底の部分(フィルター中心部)が厚ければ厚いほどコクが出やすい気がしているけれど、お湯の量も変動してしまっているので何とも言えないところ。

適度な「淹れ加減」

当然のことながら、一定量の粉から出せるコーヒーの成分には限りがある。どこかでお湯を入れるのをやめなければならないけれど、その見極めは難しい。お湯を入れ過ぎればコクの割合が増える一方で、薄味のコーヒーになってしまう。一方でお湯の量が少なすぎれば、コーヒーとしては濃くなるが酸味が勝ってしまう可能性が上がる。仮に粉の量が毎回ぶれるのなら、最適なお湯の量を何らかの形で知りたいところではある。

フィルターで淹れる場合、液面の見た目がだんだん変わっていくのがわかる:

  • 最初は液面がクリーミーな泡で満たされていて、お湯をちょっと入れてそれを押しのけても泡がその穴をすぐに塞いでしまう。
  • 何回かお湯を継ぎ足していると、だんだん泡の全体量が減ってくる:最初は少しずつ泡の厚みが減っていき、もう少し後になると泡のない液面が増えてくるようになる(なぜなのだろう?よくわからない…フィルターに吸着してしまっているのか、粉の層に再吸収されてしまっているのか、あるいはお湯に少しずつ溶けこんでいるのか?)。

このような液面の見た目を利用することで、最初に入れた粉の量に関わらず「お湯の止めどき」を見極めることができるのではと思う。個人的には、泡がまだ液面の3/4くらいを占めているぐらいが一番ましなバランスである気がする。

世界を見るための暗黙のルール

Qiitaのこの投稿から、Invariant Information Clustering (IIC)なる方法論を知った。画像クラスター分析において「教師データ無し」でディープニューラルネットワーククラスターを学ばせる際、サンプルデータに起因するバイアスが訓練によって拡大してしまうことが問題になる。たとえば特定のクラスターだけがすごく大きくなったりしてしまうことがあるらしい。そこでこの論文では、学習則として「data augmentationによって生成された画像群間の相互情報量が最大になる」という原理を採ることで、より均一で安定な教師無し学習の実現に成功した、らしい(少なくとも彼らはそう言っている)。

Data augmentationとは、訓練データをある意味で「水増し」する方法論である。画像認識の場合だと、素材となる画像を回転させたり、拡大縮小させたり、ノイズを入れたりして、さまざまな派生画像を作ることに対応する。これは言い換えると「ここで見ている概念は、画像の回転やスケール、ある種のノイズに対して普遍なものである」というルールを暗黙のうちに導入している、ということである。ただ単にデータをかき集めてくるだけでは「本当のデータ(無限に近くある)の分布」の空間のほんの一部を再現することしかできないけれど、data augmentationを用いて訓練データに「奥行き」を加えることで、「本当のデータの分布」に少し近づけることができると考えられている。「本当のデータの分布」の予測の安定性が上がる、ということでディープラーニングでは重宝されている。

今回のIICなる方法論ではこの暗黙のルールを明示的に学習則に取り入れている、という点で興味深い。

変換によって変化しない概念の構造

個人的にはこの方法論は、構造主義で言うところの「変換」を用いた概念の構造をディープラーニングに明示的に取り入れているのだと思う。「何をもって『同じもの』とするか」というルールは無限にありうるのだけれど、それを規定するのがここでの「暗黙のルール」である。手書き文字認識なんかだと「回転やスケーリングで文字や数字の意味が変わらない」というのは自明に感じるけれど、人間の通常の物体認識では、たとえばものの角度によって見え方は大きく変わる。福笑いで眉毛だけ上下逆さまになっていることで、優しい顔のお多福さんが歌舞伎顔に見えてしまうのがその例である。そう言う意味で、「この変換によってものの意味は変わらない」というのは、人間が勝手に世界に対して抱いているバイアスに過ぎないとも言える。逆に言えばこのバイアス自体が、「それがどんな意味をもつか」ということを規定している、とも考えられる。

ひるがえって人間の脳の成長なんかを考えて見ると、明示的な答えが与えられるような機会は学校くらいでしかない(あとは金額の計算とか)。いちおう「教師信号」となる存在として報酬・罰に対応した学習則があるけれど、たぶん物体認識なんかはそういうのとは関係なく発達しているように思う。つまりおそらく人間はほとんどの場合、何らかの情報をベースにして「教師無し学習」をしていると言える。

上記の繰り返しになるけれど、教師無し学習では「何と何を同じと見るか」という視点がとても重要になる。通常のクラスター分析では、何らかの形でサンプルとサンプルとの間の「距離」を定義して、「距離が十分に近い=同じ」という捉え方でグループをつくっていくことが多い。ただその場合、最初に出てきたように安定した(あるいは期待した)結果のクラスタリングができないことも多い。そこで出てくるのがdata augmentationであり、IICである。「この方法によって変換されたものはもとのものと同じであるべき」というルールがあることによって、安定したクラスタリングが実現できる(少なくとも、著者の主張では)。

人間の発達では、何がdata augmentationにあたるか?たとえば視覚的な話に限定すると、「いろいろな方向から見てみる」「ひとつのものを見続ける」というものがあると思う(じっさい赤ちゃんはそういうことをよくしていると思う)。「自分が今見ている『それ』は、ずっと『それ』であり続ける」という暗黙的な感覚がもしあるのだとすれば、これらは全てdata augmentationの方法に当てはまる。こうした符合をもっと見つけていって、世界に対する人間の暗黙的な感覚をdata augmentation的な言葉に落とし込んでいくことで、感覚認知のトピックを超えて「神経科学的に『概念』とは何か?どのように作られるのか?」という問いに対するアプローチを見つけられるかもしれない。

でも具体的なメカニズムは?

ディープラーニング的な感覚を神経科学研究に応用する際にもうひとつ重要なのは、実際にその学習則がどのように実現されているのかということになる。

たとえば1990年代くらいだと誤差逆伝播法とかは知られていたけれど、最初の誤差を出すための多くの学習則は「全てのニューロン出力が既知で、それを何らかの形で統合する」ということを前提にしたりしていて、当時の風潮を知る神経科学者によっては「じゃあその『全ての出力』はどこで誰が知っているの?」というような疑問から「こういう考え方は現実の神経系にはそぐわない」と考える人もいた(学部時代の師匠もそうだった)。ただ最近では、(少なくとも大脳の中では)「ほとんどの領野どうしはある程度の情報疎通がある」「大まかな脳の状態は、どの領野にもある程度共有されている」という風潮になりつつあるわけで、「グローバルな情報をもとに個々のニューロンが判断する」みたいなこともそこまで突飛ではなくなってきている気がする。

ただそれでも、「相互情報量の最大化」なる概念にはまだちょっと遠い。単一ニューロン的な視点から:

といった問いに対する仮説を用意する必要がある。まあ仮説が立って、それが示されればあとは一本道という感じはしますが。なので、そういう意味で上記の論文はとても好奇心を刺激された。何かわかるといいよね。

犯罪と動物と人権

最近のカルロス・ゴーンさんの話題で思い出した、自由意志の話。

以前観た内容

どこかの動画サイトに上がっていたトークを何人かで観たのだけれど、どこで見たのか忘れてしまった…もはや誰のトークだったのかすらわからない。悲しい。

大枠としては、「自由意志というのは社会的(間主観的?)な要請あるいは仮設である」というもの。もともとの論旨は以下のようなものだったと思う:

  • たとえ確率的であれ、全ての現象は物理法則に従って決定されている。
  • ただし主観的には、なにがしかの行動が予測不能である場合には、それは「(自由?)意思をもって動いている」と仮定した方がわかりやすい。その対象は人間だけでなく、動物やアニメーションの「点P」のようなものでも同じ(ピタゴラスイッチのぼてじんとか)。画面上の点Pが予測不能な動きをする場合、頭では「ただのコマ撮りでしょ」と分かっていたとしても、直観的には「こいつには意思がある」と捉えた方が腑に落ちやすい。
  • 社会のルールにおいても、「個々人にとっての自由意志は、他者にとっての予測不能性である」という前提がベースになっている。この前提からさらに導出される仮定として、「自分から見て予測不能性を持つ主体には、自由意志があると捉える」とも言い換えることができる。
  • 社会の一般ルールとして主張される「社会のルールを守り、その一員として行動できない成員は、自由を制限されても致し方ない」、あるいは「個々の構成員には、守れる社会のルールの範囲を反映した形でのみ自由意志が認められる(これがつまり『権利』)」という考え方は、上の仮定から導き出させる。つまり社会の仕組みにおける自由意志(あるいは自由)というのは生得的(本来的?)なものではなく、社会を作るために用いている仮定であると考えることができる。

この議論は、「社会とは何か?」という問いに対する本質的な点を指摘していると思う(少なくとも、社会のルールについての議論においては)。社会のルールがどうあるべきか、あるいはどうあってほしいかを考える際には、その構成員がどのような特性、特徴を持っているかをあらかじめ捨象して抽出してこなければならない。トマス・ホッブスの「万人の、万人に対する闘争」として定義された「自然状態」という考え方は、これが明示的に行われた最も初期の代表例なのだと思う。「一般的構成員の性質は、これだ!」としてしまうことで、よりシンプルに社会の仕組みについて考えることができるようになる。

いっぽうでこういう理想化はあくまで理想化であり、絶対的なものではない。数学の考え方で言うなら「公理」(最初に無条件で置く前提)のようなものである。いくらでも疑いを挟む余地があるし、もし現実に即していないと思われるならその前提から省みるに値するものだと言える。

権利について

上の動画における「権利」の概念についてもう少し。

「権利」という概念は、「社会の枠組みの中で自由意志が認められる範囲」として捉えることができる。権利は常に「社会」という枠組みの中でしか語れないものである(例えばジャングルやサバンナでいくら自分の権利を主張しても、周囲の人に自分の思いを分かってもらう程度の効果しかない)。

上の議論をそのまま適用すると、個々人が「特定の社会のルールを守って、その社会に参加しよう」と思うからこそ、その社会に固有の「権利」が認められると言える。刑法39条の「心神喪失者・心神耗弱者は罰されない」というのも、「そもそも社会に参加しようとする意思が薄弱なら、社会のルールに縛るべきではない」という解釈だととれる。

ただ社会のルールに縛られなくなる反面、社会の構成員なら本来受けられるような社会的恩恵(自由権とか平等権とか)が与えられなくなる、という結論も同時に導き出され得る。つまり社会の運営側としては、個々の場合について:

  • その人にどの程度の意思が「認められる」か?
  • 社会としてどの程度の権利を「認める」か?

という問題に関して線引きをしていくことになる。個人的な感想としては、これも結局は特定の社会における「スタンス」の表明でしかないし、ケースバイケースの側面が強いので、おそらく明示的であればあるほどよいのではないだろうか。

動物の権利について

個人的に上の動画の後に興味を持ったのは、まずは「動物の権利」についての諸々の議論だった。

  • 動物たちは、(意識的あるいは結果的に)どの程度社会に参画していると言えるのか?
  • 個々の場合について、どの程度の権利あるいは義務を認めるべきなのか?

ペットや家畜がスーツケースとか鉢植えのようなものと同格とは到底思えないけれど、社会のルールが人間の言語(と、人間の感覚)で作られている以上、人間と同格の構成員になることはできないと思う。ならどのように線を引けるのか?結局難しいので、自分の中では問題提起で終わってしまっている…。

犯罪者の権利について

そして最初に出した、犯罪と人権の問題。これも結局問題提起だけで、そこからどう考えていけば良いのかわからない…。

なにがしかの刑事事件を犯して有罪判決が出た場合、「この人は社会のルールを守ることができない」という烙印が押されるわけで、多少自由がなくなるのはやむを得ない。しかも周囲からは「この人が本当にルールを守れる人間になったのか」など推測のしようがないわけで、社会復帰自体が非常に難しくなるのもある意味しょうがないように思う。実際、判決後になんとか社会を渡れている人としては、ホリエモンくらいしか知らない。

それよりもややこしいのは、ただ逮捕されただけなら「犯罪の疑いがある」だけ、ということ。冤罪だったら、当人からすれば「何も悪いことしてないのに自分の自由が侵されている」という状態になるわけで、迷惑この上ない。しかも逮捕されるだけで一般的には(どうしてだか知らないが、世間という別種の社会によって)退学・解雇を余儀無くされる。冤罪を被った側からすれば「社会の横暴」とでも言うべきことだと思う。

いっぽうで、もし実際に罪を犯しているなら、周囲の人間からすれば「取り調べ中の奴が野に放たれて更なる問題を撒き散らす」というのも迷惑甚だしい。容疑者の人権は、何をどこまで制限できるのだろうか?果たして自分の所属している社会は、冤罪によって被り得る迷惑を補って余りある恩恵を、本当に自分に与えてくれているのだろうか?

おわりに

原則は分かった気がする。そこから各論に持って行くのが怖い。

このブログについて

10年以上Wikiを利用しています。

ただ最近雑多なことに手をつける機会が増えてきて、Wikiの記事にするまでもないようなことがたくさん出てくるようになりました。 なのでそういうちょっとした学びや気づきについては、ここで一旦文章化してみようかと思っています。

三日坊主なので、10日も続けばよいほうかもしれませんが。