全脳アーキテクチャを支えるプラットフォーム
理化学研究所生命システム研究センター

チームリーダー高橋恒一
twitter @ktakahashi74
慶應義塾大学

政策・メディア研究科
ドワンゴ人工知能研究所
全脳アーキテクチャ・イニシアチブ

特任准教授
客員研究員
理事・副代表全脳アーキテクチャまで

１５年   ＞  ３−５年                企業、公的機関のプロジェクトの寿命  ＜  ２５年研究者の１世代

NPO全脳アーキテクチャ・イニシアチブ（WBAI)
認証申請中

•目的
•今後15年以上に渡るWBA研究開発を公益的な視点から支援する。
•「全脳アーキテクチャ研究開発の伴走者」•活動の基本方針•長期的発展：•人材育成：          •基礎研究：  •公益性：       １５年以上先の汎用人工知能の完成まで  シニアから若手中堅への伝承  次の勝負どころに備える  標準的な基盤となるプラットフォーム構築  研究成果、ソフトウェアなどをオープン化•主な公益事業•勉強会開催、ハッカソン運営、若手支援•基盤技術開発、社会への影響検討（検討中）、技術認定制度（検討中）等

NPO全脳アーキテクチャ・イニシアチブ（WBAI)
認証申請中

運営体制

入会のご案内（全脳アーキ主要メンバーで分担）
総会
理事会
運営委員会
人材育成委員会
研究戦略委員会
広報委員会
管理委員会
若手の会

会員：
個人が対象
入会金無料，年会費1000円
後日募集開始賛助会員：
一口8万円／年より特別賛助会員も設定※受付中

理事
代表： 山川宏副代表： 松尾豊
副代表： 高橋恒一
幹事： 佐藤健

事務局：ドワンゴ人工知能研究所内に設置
連絡先： info@wbai.jp
ウェブページを準備中(http://wbai.jp)
4to appear, JSAI15.

脳型計算基盤ソフトウエア
Brain-inspired Computing ArchitectureBriCA

全脳アーキテクチャ(WBA)の中心仮説
脳はそれぞれよく定義された機能を持つ
機械学習器が一定のやり方で 組み合わされる事で機能を実現しており，それを真似て人工的に構成された機械学習器を組み合わせる事で人間並みかそれ以上の能力を持つ汎用の知能機械を構築可能である．

全脳アーキテクチャ中心仮説の構成論的な検証

サブ仮説群（必ずしも網羅的でない）
1. 脳のモジュール性2. 脳器官は機械学習器か
3. 機械学習器の非加算性1. 脳のモジュール性• 大脳皮質︎マイクロカラムはランダム結合なら2ステップで大多数︎カラム間︎が接続。
• その一方で，脳には様々な解剖学的独立単位が観察される．
運動野
前頭前野

言語野

視覚野

大脳皮質

基底核

扁桃体

海馬

小脳

Johanson and Lansner, Neural Networks, 2007.

2. 脳器官は機械学習器か• 脳のモジュール一つひとつが「よく定義しうる機能を持つ機械学習器（プログラム）」として構成可能かどうかは自明ではない。
• つまり、全てのニューロンとそれらの間の結合を一々書き下す
vs
計算論的に一貫性のある単一の原理で動作を定義• 用いられる機械学習アルゴリズムは全脳アーキテクチ
ャの完成までに既知となっている必要がある．

全脳アーキテクチャ俯瞰図（たたき台）	  すべての機能を統合するモジュール	（全脳アーキテクチャモデル）	

統合	  滑らかな運動モジュール（皮質・小脳連携モデル）	

言語理解・発話モジュール	（言語野モデル）	
思考・ナビゲーションモジュール	
（皮質・基底核・海馬連携モデル）	

情動モジ
ュール	（扁桃体モデル）	

階層型強化学習モジュール	
（皮質・基底核連携モデル）	

部品	  

教師あり学習強化学習モジモジュール	
ュール	（小脳モデル）	 （大脳基底核モデル）	

教師なし学習・認識モジュール	
（大脳皮質モデル）	

エピソード記憶モジュール	（海馬モデル）	

パーセプトロン、	
強化学習	
リキッドステートマシン	

Deep learning,SOM, ベイジアンネット	

自己連想ネット
ワーク、直交符号化	

連合学習	

一杉 2014

3. 機械学習器の非加算性• 個々の機械学習器の機能とヒトの脳全体が発揮する認知機能は質的に異なるように見える。機械学習器を複数積み上げて行った先に脳と同等の機能を持つ学習機械があるかどうかは自明ではない。
• 神経回路のレベルでは、ニューロンAの発火とニューロンBの発火が同時に起きた時にのみ発火するニューロンCが存在し、AやBが直接引き起こすことがない神経活動を発生させた場合には非加算性があると考えることもできる。
• 1+1 > 2

（非可算的であっても1+1 < 2ではだめ）• -> 複合学習問題

キャプション生成： 	  どちらもほぼ同じ機械学習アーキテクチャ―;	  	  convolu*onal	  neural	  net	  +	  long	  short-­‐term	  memory	  neural	  net.	  

GoogLeNet	  team	  google.com	  Neural	  Talk	  cs.stanford.edu	  Deep	  	  Q-­‐Network	  Deep	  belief	  network上に強化学習を載せている。	  	  
Q-­‐func>on:	  	  Q(s,	  a)(model	  free)	  	  op>mizing	  ac>on	  a	  by	  predic>ng	  future	  system	  state	  s’.	  	  	  	  T(s,	  a,	  s’)	  	  	  	  (model-­‐based)	  複合学習器の構成方法
1 Composition
互いに独立な機械学習器を２つ以上結合し、全体としてより大きな（より高性能、高機能な）機械学習器を構成する。
例：NeuralTalk→ プラットフォームへの要求：モジュール階層性

2 Hybrid
２つ以上の機械学習アルゴリズムを組み合わせ新たな機械学習アルゴリズムを構成する。
例： Deep Q-Network
Takahashi, PhD Thesis, Keio University 2004.

BriCA 要求仕様の概要
1. 任意の新規あるいは既存の機械学習器のモジュールライブラリ化が可能
2. 任意の数の機械学習器モジュールを階層的に結合した認知アーキテクチャを構成可能
3. 統一した通信方式で任意の機械学習器間の結合が可能
4. 統一のセンサー・アクチュエーターインターフェースを介して環境と相互作用可能。
（ロボットOSやゲームエンジンなど他のプラットフォームと結合し動作）
5. 機械学習器の非同期呼出しを調停するリアルタイムスケジューラーを持つ。
6. 機械学習器の数Nに対して、ソフトウエア的、実行性能的にスケーラブル。
7. 複合学習問題（後述）に対処するため、育成、学習カリキュラムを構築、実行する統一的な機構を持つ。
8. コミュニティーによる分散開発に対応可能

BriCAの６層構造制御・モニター系 UI層（他のエージェントとの通信バス）
アクチュエータ群

アプリケーション層

認知アーキテクチャ等

センサ群

機械学習器モジュール群（Deep learning, 階層ベイズ, 強化学習等）

複製、転送、保存、比較etc.

モジュールの階層・結合

記述言語層

BriCA言語
BriCAコア

モジュール層（リアルタイムスケジューラ）

ホスト
コンピュータGPGPU・FPGA・MIC・ニューロモーフィックなど

実行機構層

ハードウエア層

BriCAモジュール

OutIn

StateOut

InState• In/Outは名前付きポート。
• ポートの値は符号付き16bit整数のベクトル。

モジュールの発火モジュールの計算（発火）は以下の操作を実行する。
out, states <- ﬁre(in, states)

実際には、モジュールの並行性のため、３段階のフェーズで行われる。
1. input
2. ﬁre3. output

入力バッファinの値を更新
results, states <- ﬁre(in, states)out <- resultsモジュール発火の並行性
モジュール発火の並列実行を安全に行うためにはモジュールのI/Oポートの同期において下記２つの要求を満たす必要がある。
1. ある時点でモジュールAが自分の入力として取得したモジュールBの出力値を、モジュールAが計算を行っている間、仮にモジュールBが出力値を更新した後も安全に保持したい。
→

ポートの値の非同期転送で対処

2. モジュールの計算過程が外に見えないようにしたい。（出力ポートの値を計算が終わった後のある時点でinstantaneousに更新したい）。
→

ダブルバッファリング（DB）やcopy-on-write等のテクニックで対処（現在の実装ではDB）分散表象とベクトル表現l もし強い意味での脳のモジュール性仮説が成り立つ
ならば、原理的にはモジュール間の情報のやりとりはニューロンの発火頻度の数値ベクトルとして表現出来るはず。
l 一方，一般に認知アーキテクチャでは，プランニン
グや言語表現のパージングなどでスタックや木構造などのグラフ構造を扱うことが求められる。

→

詳しくは後半の市瀬さんの講演で議論

モジュール階層
Component
Non-vector / RPC

Component

vectorport(vc)vpModuleModuleCognitiveArchitecture (is-a Module)

２つの部品単位で全ての構造を構築。
1. Module:
2. Component:

ベクトルポートのみ。RPCなし。階層性あり。
非ベクトルポートあり。RPCあり。階層性なし。

BriCA: 性能に関する要求（遅延）• ニューロンの発火頻度の上限は1kHz• 通信機構はモジュール数Nに依存せず1msを基準に無視できる程度を要求（仮に10μs）• プロトタイプではペイロード無し時の片道通信遅延は100 ns程度をマーク。
（プロセス間通信を行う場合、分散系（ロボットOS等）では一般に数十から数百μ秒）（スケーラビリティ）• ヒトの脳の計算量は1 PFLOPS程度• コアあたりのFLOPS値を10 GFLOPSとすると１０万コア程度の集積が必要• 10万並列で任意のスレッド間通信での遅延を10μs 以下に保証：••

HPC分野の大規模計算の水準。現在一般に入手可能なハードウェアへの要求としては多少厳しい．

今後のGPGPUやMIC，FPGA，ニューロチップなど，ハードウェア面や実行機構のソフトウエア面での進展も見据えた設計開発が必要。

（バンド幅）
検討中。

バージョン３の法則
人類は３つの種類のソフトウエアしか作れない。というソフトウエア工学の経験則。
バージョン１：
プロトタイプ。最小限の機能。大抵短期間で完成。それなりに成功。
バージョン２：「正しく」設計し「汎用」「拡張可能」なものを目指す。
何かは出来るが、開発期間長期化、肥大化、使いにくい。
バージョン３：
バージョン２の経験で、どこが肝でどこで手を抜いていいかわかる。
軽くて使いやすくて長持ちするものが完成！
バージョン４：
そんなものはない。（あったとしたらそれは別の何か）バージョン進行の予定• V0: 2014/H2 - 2015/3• 目的： 要求仕様の模索• モジュール設計検証、スケジューラ設計検証• Java• V1: 2015/4 • 目的： プロトタイプ、非加算性仮説検証（３つ以上）。
• Python• ハッカソン等での迅速なプロトタイピングが重要要求。
• 性能はそこそこ• V2: 2016- ?
• 目的： きちんと作り込む。
• 言語等は未定 （C++、Python、Julia、Java/Scala, Google Go等の多言語対応にしたい）• V3: 2019以降？
• AGIの完成を目指す

第１回
全脳アーキテクチャキックオフ
ハッカソン
２０１５年９月１９日午前から２３日夕方（夜打ち上げあり）まで５日間（遠方の場合１８日からの前泊も応相談）

予定場所：慶應義塾大学日吉キャンパス 協生館
アイディアソン枠を既にエントリー募集中。
参加方法等詳細はWBA若手の会facebookグループで