単純パーセプトロンの紹介 (2016-06-03)
現代 AI のご先祖様?
単純パーセプトロンは、最も原始的な機械学習の実装の 1 つ。以下の画像は、単純パーセプトロンの仕組みを A4 用紙 1 枚で簡単に紹介した資料。参考文献は Neural networks and deep learning。

単純パーセプトロンには、線形分離可能な問題を有限回の反復で解く能力がある (Wikipedia)。一方で、線形非分離な問題は解けない。ここに誤差逆伝播や Attention 機構や GAN といった無数の工夫を積み重ねていくと、現代の魔法のような生成 AI が出来上がる、らしい。にわかに信じられないけれども笑。
パーセプトロン
2016-06-03
パーセプトロンとは
- 1957 年に考案された
- いくつかの入力に対し 1 つの出力を行う装置 (= 関数)
- 人工ニューロンとも呼ばれる
- 複数、多層に組み合わせた機構をニューラルネットワークと呼び、それが深層学習の前身となった
複数の入力から 1 つの出力を得る過程
- 入力と重みの積を計算する
- 1 を合計する
- 2 にバイアスを加える
- 3 が正なら 1 を、非正なら 0 を出力する
具体的に書くと以下のような式
- n 個の入力 :
x[0],x[1], …,x[n−1] - 重み :
w[0],w[1], …,w[n−1] - バイアス :
b - 出力 :
y
function perceptron(x){ var tmp = 0; var y = 0; for(var i=0; i<x.length; i++){ tmp += x[i] * w[i]; } tmp += b; if(tmp > 0) y = 1; else y = 0; return y;}
込み入った判定の実現
(例) 週末のチーズ祭りに行くか?
次のようなモデルを考える。
| 値 | 意味 | ||
| 入力 | x1 | 0 | 雨 |
| 1 | 晴れ | ||
x2 | 0 | 恋人は行きたがってない | |
| 1 | 恋人も行きたがってる | ||
x3 | 0 | 会場が駅から遠い | |
| 1 | 会場が駅から近い | ||
| 出力 | y | 0 | 行かない |
| 1 | 行く |
w1= 6w2 = 2w3 = 2b= −5
計算してみると、
x1 | x2 | x3 | tmp | y |
| 0 | 0 | 0 | 0*6 + 0*2 + 0*2 – 5 = -5 | 0 |
| 0 | 0 | 1 | 0*6 + 0*2 + 1*2 – 5 = -3 | 0 |
| 0 | 1 | 0 | 0*6 + 1*2 + 0*2 – 5 = -3 | 0 |
| 0 | 1 | 1 | 0*6 + 1*2 + 1*2 – 5 = -1 | 0 |
| 1 | 0 | 0 | 1*6 + 0*2 + 0*2 – 5 = 1 | 1 |
| 1 | 0 | 1 | 1*6 + 0*2 + 1*2 – 5 = 3 | 1 |
| 1 | 1 | 0 | 1*6 + 1*2 + 0*2 – 5 = 3 | 1 |
| 1 | 1 | 1 | 1*6 + 1*2 + 1*2 – 5 = 5 | 1 |
これはこんな判定: チーズが大好物で、恋人が何と言おうが、会場が駅から遠かろうが、喜んでチーズ祭りに行く。一方雨が何より苦手で、もし天気が悪かったら絶対に行くつもりはない。
バイアスを b = −3 と変えると、チーズ祭りに行く条件は以下のように変わる。
- 天気が良い、または
- 会場が駅から近く、かつあなたの恋人も一緒に行きたがっている
展望とまとめ
- パーセプトロンは異なる種類の情報を考慮し、重みづけしたうえで判断を下す能力がある
- パーセプトロンを複雑に組み合わせたネットワークなら、かなり微妙な判定も扱えそう
【参考】 Neural networks and deep learning http://nnadl-ja.github.io/nnadl_site_ja/index.html

1件のコメント