ICAはもしデータが非線形だった場合に対応できるものがないor計算コストが高い。
ってか非線形独立成分分析とかまだ研究途上だし。
あ、以前の2つの1次元SOMでダメなのは劣ガウスじゃないとダメって事。
そして、近いもの同士だとかなり抑制しあっちゃってまともに学習できないこと。
だと思う、多分。
というわけで、ICAをやめてベイジアンネットを先にやることに。
というより、BESOMをICAなしで実装できないかな?と考える。
そもそもBESOMはNoisy-ORを前提にしてる。
つまり親ノードに対する子ノードの確率がほとんど0で一つだけが1というもの。
このNoisy-ORがなければICAはいらないんじゃないか?
ベイジアンネットとして正常に働かすために確率変数を独立にするってのもあるだろうけど、
ベイジアンネットの確率変数って独立である必要あったっけ?
これは子ノードの量が多すぎるからってことで導入されてるんだけど、
ほんとうに親対子が1対1で対応していていいのだろうか?
せっかくSOMを随所に使ってるんだからここでもSOM使えばいいのでは?
ってことで、1次元SOMで親子ノードの対応をあらわすことにした。
1次元SOMの各ユニットが表の行or列を表す、というわけ。
強化学習で状態行動対を学習してるけど、SOMでこれを学習するってどうするのだろうか?
むむむ、1つの子ノードの行動だけじゃなくて、いっそ全子ノードの次状態を表せばいいんじゃない?
そうすれば状態遷移表って事になって、確信伝播も使えそう。
ん?じゃあCPTと結合できるんじゃない?
ってことで実装開始。
1次元SOM、CPT学習用競合学習、テスト用倒立振子モデルが完成。
実装途中に、あれ?これって状態遷移表がHMMだったらほとんど階層型HMMじゃない?
とか思った。まぁ確率変数の出力をSOMで学習してるって違いはあるけど。
で、研究室のゼミで発表してみると・・・出るわ出るわ、ボロの嵐。
そもそもCPTの概念の考え直しを迫られた。
あーそうだよねー親ノードと子ノード間違えてたよーあははははh。
また考え直しorz
[0回]
PR