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関数はニューラルネットワークの活性化関数でよく使われています。

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

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

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

スポンサーリンク

Share

Follow