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