Posts Tagged ‘neural network’
統数研ワークショップ1日目メモ
メモなので細かいことは気にしない.というか分からないことも多かったし.
ニューラルネット使い見習いの言い訳
昨日寝る直前と今日の朝にニューラルネットを使って認知科学やロボティクスの分野を考える積極的な理由をやっと思いついたので書いてみる。
悩みが解決するとなんで悩んでたかすぐに忘れてしまうな、と思っていたら運良くブログに書いていた:
人の認知的な働きを理解するためにモデルを考えてロボット実験で検証する、ってのが今のラボでの研究の方法。問題となる認知的な働きは認知心理学から、モデルのアイディアは脳・神経学から引っ張って来る。このモデルというのが曲者。そもそも人工ニューラルネットワークで実験して出来る、ってことが脳でも起こっていると結論付けることの論理は飛躍しすぎていないか。当然そういう議論はされてきたはずで、それが分かっているならここまで不安にはならないんだろうな。
そうか、地続きじゃないから不安なんだ
「そういう議論はされてきて」なかったみたいで、ラボの人と話をしたりしたけれどその分野の人々はこの本質的な問いに答えを見つけきれずにいるみたいだった。だからと言って、ラボの人たちがそういう疑問から目をそむけたまま研究をしているわけではない(当然、か)ことも分かった。それでも自分自身の理由にまではならなかった。
AIは記号を仮定して世界を理解する(=認知の)モデルをつくろうとしたのでシンボルグラウディング問題などにぶちあった(この辺はちゃんと勉強してないので怪しすぎる)わけだけど、ニューラルネットを使えば記号の仮定は要らない。それは、要請(例えば教示信号)から創発するものだというのがニューラルネットを使ってこの問題を考える人たちの立場。
しかしもっとも重要なことは、記号を仮定しないで記号を扱える(ように見える)仕組みを作れる、という点では無くて、その仕組みが「何も出来ないニューラルネット」から「機能(例えば記号処理)を実現したニューラルネット」まで連続的に変化した結果として得られたものだ、ということだ。ラボの人たちとの会話に出てた話なのに、これを理解するまでなんでこんなに時間かかったんだろう。
科学的な方法なら、何が機能の実現に必要かを見極められなければいけない。例えば、ノックアウトマウスみたいな。機能が実現するまでの連続的なパス(ラボの人の口癖だなあ)があれば、それをがんばって見極められるかもしれない。初めから完成しているシステム(例えばAI)ではなく、ニューラルネットを使うのは未完成と完成が一つの道でつながってるからなんだ。
この連続的だ、ということを理解したもう一つのうれしさは、「GAじゃダメなの?」という問いにはっきり「ダメ」だと答えられるようになったこと。BPを使った勾配法は統計的回帰なので収束する論理的背景があるれけど、GAはいまいち理解出来ないから使いたくない、今まではそう答えてきた。確かに今でもそう思ってるんだけど、「GAで出来るならそれで良いじゃん」と言われると「くぅっ…」となってしまう。今なら、「学習が連続的じゃないからつかえない」と一言で言える。これはうれしい。
—
書いていて、穴があるなあと思い始めたのがまた悩みどころなんだけど、当分はこれが建前(笑)になりそう。
一応、穴と思った点:
- 別に、学習中に連続じゃなくても、出来たやつを連続的に壊していけばいいじゃん。
- だったらGAでもいいよね!(ちょw
悩みます。まだまだ悩みます。
twitterに書き捨てるだけじゃなくて良かったー。
追記
でも連続な(1本の)パスでかつ学習する方向に変化させるには勾配法だよね。言い換えればパラメタ空間にベクトル場張れる、みたいな。
グラフを見て分かるNeural Networksシリーズ〜数式抜きで解説してみる〜
ニューラルネットを数式抜きで解説してみようという画期的なシリーズを始めます!
多分すぐ終わるけどねw
ここで言うニューラルネットは人工ニューラルネット(ANN)のことで,生物の脳神経系のニューラルネットとはアイディアと名前を借りてきたくらいでほとんど関係は無いと思ってOKです.
ニューラルネットは下図のようなニューロンが結合したものです.
- Input
- ニューロンの入力です.
- Weight
- ニューロンの結合荷重と呼ばれます.ここではweightと言うことにします.それぞれの入力信号をどれだけ増幅するかを決定します.負の値(入力の反転)や,0(結合していない)をとることもあります.
- Bias
- ニューロンへ,ひたすら同じ値を入力します.
- Internal Value
- biasと入力にweightを掛けた値の総和です.
- Output
- ニューロンの出力です.
- Activation :
- internal value
からoutput
への変換です.この変換のお陰で,ニューラルネットは多様な入出力関係を作り出すことが出来ます.
- internal value
ニューロンの(というかactivation)の入出力関係を図で表すと下の図のようになります.
右下のグラフの波形が,左上の波形に,右上(一番大きい)のグラフの入出力関係を用いて変換されます.(グラフを書く関係上,入力と出力とでグラフが90度回転しているので注意してください.)
色の対応を見ると,
- 0に近い入力は似た形を出力
- 0から離れると1に張り付いた出力
になることが分かります.
ではまず,下のような一番簡単な入力が1つだけのニューラルネットワークを考えてみましょう!
このweight wとbias bを変化させると多様な出力を得ることが出来ます.wとbの値を変化させてみたニューロンに,波形を入力した時の出力をグラフで表してみます.
一段目が入力で,二段目がweightを固定してbiasを動かしてみた例,三段目がbias固定でweightを動かしてみた例です.
- biasを動かすと入力に反応したりしなくなったりする
- → 入力に「着目」するかを選んでいるように見える!
- weightを動かすと入力が伸縮している
- → 入力にどの程度「着目」するかを決めているように見える!
だんだん面白くなってきました!
この多様な入出力関係を使うことで,様々な入出力関係を構成することが出来ます.組み合わせのもっとも簡単な例として下のような2入力,1出力,1ニューロンのニューラルネットを考えて見ます.
このニューラルネットを使って実現されたand回路を見てみます.(ここでは,weightとbiasを(2.0, 2.0),-1.6としました.)
and回路とは,2つの入力が真ならば真を,それ以外なら偽を出力する(論理)回路です.全部書き下すと,
- 真,真 ⇒ 真 ・・・ (真かつ真ならば真)
- 真,偽 ⇒ 偽 ・・・ (真かつ偽ならば偽)
- 偽,真 ⇒ 偽 ・・・ (偽かつ真ならば偽)
- 偽,偽 ⇒ 偽 ・・・ (偽かつ偽ならば偽)
という関係です.ここでは,-1を偽,1を真とします.
二つの入力に今まで同様,波形を入力してみます.同じ入力だと面白くないので周期をずらしてみました.
二つの入力が共に1に近くなった時だけ,Outputが反応していることが分かると思います.
ニューラルネットのこんな簡単な仕組みで,入力からある情報(ここでは二つの入力が両方1に近い)を取り出せるなんて凄いね!感動して下さい.
今回は簡単な構造ニューラルネットしか扱わなかったし,ニューラルネットのメインのテーマである「学習」にも触れませんでした.さらに,入力と出力の関係だけでなく,過去の入力との関係を扱えるニューラルネットも存在します.
という訳で,かなりディープな世界になっています!
...疲れた.次回はないな.(ぉw
—
ついでに...
~数式を自重しないニューラルネットワーク入門~
今回扱ったニューラルネットの一つ,(一層)パーセプトロンは
ただし は入出力空間
です.
数式のほうがわかりやすいね!!w





