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

StackOverflow https://stackoverflow.com/questions/1402370

質問

問題を解決するためにニューラルネットワーク(およびその逆)ではなく遺伝的アルゴリズムを使用するタイミングを決定するための経験則(または一連の例)はありますか?

両方の方法を混在させることができる場合があることは知っていますが、2つの方法の高レベルの比較を探しています。

役に立ちましたか?

解決

ウィキペディアから:

  

A 遺伝的アルゴリズム(GA)は、検索するためにコンピューティングで使用される検索手法です最適化と検索の問題に対する正確または近似の解決策

and:

  

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

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

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

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

他のヒント

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

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

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

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

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

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

NNは(トレーニングを介して)パターンを認識することを学ぶことができますが、学習したことを把握すること、つまり、トレーニング後に知識を抽出し、他の(NN以外の)で知識を再利用することは悪名高く困難です。

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

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

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

それらの間には多くの類似点があるため、それらの違いの概要のみを説明します。

ニューラルネットワーク

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

  • グラフの外挿
  • 顔認識

遺伝的アルゴリズム

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

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

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

遺伝的アルゴリズムは(通常)離散データ(enum、整数範囲など)で機能します。 GAの典型的なアプリケーションは、「十分な」ものを見つけるために個別のスペースを検索することです。唯一の選択肢がブルートフォース検索である場合のソリューション(すべての組み合わせを評価する)。

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

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

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

GAは進化からセクシーな言語を取り入れていますが、コンピューターがランダムなプロセスで解決策に出くわすのを待っています。データを研究し、適切な仮定を立て、必要なものを把握し、これらを有効に活用できるアプローチを選択してください。最初に選択した結果が悪い場合は、その理由を理解し、アルゴリズム自体を改善するか、より良いアルゴリズムを選択してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top