こんにちは。株式会社マックスネット 人工知能・AI開発チームのIsoです。
今回はディープラーニングによく出てくる、ReLU関数と呼ばれるものをグラフ化してみます。
**********
前々回にシグモイド関数というのが出てきたが、
今回はReLU関数というものを紹介しよう。
ニューラルネットワークの各層の出力部分には、非線形関数を入れるのだが、この関数はそのうちの1種。
このReLU関数を入れることで、シグモイド関数とは違う値を出力することができる。
まずこの関数をグラフ化したものがこちら。
ご覧の通り、0以下の値は全て0で出力され、0より大きい値は、入力した値がそのままグラフに出力される。
このReLU関数のpythonコードはこちら。
1 2 |
def relu(x): ... return np.maximum(0,x) |
非常にシンプルなコードだ。
では、上記のグラフを書くためのコードを実装してみよう。
下記をpythonのインタプリタで実行する。
1 2 3 4 5 6 7 8 9 10 11 12 |
>>> import numpy as np >>> import matplotlib.pyplot as plt >>> >>> def relu(x): ... return np.maximum(0,x) ... >>> >>> x = np.array([-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7]) >>> y= relu(x) >>> >>> plt.plot(x, y) >>> plt.show() |
さて、グラフが表示されただろうか。
結構、このReLU関数は使われることが多いので、グラフ化して
己の目で見てみることも、知識のひとつになると思う。