ベイズ最適化の美しさ: 素晴らしいアルゴリズムの背後にある直感

ベイズ最適化の美しさ: 素晴らしいアルゴリズムの背後にある直感

[[345174]]

計算コストが高く、必ずしも解析的な表現ではなく、導関数が不明な関数 f(x) があります。あなたの仕事は、グローバル最小値を見つけることです。もちろん、このタスクは難しく、機械学習における他の最適化問題よりもはるかに困難です。たとえば、勾配降下法では関数の導関数を取り、数学的なショートカットを利用して式をより速く評価できます。

さらに、いくつかの最適化シナリオでは、関数の計算コストが削減される可能性があります。数秒以内に入力値 x の何百ものバリエーションを取得できる場合は、単純なグリッド検索の方が効果的です。さらに、粒子群最適化やシミュレーテッドアニーリングなど、従来とは異なる非勾配最適化手法も多数使用できます。

しかし、現在のタスクはまだそこまで進んでいません。最適化レベルは制限されており、主に次のものが含まれます。

  • 計算コストが高くなります。理想的には、関数を本質的に複製できるほど十分にクエリを実行できるはずですが、採用する最適化は限られた入力のサンプリングで機能する必要があります。
  • 導関数は不明です。勾配降下法とその派生法が、最も人気のあるディープラーニング手法であり続け、時には他の機械学習アルゴリズムの中でも人気があるのには理由があります。導関数はオプティマイザに方向感覚を与えますが、導関数はありません。
  • グローバル最小値を見つける必要がありますが、これは勾配降下法のような洗練された方法であっても難しい作業です。モデルには、局所的最小値に陥らないようにするための何らかのメカニズムが必要です。

私たちの解決策はベイズ最適化であり、シーンの記述などの問題に対する簡潔なフレームワークを提供し、最小限のステップでグローバル最小値を見つけます。

関数 c(x)、つまり入力値 x が与えられたモデルのコストの仮想例を構築します。もちろん、この関数がどのように見えるかはオプティマイザーからは隠されています。これは、専門用語で「目的関数」と呼ばれる c(x) の真の形です。

ベイズ最適化は、代理最適化アプローチを通じてこのタスクを実現します。代理関数は、サンプリング ポイントに基づいて形成される目的関数の近似関数です。

代理関数は、どの点が最小値になる可能性があるかを判断するのに役立ちます。私たちは、これらの有望な地域からさらに多くのサンプルを抽出し、それに応じて代理関数を更新することにしました。

各反復で現在の代理関数を引き続き確認し、関連する関心領域についてさらに学習するためにサンプリングを行い、関数を更新します。代理関数の計算コストは​​はるかに低くなることに注意してください。たとえば、y=x は計算コストが高い近似関数です。つまり、特定の範囲内では y=arcsin((1-cos converx)/sin x)) となります。

一定回数の反復を繰り返すと、関数の形状が非常に奇妙でない限り (大きく不安定な変動があるため)、最終的にはグローバル最小値に到達します。その時点で、最適化よりも意味のある質問が発生します。データの何が問題なのでしょうか?

ベイズ最適化の素晴らしさを理解しましょう。この手法は、関数について何も仮定せず (関数自体がそもそも最適化可能であると仮定する以外)、導関数に関する情報も必要とせず、継続的に更新される近似関数を使用して常識的な推論を巧みに使用できるため、元の目的関数のコストのかかる評価は問題になりません。これは置換ベースの最適化アプローチです。

では、ベイズ理論とは一体何でしょうか? ベイズ統計とモデリングの本質は、新しい情報に基づいて以前の関数 (事前関数) を更新し、更新された関数 (事後関数) を生成することです。この場合、プロキシ最適化はまさにこれを実行し、ベイズ理論、公式、および意味を通じて最もよく表現できます。

代理関数を詳しく見てみると、多くの場合、ガウス過程によって表され、1 から 6 までの数字ではなく、指定されたデータ ポイント (sin、log など) に適合する関数を返すサイコロとして考えることができます。この手順は、すべて確率が関連付けられている複数の関数を返します。

左: 4 つのデータ ポイントに対して複数のガウス過程によって生成された関数。右: 関数の集約。 | 画像提供: オスカー・ナッグ

GP は本質的にベイズ的であるため、他の曲線フィッティング方法の代わりに代替関数をモデル化するために使用されます。 GP は確率分布であり、イベントの最終結果の分布(コインを投げる確率が 1/2 など)に似ていますが、すべての可能な関数をカバーします。

たとえば、現在のデータ ポイント セットを、40% が関数 a(x) で表され、10% が関数 b(x) で表されるように定義します。代理関数を確率分布として表現することにより、本質的に確率的なベイズ過程を通じて情報を更新することができます。新しい情報が導入されると、おそらくデータの 20% だけが関数 a(x) で表すことができます。これらの変化はベイズの公式によって制御されます。多項式回帰を使用して新しいデータ ポイントを適合させると、さらに困難になったり、不可能になったりすることがあります。

代理関数は確率分布として表現され、事前関数は「獲得関数」として更新されます。この機能は、質問を使用して新しいポイントを導き出す探索とテストの提案のバランスをとる役割を担います。

· 「関数を活用する」は、既知の可能性のあるポイントを利用して、代理関数が最良の最小値を予測するようにサンプリングを試みます。しかし、すでにある領域を十分に調査してしまった場合、すでに知っていることを使い続けても得られるものはほとんどありません。

「探索機能」は、不確実性が高い場所をサンプリングしようとします。これにより、空間の主要な領域が不明にならないことが保証されます。つまり、グローバル最小値はまさにそこにある可能性が高くなります。

より多くの利用とより少ない探索を促す獲得関数は、モデルが最初に見つけた最小値(通常はローカルなもの - 「光があるところだけに行く」)にのみ留まるようにします。逆に、モデルは最初にローカル最小値またはグローバル最小値にとどまるのではなく、微妙なバランスの中で最良の結果を求めます。

a(x) を使用して獲得関数を表す場合、探索と活用の両方を考慮する必要があります。一般的な獲得関数には、期待される改善と改善の最大確率が含まれます。これらはすべて、事前情報 (ガウス過程) を与えられた場合に特定の入力値が将来成功する確率を測定します。

上記のすべてを組み合わせると、ベイズ最適化の原理は次のようになります。

  • ガウス過程「代理関数」事前分布を初期化します。
  • 現在の事前分布で実行される取得関数 a(x) を最大化するために、複数のデータ ポイント x を選択します。
  • データポイント x でターゲットコスト関数 c(x) を評価し、結果 y を取得します。
  • 新しいデータを使用してガウス過程の事前分布を更新し、事後分布(次のステップで事前分布になる)を生成します。
  • 複数の反復については、手順 2 ~ 5 を繰り返します。
  • 現在のガウス過程分布(非常に安価)を解釈して、グローバル最小値を見つけます。

ベイズ最適化とは、エージェント最適化に基づいて確率の概念を確立することです。これら 2 つのコンセプトを組み合わせることで、医薬品開発から自動運転車まで、幅広い用途に使用できる強力なシステムが生まれます。

ただし、最も一般的に使用されるのは、ハイパーパラメータの最適化のための機械学習です。たとえば、勾配ブースティング分類器をトレーニングする場合、学習率から最大深度、最小不純度カットオフ値まで、数十のパラメーターがあります。この場合、x はモデルのハイパーパラメータを表し、c(x) はハイパーパラメータ x が与えられた場合のモデルのパフォーマンスを表します。

ベイズ最適化を使用する主な目的は、出力の評価に非常にコストがかかる状況に対処することです。まず、これらのパラメータを使用してツリーの完全なアンサンブルを構築する必要があり、次に、それらを何度も予測する必要があるため、アンサンブルには非常にコストがかかります。

おそらく、ニューラル ネットワークは、特定のパラメーター セットの損失を評価するのがより高速です。つまり、単に行列の乗算を繰り返すだけなので、特に専用のハードウェアでは非常に高速です。これが勾配降下法が使用される理由の 1 つであり、どこに向かっているかを理解するために繰り返しクエリを実行する必要があります。

画像ソース: unsplash

要約すると、私たちの結論は次のようになります。

代理最適化では、代理関数または近似関数を使用して、サンプリングを通じてターゲット関数を推定します。

ベイズ最適化では、代理関数を確率分布として表現し、新しい情報に基づいてそれを更新することで、代理最適化を確率的フレームワークに置きます。

獲得関数は、探索と活用の問題のバランスを取りながら、事前情報から現在わかっていることを考慮して、探索空間内のポイントが「良い」結果を生み出す確率を評価するために使用されます。

ベイズ最適化は、主にハイパーパラメータの調整など、目的関数の評価にコストがかかる場合に使用します。これを実行できる HyperOpt のようなライブラリは多数あります。

ベイズ最適化の素晴らしさを感じますか?

この記事はWeChatの公開アカウント「Duxinshu」から転載したもので、著者はDuxinshuです。この記事を転載する場合は、Duxinshu の公開アカウントにご連絡ください。

<<:  ボストン・ダイナミクスのロボット犬が夜中に散歩に出かけ、通行人を驚かせた。写真撮影にも協力。ネットユーザー「怖い」

>>:  ニューラルネットワーク「錬金術炉」の内部構造はどのようになっているのでしょうか?オックスフォード大学の博士課程学生による論文の解釈

ブログ    
ブログ    
ブログ    

推薦する

...

2021年、多くのAI企業が株式公開に向けて競争を始めました。どの企業がより有望だと思いますか?

[[382172]]人工知能企業が株式を公開すると、株主は成長の配当を分け合えるようになるのでしょ...

...

医療用ロボット:世界第2位のロボットの現状と今後の応用展望

医療用ロボットという用語は、監督なしで事前にプログラムされたタスクを自律的に実行する機械のイメージを...

...

古代にタイムスリップしてAI技術を使った会議を開催しよう

会議と聞いて、どんなイメージが思い浮かびますか? 真剣で緊張した雰囲気でしょうか? それとも退屈で眠...

人工知能: インダストリー4.0の原動力

製造業における AI に関する誇大宣伝の多くは産業オートメーションに焦点を当てていますが、これはスマ...

...

AIが気候変動に効果的に対抗する方法

人工知能(AI)の活用は気候変動との闘いに貢献することができます。既存の AI システムには、天気を...

...

科学者たちは、人間のチームが海洋ゴミを見つけるのを助けるために人工知能を搭載したドローンを開発している

ニューアトラス誌の報道によると、海洋ゴミは、海に漂うゴミと海岸に打ち上げられるゴミの両方の形で大きな...

人工知能で最も人気のあるアルゴリズムトップ10をわかりやすく解説

機械学習は業界にとって革新的で重要な分野です。機械学習プログラムに選択するアルゴリズムの種類は、達成...

...

...