takeda_san’s blog

KotlinとVRを頑張っていく方向。

平均二乗誤差について少しだけ理解した話

前回のあらすじ

分類とラベルについて、今更理解した。

takeda-san.hatenablog.com

やったこと

統計学の入門書を読んでいる。

www.kyoritsu-pub.co.jp

要するにやる夫で学ぶ統計学的なものである。
半分ぐらいまで読んだが、今のところ躓くことなく読めている。
(題名については、漢字に長々とルビが振ってあるところが素敵だと思った)

以前に誤差関数に平均二乗誤差(MSE)を使ったサンプルプログラムを読んで、中途半端な理解のまま放置していた。

takeda-san.hatenablog.com

ちょっとばかり入門書で自信がついたので再び見てみよう。


\displaystyle MSE( \sum (t-o) ^ 2 )

相変わらず威圧感ある数式である。
サンプルプログラムの解説ページでは上記の表記であったが、わかりやすく書くと次のような数式らしい。


\displaystyle MSE(c) = \frac{1}{n} \sum_{i=1}^{n} (x_i - c) ^ 2

今回の場合、xが学習データの出力値(正解の値)、cがとあるパラメータでの出力値(予測値)と考えて、分散として求める。


\displaystyle \sum_{i=1}^{n} (x_i - c) ^ 2

それをデータの個数で割るとばらつきの平均値が求められる。
これを誤差の度合いとして小さくしていきましょうというのが、誤差関数に平均二乗誤差を使うということなのだろう。
前よりは納得。

しかし、courseraの機械学習コースでも、統計学の入門書でも分散の絶対値ではなく、2乗する意味については
「だって、こっちのほうが便利だろ?な。そうだろ?」
というばかりで一切解説してくれない。
業界のタブー的なものなのだろうか。

次回の予定

未実施

クラスタリングのサンプルプログラムを読む
Mavenのpomの読み方

実施中

統計学の入門書一冊読む
・courseraの機械学習の動画を見る
・Deep Learning Javaプログラミングを読む
・プログラミングのための線形代数を読む