Machine_learning_nursery_rhymes’s diary

仕事の種を模索するため、今まで逃げていた統計・データを勉強していく

活性化関数の勉強

ニューラルネットワークの勉強についてnumpyを使って体感的に学習しています。keras、chainerを使えば特に拘ることはないですがこのあたりも覚えていきたい。

①ステップ関数

入力が0を超えたら1を出力し、それ以外は0を出力する。実際
に図時されると分かりやすい。単純な構造ということが分かりました。

def step_function(x):
y = x > 0
return y.astype(np.int)


f:id:Machine_learning_nursery_rhymes:20190614140857p:plain

シグモイド関数

図を見る通り、出力値が0~1の間に入るようになっています。
自然対数を知らないとexpであれってなるんですよね。

def sigmoid(x):
return 1 / (1+np.exp(-x))

f:id:Machine_learning_nursery_rhymes:20190614141906p:plain

ステップ関数、シグモイド関数は”非線形関数”であること、0~1で返すことが共通点になっていることが分かりました。

③ReLU関数
NumPyのmaximum関数を利用し、0か大きい値を返します。

def relu(x):
return np.maximum(0, x)

f:id:Machine_learning_nursery_rhymes:20190614151427p:plain

とりあえずはここまで理解できたので、実際のNNを作成していきます。