問題を解決するためにニューラルネットワークとは対照的に遺伝的アルゴリズムをいつ使用するか(およびその逆)を決定するための経験則(または一連の例)はありますか?
両方の方法を混在させることができる場合があることは知っていますが、2つの方法の高レベルの比較を探しています。
問題を解決するためにニューラルネットワークとは対照的に遺伝的アルゴリズムをいつ使用するか(およびその逆)を決定するための経験則(または一連の例)はありますか?
両方の方法を混在させることができる場合があることは知っていますが、2つの方法の高レベルの比較を探しています。
ウィキペディアから:
遺伝的アルゴリズム( GA) は、コンピューティングで使用される検索手法であり、最適化および検索の問題に対する正確な解または近似解を見つけます。
と:
ニューラル ネットワークは、非線形の統計データ モデリング ツールです。これらを使用して、入力と出力の間の複雑な関係をモデル化したり、データ内のパターンを見つけたりできます。
解の価値を定量化できる問題がある場合、遺伝的アルゴリズムは解空間の有向探索を実行できます。(例: 2 点間の最短ルートを見つける)
さまざまなクラスのアイテムが多数ある場合、ニューラル ネットワークは、以前に「見た」ことのないアイテムを分類することを「学習」できます。(例:顔認識、音声認識)
実行時間も考慮する必要があります。遺伝的アルゴリズムは、許容できる解を見つけるのに長い時間がかかります。ニューラル ネットワークの「学習」には長い時間がかかりますが、新しい入力をほぼ瞬時に分類できます。
遺伝的アルゴリズム (そのセクシーな名前にもかかわらず) は、ほとんどの場合、最適化手法です。要するに、多数の変数があり、これらの変数の値の最適な組み合わせを見つけたいということです。そこにたどり着くために自然の進化から技術を借りているだけです。
ニューラル ネットワークは、パターンの認識に役立ちます。それらは脳の単純化されたモデルに従い、それらの間の重みの数を変更することにより、入力に基づいて出力を予測しようとします。
これらは根本的に異なる 2 つのエンティティですが、解決できる問題が重複する場合があります。
GA は、定義した構造で新しいパターンを生成します。
NN は、提供されたトレーニング データに基づいて既存のパターンを分類 (または認識) します。
GA は、ソリューションの大きな状態空間を効率的に検索し、1 つまたは複数の適切なソリューションに収束するのに優れたパフォーマンスを発揮しますが、必ずしも「最適な」ソリューションとは限りません。
NN は (トレーニングを介して) パターンを認識することを学習できますが、学習した内容を把握すること、つまり、トレーニング後に知識を抽出し、その知識を他の (非 NN) で再利用することは、非常に困難です。
ここでは、2 つのまったく異なるものを比較しています。
ニューラル ネットワークは回帰/分類に使用されます。一連の (x, y) 例が与えられた場合、与えられた x に対して未知の y を回帰させたいとします。
遺伝的アルゴリズムは最適化手法です。関数 f(x) が与えられた場合、f(x) を最小化/最大化する x を決定します。
それらの間には多くの類似点があるため、違いの概要のみを説明します。
オンラインのパターン (時間とともに変化するもの) を分析できる。一般に、これは照合と予測が必要な時変サンプルです。
例:
特定の不変の問題に寄与すると思われる属性をコーディングできる場合に使用します。これらの属性をコード化できることに重点が置かれており (それらが何であるかを知っている場合もあります)、問題の大部分は不変です (そうでなければ、進化は収束しません)。
例:
バックプロパゲーションアルゴリズムの代わりに遺伝的アルゴリズムを使用して、ニューラルネットワークの重みを更新できます。この例については、http: //www.ai-junkie.com/ann/evolved/nnt1.htmlを参照してください。
遺伝的アルゴリズムは (通常) 離散データ (列挙型、整数範囲など) で動作します。GA の典型的なアプリケーションは、利用可能な唯一の代替手段がブルート フォース検索 (すべての組み合わせを評価する) である場合に、離散空間で「十分な」ソリューションを検索することです。
一方、ニューラル ネットワークは (通常) 連続データ (float など) を処理します。NN の典型的なアプリケーションは関数近似で、入力のセット X と関連する出力のセット Y がありますが、分析関数 f: X → Y です。
もちろん、どちらにも何千ものバリエーションがあるため、両者の境界線はややあいまいです。
経験則はありません。多くの場合、問題を定式化して、それらのいずれかを利用できます。機械学習は依然として活発な研究分野であり、どの学習モデルを使用するかについては議論の余地があります。
GA は進化から魅力的な言語を取り入れていますが、コンピューターがランダムなプロセスを通じてソリューションに出くわすのを待っています。データを研究し、適切な仮定を立て、何が必要かを理解しようとし、これらをうまく利用できるアプローチを選択してください。最初の選択で悪い結果が得られた場合は、その理由を理解し、アルゴリズム自体を改善するか、より良い結果を選択してください。