質問

私はさまざまなクラスの機械学習アルゴリズムの違いを感じ取ろうとしています。

進化的アルゴリズムの実装はニューラル ネットワークの実装とはまったく異なることを理解しています。

ただし、どちらもノイズの多いトレーニング/履歴データのセットからの入力と出力の間の相関関係を判断することを目的としているようです。

定性的な観点から見ると、進化的アルゴリズムではなくニューラル ネットワークのターゲットとして適した問題領域はありますか?

補完的な方法でそれらを使用することを提案するいくつかの記事をざっと読んでみました。その適切な使用例はありますか?

役に立ちましたか?

解決

取引は次のとおりです。機械学習の問題では、通常2つのコンポーネントがあります:

a)モデル(関数クラスなど)

b)モデルの適合方法(最適化アルゴリズム)

ニューラルネットワークはモデルです。レイアウトと重みの設定が与えられると、ニューラルネットは出力を生成します。バックプロパゲーション、対比発散など、ニューラルネットをフィッティングする標準的な方法がいくつかあります。ただし、ニューラルネットワークの大きなポイントは、誰かが「正しい」重みを与えれば、問題をうまく処理できることです。

進化的アルゴリズムは、2番目の部分、つまりモデルの適合に対処します。繰り返しますが、進化的アルゴリズムに対応する標準モデルがいくつかあります。たとえば、通常、進化的プログラミングは特定のタイプのすべてのプログラムを最適化しようとします。ただし、EAは本質的に、特定のモデルに適切なパラメーター値を見つける方法です。通常、クロスオーバー操作を行うのが妥当な方法でモデルパラメーターを記述し、EAクランクを回してパラメーターの適切な設定を取得します。

今、たとえば、進化的アルゴリズムを使用してニューラルネットワークを訓練することができます。ただし、EAが動作するために必要な重要な点は、クロスオーバー操作を行うには合理的なことでなければならないということです-ある合理的な設定からパラメーターの一部を取り、別の合理的な設定から残りを取得することにより、しばしばさらに良いパラメーター設定。ほとんどの場合、EAが使用されますが、これは事実ではなく、シミュレートされたアニーリングのようなものになり、より混乱し、非効率的になります。

他のヒント

「直感」を必要とする問題手書き認識など、ANNにより適しています。大量の入力でニューラルネットワークをトレーニングし、完了するまで評価します(これには長い時間がかかります)が、その後、「推測」できるブラックボックスアルゴリズム/システムがあります手書きですので、小さな脳を保ち、何年もの間、モジュールとして使用します。複雑な問題に対して高品質のANNをトレーニングするには数か月かかることがあるため、私は最悪のケースであり、幸運です。

他のほとんどの進化アルゴリズム" 計算"ある種の山登りパターンの、その場でのアドホックなソリューション。

また、別の回答で指摘されているように、実行時にANNは「推測」することができます;他のほとんどの進化アルゴリズムが「計算」できるよりも高速です。ただし、ANNは「推測」だけなので、注意が必要です。間違っている可能性があります。

Neuro Evolutionをご覧ください。 (NE)

現在の最良の方法は、 NEAT および HyperNEAT by Kenneth Stanley。

遺伝的アルゴリズムは、ある種のゲノムのみを見つけます。ニューラルネットワークのゲノムを作成するのは素晴らしいことです。なぜなら、単なる静的な遺伝子の束ではなく、ニューラルネットワークの反応性を得るからです。

学習できることには多くの制限はありません。しかし、もちろん時間がかかります。ニューラルトポロジは、通常の突然変異とクロスオーバー、および更新された重みによって進化する必要があります。逆伝播はありません。

また、出力をどのようにすべきかわからない場合、逆伝播よりも優れているフィットネス関数でトレーニングすることができます。最適な戦略がわからないシステムの複雑な動作を学習するのに最適です。唯一の問題は、あなたが予期していなかった行動を学習することです。多くの場合、その動作は非常に異質な場合がありますが、フィットネス機能で報酬を与えたとおりに動作します。したがって、バックプロパゲーション用の出力セットを作成するのと同じくらい多くの時間をフィットネス関数の導出に使用します:P

進化的アルゴリズム、またはより一般的には遺伝的アルゴリズムとニューラル ネットワークはどちらも同様の目的に使用でき、他の回答でその違いがよく説明されています。

ただし、ニューラル ネットワークよりも進化的アルゴリズムの方が適切に示される特定のケースが 1 つあります。 解空間が非連続/離散の場合.

実際、ニューラル ネットワークは勾配降下法を使用してバックプロパゲーション (または同様のアルゴリズム) から学習します。勾配の計算は導関数に依存します。これには連続空間が必要です。つまり、1 つの解から次の解に徐々に移行できます。

解空間が離散的である場合 (つまり、解 A、B、または C のいずれかを選択できますが、0.5% A + 0.5% B のように中間には何もありません)、非連続関数を近似しようとしています。そうなるとニューラルネットワークは機能しなくなります。

この場合、進化アルゴリズムは完璧であり、問​​題なく 1 つの解決策から次の解決策に「ジャンプ」できるため、神が送ったとさえ言えるでしょう。

また、進化的アルゴリズムは、ニューラル ネットワークを含む他の機械学習アルゴリズムほど次元の呪いを受けないことも言及する価値があります。

このため、進化的アルゴリズムは、あらゆる問題に素朴にアプローチできる非常に多用途かつ汎用的なツールとなり、非連続関数や天文学的な高次元のデータセットを扱う数少ないツールの 1 つとなります。

問題領域の観点から、逆伝播によって訓練された人工ニューラルネットワークを進化的アルゴリズムと比較します。

進化アルゴリズムは、ランダム化されたビームサーチを展開します。つまり、進化演算子は、適合度によってテストおよび比較される候補を開発します。通常、これらの演算子は非決定的であり、近接した候補とパラメーター空間でより遠くにある候補の両方を見つけて、局所的な最適化で立ち往生する問題を克服できるように設計できます。

ただし、EAアプローチの成功は、開発するモデルに大きく依存します。これは、高発現の可能性(過剰適合)と一般性(モデルがターゲット関数を表現できない可能性)のトレードオフです。

ニューラルネットワークは通常多層であるため、パラメーター空間は凸ではなく、局所的な最適値を含むため、勾配降下アルゴリズムは行き詰まる可能性があります。勾配降下は決定論的アルゴリズムで、近接を検索します。それが、ニューラルネットワークが通常ランダムに初期化される理由であり、複数のモデルをトレーニングする必要がある理由です。

さらに、ニューラルネットワークの各非表示ノードは、問題にうまく適合するようにニューラルネットワークを設計できるハイパープレーンを定義することを知っています。ニューラルネットワークの過剰適合を防ぐための手法がいくつかあります。

全体として、ニューラルネットワークは高速でトレーニングされ、わずかなeffordで妥当な結果が得られる可能性があります(いくつかのパラメーターを試してください)。理論的には、十分な大きさのニューラルネットワークは、すべてのターゲット関数を近似することができますが、反対側では、オーバーフィットしやすくなります。進化的アルゴリズムでは、良い結果を得るために多くの設計を選択する必要があります。最も難しいのは、どのモデルを最適化するかです。しかし、EAは非常に複雑な問題空間を(定義した方法で)検索し、すぐに良い結果を得ることができます。 AEは、問題(ターゲット機能)が時間とともに変化している場合でも成功を維持できます。

トムミッチェルの機械学習本: http://www.cs.cmu.edu/~tom/mlbook.html

進化的アルゴリズム(EA)は、教師なし学習に依存しているため低速です。EAは、一部のソリューションは他のソリューションよりも優れているが、それらを改善する方法 ではないと言われます。ニューラルネットワークは一般に高速であり、教師あり学習のインスタンスです。特定のパラメーターに対して関数空間内で勾配降下を使用することにより、ソリューションを改善する方法を知っています。これにより、有効なソリューションに迅速に到達できます。ニューラルネットワークは、他の方法が機能するための問題について十分な知識がない場合によく使用されます。

進化的アルゴリズム(EA)は、モデルをトレーニングする方法を表します。ここで、ニューロンネット(NN)はモデルです。最も一般的な文献では、逆伝播アルゴリズムを使用してNNがトレーニングされていることがわかります。この方法は数学者にとって非常に魅力的ですが、数式を使用してモデルのエラー率を表現できることが必要です。これは、近似しようとしている関数の多くの入力値と出力値を知っている状況の場合です。この問題は、微積分のおかげで達成できる損失関数の最小化として数学的にモデル化することができます(そして数学者がそれを好む理由です)。

しかし、ニューラルネットは、数式を数学的にモデル化するのが非常に難しい式である結果を最大化または最小化しようとするモデリングシステムにも役立ちます。たとえば、ニューロンネットはサイボーグの筋肉を制御してランニングを実現できます。異なる時間枠ごとに、モデルは、さまざまなセンサーからの入力に基づいて、サイボーグの体の各筋肉にどれだけの張力が存在するかを確立する必要があります。このようなトレーニングデータを提供することはできません。 EAは、モデルの評価方法を提供するだけでトレーニングを許可します。この例では、落下を罰し、サーフェス上の移動距離に報酬を与えます(一定の時間枠内)。 EAは、この意味で最善を尽くすモデルを選択するだけです。最初の世代は吸うが、驚くべきことに、数百世代後、そのような個人は非常に「自然」になります。動きと落ちることなく実行するために管理します。このようなモデルは、障害物や外部の物理的な力にも対処できる場合があります。

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