しびら

技術ネタのメモとか。

ゼロから作るDeep Learningの第二章を読んでみたメモ パーセプトロン

   

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

続きやっていきます。パーセプトロンですが、以前Cで実装したことがあるので、軽く流す程度にします。

パーセプトロン

  • アルゴリズム、人口ニューロンとも言い、ニューロンの仕組みを真似ている
  • ローゼンブラットというアメリカの研究者によって1957年に考案された
  • 複数の信号を入力として受け取り、ひとつの信号を出力する
  • ニューロンの仕組みを基にしているので信号の出力を発火と読んでいる
  • パーセプトロンは発火する・しないの二値しか出力しない
  • このアルゴリズムを使ってANDゲートの作成するのは簡単
  • NANDゲートもANDゲートの符号を逆にするだけで実装可能
  • ORは閾値=入力信号x重み としておけば実装可能

パーセプトロンの実装

ANDゲートの実装

numpyを使って表現した場合(xは信号、wは重み、bはバイアス)

numpyでANDゲートの関数化

バイアスは発火のしやすさを調整する。

 

NANDゲートとORゲートの実装

NANDゲートは重みとバイアスの符号をANDと逆にしています。

ORはAND、NANDと値が違います

パーセプトロンの限界

これまでOR, AND, NAND と実装しましたが、情報処理でよく見かけるのはXORですね。この実装例を記述しなかったのはパーセプトロンという仕組みではXORを実現できないからです。

実現できない理由としては、他は線形(直線)に分離できる問題でしたが、XORは線形に分離できないという他のゲートとはことなった事情があります。

多重パーセプトロン

パーセプトロンは層を重ねることでXORを実現することができ、これを多重パーセプトロンといいます。

これまで、AND、NAND、ORのゲートを作りましたが、を組み合わせて、XORを作れば良いのです。

情報処理に出てきそうな内容ですね。

XORゲートの実装

まとめ

  • パーセプトロンでAND、NAND、ORゲートを表現できた
  • 多重パーセプトロンを作ることでXORゲートを表現できた
  • 多重パーセプトロンでは非線形領域を表現することができる

 

 

 - Deep Learning ,