アプローチ 2つのハイパーパラメータの異なる値に対してグリッドサーチを実行します。各ハイパーパラメータについて10種類の値を考慮し、合計100通りの組み合わせを評価・比較します。青色の等高線は良好な結果が得られた領域を、赤色の等高線は不良な結果が得られた領域を示します。
グリッド検索 ハイパーパラメータ最適化の従来の方法は、グリッドサーチ 、またはパラメータスイープ と呼ばれるもので、学習アルゴリズムのハイパーパラメータ空間の手動で指定した部分集合を網羅的に探索する ものです。グリッドサーチアルゴリズムは、何らかのパフォーマンス指標によってガイドされる必要があり、通常はトレーニングセットでの交差検証 [ 6 ] またはホールドアウト検証セットでの評価によって測定されます。
機械学習器のパラメータ空間には、特定のパラメータに対して実数値または無制限の値空間が含まれる可能性があるため、グリッドサーチを適用する前に、手動で境界を設定して離散化する必要がある場合があります。たとえば、RBFカーネル を備えた典型的なソフトマージンSVM 分類器 には、未知のデータで良好なパフォーマンスを得るために調整する必要のあるハイパーパラメータが少なくとも2つあります。それは、正則化定数C とカーネルハイパーパラメータγです。どちらのパラメータも連続であるため、グリッドサーチを実行するには、それぞれに「妥当な」値の有限セットを選択します。
C ∈ { 10 、 100 、 1000 } {\displaystyle C\in \{10,100,1000\}} γ ∈ { 0.1 、 0.2 、 0.5 、 1.0 } {\displaystyle \gamma \in \{0.1,0.2,0.5,1.0\}} グリッドサーチでは、これら2つのセットの直積 に含まれる各ペア(C 、γ)を用いてSVMを学習させ、保持検証セット(または、トレーニングセットに対する内部交差検証。この場合、ペアごとに複数のSVMが学習される)でその性能を評価します。最後に、グリッドサーチアルゴリズムは、検証手順で最も高いスコアを獲得した設定を出力します。
グリッドサーチは次元の呪い に悩まされるが、評価するハイパーパラメータ設定は通常互いに独立しているため、並列処理が非常に容易であることが多い。 [ 5 ]
2つのハイパーパラメータのさまざまな値の組み合わせをランダムに探索します。この例では、100種類のランダムな選択肢が評価されます。緑色のバーは、グリッドサーチと比較して、各ハイパーパラメータに対してより多くの個々の値が考慮されていることを示しています。
ランダム検索 ランダムサーチは、すべての組み合わせを網羅的に列挙する代わりに、それらをランダムに選択します。これは、上述の離散的な設定に簡単に適用できますが、連続空間や混合空間にも一般化できます。グリッドサーチに対する利点は、ランダムサーチは連続ハイパーパラメータの場合、グリッドサーチよりもはるかに多くの値を探索できることです。特に、少数のハイパーパラメータのみが機械学習アルゴリズムの最終的なパフォーマンスに影響を与える場合、ランダムサーチはグリッドサーチを上回ることができます。[ 5 ] この場合、最適化問題は低次元であると言われます。[ 7 ] ランダムサーチは並列処理が容易で あり、さらに、サンプリングする分布を指定することで事前知識を組み込むことができます。その単純さにもかかわらず、ランダムサーチは新しいハイパーパラメータ最適化手法のパフォーマンスを比較するための重要なベースラインの1つであり続けています。
ベイズ最適化などの手法は、過去の観測結果に基づいて次にどの組み合わせを探索するかを決定することで、ハイパーパラメータの潜在的な選択肢の空間を巧みに探索します。
ベイズ最適化 ベイズ最適化は、ノイズのあるブラックボックス関数に対するグローバル最適化手法です。ハイパーパラメータ最適化に適用すると、ベイズ最適化は、検証セットで評価された目的関数にハイパーパラメータ値をマッピングする関数の確率モデルを構築します。現在のモデルに基づいて有望なハイパーパラメータ構成を繰り返し評価し、それを更新することで、ベイズ最適化は、この関数、特に最適値の位置について可能な限り多くの情報を明らかにする観測データを収集することを目指します。探索(結果が最も不確実なハイパーパラメータ)と活用(最適値に近いと予想されるハイパーパラメータ)のバランスを取ろうとします。実際には、ベイズ最適化は、実験を実行する前に実験の質について推論できるため、グリッドサーチやランダムサーチと比較して、より少ない評価でより良い結果が得られることが示されています[ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] 。
勾配ベースの最適化 特定の学習アルゴリズムでは、ハイパーパラメータに関する勾配を計算し、勾配降下法 を使用してハイパーパラメータを最適化することが可能です。これらの技術の最初の使用はニューラルネットワークに焦点を当てていました。[ 13 ] それ以来、これらの方法はサポートベクターマシン [ 14 ]やロジスティック回帰 [ 15 ] などの他のモデルに拡張されています。
ハイパーパラメータに関する勾配を得るための別のアプローチは、 自動微分 を使用して反復最適化アルゴリズムのステップを微分することです。[ 16 ] [ 17 ] [ 18 ] [ 19 ] この方向のより最近の研究では、陰関数定理 を使用してハイパー勾配を計算し、逆ヘッセ行列の安定した近似を提案しています。この方法は数百万のハイパーパラメータに拡張可能で、一定のメモリを必要とします。[ 20 ]
別のアプローチとして、[ 21 ] ハイパーネットワークを訓練して最適な応答関数を近似します。この方法の利点の 1 つは、離散ハイパーパラメータも処理できることです。自己調整ネットワーク[ 22 ] は、ハイパーネットワークのコンパクトな表現を選択することで、このアプローチのメモリ効率の良いバージョンを提供します。最近では、Δ-STN [ 23 ] がハイパーネットワークのわずかな再パラメータ化によってこの方法をさらに改善し、トレーニングを高速化しました。Δ-STN はまた、重みに関してネットワークを線形化することで、最適な応答ヤコビアンをより良く近似し、重みの大きな変化による不要な非線形効果を取り除きます。
ハイパーネットワークアプローチとは別に、勾配ベースの手法は、パラメータの連続的な緩和を採用することによって、離散ハイパーパラメータを最適化するためにも使用できます。[ 24 ] このような手法は、ニューラルアーキテクチャ探索 におけるアーキテクチャハイパーパラメータの最適化に広く使用されています。
人口ベース 集団ベース学習(PBT)は、ハイパーパラメータ値とネットワーク重みの両方を学習します。複数の学習プロセスが独立して動作し、それぞれ異なるハイパーパラメータを使用します。進化的手法と同様に、性能の低いモデルは、性能の高いモデルに基づいてハイパーパラメータ値と重みを修正したモデルに繰り返し置き換えられます。この置き換えモデルのウォームスタートは、PBTと他の進化的手法との主な違いです。PBTではハイパーパラメータが進化するため、手動でのハイパーパラメータ調整は不要です。このプロセスでは、モデルアーキテクチャ、損失関数、学習手順に関して一切の仮定を置きません。
PBTとその派生手法は適応型手法であり、モデルのトレーニング中にハイパーパラメータを更新します。一方、非適応型手法は、トレーニング全体を通して一定のハイパーパラメータセットを割り当てるという最適とは言えない戦略をとります。[ 29 ]
早期停止に基づく 8つの任意のハイパーパラメータ構成に対する逐次半減法。この手法は、異なる構成を持つ8つのモデルから開始し、最終的に1つのモデルだけが残るまで逐次半減法を順次適用する。 早期停止ベースのハイパーパラメータ最適化アルゴリズムの一種は、連続的および離散的なハイパーパラメータの大規模な探索空間向けに特化して構築されており、特に一連のハイパーパラメータのパフォーマンスを評価するための計算コストが高い場合に有効です。Irace は反復レーシング アルゴリズムを実装しており、統計的テストを使用してパフォーマンスの低いものを破棄し、最も有望な構成を中心に探索を集中させます。[ 30 ] [ 31 ] 早期停止ハイパーパラメータ最適化アルゴリズムのもう 1 つは、逐次半減法 (SHA) [ 32 ] です。これはランダム探索として開始しますが、定期的にパフォーマンスの低いモデルを剪定し、より有望なモデルに計算リソースを集中させます。非同期逐次半減法 (ASHA) [ 33 ] は、パフォーマンスの低いモデルを同期的に評価および剪定する必要性をなくすことで、SHA のリソース利用プロファイルをさらに改善します。 Hyperband [ 34 ] は、より広範囲に適用でき、必要な入力が少ないように、剪定の積極性の異なるレベルで SHA または ASHA を複数回呼び出す、より高レベルの早期停止ベースのアルゴリズムです。
ハイパーパラメータ最適化に関する問題 ハイパーパラメータ最適化を行う際、多くの場合、ハイパーパラメータのセットはトレーニングセットに適合させ、検証セットの汎化性能(スコア)に基づいて選択されます。しかし、この手順では、ハイパーパラメータが検証セットに過剰適合するリスクがあります。そのため、検証セット(交差検証手順の場合は複数のセットになることもあります)の汎化性能スコアを、最終モデルの汎化性能を同時に推定するために使用することはできません。そのためには、ハイパーパラメータの最適化に使用したセット(または複数のセット)とは独立した(共通部分を持たない)セットで汎化性能を評価する必要があります。そうしないと、性能が過度に楽観的(大きすぎる)な値を示す可能性があります。これは、2番目のテストセットを使用するか、ネストされた交差検証と呼ばれる外部交差検証 手順によって行うことができます。ネストされた交差検証では、ハイパーパラメータ最適化によるバイアスを考慮して、モデルの汎化性能を偏りなく推定できます。
参考文献 ↑ Matthias Feurer および Frank Hutter。「ハイパーパラメータ最適化」。『 AutoML: メソッド、システム、課題』 、3~38 ページ。 ↑ Yang, Li (2020). "機械学習アルゴリズムのハイパーパラメータ最適化について:理論と実践". Neurocomputing . 415 : 295–316 . arXiv : 2007.15745 . doi : 10.1016/j.neucom.2020.07.061 . ↑ フランチェスキ L、ドニーニ M、ペローネ V、クライン A、アルシャンボー C、シーガー M、ポンティル M、フラスコーニ P (2024)。 「機械学習におけるハイパーパラメータの最適化」。 arXiv : 2410.22854 [ stat.ML ]。 1 2 マーク・クレセン;バート・デ・ムーア (2015)。 「機械学習におけるハイパーパラメータ検索」。 arXiv : 1502.02127 [ cs.LG ]。 1 2 3 Bergstra, James; Bengio, Yoshua (2012). "ハイパーパラメータ最適化のためのランダムサーチ" (PDF) . Journal of Machine Learning Research . 13 : 281– 305. ↑ Chin-Wei Hsu、Chih-Chung Chang、Chih-Jen Lin (2010)。サポートベクター分類の実践ガイド。国立台湾大学 技術報告書。 ↑ Ziyu, Wang; Frank, Hutter; Masrour, Zoghi; David, Matheson; Nando, de Feitas (2016). "Bayesian Optimization in a Billion Dimensions via Random Embeddings" . Journal of Artificial Intelligence Research . 55 : 361–387 . arXiv : 1301.1942 . doi : 10.1613/jair.4806 . S2CID 279236 . ↑ Hutter, Frank; Hoos, Holger; Leyton-Brown, Kevin (2011), "Sequential Model-Based Optimization for General Algorithm Configuration", Learning and Intelligent Optimization (PDF) , Lecture Notes in Computer Science, vol. 6683, pp. 507– 523, CiteSeerX 10.1.1.307.8813 , doi : 10.1007/978-3-642-25566-3_40 , ISBN 978-3-642-25565-6 S2CID 6944647 1 2 3 Bergstra, James; Bardenet, Remi; Bengio, Yoshua; Kegl, Balazs (2011)、 「ハイパーパラメータ最適化のためのアルゴリズム」 (PDF) 、 Advances in Neural Information Processing Systems ↑ Snoek, Jasper; Larochelle, Hugo; Adams, Ryan (2012). "機械学習アルゴリズムの実践的なベイズ最適化" (PDF) . Advances in Neural Information Processing Systems . arXiv : 1206.2944 . Bibcode : 2012arXiv1206.2944S . ↑ Thornton, Chris; Hutter, Frank; Hoos, Holger; Leyton-Brown, Kevin (2013). "Auto-WEKA: 分類アルゴリズムの選択とハイパーパラメータ最適化の組み合わせ" (PDF) . Knowledge Discovery and Data Mining . arXiv : 1208.3719 . Bibcode : 2012arXiv1208.3719T . ↑ Kernc (2024), SAMBO: Sequential And Model-Based Optimization: Efficient global optimization in Python , doi : 10.5281/zenodo.14461363 , 2025年1月30日取得 ↑ Larsen, Jan; Hansen, Lars Kai; Svarer, Claus; Ohlsson, M (1996). "ニューラルネットワークの設計と正則化:検証セットの最適な使用" (PDF) . Neural Networks for Signal Processing VI. Proceedings of the 1996 IEEE Signal Processing Society Workshop . pp. 62–71 . CiteSeerX 10.1.1.415.3266 . doi : 10.1109/NNSP.1996.548336 . ISBN 0-7803-3550-3 . S2CID 238874 . ↑ Olivier Chapelle; Vladimir Vapnik; Olivier Bousquet; Sayan Mukherjee (2002). "サポートベクターマシンの複数のパラメータの選択" (PDF) . Machine Learning . 46 ( 1– 3): 131– 159. doi : 10.1023/a:1012450327387 . ↑ Chuong B; Chuan-Sheng Foo; Andrew Y Ng (2008). "Efficient multiple hyperparameter learning for log-linear models" (PDF) . Advances in Neural Information Processing Systems . 20 . ↑ Domke, Justin (2012). "Generic Methods for Optimization-Based Modeling" (PDF) . Aistats . 22 . 2014-01-24 の オリジナル (PDF)からアーカイブ済み。2017-12-09 に 取得 。 ↑ Maclaurin, Dougal; Duvenaud, David; Adams, Ryan P. (2015). "Gradient-based Hyperparameter Optimization through Reversible Learning". arXiv : 1502.03492 [ stat.ML ]. ↑ Franceschi, Luca; Donini, Michele; Frasconi, Paolo; Pontil, Massimiliano (2017). "順方向および逆方向勾配に基づくハイパーパラメータ最適化" (PDF) . 第34回国際機械学習会議議事録 . arXiv : 1703.01785 . Bibcode : 2017arXiv170301785F . ↑ Shaban, Amirreza; Cheng, Ching-An; Hatch, Nathan; Boots, Byron (2018). "二段階最適化のための切り捨てバックプロパゲーション". arXiv : 1810.10667 [ cs.LG ]. ↑ Lorraine, Jonathan; Vicol, Paul; Duvenaud, David (2019). "Optimizing Millions of Hyperparameters by Implicit Differentiation". arXiv : 1911.02590 [ cs.LG ]. ↑ Lorraine, Jonathan; Duvenaud, David (2018). "ハイパーネットワークによる確率的ハイパーパラメータ最適化". arXiv : 1802.09419 [ cs.LG ]. ↑ MacKay, Matthew; Vicol, Paul; Lorraine, Jon; Duvenaud, David; Grosse, Roger (2019). "Self-Tuning Networks: Bilevel Optimization of Hyperparameters using Structured Best-Response Functions". arXiv : 1903.03088 [ cs.LG ]. ↑ Bae, Juhan; Grosse, Roger (2020). "Delta-STN: 構造化応答ヤコビアンを用いたニューラルネットワークの効率的な二段階最適化". arXiv : 2010.13514 [ cs.LG ]. ↑ 劉、漢暁。シモニャン、カレン。ヤン・イーミン(2018)。 「DARTS: 微分可能なアーキテクチャの探索」。 arXiv : 1806.09055 [ cs.LG ]。 ↑ Kousiouris G、Cuccinotta T、Varvarigou T (2011)。 「スケジューリング、ワークロードタイプ、統合シナリオが仮想マシン の パフォーマンスに及ぼす影響と、最適化された人工ニューラルネットワークによるそれらの予測」 。Journal of Systems and Software。84 ( 8 ): 1270–1291。doi : 10.1016 / j.jss.2011.04.013。hdl : 11382/361472 。 ↑ ミークライネン R、リャン J、マイヤーソン E、ラワル A、フィンク D、フランコン O、ラジュ B、シャハルザド H、ナヴルジャン A、ダフィー N、ホジャット B (2017)。 「進化するディープニューラルネットワーク」。 arXiv : 1703.00548 [ cs.NE ]。 ↑ Jaderberg M、Dalibard V、Osindero S、Czarnecki WM、Donahue J、Razavi A、Vinyals O、Green T、Dunning I、Simonyan K、Fernando C、Kavukcuoglu K (2017)。「ニューラルネットワークの集団ベースのトレーニング」。arXiv : 1711.09846 [ cs.LG ] 。 ↑ Such FP、Madhavan V、Conti E、Lehman J、Stanley KO、Clune J (2017)。「ディープニューロエボリューション:強化学習のためのディープニューラルネットワークのトレーニングにおいて、遺伝的アルゴリズムは競争力のある代替手段である」。arXiv : 1712.06567 [ cs.NE ] 。 ↑ リー、アン。オラ、スパイラ。ペレル、サギ。ダリバード、バレンティン。マックス・ジェイダーバーグ。グー、チェンジエ。デヴィッド・バデン。ハーレー、ティム。グプタ、プラモド (2019-02-05)。 「人口ベースのトレーニングのための一般化されたフレームワーク」。 arXiv : 1902.01894 [ cs.AI ]。 ↑ ロペス・イバニェス、マヌエル。デュボワ=ラコステ、ジェレミー。ペレス・カセレス、レスリー。シュトゥッツル、トーマス。ビラータリ、マウロ (2016)。 「irace パッケージ: 自動アルゴリズム構成のための反復レーシング」 。 オペレーションズリサーチの視点 。 3 (3): 43–58 . 土井 : 10.1016/j.orp.2016.09.002 。 hdl : 10419/178265 。 ↑ ビラータリ、マウロ。シュトゥッツル、トーマス。パケテ、ルイス。クラウス、ヴァレントラップ (2002)。 「メタヒューリスティックを構成するためのレーシング アルゴリズム」。 Gecco 2002 : 11–18 . ↑ Jamieson, Kevin; Talwalkar, Ameet (2015-02-27). "非確率的最適アーム識別とハイパーパラメータ最適化". arXiv : 1502.07943 [ cs.LG ]. ↑ リー、リアム。ジェイミーソン、ケビン。ロスタミザデ、アフシン。ゴニナ、エカテリーナ。ハルト、モーリッツ。レヒト、ベンヤミン。タルワルカル、アメート (2020-03-16)。 「超並列ハイパーパラメータ調整システム」。 arXiv : 1810.05934v5 [ cs.LG ]。 ↑ Li, Lisha; Jamieson, Kevin; DeSalvo, Giulia; Rostamizadeh, Afshin; Talwalkar, Ameet (2020-03-16). "Hyperband: ハイパーパラメータ最適化のための新しいバンディットベースのアプローチ". Journal of Machine Learning Research . 18 : 1– 52. arXiv : 1603.06560 . ↑ Diaz, Gonzalo; Fokoue, Achille; Nannicini, Giacomo; Samulowitz, Horst (2017). "ニューラルネットワークのハイパーパラメータ最適化のための効果的なアルゴリズム". arXiv : 1705.08520 [ cs.AI ]. ↑ Hazan, Elad; Klivans, Adam; Yuan, Yang (2017). "ハイパーパラメータ最適化: スペクトルアプローチ". arXiv : 1706.00764 [ cs.LG ].