機械学習に詳しくなりたいブログ

機械学習や数学について勉強した内容を中心に書きます。100%趣味です。記事は数学的に厳密でなかったり誤りを含んでいるかもしれません。ご指摘頂ければ幸いです。

最小二乗法はなぜ二乗和誤差(残差平方和)を計算するのか

"二乗法"なんだから"二乗和"だろうという話ではなく。最小二乗法は、誤差の二乗和を計算するわけですが、そもそもなんで二乗するのか?絶対値ではダメなのか?和ではなく積ではダメなのか?疑問に思ったことはないでしょうか。大きな理由は2つあります。

  1. そもそも二乗和誤差以外だと、解析的に解が求められない

  2. 最尤推定という手法により、二乗和誤差を用いることが理論的に正当化される

この2番目の話は、最初に知ったときは目からウロコでした。最尤推定について、概要だけ書きます。真の値からの誤差が、ある確率分布に従っていると仮定した場合、各々のデータの誤差が発生する確率を最大化するような解を求める→最尤推定と呼びます。(最尤推定について:線形回帰を最尤推定で解く(尤度とは?))そしてこの確率分布を正規分布と仮定して解を求めると、なんと最小二乗法で求める解と等しくなります。つまり最小二乗法は、誤差が正規分布に従っていると仮定した最尤推定を行っているのと同じであるということです。

計算式がなぜ等しくなるのか、これも概要を示します。割とすんなり理解できると思います。正規分布の確率密度関数は


\displaystyle P(x) = \frac{1}{\sqrt{2 \pi \sigma ^2}}e^{ \frac{ -( x - \mu)^2 }{ 2 \sigma ^2}}   \tag{1}

で表されます。いま、n個の訓練データがあるとし、訓練データと予測値の誤差を aで表します。訓練データを t、予測値を yとするなら、 ay-tです。 a_0,\cdots,a_{n-1}が、平均 \mu = 0、分散 \sigma^{2}の正規分布に従って発生するならば、誤差の確率密度関数は


\displaystyle P(a) = \frac{1}{\sqrt{2 \pi \sigma ^2}}e^{ \frac{ - a^2 }{ 2 \sigma ^2}}   \tag{2}

と書けます。そして「誤差a_0,\ldots,a_{n-1}が発生する確率が最大」というのは、「P(a_0),\ldots,P(a_{n-1})の積が最大」と計算できます。*1 積の演算は、指数部が和になりますから、P(a_0),\ldots,P(a_{n-1})の積を最大にするのは、つまり\sum_{i=0}^{n-1}{(-a_i^{2})} を最大にすることです。これは二乗和誤差 \sum_{i=0}^{n-1}{a_i^{2}} が最小となる解を求めてるのと等しいことになります。符号が反転すれば最大問題と最小問題が入れ替わりますね。

*1:正確にはP(a_0),\ldots,P(a_{n-1})は確率ではなく尤度