BETA

ADALINE(ADAptive Linear NEuron)の実装

投稿日:2019-12-13
最終更新:2019-12-13

書籍 [Python 機械学習プログラミング] ADALINEの実装

 第二章のADALINE(ADAptive LInear NEuron)を実装(ほぼ写経)しました。
参考書の写経をすると、独学プログラミングの変な癖が治りそうなので、積極的に写経していこうと思います。

お勉強の証拠画像。いつものごとく、Irisちゃんたちが分類器に放り投げられていきます。
今回の実装は、
・最急降下法(Gradient Decent:GD)
・確率的最急降下法(Stochastic Gradient Decent:SGD)
の2通りの方法でcost関数を最小化しました。

まずはcost関数の収束性から

SGDの方が収束が早いです。
GDの方が理論的に真面目にやっているのに、適当なSGDの方が要領が良いという、実際の社会でも起こりうる現象が見えて面白いです。
(有限要素法という構造解析シミュレーションでも、大真面目に逆行列を解く陰解法よりも、適当やってる陽解法の方が好んで用いられる場合があります。やっぱり真面目なら良いってわけじゃないんですね)

Irisの分類

お勉強メモ:
・SGDは重みベクトルの更新回数が多く、収束が早い。また適当やってるおかげで局所最適から抜けやすいという要領の良さ
・SGDはオンライン学習にも適用可能。新しいサンプルを用いて重みベクトルを更新するだけ
・GDとSGDの中間として、ミニバッチ学習がある。ある程度のサンプルの塊(ミニバッチ)ごとに重みを更新するもので、GDに比べて更新頻度が高く、SGDに比べるとベクトル計算可能なため計算が高速(ただし、numpyとか使ってちゃんとベクトル計算で実装していればのお話)

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

IT未経験で機械学習界隈に転職が決まったので、必死に勉強する様子を記録するポエムブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう