二乗和誤差を求める - 損失関数
二乗和誤差を求める関数をPerlで書いてみましょう。二乗和誤差は、出力結果と期待される出力結果(正しい答え)の誤差を計算するために使用する損失関数の一つです。
use strict; use warnings; # 二乗和誤差 sub sum_of_square_error { my ($outputs, $desired_outputs) = @_; if (@$outputs != @$desired_outputs) { die "Outputs length is different from Desired length"; } my $total_pow2 = 0; for (my $i = 0; $i < @$outputs; $i++) { $total_pow2 += ($outputs->[$i] - $desired_outputs->[$i]) ** 2; } my $sum_of_square_error = 0.5 * $total_pow2; return $sum_of_square_error; } my $outputs = [0.7, 0.2, 0.1]; my $desired_outputs = [1, 0, 0]; my $sum_of_square_error = sum_of_square_error($outputs, $desired_outputs);
ディープラーニングでは、損失関数で求められた誤差が小さくなるように、重みとバイアスのパラメーターが調整されていきます。
パターン認識の問題における損失関数としては、偏微分の形が難しく計算が複雑になるので二乗和誤差より、クロスエントロピー誤差を使うほうが、望ましいようです。