EMアルゴリズムの勉強メモ

自由エネルギー原理を理解するためには機械学習での「変分ベイズ」を理解する必要があって、さらにその手前の段階に「EMアルゴリズム」がある。EMアルゴリズムにおいてもKL divergenceを最小化して下界Lを最大化する過程が出てくる(PRMLの9.4章の図9.11-14)。

この図と式を字面を追っていくことはできるけど、シンプルなモデルでじっさいにグラフを書いて理解できるようにしたい。いちばん簡単な例はなんだろうか? Nature BiotechnologyのPrimerの記事で混合二項分布を使ったいい感じにわかりやすいものを見つけた:Do, C. B., & Batzoglou, S. (2008). What is the expectation maximization algorithm? Nature Biotechnology, 26(8), 897–899.

ここにある事例を使ってmatlabでグラフ書きながら理解してみることにしよう。


潜在変数がない場合 (=>最尤推定)

コインの裏表のデータがある。データXはコインの表の数(列1)と裏の数(列2)を表していて、10回での裏表の数を計算して、それを5回繰り返しす。つまり、データ で、たとえば だと、10回中5回表が出たということ。

X = [...
    5 5;
    9 1;
    8 2;
    4 6;
    7 3];

じつはコインには二種類、コインAとコインBがあって、それぞれで表が出る確率が違う。この5回でどっちを使ったかのデータがわかっていて、それをZで示している。つまり、データ で、 (A or BでAを使った確率)

Z = [...
    0
    1
    1
    0
    1];

それではcoin Aおよびcoin Bそれぞれでの表の出る確率 はいくつか?

これは最尤推定で解ける。しかも二項分布の場合は最尤推定を使わなくても、coin Aでは thetaA = 24/30=0.80 , coin Bでは thetaB = 9/20=0.45 という計算だけで済む。


潜在変数がある場合 (=>EMアルゴリズム)

ではもし、いつcoin A, coin Bが出たか(Z)が不明の場合にもcoin Aとcoin Bの表が出る確率を推定することはできるだろうか? つまり入手できるデータはXだけで、Zのほうは入手できない潜在変数という場合でも可能か?というのが問い。

そうすると問題はこのときの尤度

を最大化するような を求めたい、ということになる。

そこで尤度 を最大化する代わりに、

における を最大化する。

これのlogを取ったものの最大化を考える。

(1) 推定する変数 および の初期化

, : コインA, Bそれぞれの表が出る確率

theta_Aest = 0.60;
theta_Best = 0.50;

および

pziAest = [...
    0.5;
    0.5;
    0.5;
    0.5;
    0.5];
pziBest = 1 - pziAest;

(2) E-step: を計算する

ベイズの公式より

これらが計算できればE-stepでの目的である として

右辺は(2)と(1)から計算できる。

実際にはこれを計算する:

のときの が起こる尤度だから

px1z1A = binopdf(X(1,1), X(1,1)+X(1,2), theta_Aest)
px1z1A =       0.20066

初期設定より、

よって は以下のように計算できる。

pz1Ax1 = px1z1A .* pziAest(1)
pz1Ax1 =       0.10033

同様にして、 のときの が起こる尤度だから

px1z1B = binopdf(X(1,2), X(1,1)+X(1,2), theta_Best)
px1z1B =       0.24609

初期設定より、

よって は以下のように計算できる。

pz1Bx1 = px1z1B .* pziBest(1)
pz1Bx1 =       0.12305

まとめると となる。

同様にして について計算すると

pziAxi = ([binopdf(X(:,1), X(:,1)+X(:,2), theta_Aest)]) .* pziAest;
pziBxi = ([binopdf(X(:,2), X(:,1)+X(:,2), theta_Best)]) .* pziBest;
[pziAxi pziBxi]
ans =
      0.10033      0.12305
     0.020155    0.0048828
     0.060466     0.021973
     0.055738      0.10254
       0.1075     0.058594

を計算するには上で計算した があればよい。

より

pxi = pziAxi + pziBxi
pxi =
      0.22338
     0.025038
     0.082439
      0.15828
      0.16609

これが の推定値

pziAest = pziAxi ./ pxi;
pziBest = pziBxi ./ pxi;
[pziAest pziBest]
ans =
      0.44915      0.55085
      0.80499      0.19501
      0.73347      0.26653
      0.35216      0.64784
      0.64722      0.35278

(3) M-step: の推定

coinAが出る期待値は

X_Aest = X .* pziAest;
X_Best = X .* pziBest;
sumX_Aest = sum(X_Aest,1);
sumX_Best = sum(X_Best,1);
theta_Aest = sumX_Aest(1) / (sumX_Aest(1) + sumX_Aest(2));
theta_Best = sumX_Best(1) / (sumX_Best(1) + sumX_Best(2));
[theta_Aest theta_Best]
ans =       0.71301      0.58134

(4) 収束条件を見てストップするか判断

thetaが収束したかどうかを確認して、E-Mの繰り返しを止めるか決める。

ではE-Mを20回繰り返して、thetaが収束するかどうか見てみることにしよう。

clear all
X = [...
    5 5;
    9 1;
    8 2;
    4 6;
    7 3];
theta_Aest = 0.60;
theta_Best = 0.50;
pziAest = [...
    0.5;
    0.5;
    0.5;
    0.5;
    0.5];
pziBest = 1 - pziAest;
theta_est =[theta_Aest theta_Best];
for ii=1:20
    pziAxi = ([binopdf(X(:,1), X(:,1)+X(:,2), theta_Aest)]) .* pziAest;
    pziBxi = ([binopdf(X(:,2), X(:,1)+X(:,2), theta_Best)]) .* pziBest;
    pxi = pziAxi + pziBxi;
    pziAest = pziAxi ./ pxi;
    pziBest = pziBxi ./ pxi;
    X_Aest = X .* pziAest;
    X_Best = X .* pziBest;
    sumX_Aest = sum(X_Aest,1);
    sumX_Best = sum(X_Best,1);
    theta_Aest = sumX_Aest(1) / (sumX_Aest(1) + sumX_Aest(2));
    theta_Best = sumX_Best(1) / (sumX_Best(1) + sumX_Best(2));
    theta_est = [theta_est; theta_Aest theta_Best];
end
figure;
hold on
plot(0:size(theta_est)-1, theta_est(:,1), 'ro-')
plot(0:size(theta_est)-1, theta_est(:,2), 'bo-')
plot.png

このように、Zが既知での最尤法のときに計算した値(thetaA = 0.80, thetaB = 0.45)と同じ値に収束していることが分かる。

ところでNature BiotechnologyのPrimerの記事では10回繰り返したところでthetaの推定値が thetaA = 0.80, thetaB = 0.52 となってる。たぶんPrimerの記事のほうがなんか間違えてると思う。


盲視と表象と動物の心

こんど栢森情報科学振興財団が毎年開催している「Kフォーラム」というクローズドの会でトークさせてもらえることになった。有名な科学哲学者の方も参加するとのことなので、以前読んでたルース・ミリカンのオシツオサレツ表象とかあのへんを盲視の議論から展開させて話してみようと思う。

このへんに関しては以前ブログ記事「鈴木貴之さんの「ぼくらが原子の集まりなら、なぜ痛みや悲しみを感じるのだろう」を読んだ!」および「鈴木貴之さんの本を読んでいろいろ考えた(続き)」に色々書いた。あと記事にしてないけどツイッタにも書きためている。これらをまとめたうえで、「盲視での「なにかあるかんじ」という経験とは、カエルの表象(生産者)をヒトの消費者が利用している状況ではないか」という空想を語ってみようというわけだ。

そういうわけで「哲学入門」(戸田山和久 著)を再読してる。

5章の「目的」のところの話を読んでいると、ヒト以外の動物では(1)自分の行動から生じうる未来の出来事を予測して行動する 、これはできるが、(2)ある行動による帰結を予測して行動を制御する、これはできない、とある。要するにシミュレーションができるかどうかの違いのようだ。

p.259では(1)単に未来の情報を表象すること (2)未来の状態を「目標として」表象すること の違いと表現している。これって、例の松沢さんの話で出てくる「チンパンジーは自分の未来に絶望しない」ってあれのことだなあと思う。

p.260では二匹のハムスターの例で説明しているけど、「餌を見ると、これを運べばねぐらの餌が増えるというアフォーダンスを知覚して、餌を運ぶ」これはできても「ねぐらの餌がたまった状態を目標として、その目標のために餌を運ぶ」これはできないと言う。

これは神経科学とつなげて考えられそうだ。Non-human primatesを対象とした神経生理学ではこれまでの30年くらいにわたって「目的(ゴールの場所とか)を表象するニューロン活動」について研究してきた。説明しだすと長いので次のパラグラフでざっくりとした例を書く。(わかっているヒトはスキップで対処して。)

(補足説明: たとえば、ある行動課題では、手掛かり指摘として赤丸が出たら右ターゲットをタッチすると報酬がもらえる。緑丸が出たら左ターゲットをタッチすると報酬がもらえる。するとこの課題をやっているときの脳活動の記録から「右のターゲット(ゴール)を表象するニューロン」というのが見つかる。これは赤丸が出てから右ターゲットを選ぶ行動を始めるまでの間だけに活動する。緑丸が出てから左ターゲットを選ぶ行動を始めるまでの間には活動しない、つまり選択性があるから、右ターゲットの情報を持っているのであって、手を伸ばすという運動一般の情報を表象しているわけではない。ではこれは赤丸を覚えているニューロンではないだろうか?これはお手つきをした試行を調べてみれば分かる。このニューロンは緑丸が出たのに間違って右ターゲットを選ぶ行動を始めるまでの間にも活動した。一方で、赤丸が出たのに間違って左ターゲットを選ぶ行動を始めるまでの間には活動しなかった。よってこのニューロンの活動は、赤丸や緑丸を思い出している活動(retrospective coding)ではなくて、将来起こる行動が右ターゲットと左ターゲットのどちらか(prospective coding)を示している。)

しかしけっきょくのところ、このような神経生理学で示したことは正確には何だろうか? ここで起こっていることは、未来を「イメージ」している、というのとは違うんではないだろうか?

おそらく動物ではただただ「今を生きる」をやっている。それは田口茂さんの「現象学という思考」での「行為的連関のモード」というものだ。上記の神経生理学の実験の例で挙げたような、未来に向けて行動している場合でも、いつもイマココにゴールを保持しているのであって、あとで使うかどうかもわからないイベントをエピソード記憶として持っているわけではない。

(もっとちゃんと考えようとするならば、強化学習の枠組みでの誤差をどうやって作っているのか、その教師信号はどのような形で更新されているのか、というようなことを考える必要あり。)

「行為的連関のモード」というキーワードが出てきたので、ここで以前のブログ記事で書いた神経活動と表象の関連の問題についてパラフレーズをしてみよう。側頭葉のニューロン活動を記録すると「おばあさん」を見たときだけに活動する「おばあさん細胞」が見つかった。しかしこのことから、おばあさん細胞が活動したらおばあさんが表象されたと結論づけるわけにはいかない。それはなぜかというと、それだけではおばあさん細胞の活動は、視覚入力-神経活動-行動という行為的連関の一部分でしか無いから。

そこに反実仮想はない。それが表象であるためには、他の可能性を排除した「ほかでもない」おばあさんという情報である必要があるし、ミリカンが「バイオセマンティクス」の中で書いたように、否定文を作れるような命題的内容を持つ必要がある。

神経活動は否定文を作れない、というのも変な表現だが、この論点は、下條信輔さんが「意識とは何だろうか」でヒトは間違えてもニューロンは間違えない、という話をしたことと大いに関連しているといえるだろう。この話も詳しく説明しだすと長いので次のパラグラフでざっくりと説明する。(わかっているヒトはスキップで対処して。)

(補足説明: Newsomeの知覚的意思決定の研究を引いて、MTニューロンは誤るということがないと議論。あとで加筆予定。)

これは人間の判断というパーソナルなレベルでは「間違う」ということがあっても、ニューロンというサブパーソナルなレベルでは「間違い」「正解」は消えてしまうということだ。

こんど下條さんに会う機会までに該当部分を読み直して、この話について聞いてみることにしよう。

おばあさん細胞の活動は、視覚入力-神経活動-行動という行為的連関の一部分でしか無い。神経活動と表象の問題を考えるにあたって、ベイズ脳的な考えは重要な意味を持っていると思う。ベイズ脳ではここのニューロンが「信念」「モデル」を保持していて、それが時々刻々と入力する感覚情報によって更新されてゆく。ここには「視覚入力-神経活動-行動という行為的連関」以上のものがある。ただし「信念」「モデル」という言い方でホムンクルスっぽいものが入っていて、それを使ってしまえば、表象の自然化をするために表象もどきを埋め込むというズルをしているとも言える。

ちなみにKフォーラムの方は、クローズドではあるものの、発表と議論の結果は「K通信」としてまとめられるようなので、ここで面白いことが書けるのを目標にしてみたい。(<-未来を想像する人間らしい行為)


駒場講義2017の準備のつづき:ハンドアウトをアップロードしました

駒場学部講義2017 「意識の神経科学:盲視・統合失調症・自由エネルギー原理」講義ハンドアウトをslideshareにアップロードしました。併せて生理研の講義資料ページもアップデートしております。

駒場学部講義2017 「意識の神経科学:盲視・統合失調症・自由エネルギー原理」 from Masatoshi Yoshida

毎度そうなのだけど、slideshareは日本語が化ける。調べてみたらMacのフォントに対応していないということで、しょうがないのでアップする資料だけMS Pゴシックに変換。印刷するものはヒラギノ角ゴ ProN W3を使用してます。

なんとか今やれと言われてもできる形にはなった。また明日見直して、マテリアルの分量調節する予定。


駒場講義2017の準備のつづき:講義用webサイト開設しました

昨年に引き続き、講義用のwebサイトを作成しました。 「駒場学部講義2017 「意識の神経科学:盲視・統合失調症・自由エネルギー原理」講義資料」

まだ工事中ではありますが、講義当日までにすべてをfinalizeする予定です。

いまは「脳がわかれば心がわかるか」の「回帰する擬似問題」がうまく説明できるか、試行錯誤しているところ。たとえばp.154-155

なるほど大森の考えによって、ジレンマが生じるカラクリ(カテゴリー・ミステイク)とそれを解消する方法(「重ね描き」)を知ることができました。しかし、なにか腑に落ちません。理解はできても納得ができない、そんな感じが残ります…ライルや大森の考察は多くのものをもたらしましたが、その議論は権利問題にとどまっているため、真に有効な処方箋にはなりえていません。それは心脳問題という「ある種の哲学的な病気」にたいする有効な解毒剤ではありますが、すでに表面にあらわれてしまった症状に対して行う「対症療法」的な処置にとどまります。

ここの「ある種の哲学的な病気」というところは納得いくかんじもあり、いかないかんじもあり。これはライルの「ある種の知的な気分」(p.75)の言い換えであるらしい。わたしが毎度講義で使うネタで「意識を語る」の中にあるネド・ブロックの話があるのだけど、ネド・ブロックが講義でinverted spectrumの話をすると、学生の2/3はよく理解するし、それ自分で考えたことあるよ!みたいな反応があるらしいのだが、残りの1/3は「いったい何を言ってるのかわからない」という反応らしい。私は前者なので後者の人がぜんぜん理解できないんだけど、ライル(デネットの師匠)の言い方によれば「ある種の哲学的な病気」に罹らずに済んでいる、ということなのかも。

茂木さんの「脳とクオリア」で出てくる話で、(20代で)電車に乗っているときに突然クオリアの問題に気が付き騒然とするエピソードがある。茂木さんにとってはそれって後者から前者へとジャンプした瞬間の衝撃だったのだろう。私としてはずっと昔の子供の頃に前者になったのでそのジャンプの経験というものが共有できないのだけど。

「どうして」脳と心が関連しているかを問うのではなくて、脳と心との関連がどのような法則的関係にあるかという科学的記述があって、それで99.999%での予測ができるのなら、「どうして」脳と心が関連しているかという問いは解消(<->解決)するのだろうとも思う。

なんだか嵌りそうだから、スライドから除くかも。講義のラストでの問題提起ならまだしも、初っ端でこれはまずい。


駒場講義2017の準備のつづき。「回帰する擬似問題」

昨日の記事駒場講義の準備のつづき。 つか講義当日まで毎日更新してゆく予定。

毎回講義の導入部は意識を科学的に研究するってどういうことか、 ってところから始めるのだけど、 「ハードプロブレム」に言及する割に尻すぼみなので そこに一旦オチをつける必要があると思っていた。

そこで「回帰する擬似問題」について言及しようと 「脳がわかれば心がわかるか」(山本貴光, 吉川浩満 (著)を買ってきた。

「回帰する擬似問題」の議論には続きがあって、 持続としての意識経験と同一性に基づいた科学 というギャップの問題に言及しているのだけど、 これって以前ブログに書いた Per Bakの「お話としての説明と科学としての説明」 と同じ構造だってことに気がついた。

いや、「理不尽な進化」のときに言及した気がするけど(注)、 これで講義をまとめる方向性が見えてきた!

砂山は崩れる。物理的に、確率的に。 それをお話として「いくつかの悪い偶然が重なって 予想外に大きい雪崩が起きた」と捉えたうえで、 「どうしてそれが今だったのか」 と問うときに答えられない問題(「どうしてそれが今だったのか」)が現れる。 それはかけがいのない、来歴に基づいた、一回性の世界。

ハードプロブレムを 解けた、と言ったらそれはトンデモ、 解ける、と言ったらそれは問題の難しさをわかってない、 解けない、と言ったらそれは科学を固定的に見ている、 だから、解けるか解けないかは、我々の「科学的な理解方法」と 一度限りの人生を生きるための「お話としての人生理解」 との間に折り合いをつける方法を将来作れるかどうかによるし、 折り合いがついたとき、たぶん我々は今言うような人間でなくなっている。 (「人間」の終焉、もしくはシンギュラリティー以降)

「脳がわかれば心がわかるか」の議論に乗っかれば、 一回性の人生をお話として了解する際に意識の難問が現れるのであって、 そこには解決はなく解消しかない。 そのためには人間にとっての因果や自由意志といった時代精神を書き換える必要がある。 するとシンギュラリティーってのはトラルファマドール星人 になることと言って過言ではない。(<-過言)

という方向に行くとトンデモになってしまうので、 一回性を扱うためには「同一性に基づいた科学」という概念自体を拡張する必要があって、 ヴァレラの神経現象学の要素である力学系と現象学はそのためにある、 みたいな話なら無理ないか。

そのうえで、不充分ながらも意識経験の変容の例を紹介し、 FEPについても批判的な立場から、それでもembodiedであること (<-それ自体が来歴に基づいた同一性からの拡張)の重要性を訴えかける… ってここまで書いて、気分盛り上がってきたが、どうやっても盛り込むのは無理なので、 とりあえずブログにまとめて、気分盛り上げるのに使うことにする。

(注) 2015年09月21日 に言及していた部分は以下のところだった。

「理不尽な進化」は最終章まで来た。 なるほど「回帰する擬似問題」とか「心脳問題」のときと同じ構造を持っている。 進化論が歴史と適応の組み合わせであり、これは意識での一回性の問題と同じなのだな。 そして袋小路の成り方もよく似ている。 機能主義者の無意識的な形而上学的コミットメント問題とか。

ほかにも「「お話としての説明」と「科学としての説明」という対比」 の話と繋げて考えてみたりとか、いろんなとっかかりがあって、 頭のなかで重要なところに杭を打つことができたような気がする。 これを起点にもっと進めてゆくことにしよう。

あと、フリストン自由エネルギーとも関わる「最適化」の問題。 歴史の影響から逃れ得ないがゆえの「奇妙な生物」と「messyな解決法」。 期待に依存しない「アルゴリズム的解決」と物理に拘束された「embodiedな解決」。 IITや自由エナジーをこちらから鍛えることができないだろうか?


お勧めエントリ

  • 細胞外電極はなにを見ているか(1) 20080727 (2) リニューアル版 20081107
  • 総説 長期記憶の脳内メカニズム 20100909
  • 駒場講義2013 「意識の科学的研究 - 盲視を起点に」20130626
  • 駒場講義2012レジメ 意識と注意の脳内メカニズム(1) 注意 20121010 (2) 意識 20121011
  • 視覚、注意、言語で3*2の背側、腹側経路説 20140119
  • 脳科学辞典の項目書いた 「盲視」 20130407
  • 脳科学辞典の項目書いた 「気づき」 20130228
  • 脳科学辞典の項目書いた 「サリエンシー」 20121224
  • 脳科学辞典の項目書いた 「マイクロサッケード」 20121227
  • 盲視でおこる「なにかあるかんじ」 20110126
  • DKL色空間についてまとめ 20090113
  • 科学基礎論学会 秋の研究例会 ワークショップ「意識の神経科学と神経現象学」レジメ 20131102
  • ギャラガー&ザハヴィ『現象学的な心』合評会レジメ 20130628
  • Marrのrepresentationとprocessをベイトソン流に解釈する (1) 20100317 (2) 20100317
  • 半側空間無視と同名半盲とは区別できるか?(1) 20080220 (2) 半側空間無視の原因部位は? 20080221
  • MarrのVisionの最初と最後だけを読む 20071213

月別過去ログ