スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ICONIP 2016 にて発表

10月17日(月)は京大で開かれる ICONIP 2016Whole Brain Architecture のセッション で発表してきます。

内容は、下記研究会論文を手直ししたものです。
一杉裕志、「制限付きベイジアンネット BESOM の正則化の一手法」
第96回人工知能基本問題研究会(SIG-FPAI), 2015.
論文
スライド

16日(日)のチュートリアルは無料です。
Aapo Hyvarinen のICAの話 に期待しています。

募集・イベント等

誰かに依頼されたわけではありませんが、
私の研究に関連した募集・イベントがいろいろありますので、紹介いたします。


第3回SIG-AGI開催案内 - 汎用人工知能と技術的特異点
2016年9月12日(月) 13:30-17:30 ドワンゴ 銀座松竹スクエア
ハッカソンと LIS ver.2 の公開の説明もあるようです。


・OIST 銅谷先生が始める新学術領域の公募説明会があります。
新学術領域「人工知能と脳科学」キックオフシンポジウム+公募説明会 - 人工知能と脳科学の対照と融合
9月13日(火) 会場:東京大学


(一社)人工知能学会 合同研究会2016(11月9-12日 慶応 日吉)の一部として、
ベイジアンネットワーク・マルコフネットワークの講演会が開かれます。
数学協働プログラム「確率的グラフィカルモデルの産業界への応用」
鈴木譲先生の書かれた開催趣旨が背景をわかりやすく説明しています。
開催趣旨


NeuromailでATR細谷さんが研究者募集をしていました。
こちらのページでも募集しています。
Haruo HOSOYA
計算論的神経科学の分野で視覚野のモデルに取り組みたい方はぜひご検討を。


・産総研 脳型人工知能研究チームでも共同研究、ポスドク、インターン等、常時募集中です。
必ずしも機械学習に慣れている必要はありません。本気で汎用人工知能の実現を目指す方を求めています。

定性的ベイジアンネットによる認知機能モデリング

先日も少し書きましたが、
小規模な定性的ベイジアンネットを使って、
視覚野、言語野、運動野、前頭前野、側頭葉などがつかさどる
さまざまな認知機能のモデルを1つ1つ動かし始めています。

例えば視覚野の背側経路の機能やオクルージョンの処理の機能、
言語野の単語列表現と深層格表現の間の相互変換の機能、
運動野の階層的な時系列の再生機能、
前頭前野や側頭葉による論理的推論の機能、
などです。

単に「ベイジアンネットを使う」というだけでは制約がゆるすぎて
なんでもできてしまうので、かなり強い制約を入れており、
その範囲でどこまで実現できるか試しています。
制限付きの定性的ベイジアンネットを記述するDSLを Java で作って、
それを使って個々の認知機能モデルを書いています。
学習機能はなく、条件付確率表(CPT)を手で与えます。
変数の値に意味のある文字列が使えるので可読性が高いという利点があります。
ふるまいは prolog と似たところがありますが、スタックとヒープがなく、
有限の状態数しか持たない固定したネットワークの上だけで動作します。

これが非常に面白い!
実際に動くようになると、パワーポイントで模式的に
書いてみただけでは気づかなかった問題が次々に出てきてます。
それを1つ1つ解決すると、
長年悩んでいた別の未解決問題が同時に解決されていきます。
効率の問題、万能性の問題、神経科学的妥当性の問題など
まったく無関係に見える問題が、です。
いよいよ大脳皮質が行っている情報処理を推定するパズルが
終盤に来たというかんじです。
ジグゾーパズルでもナンバープレースでも、
終盤に入ると急速に穴が埋まりますよね?
(汎用人工知能実現に向けてその先にやることは
まだたくさんありますけどね。)


制限付きベイジアンネットはCPTに制限をいれたベイジアンネットですが、
それに加えて、さらに以下の様々な制約を念頭に置いて
ネットワークを設計しています。

- 再下端のノードの値を生成する生成モデルになっている。
- 問題サイズに対しニューロン数・シナプス数が爆発しない。
- ニューロン発火・シナプスの重みはスパース。
- 親ノードは子ノードの値の組を抽象化した情報を表現する。
- 同一階層内にあるノードどうしは独立。
- ノード内のユニットは均等に使われる。
- ノード内の隣り合ったユニットは似た情報を表現する。

この中のいくつかの性質は、
CPTをBESOMを使って教師なし学習する際の
パラメタの事前分布になるものです。
大脳皮質のすべての領野に共通の「汎用事前分布」と言えるでしょう。
今後もいろいろな認知機能モデルを書いていくうちに
新たな汎用事前分布が見つかる可能性があります。

近い将来この研究に携わりたい方は、
論理回路の基礎、計算機アーキテクチャの基礎、
ラムダ計算や数理論理学の基礎あたりを軽く眺めておいていただけると
役に立つと思います。

自動微分でBESOMの実装は可能か?

BESOMのCPTモデルを変えたときの
認識・学習アルゴリズムの導出と実装が
めんどうでなかなか進まないので、
chainer 等で実装されている
自動微分が使えないか考えてみました。
私は chainer 等使ったことがないので、
勘違い等ありましたらご指摘いただけるとありがたいです。

また、こういった研究に関心がある方はご連絡ください。
すでに chainer に慣れている人なら簡単に実装できそうな気がします。
学生さんのインターンで1週間くらい産総研に来ていただいて
実装できる人がいれば非常に助かりますが、どなたかいかがでしょうか。


BESOMにおけるCPTモデルは、
ニューラルネットワークにおける活性化関数みたいなものです。
CPTモデルの設計が、性能に大きく影響します。
最近は noisy-OR と他の数種類のCPTモデルのノードを
組み合わせたものが、
大脳皮質のモデルとしても産業応用としても有望だと私は考えています。
しかしCPTモデルを追加するたびにそれに応じて
効率的に動作する認識アルゴリズムと学習アルゴリズムを導出し、
実装・デバッグ・調整するのはけっこう手間がかかります。
そこで自動微分の利用を検討しています。

自動微分とは、目的関数を計算するプログラムを記述して実行するだけで、
その目的関数の勾配を自動的に求めてくれる技術です。
最近の多くの機械学習フレームワークに実装されています。
自動微分 - Wikipedia


認識・学習ともに勾配法を使うことにすれば、
自動微分が使えるので認識・学習アルゴリズムの実装が
非常に容易になるはずです。
例えば chainer の上で実装できれば、
ミニバッチ化、最新の加速化手法の利用、GPGPU対応も
ほぼ自動的にできることになります。
LIS との連携もしやすくなるでしょう。

まず、学習について。
入力 i に対する隠れ変数の推定結果(MPE) h* が
すでに求まっているとすると、
パラメタθの対数尤度は
log P(h*,i|θ) = Σ_x log P(x|pa(x))
で、簡単なプログラムで素直に実装できます。
あとは自動微分を使って勾配法でθを自動的に更新できるはずです。
なお、ベイジアンネットではパラメタが区間 [0,1] に
収まる必要があり、そこは何らかの対処が必要と思われます。

BESOMの場合、
学習よりも認識の方が計算時間がかかるのですが、
学習が chainer に乗るだけでも、
Adam のような最新の学習の加速化手法が
簡単に使えるため、大きなメリットがあります。
素朴な EM は学習の終盤で一次収束ですが、
Adam は二次収束らしいので、
認識の計算が定数倍遅くなっても
トータルでは速くなる可能性があります。
参考:Adam の説明
確率的勾配降下法 - Wikipedia


認識の方は、自動微分を使うには少し工夫が必要そうです。
認識においても隠れ変数 h の対数尤度
log P(h|i) ∝ log P(h,i) = Σ_x log P(x|pa(x))
の計算は簡単なプログラムで素直に実装できます。
しかし確率変数が離散値なので微分可能ではないのが問題ですが、
工夫すればできそうに思っています。
また、勝率ペナルティ、側抑制ペナルティのための
パラメタの学習のコードを少し書く必要があります。


なお、関連技術として、 NIPS 2015 でこういうものが
出てきているようです。
自動微分変分ベイズ法の紹介
Stan, PyMC3 に実装されているとのこと。
しかし、やはり離散確率変数は使えないようです。

近況報告

先日の全脳アーキテクチャシンポジウムのときの講演資料が公開になっています。
第1回 全脳アーキテクチャシンポジウムを開催しました | 全脳アーキテクチャ・イニシアティブ

私は最近の進捗について簡単にお話しました。
大脳皮質ベイジアンネットモデルの実用化に向けて

Noisy-OR を使った大規模ベイジアンネットの実用化に向けた
研究開発の道筋はかなりはっきりしてきましたが、
アルゴリズムの導出・実装・調整にはそれなりに手間暇がかかります。
人工知能ブームのせいで機械学習が得意な人材の確保の見込みがたたないので
最近は並行して別のアプローチの研究も進めています。

別のアプローチとは、資料にある「定性的ベイジアンネット」というもので、
ネットワークの状態を最適化するというベイジアンネットの特性は残しつつも、
記号処理に近い動作をします。
大規模機械学習特有の黒魔術的困難さを回避して、
脳の様々な認知機能を手軽にモデリングできる道具にしようとしています。

定性的ベイジアンネットは、条件付確率の0と非0だけを区別するものです。
パラメタのデータからの学習は今のところ考えておらず、
条件付確率表はすべて手で記述します。
定性的ベイジアンネットのプロトタイプは prolog で書いていましたが、
いま Java でもっと高機能なものを作り始めています。

私はこれまで、視覚情報処理、言語処理、運動制御、思考など様々認知機能が
ベイジアンネットで実現できそうなことを示す模式的モデルを
パワーポイントの絵で公開してきましたが、
今まではまさに「絵に描いた餅」でした。
しかし定性的ベイジアンネットを使うことで、
小規模ながら本当にモデルを動かせるようになると思います。

モデルが実際に動けば、大脳皮質がベイジアンネットであること、
ベイジアンネットを使わなければ脳の多くの高次機能の実現は
難しそうであることを、
多くの人にリアリティをもって感じてもらえると思います。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。