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

Share

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

機械学習の手法であるロジスティック回帰やニューラルネットワークでよく?使われるtanh関数Pythonnumpymatplotlibを用いて記述したコードと、出力結果(グラフ)をまとめています。

tanh関数の微分もコードと合わせて紹介します。

※本プログラムは、数値計算ライブラリNumpyや描画ライブラリmatplotlibを使いJupyter Notebookでコードを実行しています。いますぐコードを実行し、結果をみてみたい方は「Jupyter Notebook」にアクセスし、「Try it in your browser」で実践してみてください。
スポンサーリンク

Pythonでtanh関数

tanh関数は次式です。

$$y=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}$$

\(e\)ばっか。笑

tanh関数 コード

      

tanh関数 グラフ

入力が\(0\)のとき\(0\)を返してくれバランスのいい関数にみえます。特に入力値が小さければ小さい値、大きければ大きい値を返してくれるので扱いやすいです。

Pythonでtanh関数の微分

tanh関数の微分は次式です。

$$y=\frac{4}{(e^{x}+e^{-x})^2}$$

tanh関数の微分 コード

      

tanh関数の微分 グラフ

微分したとき最大値\(1\)を返してくれるので、勾配消失問題の影響も受けにくいです。

まとめ

tanh関数はニューラルネットワークの活性化関数でよく使われています。

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

もっとくわしく勉強したい方には以下の書籍がおすすめです。

この記事を書いた人。
20代。とあるネットベンチャーでがんばる働き屋さん、ブロガー。
書きたいことを気ままに書いてます!
Python、プログラミング、米株、カメラ、野球観戦がすき。趣味は新宿散策。

スポンサーリンク

Share

Follow