バックナンバーはこちら。
https://www.simulationroom999.com/blog/compare-matlabpythonscilabjulia4-backnumber/
はじめに
形式ニューロンについての解説。
今回は誤差関数について説明。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
【再掲】形式ニューロンへ至る道
まずは、形式ニューロンへ至る道を再掲。
- ヘヴィサイド関数(済)
- 形式ニューロン(済)
- 分類問題のHelloWorld(済)
- 誤差関数
- 決定境界直線
- 決定境界直線の特定方法
- 総当たり法による分類
今回は誤差関数について説明する。
代表的な誤差関数
誤差関数って、目的の結果と実際の推論の差で
0になればOKってやつだっけ?
以前の回帰分析とかでそんな話があった気がする。
回帰の場合は、0になる点を特定するという発想だったが、
分類問題置いては必ず0の点が見つかるとは限らない。
よって、可能な限り誤差関数の結果が小さいところを最適解する。
って考え方になるな。
扱いがちょっと違うのか。
とりあえず、代表的な誤差関数を紹介しておこう。
平均二乗誤差(MSE:Mean Squared Error)
\(
\begin{eqnarray}
MSE&=&\displaystyle\frac{1}{n}\sum_{i=1}^n(\hat{y_i}-y_i)^2\\
&=&\frac{1}{データ数}\sum_{i=0}^n(予測値_{i番目}-正解値_{i番目})^2
\end{eqnarray}
\)
二乗和誤差関数(SSE:Sum of Squared Error)
\(
\begin{eqnarray}
SSE&=&\displaystyle\sum_{i=1}^n(\hat{y_i}-y_i)^2\\
&=&\sum_{i=0}^n(予測値_{i番目}-正解値_{i番目})^2
\end{eqnarray}
\)
二乗平均平方根誤差(RMSE:Root Mean Squared Error)
\(
\begin{eqnarray}
RMSE&=&\displaystyle\sqrt{\frac{1}{n}\sum_{i=1}^n(\hat{y_i}-y_i)^2}\\
&=&\sqrt{\frac{1}{データ数}\sum_{i=0}^n(予測値_{i番目}-正解値_{i番目})^2}
\end{eqnarray}
\)
今回使用するのはMSE。
これは、計算式的に分散と一緒。
統計学として意味のある誤差の値になる。
という性質がある。
SSEは、回帰分析で使用したものだな。
\(SSE=\displaystyle\frac{1}{2}\sum_{i=1}^n(\hat{y_i}-y_i)^2\)
のように変形したものが
使用される場合もある。
微分した際に1/2が消えてくれて数式がきれいになり、
シンプルなため数学的テクニックを盛り込みやすい。
RMSEはMSEよりも値が小さくなり、
学習という面では不利だが、
標準偏差の位置づけとなり、
人間から見て意味のある数値になりやすい。
なんか、似たような感じだけど、それぞれ性質とか目的が違うんだね。
これら以外にも大量にあるが、基本は、予測値と正解値の差を評価したいという意味では一緒だな。
まとめ
まとめだよ。
- 代表的な誤差関数について説明。
- MSE:分散と一緒であり、統計的に意味のある数値
- SSE:シンプルであり、利用しやすい
- RMSE:標準偏差的位置づけであり、人間から見て意味のある数値になりやすい。
バックナンバーはこちら。
コメント