ラビットチャレンジ【深層学習day1】~活性化関数~

概要

活性化関数はNNにおいて重要な項目である

活性化関数によってモデルの表現を持たせることができる

活性化関数は様々なものが使用されているが、構築するNNによって使用する活性化関数も違ってくる

活性化関数の効果で一部の出力は弱く、一部は強く伝播される

この章では以下の項目を学んだ

・活性化関数の基本(確認1つ含む)

・活性化関数の種類(確認1つ含む)

・ハンズオン

活性化関数の基本

NNにおいて、次の層への出力や大きさを決定する非線形の関数

入力値の値によって、次の層への信号のON/OFFや強弱を定める働きをもつ

中間層の入力であるuまでは線形であるため、活性化関数を通して非線形にすることで表現力が上がる

活性化関数は数式で以下のように表すことができる


f^{(l)}(u^{(l)}) = [f^{(l)}(u^{(l)}_{1})・・・f^{(l)}(u^{(l)}_{j})]

<<確認テスト>>

線形と非線形の違いを図に書いて簡易に説明せよ

f:id:Maruring:20210716010741p:plain

活性化関数の種類

活性化関数には以下のような関数が使用されている(現在はことなる活性化関数が使用されている)

f:id:Maruring:20210716011158p:plain

<<確認テスト>>

配布されてコードよりz=f(u)を定義している箇所を抜き出せ

f:id:Maruring:20210716011802p:plain

ハンズオン

順伝播(3層・複数ユニットにおいて以下2つを実施した

①各パラメータのshapeを表示

f:id:Maruring:20210716014105p:plain

②ネットワークの初期値ランダム生成

入力層、隠れ層、出力層のノード、層数を定義してnumpyの乱数を発生する関数に引数として渡す

f:id:Maruring:20210716014228p:plain