【初心者向け】ディープラーニングの起源であるパーセプトロンとは?【連載①】
コメント
注目のコメント
パーセプトロンの説明って「入力に対して重みが・・・」となっていて、わかりにくいですよね(この記事を批判するものではありません)。
初心者向けということで、私も小学校から高校までの数学、算数で説明を試みます。
皆さん、直線の式や平面の式ご存知ですよね。
y=ax+b → 下と表現を揃えるために ax+by+c=0 (1) と変形
ax+by+cz+d=0 (2)
ちなみに、n次元空間であっても変数をn個に増やすだけです。まずはこの式、パーセプトロンの計算式と同じであることをご確認ください。
余談ですが、ここで直線に対する係数(a, b)や平面に対する係数(a, b, c)は法線といい、それぞれ直線や平面に垂直な方向のベクトルとなっています。
さて、式(1), (2)は視点を変えると直線や平面の上に乗っている点は=0が成り立ちますよ、と言っています。直線や平面の上にない点はどうでしょう?
簡単のために
y=x+1 → x-y+1=0
と式変形してみます。x-y+1に適当な(x, y)の値を入れて符号を確認してみてください。びっくりすることに直線で分けられた領域の左側は全て負、右側は全て正ですね。領域ごとに符号が異なります。
実はパーセプトロンはこの直線や平面(4次元以上では超平面)を引き、どちら側にあるか(符号が正か負か)を判定しているに過ぎません。単純なパーセプトロンは2値分類、すなわりYes/Noの判定や犬/猫判定みたいなものしかできません。
それでは、ちゃんと2つのグループを切り分けられる直線や平面をどうやってひくか?最初は適当に平面をつくるしかないです。それで、与えられたトレーニングデータで試してみます。間違いに応じてこっち側に面をずらしたほうがいいかな、あっちがいいかな、とやっているだけなのです。もちろん、闇雲にずらしていくのではなくそこは数学的に最適な方向に修正するのですがここでは割愛。
これはいまのディープラーニングがこうなっているというわけではなく、実はもっと複雑ですが基本要素であるパーセプトロンは怖くないということを実感していただけたら幸いです。
どんな複雑なシステムでも分解していくと単純な要素の組み合わせなのです。あれまあ、懐かしい
ちなみに同名の会社がミシガンにございます 検査工程にコレ系の技術を使ったパイオニアですよ こんな名前使うことからもお分かりのように、古いカイシャです 創業社長さん、何度か授業でお話しして頂きましたねぇ ご無沙汰ですが、まだやられているのかな?
https://perceptron.com/