LoginSignup
2
2

More than 3 years have passed since last update.

機械学習とミニバッチ学習の意義

Last updated at Posted at 2019-11-26

はじめに

これは機械学習におけるミニバッチ学習についてのメモです。機械学習の直観的な説明も兼ねています。

機械学習とは

機械学習はある与えたれたデータに内在すると仮定される規則を自動的に抽出する演算装置です。つまり、ある入力の組$ \boldsymbol{x}$に対して出力$\boldsymbol{t}$が既に得られているとき、そこに存在する規則を抽出することで、新たな入力の組$\boldsymbol{x}^{\prime}$に対応する$\boldsymbol{t}^{\prime}$を予想します。
この規則なるもの(重みと呼びます)を一般に行列$W$とすると、上の話は機械学習の出力$\boldsymbol{y}$(理想的には$\boldsymbol{t}$と一致するべき)を$$ \boldsymbol{y} = W \boldsymbol{x}\tag{1}$$としたとき$\boldsymbol{y}$と$\boldsymbol{t}$から求まる損失関数$$ L = \frac{1}{2}||\boldsymbol{y}(\boldsymbol{x},W)-\boldsymbol{t}||^{2}\tag{2}$$を可能な限り小さくするような$W$を求めるということに置き換えられます。

ビッグデータとミニバッチ学習

さて、改めてビッグデータ$(\boldsymbol{x}_{n},\boldsymbol{t}_{n})$が得られたとします($n=1,2,\cdots,N$で$N$は十分大きい)。ここから重み$W$を抽出して出力が未知の入力$\boldsymbol{x}^{\prime}$に対して相応しい出力$\boldsymbol{t}^{\prime}$を予測します。そのために$\boldsymbol{x}_{n}$すべてに対する2乗和誤差
$$\frac{1}{N} \sum_{n=1}^{N}||\boldsymbol{y}_{n}(\boldsymbol{x}_{n},W)-\boldsymbol{t}_{n} ||^{2} \tag{3}$$を最小とするような$W$を求めます。例えば、勾配降下法などの手法があります。

今、扱っているビッグデータのスケールは$N(\gg 1)$なので、たとえコンピュータといえど$W$を求めるために$n=1$から$N$まで愚直に微分計算をしていたのでは、計算量が膨大となり賢い方法とは言えません。そこで$N$のうち$M (\ll N)$個だけランダムにデータを取り出してこれに対して$$ \frac{1}{M} \sum_{m=1}^{M}||\boldsymbol{y}_{m}(\boldsymbol{x}_{m},W)-\boldsymbol{t}_{m} ||^{2} \tag{4}$$を最小化することで、(3)のやり方に対して圧倒的に効率よく$W$を決定することができます。こうして得られた$W$は、与えられた全てのデータから求まったわけではありませんが、もとのデータのもつ規則の良い近似となっていることが多いです。このような学習手法をミニバッチ学習と呼びます。
※学習とはすなわち$W$を決定すること。具体的な実装はまた次に。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2