機械学習やディープラーニングの学習を進めていくと、必ずといっていいほど登場するのが確率的勾配降下法です。
英語ではStochastic Gradient Descentと呼ばれ、頭文字を取ってSGDと略されることも多い最適化アルゴリズムです。
ただ、この名前を初めて目にしたとき、なぜ「確率的」という言葉が付いているのか疑問に思った方も多いのではないでしょうか。
勾配降下法そのものは、損失関数の傾きに沿ってパラメータを更新していくという、決まった手順に基づく計算方法です。
一見すると確率やランダム性とは無関係に思えるかもしれません。
しかし実際には、学習データの選び方にランダムサンプリングという仕組みが組み込まれており、それがこの名前の由来と深く関係しています。
本記事では確率的勾配降下法はなぜ「確率的」と呼ばれる?名前の由来もというテーマに沿って、その語源や意味、ランダムサンプリングとの関係を丁寧に解説していきます。
専門用語が多く難しく感じられる分野ですが、できるだけかみ砕いて説明していきますので、ぜひ最後までご覧ください。
確率的勾配降下法が「確率的」と呼ばれる理由
それではまず、確率的勾配降下法がなぜ「確率的」と呼ばれるのかについて、結論から解説していきます。
結論として、確率的勾配降下法が「確率的」と呼ばれるのは、パラメータ更新のたびに使用する学習データをランダムに選び出しているからです。
全データを使わず、無作為に抽出した一部のデータだけで勾配を計算するため、その計算結果には毎回ばらつきが生まれます。
このランダム性こそが、英語のStochasticという単語が示す意味そのものなのです。
ランダムにデータを選ぶ計算方法だから
確率的勾配降下法では、学習データセット全体をそのまま使うのではなく、1つまたは少数のサンプルを無作為に選んで勾配を計算します。
この「無作為に選ぶ」という操作こそが、名前に「確率的」という言葉が含まれる最大の理由です。
毎回どのデータが選ばれるかは事前には分かりません。
いわばサイコロを振るように、ランダムサンプリングによってデータを取り出していく手法なのです。
勾配の推定値に不確実性が含まれるから
ランダムに選ばれたデータだけを使って勾配を計算するため、その値は本来の全体の勾配とは完全には一致しません。
あくまで真の勾配の「推定値」にすぎないのです。
この推定値には確率的な誤差、つまりノイズが含まれます。
統計学的に見ると、これはまさに確率変数を扱っているのと同じ状況といえるでしょう。
英語のStochasticという単語の意味に由来するから
Stochasticという英単語は、日本語で「確率的な」あるいは「無作為な」と訳される形容詞です。
ランダムな要素を含むプロセス全般を指す言葉として、統計学や物理学の分野で古くから使われてきました。
勾配降下法にランダムサンプリングという要素が加わったことで、この単語が冠されるようになったと考えられます。
名付けの背景を知ると、単なる暗記ではなく納得感を持って理解できるのではないでしょうか。
Stochasticという言葉の語源と意味
続いては、確率的勾配降下法の「確率的」という言葉自体の語源について確認していきます。
Stochasticという単語の語源(ギリシャ語)
Stochasticという単語は、古代ギリシャ語のstokhastikos(推測する、狙いを定めるという意味の言葉)に由来するとされています。
さらに遡ると、stokhos(的、標的)という名詞がその語源にあたります。
弓矢で的を狙うものの、必ずしも毎回同じ場所に当たるとは限らない、というイメージが込められているようです。
この「狙いは定まっているが結果にはばらつきがある」という感覚は、確率的勾配降下法の性質と驚くほど一致しています。
語源のイメージ
stokhos(的)
stokhastikos(的を狙って推測する)
stochastic(確率的な、無作為性を伴う)
統計学における確率的モデルとの関連
統計学や確率論の分野では、Stochastic Process(確率過程)という用語が古くから使われています。
これは、時間の経過とともにランダムに変化する現象を数学的に表現するモデルです。
確率的勾配降下法という名前も、こうした確率過程の考え方の延長線上にあると捉えることができます。
データのサンプリングという確率的な操作を、最適化アルゴリズムの中に取り入れたものだと言い換えられるでしょう。
日本語訳としての「確率的」という言葉の選択
Stochasticという英単語には、日本語で「確率的な」のほかに「不規則な」「無作為な」といった訳語も当てられます。
機械学習の文脈では、多くの教科書や論文で一貫して「確率的勾配降下法」という訳語が採用されてきました。
これは、ランダムサンプリングという確率的な操作が手法の本質を表しているためだと考えられます。
用語として定着したことで、今では専門分野を問わず広く通用する呼び名になっています。
通常の勾配降下法との違い
続いては、通常の勾配降下法(バッチ勾配降下法)との違いについて確認していきます。
バッチ勾配降下法の計算方法
通常の勾配降下法は、バッチ勾配降下法とも呼ばれ、学習データセット全体を使って一度に勾配を計算する手法です。
すべてのデータの誤差を平均してから、パラメータを一回だけ更新します。
データ全体を反映した正確な勾配が得られる点が大きな特徴です。
その一方で、データ量が膨大になるほど計算に時間がかかってしまいます。
確率的勾配降下法の計算方法
これに対して確率的勾配降下法は、データセットの中からランダムに選んだ1件、あるいは数件のデータだけを使って勾配を計算します。
そして、その都度パラメータを更新していきます。
全データを見るわけではないため、計算そのものは非常に高速です。
更新のたびに使うデータが変わるため、パラメータの動きにはどうしても揺らぎが生じます。
両者の計算コストと収束の違い
バッチ勾配降下法は計算が安定している反面、1回の更新にかかる計算コストが高くなりがちです。
確率的勾配降下法は1回あたりの計算コストが低く、大規模データでも扱いやすいというメリットがあります。
収束の様子を比較すると、バッチ勾配降下法は滑らかに最小値へ近づくのに対し、確率的勾配降下法はジグザグに揺れながら近づいていきます。
どちらが優れているというより、目的やデータ量に応じた使い分けが重要でしょう。
| 比較項目 | バッチ勾配降下法 | 確率的勾配降下法 |
|---|---|---|
| 使用データ | 全データ | ランダムに抽出した一部 |
| 1回の更新にかかる計算コスト | 高い | 低い |
| 収束の安定性 | 安定している | 揺らぎが大きい |
| 大規模データへの適性 | 低い | 高い |
| 局所解からの脱出しやすさ | 低い | 高い |
ランダムサンプリングの仕組み
続いては、確率的勾配降下法の中核をなすランダムサンプリングの仕組みについて確認していきます。
データセットからのランダム抽出
確率的勾配降下法では、学習を始める前にデータセットの並び順をシャッフルしておくのが一般的です。
そして、そのシャッフルされた順番に沿って1件ずつ、あるいは小さなまとまりごとにデータを取り出していきます。
この抽出プロセスにランダム性が組み込まれているため、同じデータセットでも学習のたびに結果が微妙に異なることがあります。
再現性を確保したい場合は、乱数のシード値を固定しておく工夫が欠かせません。
ミニバッチ確率的勾配降下法との関係
実務の現場では、1件ずつデータを使う純粋な確率的勾配降下法よりも、数十件から数百件程度のまとまりを使うミニバッチ確率的勾配降下法が広く使われています。
ミニバッチという小さな集合をランダムに抽出する点は変わらないため、名前に「確率的」という言葉が残されています。
1件だけを使う場合と比べて、勾配の推定がやや安定しやすいという利点もあります。
計算速度と安定性のバランスを取った、実用的な折衷案といえるでしょう。
エポックとシャッフルの役割
データセット全体を1周分学習することをエポックと呼びます。
各エポックの開始時にデータを再びシャッフルすることで、毎回異なる順序でランダムサンプリングが行われます。
エポック1回目のデータ順
データA、データC、データB、データD
エポック2回目のデータ順(再シャッフル後)
データD、データA、データC、データB
この繰り返しのシャッフルによって、特定の順序への偏りを防ぎ、より汎用性の高いモデルを学習できるようになります。
確率的勾配降下法のメリットとデメリット
続いては、確率的勾配降下法を使うことのメリットとデメリットについて確認していきます。
計算速度と省メモリ性というメリット
確率的勾配降下法の最大のメリットは、なんといっても計算速度の速さです。
1回の更新に必要なデータ量が少ないため、大規模なデータセットでもメモリを圧迫しにくいという利点があります。
画像認識や自然言語処理など、データ量が膨大になりがちな分野で広く採用されているのはこのためです。
省メモリで高速という特性は、実務での扱いやすさに直結しています。
収束の不安定さというデメリット
一方で、ランダムサンプリングによる揺らぎが大きいため、損失関数の値が滑らかに減少せず、上下に振動しながら収束していく傾向があります。
最適な解のごく近くまで到達しても、値が細かく揺れ続けてしまうこともあります。
この不安定さをどう抑えるかが、実践上の大きな課題になるでしょう。
学習率の調整やミニバッチサイズの見直しなど、対策を講じる必要があります。
局所解を避けやすいという副次的な効果
意外に思われるかもしれませんが、この不安定さがプラスに働く場面もあります。
ランダムな揺らぎがあることで、浅い局所解や鞍点に留まりにくくなるのです。
確率的なノイズが、かえってモデルをより良い解へと導く後押しになることがあります。
これは確率的勾配降下法ならではの、興味深い副次的なメリットといえるでしょう。
安定性の低さを弱点とばかり捉えるのではなく、探索力の高さとして評価する視点も大切です。
実践で確率的勾配降下法を使う際の注意点
続いては、実際に確率的勾配降下法を使う際の注意点について確認していきます。
学習率の設定に関する注意点
確率的勾配降下法では、学習率の設定が結果を大きく左右します。
学習率が大きすぎると、パラメータの更新幅が大きくなりすぎて発散してしまうことがあります。
逆に小さすぎると、学習に時間がかかりすぎてしまうでしょう。
学習が進むにつれて学習率を徐々に小さくする、学習率スケジューリングという工夫がよく用いられます。
モーメンタムやAdamなど発展手法との関係
確率的勾配降下法の収束の不安定さを補うために、さまざまな改良手法が提案されてきました。
過去の更新方向を加味するモーメンタム、勾配の大きさに応じて学習率を調整するAdaGrad、両者の考え方を組み合わせたAdamなどが代表的です。
| 手法名 | 特徴 |
|---|---|
| SGD(確率的勾配降下法) | ランダムサンプリングによるシンプルな更新 |
| モーメンタム | 過去の更新方向を慣性として利用 |
| AdaGrad | パラメータごとに学習率を自動調整 |
| Adam | モーメンタムとAdaGradの考え方を統合 |
これらの発展手法も、根底にはランダムサンプリングという確率的な考え方が引き継がれています。
バッチサイズの選び方
ミニバッチのサイズをいくつにするかも、実践上の重要な判断ポイントです。
バッチサイズを小さくすると計算は速くなりますが、勾配の推定にばらつきが出やすくなります。
バッチサイズを大きくすると推定は安定しますが、計算資源やメモリの負荷が増してしまいます。
使用するハードウェアやデータ量に応じて、適切なバランスを見極めることが求められるでしょう。
まとめ
ここまで、確率的勾配降下法はなぜ「確率的」と呼ばれる?名前の由来も含めて、語源やランダムサンプリングとの関係を解説してきました。
結論として、確率的勾配降下法が「確率的」と呼ばれているのは、学習データをランダムサンプリングによって無作為に選び出し、その一部だけで勾配を計算しているからです。
この名前は、ギリシャ語のstokhastikosに由来する英単語Stochasticの意味、つまり「無作為性を伴う」という性質を的確に表しています。
バッチ勾配降下法との違いを踏まえると、計算速度や省メモリ性といったメリットの裏に、収束の揺らぎというデメリットが存在することも見えてきます。
とはいえ、そのランダムな揺らぎが局所解を避ける助けになることもあり、単純な弱点とは言い切れません。
モーメンタムやAdamといった発展手法にも、この確率的な考え方はしっかりと受け継がれています。
名前の由来を知ることで、アルゴリズムの仕組みそのものへの理解も一段と深まるのではないでしょうか。
ぜひ今回の内容を、日々の学習や実践の場で役立てていただければ幸いです。