こんにちは!!ようこそ、当ブログgcbgardenへ。管理人のsakurabaaa(@sakurabaaa_g)です。
機械学習の手法であるロジスティック回帰やニューラルネットワークでよく?使われるtanh関数をPython、numpy、matplotlibを用いて記述したコードと、出力結果(グラフ)をまとめています。
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、プログラミング、米株、カメラ、野球観戦がすき。趣味は新宿散策。