こんにちは!!ようこそ、当ブログgcbgardenへ。管理人のsakurabaaa(@sakurabaaa_g)です。
機械学習アルゴリズムの一つであるニューラルネットワークでよく使われるLeaky ReLU関数をPython、numpyを用いて記述したコードと、出力結果(グラフ)をまとめました。
Leaky ReLU関数の微分もコードと合わせて紹介します。
もくじ
PythonでLeaky ReLU関数
Leaky ReLU関数は次式です。
$$\begin{equation}
f(x) =
\begin{cases}
x\hspace{18mm}x>0 \\
0.01x\hspace{10mm}x≦0
\end{cases}
\end{equation}$$
入力値が正であれば入力値を出力し、入力値が負であれば\( 0.01{x} \)を出力します。
\( 0.01 \)を\( \alpha \)に置き換えた、Leaky Reluの改良版をParametric ReLUといいます。
$$\begin{equation}
f(x) =
\begin{cases}
x\hspace{13mm}x>0 \\
\alpha{x}\hspace{10mm}x≦0
\end{cases}
\end{equation}$$
参考Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification
Leaky ReLU関数 コード
Leaky ReLU関数 グラフ
PythonでLeaky ReLU関数の微分
Leaky ReLU関数の微分は次式です。
$$\begin{equation}
f'(x) =
\begin{cases}
1\hspace{16mm}x>0 \\
0.01\hspace{10mm}x≦0
\end{cases}
\end{equation}$$
入力値が正であれば1を出力し、入力値が負であれば\( 0.01 \)を出力します。
Leaky ReLU関数の微分 コード
Leaky ReLU関数の微分 グラフ
まとめ
Leaky ReLU関数は負の値でも勾配を持つためいいと予想されましたが、実際にはあまりいい性能を示さなかったりもすると言われています。
ソースコードはコピペで利用できるので実際に出力させてみてください!!
この記事を書いた人。
20代。とあるネットベンチャーでがんばる働き屋さん、ブロガー。
書きたいことを気ままに書いてます!
Python、プログラミング、米株、カメラ、野球観戦がすき。趣味は新宿散策。