単純パーセプトロンと多層パーセプトロンの違いがよう分からん
層が増えたら何ができるようになるん?
【疑問】単純パーセプトロンはXORが解けんってほんま?層を1つ足したら解ける理由【G検定】
前提のおさらい。ロジスティック回帰は、入力の重みつきの和 をシグモイド関数に通して分類する。境界は の直線
>>1
単純パーセプトロンは、入力層と出力層だけのモデル。重みつきの和が0より大きければ1、そうでなければ0を出す
ローゼンブラットの1958年の論文で発表された。境界はロジスティック回帰と同じく直線
>>3
ANDなら1本の直線で作れる。、 とすると
(1, 1): で1
(1, 0): で0
(0, 0) と (0, 1) も0になる
>>4
XOR(どちらか片方だけ1のとき1)はどうなるん?
>>5
(0, 1) と (1, 0) が1、(0, 0) と (1, 1) が0。図に描くと、1のグループが対角に分かれてて、どう直線を引いても分けられん
これが単純パーセプトロンの限界。ミンスキーとパパートが1969年の本で指摘したことでも知られてる
>>6
入力層と出力層のあいだに隠れ層を入れたのが多層パーセプトロン。XORは、隠れ層に2つのユニットを置けば作れる
:OR()
:NAND()
出力: と のAND()
>>7
確かめると、(1, 0) は で出力1。(1, 1) は で出力0。(0, 0) は で出力0
隠れ層が入力を「別の見え方」に変えて、そこでは直線で分けられるようになってる
>>8
でもこの重みは人が考えて入れたやん。データから自動で決められるん?
>>9
単純パーセプトロンの学習規則では、隠れ層の重みをどう直せばええか分からんかった
それを解いたのが誤差逆伝播法。出力の誤差を後ろの層から前の層へ伝えて、隠れ層の重みも学習できるようにした。そのために、0か1かのステップ関数の代わりに、なめらかなシグモイド関数などを使う
>>10
隠れ層を何層も重ねたものをディープラーニング(深層学習)と呼ぶ。層を重ねると表せるものは増えるけど、そのぶん学習は難しくなる
管理人のひとこと
- 単純パーセプトロン(ローゼンブラット、1958年の論文)は入力層と出力層だけで、境界は直線。ANDは で作れる。
- XORは1本の直線では分けられない(ミンスキーとパパートの1969年の本で指摘)。
- 隠れ層を入れた多層パーセプトロンなら、OR とNAND の2ユニットとその AND でXORが作れる。
- 隠れ層の重みは誤差逆伝播法で学習する。そのためステップ関数ではなく、なめらかな活性化関数を使う。