徒然なるままにMake:

Fusion360 3Dプリンタ 電子工作 面白そうなモノづくりをやっていくブログ

ディープラーニングを始めてみる 1

多脚ロボットがバッテリーの宅配待ちになったので、今回からは流行りのディープラーニングをはじめてみようと思います。

参考書はこれ

 

一章はまるまるPythonの説明なので2章から開始

パーセプトロンに関してやっていきます。

f:id:something-make:20180913113422p:plain

y = { 0 w 1 x 1 + w 2 x 2 θ 1 w 1 x 1 + w 2 x 2 > θ

このパーセプトロンの構造はW1×X1+W2×X2が一定の値θを超えたら1を出力して、それ以外なら0を出力するというもの。

これを使って論理回路を作ってみます。まずはANDゲートです

f:id:something-make:20180913113658p:plain

流石にソースコードの載せるのはアレなので実行結果だけに留めます。

f:id:something-make:20180913120605p:plain

きちんとANDゲートをつくることができました。

ここでパーセプトロンの構造を少し変更して、重みとバイアスを導入します。

y = { 0 b + w 1 x 1 + w 2 x 2 0 1 b + w 1 x 1 + w 2 x 2 > 0  

このbがバイアスで、一番目の式のθを左辺に移したものになっています。

また、これ以降はw1,w2を重みと呼び、ベクトルの掛け算をして和が0を超えたなら1を出力し、0以下なら0を出力します。

f:id:something-make:20180913122650p:plain

これでAND回路を問題なく実装できることがわかりました。

このままNANDゲートとORゲートを実装します。

NANDゲート

f:id:something-make:20180913123204p:plain

f:id:something-make:20180913123324p:plain

ORゲート

f:id:something-make:20180913123348p:plain

f:id:something-make:20180913123618p:plain

AND,NAND,ORのゲートを、重みとバイアスの値を変えるだけで同じ仕組みで実装できることがわかりました。

今日はここまで。

参考書の丸写しですが、備忘録的にこのまま進めて行きたいと思います。