ニューラルネットワークではなく、遺伝的アルゴリズムをいつ使用すればよいですか?[閉まっている]


139

問題を解決するためにニューラルネットワーク(またはその逆)とは対照的に、遺伝的アルゴリズムをいつ使用するかを決定するための経験則(または一連の例)はありますか?

両方の方法を混在させることができる場合があることは承知していますが、2つの方法の大まかな比較を探しています。


3
ニューラルネットワークには、監視ありと監視なしの2種類があることに注意してください。教師ありは、人間からのトレーニングデータを取得し、教師なしのフィードバックを自分自身に送ります。その点では、GAに似ています。
クリスS

3
「list-y」ではないと思います。答えは2つの方法を比較し、どちらを使用するかを明確にします。
Neil N

短い答え:モデル化する関数が非連続/離散である場合、またはデータセットが天文学的に高次元である場合、GAを使用します。最良の結果が得られるものに応じて、残りにはニューラルネットワークまたはGA(または別のモデル)を使用します。詳細については、ここで私の回答を参照してください:stackoverflow.com/a/49684833/1121352
18

回答:


130

ウィキペディアから:

遺伝的アルゴリズム(GA)のために計算に使用される検索技術である見つける正確な又は近似最適化及び検索の問題をします。

そして:

ニューラルネットワークは、非線形統計データモデリングツールです。これらを使用して、入力と出力の間の複雑な関係をモデル化したり、データのパターン見つけることができます。

解の価値を定量化できる問題がある場合、遺伝的アルゴリズムは解空間の有向検索を実行できます。(例えば、2点間の最短ルートを見つける)

異なるクラスに多数のアイテムがある場合、ニューラルネットワークは「学習」して、以前に「表示」されたことのないアイテムを分類できます。(例:顔認識、音声認識)

実行時間も考慮する必要があります。遺伝的アルゴリズムは、許容できる解決策を見つけるのに長い時間がかかります。ニューラルネットワークの「学習」には長い時間がかかりますが、新しい入力をほぼ瞬時に分類できます。


13
GA定義に少し追加したいだけです。時々人々はGA問題の解空間を一連の状態または値と考えます。「4つのチェスの駒のセットをチェス盤に配置してチェックメイトを作成する方法をすべて見つけます」など。ただし、解空間は一連のアルゴリズムにすることもできます。ここで、遺伝的アルゴリズムの真の力が発揮されます。「チェックメイトになるチェスの駒の特定のセットで一連の動きを見つける」のような質問に答えるのに役立ちます。
lfalin 2014年

44

遺伝的アルゴリズム(そのセクシーな名前にもかかわらず)は、ほとんどの場合、最適化手法です。それは主に、いくつかの変数があり、これらの変数の値の最適な組み合わせを見つけたいと考えていることになります。それは自然進化から技術を借りてそこに到達するだけです。

ニューラルネットワークはパターンの認識に役立ちます。それらは脳の単純化したモデルに従い、それらの間の重みの数を変更することにより、入力に基づいて出力を予測しようとします。

これらは2つの根本的に異なるエンティティですが、重複して解決できる問題がある場合もあります。


22
ニューラルネットワークは、実際には単なる補間手法です。:)
Don Reba

3
遺伝的アルゴリズム(最適化)とニューラルネットワーク(教師あり学習)の+1には、ほとんど共通点がありません。
アルファ

2
唯一の共通要素は、目標に近づくと動的に再配置されることです。
lfalin 2014年

1
本当に重複があるかどうかはわかりません。ニューラルネットワークはコスト関数を持つモデルであり、GAは@zennaが言ったように、このコスト関数を最小化するために使用できる最適化手法です。
Matthieu Brucher

37

GAは、定義した構造に新しいパターンを生成します。

NNは、提供するトレーニングデータに基づいて既存のパターンを分類(または認識)します。

GAは、ソリューションの大規模な状態空間を効率的に検索し、1つ以上の優れたソリューションに収束しますが、必ずしも「最良の」ソリューションとは限りません。

NNはパターンを認識することを学ぶことができますが(トレーニングを介して)、彼らが学んだことを理解することは悪名高いほど困難です。


26

ここでは2つのまったく異なるものを比較しています。

ニューラルネットワークは回帰/分類に使用されます-(x、y)の例のセットが与えられた場合、与えられたxの未知のyを回帰させます。

遺伝的アルゴリズムは最適化手法です。関数f(x)が与えられた場合、f(x)を最小化/最大化するxを決定します。


10
確かに。それらは本当に「直交」技術です。GAを使用して、ニューラルネットの重みやアーキテクチャを検索できます。
redcalx

23

それらの間には多くの類似点があるので、それらの相違点のみを概説するようにします

ニューラルネットワーク

オンラインパターン(時間とともに変化するパターン)を分析できる。一般に、これは時間的に変化するサンプルであり、照合および予測する必要があります。

  • グラフの外挿
  • 顔認識

遺伝的アルゴリズム

特定の変更されない問題に寄与すると思われる属性をコーディングできる場合に使用されます。これらの属性をコード化できることに重点が置かれ(属性が何であるかを知っていることもあります)、問題は大部分が不変です(そうでない場合、進化は収束しません)。

  • 飛行機のスケジュール設定/発送
  • 時刻表。
  • 人工環境で単純なエージェントの最良の特性を見つける
  • ランダムポリゴンを使用した画像の近似のレンダリング

14

バックプロパゲーションアルゴリズムの代わりに遺伝的アルゴリズムを使用して、ニューラルネットワークの重みを更新できます。この例については、http : //www.ai-junkie.com/ann/evolved/nnt1.htmlを参照して ください


1
また、NEAT(cs.ucf.edu/~kstanley/neat.html)。(sharpneat.sourceforge.net)のC#実装
redcalx 2009年

JavaScriptについては、github.com/wagenaartje/neatapticをチェックしてください。NEATも実装しています。
トーマスW

8

遺伝的アルゴリズムは(通常)離散データ(列挙型、整数範囲など)を処理します。GAの典型的なアプリケーションは、利用可能な唯一の選択肢がブルートフォース検索(すべての組み合わせの評価)である場合に、「十分な」ソリューションを離散空間で検索することです。

一方、ニューラルネットワークは(通常)連続データ(フロートなど)を処理します。NNの典型的なアプリケーションは関数近似です。ここでは、入力のセットXと関連する出力のセットYがありますが、分析関数f:X→Yです。

もちろん、両者には何千ものバリアントがあるため、それらの間の線は多少ぼやけています。


5

経験則はありません。多くの場合、問題を定式化してそれらのいずれかを利用できます。機械学習は依然として活発な研究分野であり、どの学習モデルを使用するかは議論の余地があります。

GAは進化からセクシーな言語を取り入れていますが、コンピューターがランダムなプロセスを通じてソリューションに遭遇するのを待っています。データを調査し、適切な仮定を行い、必要なものを理解し、これらをうまく利用できるアプローチを選択してください。最初の選択で結果が良くない場合は、なぜそうなのかを知り、アルゴリズム自体を改善するか、より良いものを選択してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.