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

SquaredErrorレイヤー(平均二乗誤差関数+出力層)

説明

データセットの変数との平均二乗誤差を最小化するニューラルネットワークの出力層です。ニューラルネットワークにより回帰問題を解く際(連続値を出力するニューラルネットワークを最適化する際)に使用します。

SquaredErrorレイヤー

誤差関数の位置づけ

誤差関数レイヤーは出力層に位置づいていますが、厳密にはこのレイヤーの手前の層が出力層です。誤差関数レイヤーは学習済モデルの実行時は手前のレイヤーの出力をそのまま出力します。
学習時は手前のレイヤーの出力を正解値と比較し、出力値と正解値の誤差を算出します。算出された誤差は各ネットワークの重みの変更に利用されます。

誤差関数の位置づけ

数式

二乗誤差
MSE = Mean squared error
各ニューロンの結果と正解の誤差(y - y')を2乗した値の平均を算出します。結果と正解がどれだけ差異があるかの指標となります。

回帰問題を解く場合に用いる誤差関数について

回帰分析は回帰モデルのf関数(y=f(x))が出力する値を正解値y'に近づけることを目的としています。そのため、損失関数としては、モデルの出力値と正解値が離れば離れるほど、大きなペナルティを与える損失関数を用いる必要があります。

喪失関数のペナルティ

このような損失関数として以下の関数などが利用されます。

二乗誤差は回帰モデルの出力値 f(x) と y'の差を 2 乗しているため、小さな誤差も検知できますが、両者が離れば離れるほど大きなペナルティを受けるのでデータに外れ値が含まれると、その外れ値による影響を大きく受けます。

プロパティ

T.Dataset

データセットに含まれる変数のうち、このSquaredErrorレイヤーの出力として期待する変数の変数名を指定します。

デフォルト値 = y

T.Generator

データセットの代わりに用いるGeneratorを指定します。GeneratorプロパティがNone以外の場合、最適化時T.Datasetで指定した変数の代わりにGeneratorにより生成するデータを用います

デフォルト値 = None

  • None:データ生成を行いません
  • Uniform:-1.0~1.0の一様乱数を生成します
  • Normal:平均0.0、分散1.0であるガウス乱数を生成します
  • Constant:全ての要素が一定値(1.0)であるデータを生成します

T.GeneratorMultiplier

T.Generatorにより生成した値に対して掛ける係数を指定します。

デフォルト値 = 1

利用用途

出力結果と正解の誤差の算出に利用します。出力結果が連続値の場合に使用します。
回帰ネットワークにおいて使用するネットワークの基幹となるレイヤーです。

出力サイズ

入力サイズと同様

サンプル構成

LSTM

LSTM

補足)誤差関数の役割と学習の仕組み

https://qiita.com/Nezura/items/0a37e1746f2830e31ddc/

qiitaに丸投げです(-_-;)
何時か自分で記事にします。

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

  • 訓練データにイレギュラーなデータが少ない場合は、誤差の検知精度の高い平均二条誤差(SquaredError)を用いるのが良い。
  • 訓練データにイレギュラーなデータが多く含まれる場合は、イレギュラーなデータにより学習が不安定になることを防ぐためHuber損失(HuberLoss)を用いるのが良い。

https://piyonekochannel.com/entry/2019/12/19/115203

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

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

広告




スポンサーリンク
広告




広告




シェアする

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

フォローする

スポンサーリンク
広告