試纏

ためしてまとめる〜色々なトピックやテーマについて試してみたり、まとめてみたりするブログです。

『ゼロから作るDeep Learning』実践記録 3章:ニューラルネットワーク (1).活性化関数

f:id:shinyaa31:20170116084551j:plain:w200

先月末からちょっと忙しくなって以来、当ブログも更新が滞ってしまいました。隙間時間を見つけてちょっとずつでも進めて行こう、投稿して行こうと書いた矢先にこれじゃぁいかんいかん。という事でこちらの読書・実践シリーズも進めて行こうと思います。

今回からは3章『ニューラルネットワーク』。1章2章の様に章を丸ごと1エントリで、というには厳しそうなボリュームと難易度っぽいので小分けにしつつ取り組んでみたいと思います。

読書メモ

3-1.パーセプトロンからニューラルネットワーク

  • 入力層/中間層(隠れ層)/出力層で構成されている。
  • 活性化関数(activation function):入力信号の総和を出力信号に変換する関数。

3-2.活性化関数

  • 活性化関数は『ステップ関数』『階段関数』と呼ばれている
  • そのためパーセプトロンでは『ステップ関数を使っている』等と言われる
  • シグモイド関数(sigmoid function):ニューラルネットワークで良く用いられる関数の1つ。
  • ステップ関数:階段状に値が切り替わる事から『階段関数』とも呼ばれる。

3-2-5.シグモイド関数とステップ関数の比較

3-2-6.非線形関数

  • シグモイド・ステップ両関数の特徴でもある。
    • 言い換えると、"線形関数は活性化関数に用いてはならない"、らしい。

3-2-7.ReLU関数

  • 入力が0を超えていればその値を、0以下ならば0を出す。

実践記録

各関数の実行を確認するコードをnumpy, matplotlibをインポートして実装しています。

ステップ関数及びシグモイド関数を実行するとそれぞれ以下の様なグラフが描画されます。 f:id:shinyaa31:20170207231415p:plain:w300 f:id:shinyaa31:20170207231419p:plain:w300

率直な感想としては、色々な関数があってそれぞれに何らかの特徴がある、というのは分かったけどこれがどういう所で使われてどういう風に役立つのか、という部分に関しては全くもってピンと来ていない、というのが読了後の感想ですw numpyとかmatplotlibとかを幾らか触っていれば手応え的なものもあったりするのかなぁ。まぁこの分野はそもそも何も分かっていないので、まずは『一回通してやってみる』『そして○○が分からないという事が分かった』というレベルを目指すべく進めて行こうかなと思います。

当エントリの理解の助けになりそうな参考リンク: