0

ここでこの質問をするのは適切ではないかもしれませんが、私はそれを尋ねるより良い場所を見つけられませんでした. たとえば、10個のパラメーターを持つプログラムがあります。実行するたびに、3 つの結果が得られる可能性があります。0、0.5、または 1。パラメーターが最終結果にどのように影響するかわかりません。プログラムを少しずつ改善して、1 を増やして 0 を減らす何かが必要です。

4

3 に答える 3

3

まず、用語を正しく理解するために、これは実際には「検索」の問題であり、「機械学習」の問題ではありません (入力と出力の関係を認識しようとするのではなく、非常に優れた解決策を見つけようとしています)。あなたの問題は、古典的な「関数の最適化」検索の問題のように聞こえます。

使えるテクニックはたくさんあります。適切なものは、いくつかの異なる要因に依存しますが、最大の問題は解空間のサイズと形状です。ここでの最大の疑問は、「インプットの小さな変化に対するアウトプットの感度はどれくらいか」ということです。1 つを除いてすべての入力を同じにして小さな変更を加えた場合、出力に大きな変化が生じるでしょうか、それとも小さな変化だけでしょうか? 入力は、特に複雑な方法で相互に作用しますか?

解空間が小さくて「滑らか」であるほど (つまり、入力のわずかな変化に対する感度が低いほど)、単純な統計手法やガイド付き検索を追求したくなるでしょう。 、 焼き鈍し法。

解空間が大きく複雑になればなるほど、より洗練された統計手法や、大きな解空間を非常に高速に検索できる遺伝的アルゴリズムである私のお気に入りのアルゴリズムのクラスに進むことができます。

遺伝的アルゴリズムを問題にどのように適用するかを簡単に説明するために、入力が互いに独立していると仮定しましょう (まれなケースですが、私は知っています)。

  • 一連の 2 進数から入力へのマッピングを作成する0011 1100 0100 ...etc...
  • このマッピングを使用して、かなりのサイズのランダムな母集団を生成します
  • 母集団内の各個人の適合度を決定します (この場合、出力で「1 を数えます」)。
  • 抽選で2名の「親子」をお選びください。
    • 出力のハーフポイントごとに、個人は「宝くじ」を取得します (つまり、2 つの「1」と 3 つの「0.5」を含む出力は 7 つの「チケット」を取得し、1 つの「1」を含む出力は 7 つの「チケット」を取得します)。 2 つの「0.5」は 4 つの「チケット」を取得します)。
    • 宝くじをランダムに選びます。「より健康な」個人はより多くの「チケット」を持っているため、「より健康な」個人は「親」になる可能性が高くなります。
  • 親のゲノムから子を作成します。
    • 1 つの親ゲノムを左から右にコピーし始める0011 11...
    • すべてのステップで、一定の確率で (たとえば、20% の確率で) もう一方の親に切り替えます。
    • 結果として得られる子には、一方の親のゲノムと他方の親のゲノムがある程度含まれます。子供は「高い適応度」の個人から作成されたため、現在の世代の平均よりも高い適応度を持つ可能性があります (ただし、適応度が低い可能性は確かにあります)
  • 母集団の一部を、この方法で生成された子に置き換えます
  • 「適合度の決定」ステップから繰り返します... 理想的なケースでは、すべての世代が前の世代よりも高い平均適合度を持ち、非常に優れた (あるいは理想的な) ソリューションを見つけることができます。
于 2012-09-14T18:39:14.607 に答える
1

ラリーが言ったように、組み合わせ検索のように見え、解決策は問題の「トポロジー」に依存します。可能であれば、Algorithm Design Manuelの本(S. Skiena)を入手してみてください。この本には、この問題の適切な方法を決定するのに役立つ章があります...

于 2012-09-15T21:14:31.933 に答える
1

結果が 1 になるようにパラメーターを変更しようとしているだけですか? このプログラムは、入力パラメーターを選択して結果を確認できるブラック ボックスのように思えます。その場合は、入力パラメーターの範囲を選択し、それらの入力を循環させ、出力を表示してパターンを識別しようとするのが最善だと思います。自動化できればかなり助かります。データを調べた後、スポット チェックを行って、どのパラメーターがどの結果をもたらすかを確認したり、機械学習手法を適用して、どのパラメーターがどの出力につながるかを判断したりできます。

于 2012-09-14T14:13:36.347 に答える