損失の削減: 確率的勾配降下法

勾配降下法では、1 回のトレーニング イテレーションで勾配を計算するために使用する一連のサンプルがバッチです。ここまでは、バッチがデータセット全体であると想定しました。Google 規模で運用する場合、データセットには数十億または数千億の例が含まれていることがよくあります。また、Google のデータセットには膨大な数の特徴が含まれていることがよくあります。その結果、バッチが膨大になる可能性があります。バッチが非常に大きいと、1 回の反復処理でもコンピューティングに非常に長い時間がかかる可能性があります。

ランダムにサンプリングされたサンプルを含む大規模なデータセットには、冗長なデータが含まれている可能性があります。実際、バッチサイズが大きくなると、冗長性が高くなります。ある程度の冗長性は、ノイズの多い勾配を平滑化するのに便利ですが、大量のバッチは、大規模なバッチよりもはるかに高い予測値を達成しない傾向があります。

コンピューティングをはるかに少ない量で平均して適切な勾配を取得できるとしたらどうでしょうか。データセットから無作為にサンプルを選択することで、はるかに小さい値から(ノイズはたっぷりと)大きな平均を推定することができます。確率的勾配降下法SGD)は、この考えを極端に表現したものであり、反復処理ごとに 1 つの例(バッチサイズ 1)のみを使用します。反復処理を何回も繰り返すと、SGD は機能しますが、ノイズが非常に多くなります。「確率論的」という用語は、各バッチを構成する 1 つの例がランダムに選択されることを示します。

ミニバッチの確率的勾配降下法(ミニバッチ SGD)は、フルバッチ イテレーションと SGD の妥協方法です。ミニバッチは通常、10 ~ 1,000 個のサンプルからランダムに選択されます。ミニバッチ SGD は SGD のノイズ量を減らしますが、それでもフルバッチよりも効率的です。

説明をわかりやすくするため、1 つの特徴の勾配降下法に焦点を当てました。勾配降下法は、複数の特徴を含む特徴セットでも機能します。