VR infrastructure and standalone hybrid system

https://twitter.com/ocaokgbu/status/741302012050972673

・LighthouseとTouch

・StreetView(iBeacon付THETA cloud)がインフラとして普遍的に存在)とHololens/Tangoのデプスカメ

 

いずれも相補的だと思うのだ。インフラ整うとwareableデバイスの負荷下がって小型化、はあるかしら。

なんつーか、室内にTHETA4本置いてVIVEのlighthouse置いたらホロレンズの空間認知って無駄すぎる、、と感じたのだよな。。。 TouchもトラッキングはVIVEのコントローラを肘にくくりつけたらしまいやん。

現状、ハイブリッドにするのはコスト上がりすぎ、ってのはわかるけど、先進的ハードのコストって1桁下がることもまれではないから、倍のハードで済むなら、通常は効率良いインフラに頼って、非常時だけスタンドアローンな機能に頼ることでバッテリーライフ伸ばすとか。アリかな?

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!なんだよ。

 

 

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だというのは、

  1. この新皮質の構造、機能(repeating unit of cortex)をreverse engineeringしたものをソフトウェアで再現しようとしている。
  2. 新皮質と脳の他の部位との相互作用についてもリバースエンジニアリングしようとしている
  3. この部分をよく理解すれば、認知の数多くの応用を生み出すことができるはず。

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 (分散処理で高次に階層化されていて、任意のシーケンスを記憶できる)
  • 複数の予測(可能性の動的ポテンシャル)を並列に表現
  • 学習の規則はローカルで処理できる
  • データの欠損やノイズに対して頑健である
  • モデルのパラメータが多少変化しても問題なく機能する。
  • 予測と動作シーケンスの生成のいずれにも使える

鍵となる洞察

  1. HTMは知的システムの中核を成す
  2. 知的な機械は多様な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ヶ月という時間を買うってのもアリだな。 一晩寝て、決断する。

 

 ロボホンは何としても実物みてみたいが、エージェントはVR、AR内部に召喚してなんぼという未来を考えているので、ホロレンズのような堅固なソフトウェアの土台がある製品がほしい。MSはそこに期待してる。しかし、1ヶ月では全然足らんのも事実だし、個人で何かするのも無理
 
 うーん、やっぱり今年後半から、どこかのチームに噛ませてもらうための名刺になる仕事に絞ろう。 HTMは継続するとして。そことの接点のある仕事、というと、7bot+Leapmotion+ARM(raspi or Maliベース)+カメラ(CV)+VR+強化学習

 

で、強化学習で何らかの結果が出たところで、HTMだとどう違うのか、というサンプルにしたい。 せっかくだからNumentaの活動が活発なうちに発表したいな。 真面目に時間が足らないぞ。学生になっとけばよかったか。

 

最悪、実家にころげこんで、とか考えたが、子供達の学校の手続きとか考えるとかなり厳しいな。教育は長期的な投資と考えると今は動くのは得策じゃない。 結局は世の中でアタマ取ることはまず捨てて、「やりたいことをボチボチ」になってしまうが、、よく考えたら最高だろ

onAirVRでkey-skyboxを転送してはどうか

keyskyboxes 複数でもいい

multi-thetaのストリームから、歩き回れるフィールドを再構築するアイデアでもあったように、

  1. まずゲームフィールドとして近傍のskyboxesを転送。以後はその中で動いたり視線移動したらそのskyboxの情報をmorphing(大抵は補完)して使う(onairVRはこっちをやっていると思っていた人が結構いたのではないか)
  2. CPUエージェント、アバターのモデルを転送(それはアプリケーションとして起動ずみかもしれないが、新規モデルは随時転送)
  3. あとは移動や風景の変化としてkeyskyboxが時おり転送される
  4. プレイの進行に応じて、各プレイヤーの動作や位置を通信する


要するにmulti-player online game(懐かしのMUDか)だと考える。

 

帯域と端末の処理能力、バッテリーのバランスで、key-skyboxの転送頻度、補完のアルゴリズムや、アバターの描画精細度を変えていく。

そして、プレイヤー同士の通信については、許容できる遅延と整合性のルールを決めていく。これはオンライントランザクションとして考えて、どこまでだったら成立するか、ということだろうと思う。エラーが起きたらそれなりのフィードバックをプレイヤーに与える。「ちょっとお待ち下さい」