問題タブ [biological-neural-network]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
artificial-intelligence - 脳のモデリング
PC あたり 1 テラフロップスに達したにもかかわらず、昆虫の脳をモデル化することはまだできていません。自己学習型、自己開発型のニューラル ネットワークの適切な実装を見た人はいますか?
neural-network - デュアルニューラルネットワーク実験(1つは論理的、もう1つは感情的)?
私たちが知る限り、あなたの脳の半分は論理的であり、残りの半分は感情的であり、感情的な側面の欲求はそれらの欲求を満たすために論理的な側面に供給されます。2つの別々のニューラルネットワークを相互に接続して(1つは感情的になるように訓練され、もう1つは論理的に訓練される)、それがほぼ自由意志のような「脳」になるかどうかを調べるために行われた研究はありますか?
ニューラルネットワークは人間の脳の生物学的シナプスをモデルにしていることを除けば、私は実際には何も知りません。それが私が尋ねる理由です。
訓練されたニューラルネットワークでさえ論理的に機能しないことがあることを考えると、これが可能かどうかさえわかりません(別名、訓練したと思ったことを実行してください)。
machine-learning - スパイキング ニューラル ネットワーク
スパイキング ニューラル ネットワークの分野で最初に読むべき本はどれですか? 2002 年に出版されたGerstner の"Spiking Neuron Models"について知っています。私は数学と人工ニューラル ネットワークのバックグラウンドを持っています。
このドメインに優れた記事や概要があれば、それらもリストに追加してください。
ありがとう。
後で編集
カレルの答え:
" それはニューラル ネットワークのスパイクが何を意味するかによって異なります - 少なくともいくつかの基本的な観点があります. Gerstner は最初のものを表しています - 彼は生物学的ニューロンのモデリングに焦点を当てています. そして 2002 年の彼の本は、バイオを理解するための本当に良い出発点です. - ニューロンの物理モデル 過去には、この本を html でも見つけることができました ..
一方、コンピューター サイエンスの文脈における「スパイキング ニューロン」とは、通常、SRMo モデル (Spike Response Model) を意味し、従来のパーセプロン ベースのネットワークの代替としても使用できます。
このモデルは、Wolfgang Maass ( http://www.igi.tugraz.at/maass/ ) の著作で非常によく説明されています。彼はモデルの計算能力に注目し、SRM モデルをパーセプロンおよび RBF ユニットと比較しています。
モデルをネットワークで使用する場合は、SpikeProp アルゴリズムを導出したSander Bohte ( http://homepages.cwi.nl/~sbohte/ ) の作品をお勧めします。
(私は、実際のアプリケーションに使用するのに十分な速さの SpikeProp のバリアントを個人的に派生させました。)"
matlab - matlab でニューラル ネットワークの X-OR コードが欲しい
ニューラルネットワークのプロジェクトをやっています。AND、OR、X-OR、または matlab の小さなアプリケーションのデモ コードが必要です。ありがとう
artificial-intelligence - ニューラルネットワークに「痛み」を与える
無指向性ニューラルネットワークをプログラムしました。脳のようなもので、すべてのニューロンが同時に更新され、明示的なレイヤーはありません。
今、私は疑問に思っています、痛みはどのように機能しますか?「痛み」信号が痛みを取り除くために何かをしたくなるようにニューラルネットワークを構築するにはどうすればよいですか。
c# - 初めてのアルゴリズムの作成
やあみんな、私自身のためのまったく新しいプロジェクトでまた戻ってきました。以前の投稿では、特定の仕事をするためのプログラミングに慣れていましたが、慣れるのはかなり簡単でしたが、今では、より創造的なプログラミングで何ができるかを見たいと思っています.
そこで、アルゴリズムに関連する一連の質問をします。スクービーが本当に何であるか、またはスクービーを書く方法を持っていません。しかし、私が興味を持っているのはGA(遺伝的アルゴリズム)です。
私は何を試みて達成しようとしているのかを分解しましたが、プログラムで考えて自分の道に進むには、開始点といくつかのプログラミング (コンソール c#) が必要です。読んで楽しんで、私の道を助けてくれることを願っています。
すべての生物は細胞からできています。各細胞には同じ染色体のセットがあります。染色体は DNA のひもであり、生物全体のモデルとして機能します。染色体は、遺伝子、つまり DNA のブロックで構成されています。各遺伝子は特定のタンパク質をコードしています。基本的に、各遺伝子は目の色などの特徴をコードしていると言えます。特性 (青、茶色など) の可能な設定は対立遺伝子と呼ばれます。各遺伝子は、染色体内で独自の位置を持っています。この位置を軌跡と呼びます。
遺伝物質の完全なセット (すべての染色体) はゲノムと呼ばれます。ゲノム内の特定の遺伝子セットは、遺伝子型と呼ばれます。遺伝子型は、生物の表現型、目の色、知性などの身体的および精神的特徴の基礎となる出生後の発達に伴います。
基本的な遺伝的アルゴリズムの概要
- [開始] n 個の染色体のランダムな母集団を生成します (問題の適切な解)
- [適応度]集団内の各染色体 x の適応度 f(x) を評価する
- 【新しい集団】新しい集団が完成するまで、以下の手順を繰り返して新しい集団を作成する 1. 【選択】母集団から適応度に応じて 2 つの親染色体を選択する (適応度が高いほど、選択される可能性が高くなる) 2. [クロスオーバー] ]交差確率で親を交差させて、新しい子孫 (子供) を形成します。クロスオーバーが実行されなかった場合、子孫は親の正確なコピーです。3. [Mutation]突然変異の確率で、各遺伝子座(染色体上の位置)で新しい子孫を突然変異させます。4. [承認] 新しい子孫を新しい集団に配置する
- [置換]アルゴリズムをさらに実行するために新しく生成された母集団を使用する
- [テスト]終了条件が満たされた場合は停止し、現在の母集団での最適解を返します
- [ループ]ステップ 2 へ
染色体のコード化
染色体には、それが表す解に関する情報が何らかの形で含まれているはずです。最もよく使用されるエンコード方法は、バイナリ文字列です。染色体は次のようになります。
各染色体には 1 つのバイナリ文字列があります。この文字列の各ビットは、ソリューションの特性を表すことができます。または、文字列全体で数値を表すこともできます。これは、基本的な GA アプレットで使用されています。
もちろん、エンコードの方法は他にもたくさんあります。これは主に解決された問題に依存します。たとえば、整数または実数を直接エンコードできます。場合によっては、いくつかの順列などをエンコードすると便利です。
クロスオーバー
使用するエンコーディングを決定したら、クロスオーバーへのステップを踏み出すことができます。交差は、親染色体から遺伝子を選択し、新しい子孫を作成します。これを行う最も簡単な方法は、ランダムに交点を選択し、この点より前のすべてを最初の親からコピーし、次に交点より後のすべてを 2 番目の親からコピーすることです。
クロスオーバーは次のようになります ( | はクロスオーバー ポイントです)。
クロスオーバーを作成する方法は他にもあります。たとえば、より多くのクロスオーバー ポイントを選択できます。クロスオーバーはかなり複雑になる可能性があり、染色体のエンコーディングのエンコーディングに大きく依存します。特定の問題に対して作成された特定の交叉は、遺伝的アルゴリズムのパフォーマンスを向上させることができます。
突然変異
クロスオーバーが実行された後、突然変異が発生します。これは、母集団内のすべての解が、解かれた問題の局所最適解に陥るのを防ぐためです。突然変異は新しい子孫をランダムに変化させます。バイナリ エンコーディングでは、ランダムに選択されたいくつかのビットを 1 から 0 または 0 から 1 に切り替えることができます。ミューテーションは次のようになります。
突然変異は、エンコーディングとクロスオーバーに依存します。たとえば、順列をエンコードしている場合、突然変異は 2 つの遺伝子を交換している可能性があります。
api - イベント駆動型ニューラルネットワークシミュレーション
単純なフィードフォワードネットワークではなく、実際の脳のアーキテクチャに触発された一連のイベント駆動型ニューラルネットワークの構築を検討しています(参照フレームについては、HTMアルゴリズムに近くなります)。ネットワーク内のニューロンを、実際のニューロンに似たものに単純化したいと思います。
-他のニューロンへの一連のポインタと必要な接続データが含まれています。
-アクティブ化がしきい値を超えたかどうかに対応する値が含まれます。
-しきい値を超えると、ニューロン内のメソッドによって処理されるイベントがトリガーされ、接続の重みが更新され、接続されたニューロンのアクティブ化が更新されます。
私の見方では、イベント駆動型の性質により、ネットワークは複数のプロセッサでアクティベーションイベントを評価できます。また、ネットワークがローカルで更新されるという事実は、監視ありトレーニングを必要としないことを意味します。私はイベント駆動型プログラミング(wxPythonをいじった)にかなり慣れていないので、2つの質問をする必要があります。
シミュレーションを目的とした優れたイベント駆動型APIはありますか、それともopenglなどから必要な機能を抽出するだけでよいですか?
イベントをスキップせずに、特定の期間に発生する可能性のあるイベントの数を制限する方法について何か提案はありますか?シミュレーションは連鎖反応であり、適切に処理されない場合、すべてのプロセッサを消費します。
artificial-intelligence - ニューラル ネットワークが収束しない
私はニューラルネットワークとプログラミング全般に不慣れです。Java でニューラル ネットワークを作成し、サッカーのデータを見ています。2 つの入力があります。
1) ホームチームの n 試合での勝率 2) アウェイチームの n 試合での勝率 %
「標準的な統計モデル」を使用すると、これら 2 つの数字だけを使用して、妥当な精度で試合で発生するゴールの数を予測できます。ただし、目標数を予測するために NN をトレーニングしようとすると、単純に収束しません:(
私は遺伝的アルゴリズムを使用してネットワークをトレーニングしています。これは、人口サイズが 100,000 の最初の数世代の最も適した個体です。
1) 0.1407408056662556 2) 0.13406266176967252 3) 0.13406267600215235 4) 0.1338753567259805 5) 0.13280257001618265 6) 0.13275165964860766 7) 0.1319768652096691 8) 0.13161029326238236
収束しているように見えることがわかりましたが、非常に遅い速度で収束しており、これを何世代にもわたって何度も実行しましたが、0.13 を下回ることはありません。
10 個のニューロンからなる 1 つの隠れ層と 1 つの出力ニューロンを備えたフィードフォワード ニューラル ネットワークを使用しています。隠れ層で双曲線正接シグモイド関数を使用し、出力層でシグモイド関数を使用しています。目標数を 10 で割って、0 から 1 の間の出力を得ました。
これを実行する前は、NN は単純な統計モデルよりも優れていると思っていましたが、実際にはそうではありませんでした。私の質問は:
表示される結果から、コードのどこかにエラーがあるように見えますか? ネットワークのアーキテクチャを変更する必要がありますか? ネットワーク入力/トレーニング データを何らかの方法で変更する必要がありますか?
私はしばらくの間、問題を特定しようとしてきましたが、それは私を精神的に駆り立てています. どんなアドブも大歓迎です。
どうもありがとう。
machine-learning - ニューラルネットワークで重みベクトルが決定平面に直交するのはなぜですか
私はニューラルネットワークの初心者です。私はパーセプトロンについて学んでいます。私の質問は、なぜ重みベクトルが決定境界(超平面)に垂直なのですか?私は多くの本を参照しましたが、すべてが重みベクトルが決定境界に垂直であると述べていますが、誰も理由を言っていませんか?
誰かが私に本の説明や参照を教えてもらえますか?