はじめに
この記事はゼロから作るディープラーニング 4章ニューラルネットワークを自分なりに理解して分かりやすくアウトプットしたものです。
文系の自分でも理解することが出来たので、気持ちを楽にして読んでいただけたら幸いです。
また、本書を学習する際に参考にしていただけたらもっと嬉しいです。
step関数
step関数はパーセプトロンに使われている活性化関数です。
step関数の具体的な処理を説明すると、入力された値が0を超えた場合は1を出力して入力された値が0を超えない場合は0を出力します。
# ステップ関数
def step_function(x):
if x > 0:
return 1
elif x <= 0:
return 0
パーセプトロンを理解している方は、同じことなので簡単だと思います。
シグモイド関数
シグモイド関数は昔からニューラルネットワークに使われてきた活性化関数です。
具体的な処理方法はstep関数のように言葉では表しにくいので、数式を使いたいと思います。
xが入力された値を表して、eはネイビア数を表します。(ネイビア数は高校数学で習うので文系でも学習範囲だったはず)
ではシグモイド関数も実装したいと思います。
# シグモイド関数
def sigmoid_function(x):
return 1 / (1 + np.exp(-x))
sigmoid_function(np.array([1,3,0.4,-3]))
array([0.73105858, 0.95257413, 0.59868766, 0.04742587])
Relu関数
Relu関数は最近ニューラルネットワークに使われ始めたNew関数です。
処理の内容は、入力値が0を超えた場合はそのまま出力して、0を超えない場合は0を出力します。
# ReLU関数
def relu_function(x):
return np.maximum(0,x)
print(relu_function(2))
print(relu_function(-1))
2
0
Relu関数はシグモイド関数に比べて結構分かりやすい関数なので、できればこっちを使って行きたいですね(笑)
次回は今日実装した活性化関数を使って簡単なニューラルネットワークを実装してみたいと思います!!