ストキャスティックヒルクライミングは通常、最も急なヒルクライミングよりもパフォーマンスが悪いですが、前者の方がパフォーマンスが優れているのはどのような場合ですか。
ストキャスティックヒルクライミングは通常、最も急なヒルクライミングよりもパフォーマンスが悪いですが、前者の方がパフォーマンスが優れているのはどのような場合ですか。
回答:
最も急な山登りアルゴリズムは、凸最適化に適しています。ただし、実際の問題は通常、非凸最適化タイプです。複数のピークがあります。このような場合、このアルゴリズムがランダムな解で開始すると、グローバルピークではなく、ローカルピークの1つに到達する可能性が高くなります。シミュレーテッドアニーリングなどの改善により、アルゴリズムをローカルピークから遠ざけることができるようになり、グローバルピークが見つかる可能性が高まるため、この問題が改善されます。
明らかに、ピークが1つだけの単純な問題の場合は、最も急な坂登りが常に優れています。グローバルピークが見つかった場合は、早期停止を使用することもできます。対照的に、シミュレートされたアニーリングアルゴリズムは、実際にはグローバルピークからジャンプして戻り、戻って再びジャンプします。これは、十分に冷却されるか、特定の事前設定された回数の反復が完了するまで繰り返されます。
実世界の問題は、ノイズが多く欠落しているデータを扱います。確率的なヒルクライミングアプローチは低速ですが、これらの問題に対してより堅牢であり、最適化ルーチンは、最も急なヒルクライミングアルゴリズムと比較して、グローバルピークに到達する可能性が高くなります。
エピローグ:これは、ソリューションを設計するとき、またはさまざまなアルゴリズムから選択するときに永続的な問題を提起する良い質問です。つまり、パフォーマンスと計算コストのトレードオフです。ご想像のとおり、答えは常にです。アルゴリズムの優先順位に依存します。データのバッチで動作しているオンライン学習システムの一部である場合、時間の制約は強くなりますが、パフォーマンスの制約は弱くなります(次のデータのバッチは、最初のデータのバッチによって導入される誤ったバイアスを修正します)。一方、利用可能なすべてのデータを手元に置いたオフライン学習タスクの場合は、パフォーマンスが主な制約であり、確率論的アプローチが推奨されます。
まず、いくつかの定義から始めましょう。
山登りは、単にループを実行する検索アルゴリズムであり、値が増加する方向、つまり上り坂に向かって連続的に移動します。ループはピークに達し、より高い値を持つネイバーがなくなると終了します。
確率的ヒルクライミングは、ヒルクライミングの一種であり、上り坂の動きの中からランダムに選択します。選択の確率は、上り坂の動きの急峻さによって異なります。2つのよく知られている方法は
次のとおりです。*州に多くの後継者(数千、数百万など)がある場合は、良好と見なされます。
ランダムに再開する山登り:「成功しない場合は、もう一度試してみてください」という哲学に基づいています。
さてあなたの答えに。確率的ヒルクライミングは、実際には多くの場合、パフォーマンスが向上します。次のケースを考えてください。この画像は、状態空間の風景を示しています。画像にある例は、「人工知能:現代のアプローチ」という本から引用したものです。
現在の状態が示すポイントにいるとします。単純な山登りアルゴリズムを実装すると、極大値に達してアルゴリズムが終了します。より最適な目的関数値を持つ状態は存在しますが、アルゴリズムは極大値でスタックしているため、そこに到達できません。アルゴリズムは、平坦な極大値でスタックすることもあります。
ランダム再起動ヒルクライミングは、ランダムに生成された初期状態からゴール状態が見つかるまで一連のヒルクライミング検索を実行します。
ヒルクライミングの成功は、状態空間の風景の形にかかっています。極大、平坦なプラトーが少ししかない場合。ランダムに再開する山登りは、すぐに適切な解決策を見つけます。実際の問題のほとんどは、状態空間のランドスケープが非常に粗いため、山登りアルゴリズムやそのバリアントの使用には適していません。
注:ヒルクライムアルゴリズムは、最大値だけでなく最小値の検索にも使用できます。私は私の回答で最大という用語を使用しました。最小値を探している場合、グラフを含めてすべてが逆になります。