Aha!ではHTMでは何が起こっているのか
もともとの問題意識
シンボル演算ならNeumannマシン強いよな。では数学をNeumannマシンは創造できるのか?
現状、それは難しい。
なぜ?
創発的な活動ができない。というかそういうアルゴリズムが知られていない。
じゃぁ、脳、というかHTMで創発って何が起きてることになるの?
よく言われるのは、つながりができる、ということ。
シナプスができる、強化される、ということ?それは普通の学習と何が違う?
なにかとなにかが同じ、だから、、似ているから、結びつく、のだろうか?
sparse codingだと、偶然似てしまう、ということは考えにくい。
似ている、、、実生活では、よこすべり、だじゃれ、言い間違い、、
これをHTMで何をおこせばいいのか?
HTM的に似ている、ということは、contextを形成するものがほぼ一緒である、、、つまりcontextを共有している。
1つの活性化樹状突起でいえば8つのシナプスが同時に活性化すると発火するわけだから、空間的poolingの影響がないくらい遠いニューロンどうしでこの8つのシナプスを共有していれば可能性はある。
しかし、1つの樹状突起に集まって来るのは、そもそもが空間的に近いものである可能性が高い(これどうやってHTM的に実装するかといえば、同じregion内部から飛んでくる場合は一つの樹状突起にくっつくシナプス結合する、、というぐらいか)
このあたりは
Why Neurons Have Thousands of Synapses, a Theory of Sequence Memory in Neocortex
に詳しい。
遠くのニューロンからのシナプス結合はコンテクストとして「発火一番乗り」を支援するだけである。しかし、コンテクストがあれば、多少ノイズがあってもそれが選ばれて、発火して、結合が強化されて、、というループは起きうる。
そして、いつも同期して発火するいくつかの概念グループが別のリージョン上で発火を起こす。。。それが「Aha!」
だから、Aha!というのは、すでにものすごくコンテクストができていて、明示的に接続というか別ステージでの発火が起き、トップレベルまでそれがエスカレーションされた瞬間、なんだろう。ものごとは識閾下ですすんでいて、新しい発火を手繰ってみたら、2つのこれまで関係ないと思っていたものが同時に発火していた、、というやつ。
追記:これってHTMの基本動作だよな、、、
高位のregionでの発火って、こうやって起こるようになる。
概念形成の瞬間はいつもAha!なんだよ。
@ocaokgbu あ、あきらめてカフェから引き揚げた瞬間に理解した。HTMではすべての新しい概念ってこのパターンで形成されるんだ。issueじゃなくて基本動作だわ、これ。コンテクストを共有する、ということが明示的にエスカレーションされる瞬間がaha!ってだけ。
— Kazutaka Ogaki (@ocaokgbu) 2016年6月8日
HTM unresolved hard problemsのビデオをざっと見た
以下はそのメモ。
https://www.youtube.com/watch?v=gXP-63sZM_o
presented by Jeff Hawkins (numenta.com)
numentaはBiological Brain structureからのボトムアップと、知能の機能面の両方からアプローチしてるユニークな団体である
ただ、どちらか、特にbiologicalな側面を完璧に解き明かさずともNLP(自然言語処理)やIoTの異常検知には十分であろう。
脳の進化の過程と新皮質
爬虫類reptile
- エピソード記憶(意識):海馬
- 感情、複雑な行動の部分を成す基本的行動:中脳(小脳)
- 自動的、不随意の行動(呼吸など):脳梁を経由した活動
- 反射的行動:脊髄
進化しても、機能の変化は少ない。もともとあった機能はもともとあった部位で、、、が多い。はず。
哺乳類mammals
- エピソード記憶(意識):海馬
- 万能で学習可能な感覚ー身体の働き、世界のモデル化(mirror neuron):新皮質
- 感情、複雑な行動の部分を成す基本的行動:中脳(小脳)
- 自動的、不随意の行動(呼吸など):脳梁を経由した活動
- 反射的行動:脊髄
新皮質自体も階層的構造を持つ
- 一つの層はregionと呼ばれる(実際にはtreeのようになっている)
- sensor-motor-worldモデルの階層が双方向(階層の上下)に繋がっている。
- 視床(thalamous)ともループを形成している
- 新皮質全体で共通の(universal)algorithmに従って動いている。
Numenta, HTMがbiologicalにbottom upだというのは、
- この新皮質の構造、機能(repeating unit of cortex)をreverse engineeringしたものをソフトウェアで再現しようとしている。
- 新皮質と脳の他の部位との相互作用についてもリバースエンジニアリングしようとしている
- この部分をよく理解すれば、認知の数多くの応用を生み出すことができるはず。
2。の部分についてはみなさんに任せよう。なんていうセリフが出てくる。彼にはエンジニアとして一番おいしいところ(シンプルで解析容易だが巨大な機能をカバー)がどこか見えているからこういう話になるのだろう。
彼はここで強調する。この脳の仕組みを再構築する必要はない。得た知見を応用すればいいんだ、と。
新皮質のregionの構造について
6層になっていて、大別すると2つのレイヤーが存在する。
- 下位からの情報を上位に伝えるfeed forwardの経路(layer 2/3, 4)
- 上位からの影響を受けるfeedbackの経路(layer 5,6)
4層にはデータが入ってくる。そして推論infernce(sensori-motorについて)を行う。
- sensor data (視聴覚情報)→これは2/3層へ転送される
- copy of motor commands(運動するための筋肉司令のコピー。本体は脊髄を通って筋肉に伝わる情報)→これが4層で処理される。
4層に入ったデータは2/3層へ伝わり、その過程でまた推論が起きるが、この場合は感覚情報が使われる。
2/3層の状態はより高位のregionへと伝えられる。
5層ではその状態を運動Motorに反映される。5層からは運動中枢に直接伝わるか、視床を経由して伝えられていく。この信号はある程度の時間遅れを伴って新皮質へと帰ってくることでループを形成するようだ。
(なんで経路が分かれているかって?知りません、と、彼は言う。)
6層の状態はAttention(予測、潜在的制約)として下位のregionに伝わる。認知のframeを形成していることになる。
で、この構造ってのは普通の深層学習やニューラルネットワークより複雑である。でも、roadmapとしての見通しは直観に訴える。(でしょ?)
ただし、それぞれの層の入力や出力は部分的にしかわかっていない。そして、各層がどのように相互作用しているかもよくはわかっていない。
HTM temporal memory
以前はCLA(cortical cellular layer)と呼ばれていた。
以下のような要件を新皮質のrevese engineeringの過程で洗い出した。
- Distributed high-order sequence memory (分散処理で高次に階層化されていて、任意のシーケンスを記憶できる)
- 複数の予測(可能性の動的ポテンシャル)を並列に表現
- さらに学習や予測が継続的、並行して行えることも他のニューラルネットワークの技法に対するHTMの特徴になってくる。
- 学習の規則はローカルで処理できる
- データの欠損やノイズに対して頑健である
- モデルのパラメータが多少変化しても問題なく機能する。
- 予測と動作シーケンスの生成のいずれにも使える
鍵となる洞察
- HTMは知的システムの中核を成す
- 知的な機械は多様なHTMの組み合わせになる
Don't understoods
生物学的にまだわかってないこと
リージョンで表現できることはわかった、ではつながりtopologyは?
- それらはどんなtopologyでつながっているのか?
- full meshなのか?そんなことはない。
- どのようにつながりが変化していくのか?
- 進化の過程でどのように変化してきたか
- 発生的にどのように変化するのか
- 学習によってつながりが変化するのか
情報の伝達経路がたくさんある
- 複数の経路の果たす役割、、、詳細は、わかっていない
- 視覚情報が複数の部位に伝わっていき、最終的に知覚として焦点を結ぶが、、なぜそうなのか、、そ唸るのはなぜか、わかっていない。
- なんで複数あるのか。その意味は、、、わかっていない
視床とのつながり
- なんでForwardの経路が視床を通過するのか、そして、通過しない経路があるのはなぜか?わからない。
- 視床が注意に関係あるという予測は立てているが、その仕組みは生理学的にはわかっていない。論文は山ほどあるけど。
認知の機能からtop downで考えるときにまだわかっていないこと
sensory-motor の推論(inference) 行動の組み立て
- 部分的にはわかってきているし、検証もされている
- 実際の応用でさらに検証されるべき
- 運動一般の脳の機能と新皮質の協働はどうなっているかまだよくわかっていない。爬虫類も運動はしてた。
運動の組み立てmotor generation
- メカニズムはわかってきている。
- 強固な理論的枠組みがまだ
- 強化学習が必要である
注意について
- メカニズムはよくわかっていない。意識の問題として研究は盛んだが。
- 運動の理論がちゃんとできてて、それの司令部分としてインターフェースが決まってくるので、それ待ちでもある
タイミング
- 感覚情報は時間的に連続して流れこんでくるが、けんちできないような時間間隔というものもある。
- センサー情報や運動指令のクロックサイクルってどうなっているの?
現存する言語やゲームは脳と社会的認知資本に適合するようなバイアスがかかっているだろうな(素人の意見です
そうなると、自然言語認知などの領域では脳をモデルにする意味はある。
脳(耳や視覚的情報、シンボル、身振り、そして日常という意味のフレーム)が認識できる言語しか残っていないはずだ。
(よほど有用な言語でない限り例外はないだろう。例えばプログラミング言語は機械よりである。)
ゲームもかなりの部分はそうだろう。
無限にも思える広がりのある囲碁のようなゲームでも、勝負が読めるのは当分人間の認知の領域の中のバリエーションについてだけだろう。
ゲームの公理に基づいて可能な組み合わせよりもずっと狭いところでしか対戦相手は振舞わないので、そこを読むのは無駄なのだ。
AlphaGoは完全にランダムな枝を学習するには時間が足らない。
しかし、「時々サイコロを降ってくる相手」にも対処できるためには人間の手筋よりもかなり広い領域をカバーする必要があっただろう。セドル氏に負けたのはその領域のカバレッジが不十分だったのかもしれない。(素人の意見です)
UI雑感
https://twitter.com/ocaokgbu/status/730503828835950592
UIの「効率」を動作と情報量で考えていくと、スイッチオンの1ビットで勝手に情報を浴びせられるテレビやラジオに行き着く。確かにそれが最高という場面はある。 普通は、操作による可能性の広がりと、意図と結果の適合度の高度なバランスが求められてんだろうけど。
今のUIってのは、期待が進化して体制感覚よりもシンボル寄りだったり、拡張された感覚やアクチュエータ操作をイメージしてる。(脳の可塑性スゴい)
最初はどうしても学習コストが発生するから、既存のUIは重要だが、それだけだと「自転車に乗れた」ような体験は達成できない。
期待というか意図、、、とは何か。 「 お願い、当たって!」と、目をつぶって、もしくは意識してaimせずに放つブラスターが当たる、、みたいな状況? 一方、「無心で振った」とか 相撲の「覚えてないっす」にある通り、習得済みの技能をうまく発揮させるとき意識は邪魔
「意識と脳」
本当に凄いUIってのは、 ・効率的に学習できる(モチベーションが維持できる) ・習得したら無意識に操作できる(高速で認知負荷が低い) ・疲れない、飽きない(しかし、マウス操作って飽きる? のが条件になるのかな。メンタルモデルが綺麗とかあんまり関係ないのかな。
あ、飽きるってのは、繰り返しを認知して、新たなメタレベルの学習が始まってるってことだよな、最終的にはそういうものを集約してUIが進化するのが望ましい。その進化が「レベルアップ」として実感できるための仕掛け、、が「いわゆるUI,UX設計」なのかもな。
今日の方向修正案 ー tweetまとめとフォロー予定地
https://twitter.com/ocaokgbu/status/729554366139535360
ViveとRiftと1080は捨てて、「被って仕事」に賭けるか。 ただし、depthで貼り付けるってのはVRならば当面はDK2やOSVRでいいので、浮いた30万円で1ヶ月という時間を買うってのもアリだな。 一晩寝て、決断する。
で、強化学習で何らかの結果が出たところで、HTMだとどう違うのか、というサンプルにしたい。 せっかくだからNumentaの活動が活発なうちに発表したいな。 真面目に時間が足らないぞ。学生になっとけばよかったか。
最悪、実家にころげこんで、とか考えたが、子供達の学校の手続きとか考えるとかなり厳しいな。教育は長期的な投資と考えると今は動くのは得策じゃない。 結局は世の中でアタマ取ることはまず捨てて、「やりたいことをボチボチ」になってしまうが、、よく考えたら最高だろ
onAirVRでkey-skyboxを転送してはどうか
keyskyboxes 複数でもいい
multi-thetaのストリームから、歩き回れるフィールドを再構築するアイデアでもあったように、
- まずゲームフィールドとして近傍のskyboxesを転送。以後はその中で動いたり視線移動したらそのskyboxの情報をmorphing(大抵は補完)して使う(onairVRはこっちをやっていると思っていた人が結構いたのではないか)
- CPUエージェント、アバターのモデルを転送(それはアプリケーションとして起動ずみかもしれないが、新規モデルは随時転送)
- あとは移動や風景の変化としてkeyskyboxが時おり転送される
- プレイの進行に応じて、各プレイヤーの動作や位置を通信する
要するにmulti-player online game(懐かしのMUDか)だと考える。
帯域と端末の処理能力、バッテリーのバランスで、key-skyboxの転送頻度、補完のアルゴリズムや、アバターの描画精細度を変えていく。
そして、プレイヤー同士の通信については、許容できる遅延と整合性のルールを決めていく。これはオンライントランザクションとして考えて、どこまでだったら成立するか、ということだろうと思う。エラーが起きたらそれなりのフィードバックをプレイヤーに与える。「ちょっとお待ち下さい」
a brain meets brains
game player oneはboy meets girlではなくてbrain meets brainsであっても良かったのか?
プロの物書きとしては前者に落とすのが当然なのかも
脳にどれだけ性差があるのか。それは個人差とどれだけカバー範囲が違うのか。
genderの不適合ってアバターでなんとかなる部分はどれだけあるか
身体やホルモンを「取り替えたら」幸せになる脳はあるのか?
そんなことを思った。