差の二乗和の最小化と差の絶対値和の最小化

投稿日: 更新日:

二乗和と絶対値和

前提条件

  • NN個からなる数列AAが与えられる
  • ある任意の実数xxがある

差の二乗和は以下の式で示されます

S=i=1N(Aix)2S = \sum_{i=1}^{N}(A_i - x)^2

差の絶対値和は以下の式で示されます

S=i=1Nabs(Aix)S = \sum_{i=1}^{N}abs(A_i-x)

absabsは絶対値のことです

二乗和を最小にするx

与式を見ると下に凸の2次関数です。つまり、関数の傾きが0の時総和は最小です。

式に落とし込みます

dSdx=i=1N(2Ai+2x)=0\frac{dS}{dx} = \sum_{i=1}^{N}(-2A_i + 2x) = 0

整理すると、

i=1NAi=Nx\sum_{i=1}^{N}A_i = Nx

変形すると、

1Ni=1NAi=x\frac{1}{N}\sum_{i=1}^{N}A_i = x

ここで、1Ni=1NAi\frac{1}{N}\sum_{i=1}^{N}A_iは数列AAの平均値です。つまり、二乗和を最小にするxxは平均値であることが証明されました。

絶対値和を最小にするx

数式で証明するのは難しいので図を用いて考えます。

Aix|A_i - x|というのは数直線上の距離になります。

もし、xx以下の値の数より、xx以上の数が多い場合、xxを増やすと総和が減ります。反対の場合も同様です。

図を見るとイメージしやすくなると思います。1幅1としてください。

絶対値和を最小化する

両側から攻めると、中央値になります。

中央値が答え

数列の長さが偶数個の場合は少し特殊です。

数列の長さが偶数の場合

書いた人

profile_image

お茶の葉

物理とプログラミングが好きな人