機械の中の学習日誌

社畜によるIT技術メモです。今日も元気です。

ニューラルネットワークをかじってきた。

f:id:syunkan81:20160721180513p:plain

 

 

昨日は、仕事帰りに、「第3回 Tokyo Jazug Night」に参加した。
仕事が遅くなったので、セッション2の「ニューラルネットワーク入門講座」から参加となった。

時間内容
18:20~ 受付開始
18:55~19:00 会場インフラ説明、今日のアジェンダ紹介
19:00~19:50 【セッション1】 *Azure Fabric Service /Cluster への展開 * ( 近江 - Microsoft MVP for Azure)・Q&A
19:50~20:00 休憩
20:00~21:30 【セッション2】 ニューラルネットワーク入門講座 (丸山不二夫 先生)・Q&A
21:30~ クロージング

 

 

ニューラルネットワーク入門講座

** 丸山不二夫 先生**
現在の人工知能の研究と応用で、もっとも活発に利用されているのは、ニューラルネットワークを用いたディープラーニングの手法です。講演では、生物のニューロンの働きをモデルにした、ニューラルネットワークの動作の基本を中心に解説します。
参考資料 
 「ニューラルネットワーク入門」 https://goo.gl/Q0mKfy (今回は、ここまで)
 「TensorflowとCNTK」https://goo.gl/V8sdx9
 「Convolutional Neural Network入門」https://goo.gl/HQQkXb

 

 

 

 

*そのときのメモ


Neural Network、その歴史は古い。 

過去の研究から、膨大なパラメータを設定するは方法は見つかっていたが、
それを計算するパワーが当時の計算機には無かった。 

しかし、現在は、GPUによる高速な計算が可能となり、ディープラーニングという形で表に出てきた。 

Neural Networkの、今、一番得意なものは目である。 

画像認識は、その一面に過ぎない。
視覚と運動能力は生物の中で密接に結びついている。
なので、視覚だけでなく運動の制御もとてもお得意。


生物は、自身が身につけた能力で動いているが、それが、神経の働きである。
シーケンシャルなプログラムでもないし、イベントドリブンのプログラムでもない。

 

Neural Networkは、学習が必要。これから出てくるものは、人間が学習の機会を与えることが必要。
人間が動きを制御するのではなく、ニューロのつなぎを制御する。
人間が身体で覚えることと同じ。

人間は、体で覚えたことは子孫に伝えることができない。
しかし、機械は、自分で覚えた(訓練の結果できた)データをコピーすることができる。
つまり、別の機械に伝えることができる。 

プログラムの場合はバグがあれば、そこでエラーが起きるが、機械学習の場合は、デバッグのしようがない。適切に学習させるしかない。


訓練で出来上がったデータをスマホに乗せることができる。
例)物を認識するなど。 

つまりは、これまでとは、アプリの作り方が変わるということ。 

訓練と実行で必要なマシンパワーは全く異なる。
訓練は高性能のGPUが必要。 

しかし、訓練はクラウド上であれば、簡単にできるようになる。
今後、そういうサービスも提供されるはず。
現にGoogle Machine Learningが出てきた。
さくらインターネットもやろうとしているようだ。 

MicrosoftもMSRAなどを立ち上げている。


<脳とニューロン
もともとは脳研究から始まる。 

EU HumanBrain Project:認知科学脳科学の対立で頓挫。 

ニューロンの働き:脳の働きは、ニューロンの働きに帰着する。

 

1つのニューロンに6千個のシナプス(接点のようなもの)がある。
大脳新皮質には、100億のニューロンと60兆個のシナプスがある!

人工知能(の研究)をやる前に人間の知能(の研究)をやるべき。

苦手なもの。言葉の理解ができない。
人類の歴史からいうと視覚を獲得したことに比べ、言葉は最近のこと。


ヘッブの法則:シナプス可塑性(感受性、おもみ)についての法則


ニューロンはいつ発火するか>
他のニューロンからの入力を受けて発火する。 

興奮性のシナプスからの信号の強さと、抑制性のシナプスの信号の強さを引いた値が、ある閾値を超えると発火する。 

ただし、個々のシナプスの性質は異なる。内部の数字は、シナプスごとに異なる。

一つのニューロンの内部状態は、ニューロンシナプスを通じて受け取る刺激である「入力」と、シナプスごとの「重み」と、発火の閾値に対応する「バイアス」の三つ量で表現できる。


ニューロンを動かす活性化関数>
その名前の通りに、一つのニューロンが発火(活性化)する時の条件と出力を関数の形で表したもの。
いろいろな種類の活性化関数がある。

sigmoid 関数
ReLU 関数
tanh 関数


<QA>
Q. なぜうまく動くのか?
A. うまく動かないこともある。いかにうまく学習させるかである。  


 

話はとても面白かった。

今回の資料(https://goo.gl/Q0mKfy)の半分いったところで終わってしまった。

2回目もあるようなのでぜひ参加したい。

 

 

 参考:MSRA

www.microsoft.com

pc.watch.impress.co.jp