ハイパーパラメーターのチューニングとは

執筆者

Ivan Belcic

Staff writer

Cole Stryker

Staff Editor, AI Models

IBM Think

ハイパーパラメーターのチューニングとは

ハイパーパラメーターのチューニングとは、機械学習モデルのトレーニングに使用する最適なハイパーパラメーターを特定して選択する手法です。ハイパーパラメーターのチューニングを正しく行うと、機械学習モデルの損失関数を最小化することができます。つまり、モデルのパフォーマンスが可能な限り正確になるようにトレーニングされるということです。

ハイパーパラメーターのチューニングは実験的な手法であり、最適な値が特定されるまで、繰り返すたびにさまざまなハイパーパラメーター値がテストされます。このプロセスは、ハイパーパラメーターが学習プロセスを制御するため、モデルのパフォーマンスにとって重要です。ニューラル・ネットワーク内のニューロンの量、生成AIモデルの学習率サポート・ベクター・マシンのカーネル・サイズはすべて、ハイパーパラメーターの例です。

ハイパーパラメーターを適切にチューニングするということは、機械学習モデルが意図したタスクのメトリクスに従って、全体的により優れたパフォーマンスを発揮することを意味します。ハイパーパラメーターのチューニングが、ハイパーパラメーターの最適化とも呼ばれるのは、この理由のためです。

指揮者とオーケストラの写真

ハイパーパラメーターとは

ハイパーパラメーターとは、データサイエンティストが機械学習モデルのトレーニング・プロセスを管理するために事前に設定する構成変数のことです。生成AIやその他の確率的モデルは、トレーニング・データから学んだ知識を適用し、タスクに対して最も可能性の高い結果を予測します。ハイパーパラメーターの適切な組み合わせを見つけることは、教師あり学習モデル教師なし学習モデルの両方から最高のパフォーマンスを引き出すために不可欠です。

正則化ハイパーパラメーター

正則化ハイパーパラメーターは、モデルの容量または柔軟性、つまり、データを解釈する際の自由度を制御します。重みを小さくしすぎると、モデルは適切な予測を行うのに十分な具体性を得ることができなくなります。重みを大きくしすぎると、モデルは過剰適合(過学習)に陥ります。つまり、モデルはトレーニング・データに過剰に適合して、現実世界での使用にはニッチすぎるものになってしまいます。

ハイパーパラメーターとモデル・パラメーターの比較

データサイエンスにおけるハイパーパラメーターとモデル・パラメーターの主な違いは、モデルが自ら取り込んだトレーニング・データ・セットからパラメーターを学習または推定するのに対し、データサイエンティストはトレーニング・プロセスの開始前にモデルのアルゴリズムのハイパーパラメーターを定義することです。モデルは作業に合わせてパラメーターを更新し続けますが、モデルのハイパーパラメーターの最適値は事前に特定および設定されます。

The DX Leaders

AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。登録の際はIBMプライバシー・ステートメントをご覧ください。

ご登録いただきありがとうございます。

ニュースレターは日本語で配信されます。すべてのニュースレターに登録解除リンクがあります。サブスクリプションの管理や解除はこちらから。詳しくはIBMプライバシー・ステートメントをご覧ください。

ハイパーパラメーターのチューニングが重要な理由

ハイパーパラメーターのチューニングが重要な理由は、それがモデルの構造、トレーニング効率、パフォーマンスの基になるからです。ハイパーパラメーターの最適な構成により、現実世界でのモデル・パフォーマンスが向上します。大規模言語モデル運用(LLMOPs)は、適切なチューニングの効率面を重視し、必要な計算能力を最小限に抑えることに重点を置いています。

偏りと分散

ハイパーパラメーターのチューニングの目的は、偏りと分散のトレードオフのバランスを取ることです。偏りとは、モデルの予測と現実との乖離のことです。チューニングが不十分なモデルや学習不足のモデルの場合、データポイント間の重要な関係を識別できず、正確なパフォーマンスに必要な結論を導き出すことができません。

分散とは、新しいデータに対するモデルの感度のことです。信頼できるモデルは、トレーニング・データから他のデータ・セットに移行する際に、一貫した結果をもたらす必要があります。しかし、分散レベルが高いモデルは複雑すぎて、元のトレーニング・データ・セットに過剰に適合してしまうため、新しいデータへの対応に苦労します。

偏りの小さいモデルは正確である一方、分散が小さいモデルは一貫性があります。ハイパーパラメーターを適切にチューニングすることにより、ジョブに最適なモデルが作成されると同時に、トレーニング中の計算リソース効率も最大化されます。

オフィスでミーティングをするビジネスチーム

IBMお客様事例

お客様のビジネス課題(顧客満足度の向上、営業力強化、コスト削減、業務改善、セキュリティー強化、システム運用管理の改善、グローバル展開、社会貢献など)を解決した多岐にわたる事例のご紹介です。

ハイパーパラメーターの例

どの機械学習アルゴリズムも、それぞれのハイパーパラメーター・セットを優先するため、いかなる場合も最大化の必要はありません。場合によっては、ハイパーパラメーターをチューニングする際に、より保守的なアプローチを採用することで、パフォーマンスが向上することもあります。

ニューラル・ネットワークのハイパーパラメーター

ニューラル・ネットワークは、人間の脳から着想を得たもので、互いに信号を送り合う、相互接続されたノードで構成されています。ここでは、ニューラル・ネットワーク・モデルのトレーニングで使用される最も一般的なハイパーパラメーターをいくつかご紹介します。

  • 学習率

  • 学習率の減衰

  • バッチサイズ

  • 隠れ層の数

  • 層あたりのノード数またはニューロン数

  • 運動量

  • エポック数

  • 活性化関数

学習率

学習率は、モデルが1回の反復においてパラメーターを調整する速度を指定します。この調整はステップと呼ばれます。学習率が高いということは、モデルの調整速度が上がるということですが、パフォーマンスが不安定になり、データ・ドリフトが生じるリスクがあります。一方、学習率が低いと時間がかかり、より多くのデータが必要になりますが、データサイエンティストがモデルの最小損失を特定する可能性も高くなります。勾配降下の最適化は、設定された学習率を必要とするトレーニング・メトリクスの一例です。

学習率の減衰

学習率の減衰は、ネットワークの学習率を時間の経過とともに低下させる比率を指定し、これにより、モデルは学習する速度を上げることができます。アルゴリズムが最初の活性化から理想的なパフォーマンスに至るまでのトレーニングの進行状況は、収束と呼ばれます。

バッチ・サイズ

バッチ・サイズは、パラメーターを更新する前にモデルが算出するサンプル量を指定します。これは、トレーニング・プロセスの計算効率と精度の両方に大きな影響を与えます。バッチ・サイズを大きくすると、それだけで全体的なパフォーマンスが低下しますが、バッチ・サイズとともに学習率を調整することで、この損失を軽減できます。

隠れ層の数

ニューラル・ネットワーク内の隠れ層の数によってその深さが決まり、これがその複雑さと学習能力に影響を与えます。層が少ないほど、モデルはよりシンプルで高速になりますが、ディープラーニング・ネットワークなどのように層が多いほど、入力データの分類が向上します。ここで、考えられるすべての組み合わせから最適なハイパーパラメーター値を特定するには、速度と精度のトレードオフが重要になります。

層あたりのノード数またはニューロン数

層ごとのノード数またはニューロン数によって、モデルの幅が決まります。層あたりのノードまたはニューロンが多いほど、モデルの幅が広がり、データ・ポイント間の複雑な関係をより適切に表現できます。

モメンタム

モメンタムは、モデルがコースの向きを逆にするのではなく、前回の反復と同じ方向にパラメーターを更新する度合いのことです。ほとんどのデータサイエンティストは、モメンタム用のハイパーパラメーター値を最初は小さくし、その後、トレーニング・データを取り込む際にモデルを軌道に乗せるため、必要に応じて微調整を行い、値を上げていきます。

エポック数

エポック数はハイパーパラメーターの1つで、トレーニング・プロセス中にモデルにトレーニング・データ・セット全体を学習させる回数を指定します。学習させる回数が多いほど、パフォーマンスの向上につながりますが、過剰適合(過学習)のリスクもあります。

活性化関数

活性化関数はモデルに非線形性をもたらし、モデルがより複雑なデータ・セットを処理できるようにします。非線形モデルは、より多様なデータを一般化し、それに適応することができます。

SVMハイパーパラメーター

サポート・ベクター・マシン(SVM)は、データの分類、回帰、外れ値の検知に特化した機械学習アルゴリズムです。これには、次のような独自の必須ハイパーパラメーターがあります。

    SVMハイパーパラメーター:C

    Cは、モデルがデータ分類器として機能する場合における、許容誤差と結果として生じるエラーの回数の比率です。C値を低くすると、滑らかな決定境界が形成され、誤差の許容範囲は大きくなり、パフォーマンスはより一般的なものになりますが、データの誤分類が生じるリスクがあります。一方、C値が高いと、より正確なトレーニング結果を得るためにきちんと整った決定境界が形成されますが、過剰適合(過学習)が起きる可能性があります。

    SVMハイパーパラメーター:カーネル

    カーネルは、データ・ポイント間にどのような関係があるかを確定し、それに応じてデータ・ポイントをグループに分類する関数です。使用されるカーネルによって、データ・ポイントの関係性は異なるため、SVMモデル全体のパフォーマンスに大きな影響を与える可能性があります。線形、多項式、動径基底関数(RBF)、シグモイドは、最も一般的に使用されるカーネルの一部です。線形カーネルはよりシンプルであり、簡単に分離可能なデータに最適である一方、非線形カーネルは、より複雑なデータ・セットに適しています。

    SVMハイパーパラメーター:gamma

    ガンマは、サポート・ベクターが決定境界に与える影響の度合いを指定します。サポート・ベクターは、超平面(データ・グループ間の境界)に最も近いデータ・ポイントのことです。値が高いと、近くにあるベクトルから強い影響を受けますが、値が低いと、より遠くにあるベクトルからの影響が制限されます。ガンマ値を高く設定しすぎると、過剰適合(過学習)が起きる可能性があり、値が低すぎると、決定境界が曖昧になる可能性があります。

    XGBoostハイパーパラメーター

    XGBoostは「extreme gradient boosting」の略で、複数の決定木の予測をブレンドしてより正確な成果を得るアンサンブル・アルゴリズムです。勾配ブースティング・アルゴリズムは、複数の決定木で構成される別のタイプのアンサンブル学習アルゴリズムであるランダム・フォレスト・モデルよりも優れたパフォーマンスを発揮する傾向があります。

    XGBoostの最も重要なハイパーパラメーターは次のとおりです。

    • learning_rate

    • n_estimators

    • max_depth

    • min_child_weight

    • subsample

    learning_rate

    learning_rateは、ニューラル・ネットワークで使用される学習率ハイパーパラメーターと似ています。この関数は、各トレーニング中に行われる修正のレベルを制御します。指定できる値の範囲は0~1で、デフォルト値は0.3です。

    n_estimators

    n_estimatorsは、モデル内の木の本数を指定します。このハイパーパラメーターは、元のXGBoostではnum_boost_roundsと呼ばれていますが、一般的なPython API scikit-learnでは、n_estimatorsという名前が導入されました。

    max_depth

    max_depthは、決定木のアーキテクチャーを決定し、ツリーから各葉(最終的な分類器)までのノードの最大量を指定します。ノードが多いほどデータの分類が複雑になり、木が小さいほど過剰適合(過学習)を回避しやすくなります。

    min_child_weight

    min_child_weightはは、新しい木を作成するのに必要な最小の重み(モデルのトレーニング・プロセス全体に対して与えられたクラスの重要度)です。最小の重みを小さくすると、より多くの木が作成されますが、過剰適合(過学習)が起こる可能性があり、重みを大きくすると、木を分割するためにより多くのデータが必要になるため、複雑さが軽減されます。

    subsample

    subsampleは、各トレーニング中に使用されるデータ・サンプルの割合を指定し、colsample_bytreeは、木の構築で使用する特徴量の割合を指定します。

    ハイパーパラメーターのチューニングの仕組み

    ハイパーパラメーターのチューニングは、目的関数を中心に行われます。目的関数は、ハイパーパラメーターのグループ、すなわちタプルを分析し、予測損失を算出します。ハイパーパラメーターを最適にチューニングすることで、選択したメトリクスに従って損失を最小限に抑えることができます。結果は相互検証によって確認されます。相互検証では、結果が、特定のトレーニング・インスタンス以外の他のデータ・セットに対してどれほど忠実に一般化されているか測定されます。

    ハイパーパラメーターのチューニング手法

    データサイエンティストは、ハイパーパラメーターのさまざまなチューニング手法を自由に使用できますが、それぞれに長所と短所があります。ハイパーパラメーターのチューニングは、手動で行われることも、AutoML(自動機械学習)ストラテジーの一部として自動化されることもあります。

    • グリッド検索

    • ランダム検索

    • ベイズ最適化

    • Hyperband

    グリッド探索

    グリッド探索は、ハイパーパラメーターの包括的かつ網羅的なチューニング手法です。データサイエンティストが、各ハイパーパラメーターに対して考えられるすべての値を設定したら、グリッド探索により、それらの離散的なハイパーパラメーター値の構成として可能なものすべてに対してモデルが構築されます。これらのモデルはそれぞれパフォーマンスが評価され、互いに比較され、そして最終的にトレーニングに最適なモデルが選択されます。

    このように、グリッド探索は、正しいシーケンスが見つかるまで可能性のある数字の組み合わせをすべて入力することでパスワードを試す、総当たり攻撃と似ています。グリッド探索により、データサイエンティストはハイパーパラメーター空間で考えられるすべての構成を検討できますが、非効率的な手法であり、計算リソースを大量に消費します。

    ランダム探索

    ランダム探索は、データサイエンティストが各ハイパーパラメーターの離散値ではなく、統計分布を提供するという点でグリッド探索とは異なります。ランダム探索では、各範囲からサンプルが抽出され、各組み合わせのモデルが構築されます。数回繰り返される間、最適なモデルが見つかるまで、モデルは互いに比較検討されます。

    ハイパーパラメーター探索空間に大きな分布が含まれている状況では、グリッド探索よりもランダム探索の方が適しています。グリッド探索の場合、各離散値をテストするには、シンプルに手間がかかりすぎるからです。ランダム探索アルゴリズムが、最適なハイパーパラメーター構成を見つけることができるという保証はありませんが、グリッド探索に匹敵する結果を、かなり少ない時間で返すことができます。

    ベイズ最適化

    ベイズ最適化は、シーケンシャル・モデルベース最適化(SMBO)アルゴリズムの1つであり、テストを繰り返すたびに、次のテストのサンプリングの方法が向上します。グリッド探索とランダム探索は両方同時に実行できますが、各テストは単独で行われるため、データサイエンティストは、学習した内容を後続のテストに反映させることはできません。

    以前のテストに基づいて、ベイズ最適化では、より良い結果が得られる可能性が高い新しいハイパーパラメーター値のセットが確率的に選択されます。この確率的モデルは、元の目的関数のサロゲート(代理)と呼ばれます。サロゲート・モデルは計算効率が良いため、通常は、目的関数が実行されるたびに更新および改善されます。

    サロゲートが最適なハイパーパラメーターを適切に予測できるようになるほど、プロセスは高速化され、必要な目的関数のテストが減ります。これにより、ベイズ最適化は他の手法よりもはるかに効率が上がります。ハイパーパラメーター値の不適切な組み合わせによる無駄な時間が生じないからです。

    結果(この場合、最高のモデル・パフォーマンス)と一連の変数との関係を統計的に決定するプロセスは、回帰分析と呼ばれます。ガウス過程は、データサイエンティストの間で良く知られているSMBOの1つです。

    Hyperband

    2016年に導入されたHyperbandは、強力な成果を提供できないトレーニング構成の使用を切り捨て、肯定的な構成にさらに多くの参考情報を割り当てることで、ランダム検索を改善するように設計されています。

    この「早期停止」は、連続半減処理によって実現されます。この処理は、各トレーニング後に、最もパフォーマンスの悪い構成の半分を取り除くことで、構成の数を縮らすというものです。各バッチの上位50%は、最適なハイパーパラメーター構成が1つ残るまで、次の反復に引き継がれます。

    関連ソリューション
    IBM watsonx.ai

    AI開発者向けの次世代エンタープライズ・スタジオであるIBM watsonx.aiを使用して、生成AI、基盤モデル、機械学習機能をトレーニング、検証、チューニング、導入しましょう。わずかなデータとわずかな時間でAIアプリケーションを構築できます。

    watsonx.aiをご覧ください。
    人工知能ソリューション

    業界をリードするIBMのAI専門知識とソリューション製品群を使用すれば、ビジネスにAIを活用できます。

    AIソリューションはこちら
    AIコンサルティングとサービス

    AIの導入で重要なワークフローと業務を再構築し、エクスペリエンス、リアルタイムの意思決定とビジネス価値を最大化します。

    AIサービスはこちら
    次のステップ

    AI開発ライフサイクル全体にわたる機能にワンストップでアクセスできます。使いやすいインターフェース、ワークフロー、業界標準のAPIやSDKを利用して、強力なAIソリューションを構築できます。

    watsonx.aiの詳細はこちら デモを予約