Pythonでニューラルネットワークの活性化関数Leaky ReLU関数を実装

Share

こんにちは!!ようこそ、当ブログgcbgardenへ。管理人のsakurabaaa(@sakurabaaa_g)です。

機械学習アルゴリズムの一つであるニューラルネットワークでよく使われるLeaky ReLU関数Pythonnumpyを用いて記述したコードと、出力結果(グラフ)をまとめました。

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関数は負の値でも勾配を持つためいいと予想されましたが、実際にはあまりいい性能を示さなかったりもすると言われています。

ソースコードはコピペで利用できるので実際に出力させてみてください!!

この記事を書いた人。
1992年生まれ。フリーなエンジニア。書きたいことを気ままに書いてます!
好きなことは夏の神宮でビール片手に野球観戦、Appleオタ
趣味は、ゴールデン街散策・Web・IT・ものつくりの開発・勉強などなど

スポンサーリンク

Share

Follow