Neural Network Consoleレイヤーリファレンス~Tanh~

Tanhレイヤー(Tanh活性化関数)

説明

入力値のTanhによる処理結果を出力する活性化関数です。

Tanhレイヤー

活性化関数の位置づけ

活性化関数は単純パーセプトロンによる線形近似を非線形近似に変換します。

活性化関数は中間層と出力層で用途が異なりますので、利用ケース別に活性化関数の用途を説明します。

中間層における活性化関数の用途

ネットワークの表現可能な範囲を広げるために活性化関数を用います。
ディープラーニングの基本レイヤーであるAffineレイヤー(全結合層)は線形関数つまりXの比例しか表すことが出来ません。
そのため、非線形の活性化関数を組み合わせて複雑な表現の出来るネットワークを構築します。

全結合(線形関数)と活性化関数の組み合わせについて

全結合の計算式は以下の様になります。
全結合
y = x1×w1 + x2×w2

これをグラフにすると御覧の通り、線形(Xに比例する直線)しか表現することが出来ません。
線形グラフ

そのため、線形関数と非線形関数を組み合わせて複雑なパターンを表現します。
線形関数と非線形関数を組み合わせることであらゆるパターンの関数が出来ると言われています。
例)
非線形関数
y = x1×w1 + x2×w2
y' = tanh(y)

これをグラフにすると御覧の通り、非線形の線を表現することが出来ます。
非線形グラフ

ディープラーニングは全結合(線形関数)と活性化関数(非線形関数)を組み合わせることで複雑なパターンを表現します。
【ディープラーニングのネットワーク構成のイメージ】
非線形グラフ

出力層における活性化関数の用途

出力値を目的に応じた形に変換します。
例えば分類問題を解く場合は、入力データをラベル付けするのが目的ですので活性化関数を使って出力値を連続値から離散値に変換します。
また、回帰を解く場合も出力値を0~1の範囲に正規化した方が正解値との誤差の比較が容易になりますので、出力結果が一定の範囲(例. 0~1)となる様に活性化関数を使って出力結果を変換します。

数式

o=tanh(x)
tanh

グラフ

プロパティ

なし

利用用途

Tanh関数はLSTM等の連続データの回帰分析を行うネットワークにおいて、出力層の結果を-1~1の範囲に変換するために利用します。
Tanh関数には勾配消失問題があるため中間層では使われません。中間層には勾配消失問題が少ないReLUなどの活性化関数を用いるのが一般的です。

出力サイズ

入力サイズと同様

サンプル構成

LSTM

LSTM

誤差関数の使い分けについて

中間層

PReLuなどのReLu系の関数を使うのが一般的です。
Sigmoid関数、Tanh関数は勾配消失問題があり、層が深くなると重みの調整が巧くいかなくなります。

出力層

回帰問題を解く場合はSigmoid関数、分類問題を解く場合はSoftmax関数を用いるのが一般的です。
2019/05/25 コメントで指摘頂きまして訂正します。ご指摘ありがとうございました。

回帰問題の場合

  • 恒等関数(=出力層に関数を挟まない)が一般的です。
  • 出力値を0~1の範囲に納めたい場合はシグモイド関数も使われる。

分類問題の場合

  • 二値分類問題を解く場合はSigmoid関数が使われることが多い。
  • 多値分類問題を解く場合はSoftmax関数が使われることが多い。

こちらのサイトが参考になりましたので、リンクを掲載いたします。
https://thinkit.co.jp/article/14103

【送料無料】 ソニー開発のNeural Network Console入門 増補改訂・クラウド対応版--数式なし、コーディングなしのディープラーニング / 足立悠 【本】

価格:2,592円
(2019/6/26 22:40時点)
感想(0件)

広告




スポンサーリンク
広告




広告




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
広告