ベイズ最適化:MaxPro基準を最大化するコミュニティの皆様、JMP の専門家の皆様、こんにちは。
ベイズ最適化のバッチカスタマイザーにあるオプションの1つの名称について混乱しています。選択肢の1つはMaxPro基準を最大化するベイズ最適化プラットフォームにおいて、このセクションのヘルプには次のように記載されています。「このオプションは、モデルフリーの因子空間探索であり、トレーニングデータと現在のバッチの両方で因子設定の重複を回避します。1つ以上のモデルがうまく適合しない場合は、任意のバッチサイズでこのオプションを使用してください。 」
「高速で柔軟な充填設計の詳細」ヘルプセクションにおけるこの MaxPro 基準の定義に関して、「 MaxPro 基準は、すべての要素を考慮した方法で、潜在的な設計点間の距離の積を最大化します。これは、要素の投影に対して良好な空間充填特性を提供するという目標をサポートします」とあります。また、MaxPro 基準は「次の基準を最小化するクラスター内の点を見つけるように努めます」(数式を見る前に)とも述べられています。

式中の分母が距離の二乗の積であるため、この基準を最小化すると、設計可能な点間の距離が最大化されます。したがって、MaxPro基準を最大化すると、実際には点間の距離が小さくなり、実験空間のより小さな部分空間を調べた際に、実験結果が集中したり「積み重なったり」するリスクが高まる可能性があります。ベイズ最適化プロファイラを見ると、この取得関数の背後にある式は、分母に(二乗)距離(元のMaxPro基準のように)ではなく、分子に距離を使用しているようです。これは、元の設計点間の距離を含む-X²型の式に一致する凹型の望ましさプロファイルが見られるためです。MaxPro取得関数は、新しい点と元の設計点間の距離が最大となる点で最大値をとります。

スペース充填設計の「MaxPro基準の最小化」とベイズ最適化の「MaxPro基準の最大化」の混同について、どなたかご説明いただけますでしょうか? ベイズ最適化プラットフォームのMaxPro基準は、スペース充填プラットフォームのMaxPro基準と同じ式を使用しているのでしょうか? MaxProスペース充填基準取得機能に表示される式は何ですか?
前もって感謝します !
高度な統計モデリング実験計画法Re: ベイズ最適化: MaxPro基準の最大化JMPの担当者や上級ユーザーの方々から、この特定の質問/疑問点について回答をいただける可能性はありますか?
JMP BayesOptのドキュメントが拡充されることを強く希望します。カーネルや連続相関タイプの数式や図など、基本的な情報が不足しているからです。カーネルの選択に関わる関数タイプについては、既に優れたドキュメントが用意されています。
https://fr.mathworks.com/help/stats/kernel-covariance-function-options.html
https://www.comsol.fr/support/learning-center/course/surrogate-modeling-theory-271/more-on-covariance-functions-96531
https://indico.cern.ch/event/1407896/contributions/6068668/attachments/2947366/5179857/Lecture_2_vkain_BO.pdf
...
Re: ベイズ最適化: MaxPro基準の最大化こんにちは、 @Victor_G さん。
新しいBaysOpプラットフォームに関するあなたの評価と質問には全く同感です。今年初めにこのプラットフォームを知って以来、職場の同僚と試してみたいと思っていましたが、報酬とリソース/時間の使用とのバランスも考慮しなければなりません。また、JMPがBayesOpをどのように実装しているかの基本を理解する前に、同僚を迷路に迷わせたくはありません。この点が、私にとっては最も難しい課題となっています。
JMP 19 Proの開発初期段階と最近の追加機能に関する、まあまあ役立つWebチュートリアルがいくつかここにあります。
https://community.jmp.com/t5/Phil-Kay-s-Blog/Active-Learning-in-JMP-Chris-Gotwalt-ENBIS-Workshop/ba-p/835262
https://community.jmp.com/t5/Learn-JMP-Events/Developer-Tutorial-Bayesian-Optimization/ev-p/894910
物事がどのように機能するかについての非常に大まかな説明は適切で(特に2番目の動画の20分頃までは管理職には良い)、しかし、より詳細な説明や、目の前の特定のタスクに合わせて最適化および取得機能のアルゴリズムを調整する方法については、まだほとんど見つけることができていません。
チュートリアルでは、局所最適解に陥るリスクがあることを認めつつも、探索欲求と最適化欲求のバランスを取ることで、このリスクを回避できると主張しています。説明はやや曖昧で、内部の仕組みをすべて明らかにできないことは理解していますが、もう少し詳細な説明があれば助かります。特に、このアプローチの価値を認識しつつも、ブラックボックス的な理解にとどまらず、万が一(ほとんどの場合そうなのですが)予想通りに進まなかった場合に、既に完了した作業から貴重な情報を引き出せるよう、より深く理解したいと考えている業界関係者にとってはなおさらです。
JMPの最新プラットフォームについてもっと詳しく学ぼうとした後の、私の感想をいくつか述べたいと思います。
追加のリンクと資料をありがとうございます!
DS
Re: ベイズ最適化: MaxPro基準の最大化こんにちは。JMP Proのベイズ最適化にご関心をお寄せいただきありがとうございます。「Maximize MaxPro」という表現についてご混乱されているとのことですが、実際にはJMPはMaxPro基準の逆数を最大化しています。これは、実行取得オプションの一部が最小化、その他が最大化となるのではなく、すべてのオプションが最大化となるようにするためでした。今思えば、「Maximize Spacefilling Criterion」という表現の方が適切だったかもしれません。そして、MaxPro基準の逆数を最大化していることをドキュメントに明記すべきでした。
Re: ベイズ最適化: MaxPro基準の最大化@chris_gotwalt1 さん、ありがとうございます!
ベイズ最適化プロファイラのMaxPro基準の取得関数形式と、空間充填設計セクションの式を比較したとき、何かが異なっている(あるいは逆になっている)と感じていました。ご説明いただき、ありがとうございました。
取得関数を最大化する簡略化された方法は理解できますが、この基準が空間充填設計と同じ名称であるため、混乱しました。
混乱を避けるため、またBayesOptプラットフォームの可能性についてユーザーにより多くの情報を提供するために、ドキュメントが改訂され、内容が充実されることを期待します。
最高、
Re: ベイズ最適化: MaxPro基準の最大化こんにちは、 @SDF1 さん。
ご回答と関連リンクをありがとうございました。
これらのリンクはBayesOptを実際に使い始めるのに役立つかもしれませんが、カーネル、取得関数形式(および方程式)などの技術的な選択肢についてより深く解説しているわけではありません。
グローバル最適解に到達できる保証はありません。私は以前、ディスカバリーセミナーでBOに関するユースケースを発表しましたが、そこでは「自動」モード(次の実行の追加に関するプラットフォームの推奨事項に盲目的に従う)のみを使用した場合、最初に探索を強制した場合、あるいはさらに良いことに、空間充填アプローチで作成された初期実行から開始した場合に得られる最適解よりも劣る結果となりました。


ですから、あなたが言及されている主張には少し懐疑的です。BOループ中に目標が達成された場合(それが局所最適解であろうと全体最適解であろうと)、プラットフォームはポイントを複製することを推奨し、そこで処理を終了します。
このJMP Discoveryセミナーでは、グローバル最適解とローカル最適解のどちらが最適解なのかという質問が頻繁に出ました。また、「モデルの予測結果をどのように使用/信頼するか」という質問もありました。そこで私は、BOループ中に使用されるガウス過程に基づいて特徴量の重要度/感度指標を計算すると、非常に誤解を招く可能性があることを示しました。https
/www.linkedin.com/posts/victorguiller_bayesianoptimization-designofexperiments-activity-7475080705866174465-e3uV

この種の解説方法は、アルゴリズムがたどった経路の説明を提供するだけであり、必ずしも要因の「真の」重要性や感度を説明するものではありません。
議論とリンクをありがとうございました!
最高、
Re: ベイズ最適化: MaxPro基準の最大化こんにちは、 @Victor_G さん。
はい、アルゴリズムに関する懸念、そして反復処理が設計空間を正確に探索し、できればグローバル最大値(あるいはクラスター化された最大値)を迅速に見つけ出せるかどうかという点については、全く同感です。念のため申し上げますが、私はその機能について何ら主張したわけではなく、オンラインウェビナーで述べられていた内容を繰り返しただけです。最初の返信でも述べたように、ウェビナーは入門用としては悪くありませんが、方法論やアルゴリズム、それらの調整方法については深く掘り下げていません。JMPやDOE手法の「カジュアル」なユーザー向けであることは間違いありません。
ある程度、BOプラットフォームに関するプレゼンテーションで伝えられている内容や実証されている内容には同意し、理解できます。業界では、各要素が他のすべての要素とどのように相互作用するかを深く理解し、完璧なモデルを構築することは、必ずしも重要ではありません。85%、90%まで到達し、望ましい結果を生み出すための安定したプロセスを確立できていれば十分です。残りの10%~15%は、最適値に近づいた時点で微調整することで最適化できます。しかし、運用領域についてあまり情報がない段階で、最初から最適値に素早く近づけることは、非常に望ましいことです。
これまでの例で示されていないことの一つは、最適値付近から開始した場合に何が起こるかということです。BO最適化を実行して「最大値」を見つけた場合、探索と活用アルゴリズムはどうなるのでしょうか。その最大値付近のいくつかの点を使用してプロセスを再開するとどうなるでしょうか。行き詰まってしまうのでしょうか、それとも設計空間を探索し続けるのでしょうか。少なくとも2つの異なる設定で到達できるグローバル最大値が2つ存在するシナリオがいくつか考えられます。そのうちの1つは、生産の観点からより実用的かもしれません。しかし、BOアルゴリズムが十分な探索を行わずに常にローカル最大値のいずれかで行き詰まってしまうと、重要な情報を見逃してしまう可能性があります。
BOを「自動」モードと「教師あり」モードで実行した場合の比較、そしてそれぞれの方法が目標達成にどれほど効果的かを共有していただきありがとうございます。他の実験的なアプローチと同様に、私もBOを反復的なアプローチ、つまりツールボックスの中のもう一つのツールとして捉えています。ウェビナーでは、プレゼンターがそうではないと明言しているにもかかわらず、まるでBOがDOEの「新しい」代替手段になるかのように聞こえます。それでも、BOが次の大きなトレンドになるという暗黙の雰囲気が漂っています。何事もそうですが、慎重に使用してください。
私が得た大きな教訓の一つは、あらゆるコンピュータ支援モデリング(ML、AI、gen-AIなど呼び方は何でも構いません)において、プロセスの監視が鍵となるということです。監視なしのコンピュータ支援モデリングや生成は、簡単に誤った結果を生み出す可能性があります。私は複数の異なるAIプラットフォームに、様々な種類の作業をしている人物のシルエットを生成するよう指示を出しました。非常に「単純」で、詳細はなく、シルエットだけです。ところが、様々なAIは簡単に人間の余分な手足(足が3本、腕が4本など)を誤った形で生成してしまうのです。AIの生成に誤りがあったと報告しても、次の生成結果もやはり誤った結果になってしまいます。このプロセスには、依然としてかなり綿密な人間の監視と監督が必要です。現状では、BOプラットフォームも慎重な監視が必要なようです。
健全な懐疑心ですね。
DS
Re: ベイズ最適化: MaxPro基準の最大化こんにちは、DSさん。
誤解させてしまい申し訳ありません。その主張はJMPチームからのものであり、あなたからのものではないと理解していました(私の回答が分かりにくかった場合は申し訳ありません)。
おっしゃる通り、初期開始点(分布と位置)は、BOループを開始した後に行う選択と同じくらい重要です。初期点が最適点からどれだけ近いかによって、特に目標や目的に合致している場合は、アルゴリズムがその領域に「引き寄せられる」可能性があると考えられます。探索を強制するには、 空間充填(MaxPro)基準で実行を追加すると、既に存在する点との距離が最大となる点が生成されるため、効果的です(または、 Multimodel Std DevやUpper Confidence Boundなど、不確実性を重視した取得関数で実行を追加することも有効です) 。BOを使用する際のユーザーの決定は、プロジェクトの結果に大きな影響を与える可能性があります。
まさにその通りです。BOは、ツールボックスにあるもう一つの「スマートな実験」手法です。実際には、各イテレーションで複数回実行し(1回だけでなく)、さまざまな取得関数を追加して実行の種類を変化させ続けることで、実行のバッチに多様性を持たせ、探索の早期停止を回避する方が効果的だと思います。たとえば、1回または2回の活用実行、2回(またはそれ以上)の探索実行、そして「バランスの取れた」モードでのその他の実行を、1イテレーションあたり5回実行することを考えられます。取得関数を用いたBOは、「小さな」DoE実験タイプを作成するためのオプションだと考えています。ここで取得関数は設計の最適性に似ており、「設計」拡張は実行サイズに関して非常に柔軟です。しかし、これはブロッキングやその他のノイズ低減技術などの統計的な「仕組み」や安全策の一部を犠牲にするため、2つの手法は完全に互換性があるわけではありません。「慎重に使用」し、まず実験設定と制約から始めて、それから実験手法を選択するという点に同意します。
確かに、機械学習のようなコンピュータモデリングはパターンを見つけるのに優れており、モデリングの選択肢を広げることができますが、アルゴリズムによっては過学習(あるいはGenAIの場合は幻覚)を起こしやすい場合があるので、結果は常に慎重に検討する必要があります。そのため、モデルの結果を評価・分析する際には、常に専門知識、批判的思考、統計的な考え方を用いるようにしてください。
議論していただき、ありがとうございました。今後のリリースでBayesOptプラットフォーム(およびドキュメント!)がどのように進化していくのか、本当に楽しみにしています。
最高、
Re: ベイズ最適化: MaxPro基準の最大化興味深い議論をありがとうございました。簡単に言うと、これは実験に対する根本的に異なる2つのアプローチに帰着すると思います。
一つのアプローチはアルゴリズムを用いるものです。目的は、望ましい結果を生み出す設定を見つけることです。アルゴリズムが確実に満足のいく解に収束する限り、その根底にあるメカニズムが理解されているかどうかはほとんど関係ありません。
2つ目のアプローチは、実験を学習プロセスとして捉えるものです。目的は、最適な設定を見つけるだけでなく、なぜそれが機能するのかを理解することにあります。こうしたメカニズム的な理解によって、新たな状況下でのパフォーマンスを予測したり、状況の変化を認識したり、知識を将来の設計に活かしたり、より堅牢な製品やプロセスを開発したりすることが可能になります。
どちらの哲学も本質的に正しいとか間違っているとかいうものではなく、単に最適化する目的が異なるだけです。もし唯一の目標が単一のシステムをできるだけ早く最適化することであれば、ベイズ最適化は非常に魅力的な選択肢となり得ます。しかし、現在の問題を超えて科学的または工学的な知識を構築することが目標であれば、実験は単に最適解を探すのではなく、メカニズムを明らかにするように設計されなければなりません。
私が懸念しているのは、これらの手法を評価する際に、 「より良い解決策が見つかったか?」という問いだけに頼ってしまうことがある点です。しかし、同じくらい重要な問いは、 「次のプロジェクトでも役立つような、今回の経験から何を学んだか?」であると思います。これらは必ずしも同じことではありません。
データは最適値が存在する場所を特定できる。そのメカニズムを理解することで、なぜ最適値が存在するのかが明らかになる。そして、後者を理解することによってのみ、世界が必然的に変化したときに何が起こるかを予測できるのだ。