IBMニュースレター
The DX Leaders
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
学習率は、機械学習モデルが最適化アルゴリズムの各ステップでパラメーターをどの程度調整するかを管理するハイパーパラメーターです。学習率によって、モデルが最適なパフォーマンスを発揮するか、トレーニング・プロセス中に学習に失敗するかが決まります。
最適化アルゴリズムの目的は、モデルの予測と実際のデータとのギャップを測定する損失関数を最小化することです。モデルが最適化アルゴリズムを実行するたびに、結果に基づいてモデル・パラメーターが更新されます。学習率、つまりステップ・サイズはギリシャ文字の「η」で表され、モデルが実行できる変更のサイズを決定します。
学習率は、モデルがトレーニングから十分に学習して、パラメーターに意味のある調整を加えつつ、過剰に修正しないようにするのに役立ちます。坂を下るところを想像してください。安全に坂の底に到達するには、意味のある進歩を遂げるのに十分な速さで移動する必要がありますが、コントロールを失ってつまずくほど速く移動してはいけません。最適な学習率は、安全な下降速度を設定します。
各トレーニング・ステップは、モデルがデータセットに対する以前の理解を上書きすることを表します。ニューラル・ネットワークは、最適化アルゴリズムを実行するたびに、トレーニング用データについてさらに「学習」します。
IBMニュースレター
AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。
ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。
学習率は、AIモデルがトレーニング用データから効果的に学習できるように導くため重要です。
学習率が低いと、モデルは各ステップで十分に「学習」できません。モデルはパラメーターを更新するのが遅く、収束するまでに時間がかかります。しかし、学習率が高いことが答えであるとは限りません。
学習率が高いと、アルゴリズムがオーバーシュート(間違いを修正しすぎること)に陥る可能性があります。この場合、アルゴリズムに必要な学習率を低くする必要がありますが、学習が非効率的になるほど低くしてはなりません。
例として、地球上の生命について学びに来たエイリアンを想像してください。エイリアンは猫、犬、馬、豚、牛を見て、すべての動物は4本足であると結論付けます。その後、エイリアンが鶏を見た場合、この生き物も動物と判断するでしょうか。エイリアンの学習速度に応じて、次の3つの結論のいずれかに達します。
最適な学習率では、エイリアンは鶏も動物であると結論付けます。そして、もしそうだとしたら、これは、足の数が何かが動物であるかどうかを決定する重要な要素にならないことを意味しているはずです。
宇宙人の学習率が低い場合、この一羽から十分な洞察を得ることができません。エイリアンは、鶏は4本の足がないので動物ではないと結論づけるでしょう。エイリアンの学習率は低いため、より多くの鶏を見るまで思考を更新することはできません。
学習率が高いと、エイリアンは過剰に修正します。鶏は動物であり、鶏は2本の足があるため、すべての動物には2本の足が必要だと結論づけます。学習率が高いとは、モデルが一度に「多すぎる」ことを意味します。
学習率が異なれば、学習結果も異なります。最適な学習率は、アルゴリズムが収束点をオーバーシュートすることなく、モデルのパラメーターをタイムリーに調整できるものです。
パラメーターは、ディープラーニング・モデルの動作を制御する構成変数です。パラメーターはモデルの動作を決定し、調整することでモデルのパフォーマンスを向上させることができるという点で、モデルの設定に似ています。
モデル学習パラメータ、つまりモデルの重みは、モデルの内部にあり、トレーニング中に学習されます。モデルは各トレーニングステップで内部パラメーターを変更し、性能を向上させます。モデルが行う変更の規模は、学習率によって設定されます。モデルのパラメーターの構成は、その性能に直接影響します。
モデルをファイン・チューニングする場合、モデルはすでにトレーニングされているため、より小さな調整が必要になります。ファイン・チューニングでは通常、モデルをトレーニングした場合よりも低く、学習率が低くなります。
ハイパーパラメーターは、モデルの構造とトレーニングプロセスを形作る外部ルールです。これらはモデルのトレーニングを担当する担当者が設定します。学習率はそのようなハイパーパラメーターの1つで、通常は0.0~1.0の値になります。
それ以外に2つの基本的なハイパーパラメーターがあります。
エポック:トレーニング中にデータセット全体がモデルを通過する回数。エポックは、モデルがデータセット内の各サンプルを1回処理すると完了します。エポック・ハイパーパラメーターは、トレーニング・プロセスのエポック数を設定します。
バッチサイズ:トレーニング・エポックはバッチと呼ばれる小さなチャンクに分割できます。モデルは、各トレーニング・バッチの後に重みを更新します。
エポックはトレーニング・プロセスの期間を設定し、バッチ・サイズはモデルが重みを更新する頻度を決定します。学習率は、各バッチの後にモデルが学習する量を指定します。
勾配降下法は、機械学習モデルをトレーニングするための最適化アルゴリズムです。勾配降下法アルゴリズムは、損失関数を使用して、機械学習アルゴリズムの予測値と実際の値の差を図表化します。勾配は関数の傾きであり、潜在的な値を表します。
最適化アルゴリズムの目的は、関数が最低の出力を生成する局所的最小値まで勾配を下げることです。しかし、局所的最小値は、必ずしも関数の唯一のグローバル最小値、または全体的な最小値であるとは限りません。データサイエンティストは、他のアルゴリズムや正規化などの補足的な方法を使用して、損失関数の出力が減少するときにモデルが最適ではない局所的最小値に陥らないようにします。
損失関数の最小化を通じてモデルの重みを更新するプロセスは、バックプロパゲーション法として知られています。勾配降下法は、バックプロパゲーション法を実行する一般的な方法です。
アルゴリズムがモデルのパラメーターを更新して損失関数を減らし、勾配を下げるたびに、モデルは収束に少しずつ近づきます。学習率は、アルゴリズムがモデルの重みを更新するペースを制限することで、この下降を制御します。
勾配降下法には3つのタイプがあります。
バッチ勾配降下法は、データセット内のすべてのサンプルの損失を計算した後、反復します。これは非常に安定していますが、最適な収束を達成するには最適ではありません。
確率的勾配降下法(SGD)は、反復ごとに1つのデータ・ポイントをランダムに選択し、速度とニュアンスを大幅に向上させます。ただし、更新頻度が高いため、安定性が低下する可能性があります。SGDには、Adam、AdaGrad、RMSPropなど、多くのバリエーションがあります。
ミニバッチ勾配降下法は、代わりに反復ごとに小さなデータ・ポイントのグループを選択する侵害的な方法です。安定性を犠牲にすることなく、優れた更新頻度と速度を実現します。
優れた学習率を決定することは、主に試行錯誤のプロセスです。トレーニング中に進捗状況を評価することなく、最適な初期学習率を保証できる確実なデータサイエンス法はありません。
学習率を決定する一般的な方法には、以下のようなものがあります:
グリッド探索
学習率スケジュール
適応型学習率
ハイパーパラメーターの最適化
学習率の最適化は、減衰と運動量の中核原理に大きく依存しています。多くのディープラーニング・ライブラリーは、ユーザーに代わって減衰と運動量を計算します。そのようなライブラリーの1つが、TensorFlow、JAX、PyTorchをサポートするPythonで記述されたオープンソースのKeras APIです。
減衰はトレーニングが進むにつれて学習速度を遅くします。減衰を効果的に使用すると、モデルは最初に迅速に学習し、その後より段階的に学習してオーバーシュートの収束を回避できます。
運動量は最適化アルゴリズムの慣性です。勾配が同じ方向をたどる場合、つまりアルゴリズムがまだ収束に達していない場合、局所的最小値をバイパスして下方への進行を継続しながら学習率を上げます。運動量を増やすと、収束が速くなります。運動量が低いと、小さな局所的最小値でトレーニングが停止する可能性がありますが、運動量が高いと、重要な局所的最小値を誤ってスキップする可能性があります。
グリッド検索は、学習率を決定するための力ずくの方法です。データサイエンティストは、すべての潜在的な学習率を含むグリッドを組み立てます。次に、各学習率がテストされ、検証されます。検証では、新しいデータセットでトレーニング済みモデルをテストし、ハイパーパラメーターをさらに更新します。
グリッド検索機能は徹底的な学習率評価プロセスを促進しますが、時間と計算量が多くなります。
学習率スケジュールは、事前に決められたいくつかの計画の1つに従って、トレーニング・プロセス中に学習率を更新します。一般的な学習率スケジュールには次のものがあります。
固定学習率
時間ベースの減衰
ステップ減衰
指数関数的減少
多項式減衰
固定学習率、つまり一定の学習率は、トレーニング中に変わりません。固定学習率では、トレーニング中の勢いと減衰は静的なままです。固定学習率は、他の学習率ストラテジーをテストするためのベンチマークまたは基準点を示します。
時間ベースの学習スケジュールでは、事前に決められた数のトレーニングエポック後、または指定されたエポックで学習率の低下がトリガーされます。学習率の減衰量は、前のサイクルの学習率に基づいています。一般的な時間ベースの学習スケジュールでは、エポック数に反比例する要因に基づいて減衰が決まります。
ステップ減衰は、設定された数のエポックの後に、半分にするなど、事前に決定された係数だけ学習率を減らします。
指数関数的減衰学習率は、設定されたエポック数を超えると指数関数的に減少します。それ以外の点では、指数関数的減衰学習スケジュールはステップ減衰スケジュールに似ています。
多項学習スケジュールでは、減衰は現在のエポックの多項関数によって決定されます。エポックをより高い指数関数で乗算すると減衰率が増加しますが、より低いパワーで安定した減衰率が維持されます。
循環学習スケジュールでは、最小学習率と最大学習率を定義し、学習率を2つの間で切り替えます。三角スケジュールでは、最小値から最大値まで、設定された定数だけ直線的に増加します。その他のスケジュールでは、コサイン関数、正弦関数、または放物線関数を使用します。
適応型学習アルゴリズムは、現在の状況や以前の反復に応じて動的に調整されます。対照的に、スケジュールされた学習率はすべて、事前に定義されたハイパーパラメーターに依存します。
多くの適応学習法はSGDのバリエーションです。注目すべき適応学習アルゴリズムには次のものがあります。
AdaGrad:2011年に導入されたAdaGrad(適応型勾配)アルゴリズム・ファミリーは、学習率をパラメーターごとに個別に更新します。通常、学習率と特徴量の頻度の間には逆比例の関係が設定されます。このアプローチにより、データセット内のより関連性の高い特徴量に焦点が当てられます。
RMSProp:RMSProp(ルート平均二乗伝播)は、各勾配の二乗の移動平均に従って、各パラメーターのLearning Weigtを調整します。はるか過去の勾配を無視することで安定性を高め、より迅速な収束を実現することでAdaGradの改善を実現します。
Adam:2014年に導入されたAdam(適応モーメント推定)は、運動量とRMSPropを組み合わせて、各パラメーターの学習率を以前の勾配に基づいて調整します。Adamの後のバージョンでは、ウォームスタートが追加され、トレーニング開始時の学習率が徐々に向上します。
ハイパーパラメーターの最適化、またはハイパーパラメーター・チューニングは、学習率を含むすべてのハイパーパラメーターの最適な構成を特定する手法です。ハイパーパラメーター・チューニング・アルゴリズムは、最適なハイパーパラメーターを構成するプロセスを自動化します。各アルゴリズムは、特定のハイパーパラメーターを他のハイパーパラメーターよりも優先します。
全体的に最適なハイパーパラメーター構成を探すことで、各ハイパーパラメーターが他のハイパーパラメーターにどのように影響するかを検討できます。ただし、このアプローチは、特にハイパーパラメーターが大量にある場合、計算量が多くなる可能性があります。
AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。
業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。
AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。