タグ付けされた質問 「genetic-algorithms」

5
フィットネスの低い人が次世代に生き残るチャンスがあるのはなぜですか?
私は現在、遺伝的アルゴリズムについて読んで見ていますが、それは非常に興味深いと思います(大学にいる間、それを研究する機会がありませんでした)。 突然変異は確率に基づいていることを理解しています(ランダム性が進化の根源です)が、なぜ生存が必要なのかわかりません。 私が理解から、個々のフィットネス持つ、そのような別の個人用としてフィットネス持つ我々は持っている、その後、より良い確率持つ生き残るために次世代へ。F (i )J F (j )F (i )> F (j )I JIIIF(i)F(i)F(i)JJJF(j)F(j)F(j)F(i)>F(j)F(i)>F(j)F(i) > F(j)IIIJJJ 確率は、が生き残り、は生き残れないかもしれないことを意味します(「不運」で)。なぜこれが良いのか理解できませんか?が常に選択を生き延びたら、アルゴリズムの何が問題になるでしょうか?私の推測では、アルゴリズムは貪欲なアルゴリズムに似ていますが、よくわかりません。I IJJJ III III

2
二倍体(優性/劣性)遺伝子が遺伝的アルゴリズムで広く使用されないのはなぜですか?
この質問は、コンピューターサイエンススタック交換で回答できるため、人工知能スタック交換から移行されました。 5年前に移行され ました。 遺伝的アルゴリズムのほとんどの実装では、焦点は交差と突然変異にあります。しかし、どういうわけか、それらのほとんどは二倍体(優性/劣性)遺伝子の性質を除外しています。私の(限られた)理解に関する限り、遺伝子の優性/劣性の性質は、生物の実際の特性を決定する上で非常に重要な要素です。 だから私の質問は、ほとんどの実装で遺伝子の二倍体の性質が遺伝的アルゴリズムから除外されているのはなぜですか? 理由は: それは多くの利点を提供しません それ以外の場合は単純なアルゴリズムに不必要な複雑さを追加します 実装が難しい それとも完全に何か?

4
NP問題を解決するための進化型人工ニューラルネットワーク
私は最近、Google Research Blogからニューラルネットワークについて話している非常に興味深いブログエントリを読みました。基本的に、このニューラルネットワークを使用して、画像認識などのさまざまな問題を解決します。彼らは遺伝的アルゴリズムを使用して、軸索の重みを「進化」させます。 だから基本的に私の考えは次のとおりです。数字を認識するプログラムを書くことになっていた場合、どうやって始めればよいかわからない(漠然とした考えがあるかもしれませんが、私のポイントは、それは簡単ではなく、簡単ではありません)ですが、ニューラルネットワークを使用する必要はありません。ニューラルネットワークが進化するための適切なコンテキストを作成することにより、私のニューラルネットワークは「正しいアルゴリズムを見つけます」。以下で、記事の非常に興味深い部分を引用しました。そこでは、各層が画像認識のプロセスでどのように異なる役割を果たすかを説明しています。 ニューラルネットワークの課題の1つは、各レイヤーで何が起こっているかを正確に理解することです。トレーニング後、各レイヤーは、最終的なレイヤーが本質的に画像の表示内容を決定するまで、画像のより高いレベルの特徴を段階的に抽出します。たとえば、最初のレイヤーはエッジやコーナーを探している可能性があります。中間層は、基本的な機能を解釈して、ドアや葉などの全体的な形状やコンポーネントを探します。最後のいくつかの層は、それらを組み立てて完全な解釈にします。これらのニューロンは、建物全体や樹木などの非常に複雑なものに応答してアクティブになります。 だから基本的に私の質問は次のとおりです:すべてのNP問題を解決するために遺伝的アルゴリズム+ニューラルネットワークを使用できませんでしたか?適切な進化のコンテキストを作成し、「自然」に解決策を見つけさせるだけです。 インセプショニズム:ニューラルネットワークの詳細 編集:私は多くの場合、ブルートフォースを使用したり、非効率的なソリューションを見つけたりできることを知っています。それが、進化する人工ニューラルネットワークを強調する理由です。私がコメントで言ったように:十分な時間と適切な突然変異率があれば、最適な解決策を見つけることができました(または少なくともそれが私の考えです)。

2
遺伝的アルゴリズムのパラメーターの選択
特定のシステムをモデル化するために、遺伝的アルゴリズムに適切な数のパラメーターをどのように選択できますか? たとえば、自動車の生産を最適化したいとし、1,000人の異なる従業員ごとに、さまざまなタスクで時間効率を1,000回測定したとします。つまり、1,000,000個のデータポイントがあります。これらのほとんどは弱いあなたの工場の全体的な効率と相関する可能性が高いが、そうではありませんので、あなたは、彼らは統計的信頼度とは無関係であると言うことができるという弱いです。1,000,000以上の自由度がなくなり、収束が非常に遅くなるか、まったく収束しないように、GAの入力を選択するにはどうすればよいですか? 具体的には、機能を事前選択または選択的に削除するために使用できるアルゴリズムは何ですか? 私は、このシナリオで自分自身を使用している一つのアプローチは、私のような両親かもしれないので、パラメータの選択自体を進化させている{a,b,c}、{b,d,e,q,x,y,z}などを。次に、子を変更して機能を追加または削除します。これは、数十の機能に適しています。しかし、問題は、自由度が多数あると効率が悪いことです。その場合は、10^n組み合わせ(上記の例では)を調べています10^1,000,000。これにより、何らかの有用なパフォーマンスを得るには、機能の事前フィルタリングが重要になります。

2
遺伝的アルゴリズムのために、局所最適状態で動けなくなるのを防ぐ方法
文法の進化を利用して遺伝的アルゴリズムをプログラミングしています。私の問題は、局所的な最適値(早期収束)に到達し、それが発生したときに何をすべきかわからないことです。突然変異率を上げることを考えています(5%がデフォルト値です)が、いつ必要かを判断する方法がわかりません。 私がすべての世代で持っているデータは、最初の列がその適合性である二次元配列です adn[i][0] ← fitness row → is the values of the Grammar column ↓ Each indiviual result 説明が必要な場合は、お問い合わせください。変更させていただきます。これは私の母国語ではなく、間違いやご不便をおかけして申し訳ありません。 リクエストに答えると、私の操作は次のとおりであり、この順序で正確に: ランダムな母集団(乱数を含む行列)を生成します 希望する結果を含む行列を生成します。これを行うために、私はさらに+ -5%のバリエーションを持ついくつかの関数を実装しました。例:fun(x)=(2 * cos(x)+ sen(x)-2X)* (0,95+ (0と0,1の間で振動する数値)、xには0からN(Nは行のサイズ)までのすべてのf(x)が含まれ、yにはまったく同じ(より多くの結果)が含まれます アルゴリズムを開始します(世代が変わり始めます すべての世代を作るアクションは次のとおりです。 突然変異:すべての染色体の乱数は任意の遺伝子で突然変異する可能性があります→adn [i] [ランダム] =乱数(これが発生する確率の5%) クロスオーバー:私はすべてのadnを他のadnと交差させます(80%はすべてのペアの突然変異の可能性です)。ペアリングのために、乱数を選び、adn [i]とadn [(i + j)mod NumADNs]に直面します。 翻訳。ワンステップの転写で作成したf(0からN)の値を含む行列を取得し、画像に文法を適用して翻訳します -fitness:取得した値を期待値と比較し、適合度を更新します。 -エリート主義:その後、私は最高の4つのADNを選択し、それをトップにします、それらは選択されます -選択:非エリート主義のadnは完全にランダムなadnに直面し、その適応度が低い(低いほうが良い)が優勢であり、悪い方が生き残る可能性があります

3
遺伝的アルゴリズムの性能を実験的に分析する方法は?
最適化問題の遺伝的アルゴリズムがあります。同じ入力と同じパラメーター(母集団のサイズ、世代のサイズ、クロスオーバー、突然変異)での複数の実行に対するアルゴリズムの実行時間をプロットしました。 実行時間は実行ごとに異なります。これは正常ですか? また、大きな入力で実行すると、期待に反して実行時間が増加する代わりに減少する場合があることにも気付きました。これは予想されますか? 遺伝的アルゴリズムのパフォーマンスを実験的に分析するにはどうすればよいですか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.