問題タブ [backpropagation]
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.
c - NeuralNetworkバックプロパゲーションの質問
他の多くの人々のニューラルネットワークコードを読んだ後、私は自分のコードに何かが正しくないと確信しています。それは機能し、ネットワークをトレーニングできます。隠れ層で次のパーセプトロンをトレーニングするには、最後のパーセプトロンをトレーニングする必要があります。隠れ層のすべてのユニットを並行してトレーニングできるのではないでしょうか。
隠れ層のエラーを計算するコードは次のとおりです。
これは次のようになります(ただし、これは機能しません):
単一のパーセプトロンではなく、レイヤー全体に対して合計変数を宣言する必要があるのはなぜですか?
neural-network - 移動ロボットのナビゲーションのためのニューラル ネットワーク
人工ニューラル ネットワークを使用してモバイル ロボットのナビゲーションを設計する場合、フィード フォワード メソッドの代わりにバック プロパゲーション メソッドを使用することが好まれるのはなぜですか?
neural-network - ニューラルネットワークで適応学習率を実行するときに使用する乗算および加算係数はどれですか?
私はニューラル ネットワークに不慣れで、問題を把握するために、基本的なフィードフォワード MLP を実装しました。現在、逆伝播によってトレーニングしています。より洗練されたより良い方法があることは承知していますが、Introduction to Machine Learningでは、1 つまたは 2 つのトリックを使用すると、基本的な勾配降下法が現実世界のデータから学習するのに効果的であることが示唆されています。トリックの 1 つは適応学習率です。
考え方としては、誤差が小さくなると学習率を定数 a だけ増やし、誤差が大きくなると学習率の分数bだけ減らすというものです。したがって、基本的に学習率の変化は次のように決定されます。
正しい方向に学習している場合
私たちが学習を台無しにしている場合。ただし、上記の本には、これらのパラメーターの設定方法に関するアドバイスはありません。パラメーターの調整はそれ自体が全体のトピックであるため、正確な提案は期待できませんが、少なくともその大きさについてのヒントにすぎません。何か案は?
ありがとう、
トゥヌズ
matlab - ファジィクラスタリングニューラルネットワークを使用したベイジアンビリーフネットワーク/システム
多くの研究では、人工ニューラルネットワーク(ANN)は、従来の方法と比較して侵入検知システム(IDS)のパフォーマンスを向上させることができると主張しています。ただし、ANNベースのIDSの場合、特に低頻度の攻撃の検出精度と検出の安定性を強化する必要があります。新しいアプローチはFC-ANNと呼ばれ、ANNとファジークラスタリングに基づいて、問題を解決し、IDSがより高い検出率、より少ない誤検出率、およびより強力な安定性を達成できるようにします。FC-ANNの一般的な手順は次のとおりです。まず、ファジークラスタリング手法を使用してさまざまなトレーニングサブセットを生成します。続いて、さまざまなトレーニングサブセットに基づいて、さまざまなANNモデルがトレーニングされ、さまざまな基本モデルが作成されます。最後に、メタラーナーであるファジー集計モジュールを使用して、これらの結果を集計します。
質問:
ベイジアンビリーフネットワーク/システムをファジークラスタリングニューラルネットワークと組み合わせて侵入検知を行うことは可能でしょうか?
誰かが私が遭遇するかもしれない問題を予見できますか?あなたの入力は最も価値があります。
c# - ニューラル ネットワークの逆伝播、トレーニングのエラー
ニューラル ネットワーク (バックプロパゲーション) に関するいくつかの記事を読んだ後、単純なニューラル ネットワークを自分で作成しようとしています。
XORニューラルネットワークを決定しました。私の問題は、ネットワークをトレーニングしようとしているときです。ネットワークをトレーニングするために1つの例のみを使用する場合、1,1,0(input1、input2、targetOutputとして)としましょう。500 本の列車の後 +- ネットワークの回答は 0.05 です。しかし、私が複数の例を試している場合(2つの異なる可能性または4つの可能性すべてを考えてみましょう)、ネットワークは出力として0.5を目指しています:(私はGoogleで自分の間違いを検索しましたが、結果はありませんでした:Sはできるだけ多くの詳細を提供しようとします何が間違っているかを見つけるのを助けるために:
- 2,2,1 および 2,4,1 (inputlayer、hiddenlayer、outputlayer) のネットワークを試しました。
- 以下によって定義されるすべてのニューラルの出力:
一方、「i」は現在のレイヤーで、重みは前のレイヤーのすべての重みです。
- 最後のレイヤー (出力レイヤー) エラーは次のように定義されます。
一方、'value' はニューラル出力で、'targetvalue' は現在のニューラルのターゲット出力です。
-他のニューラルのエラーは次のように定義されます:
-ネットワーク内のすべての重みは、この式によって適応されます (ニューラルからの重み -> ニューラル 2)
LearnRate はネットワーク学習率です (私のネットワークでは 0.25 と定義されています)。-各ニューラルのバイアス重みは次のように定義されます。
バイアスは const value=1 です。
出力はさまざまなトレーニング例で0.5になることを目指していると言ったので、私が詳細に説明できることはほとんどすべてです:(
大変お世話になりました^_^。
artificial-intelligence - XOR 演算子を認識するバックプロパゲーション ニューラル ネットワークにバイアス ニューロンが必要なのはなぜですか?
昨日、XOR 演算子のバックプロパゲーション ニューラル ネットワークに関する問題について質問を投稿しました。もう少し調べてみると、バイアス ニューロンがないことに関係している可能性があることがわかりました。
私の質問は、バイアス ニューロンの一般的な役割と、XOR 演算子を認識するバックプロパゲーション ニューラル ネットワークにおけるバイアス ニューロンの役割は何かということです。バイアスニューロンなしで作成することは可能ですか?
neural-network - XORニューラルネットワークエラーはトレーニング中に減少を停止します
確率的勾配降下法を使用したバックプロパゲーションを介してXORニューラルネットワークをトレーニングしています。ニューラルネットワークの重みは、-0.5〜0.5のランダムな値に初期化されます。ニューラルネットワークは、約80%の時間で正常にトレーニングを行います。ただし、バックプロパゲーション中に「スタック」することがあります。「スタック」とは、エラー訂正率の低下が見られるようになることを意味します。たとえば、トレーニングが成功している間、ネットワークが学習すると、エラーの合計はかなり急速に減少します。
ただし、スタックすると、エラーの総数は減少しますが、減少率のようです。
ニューラルネットワークについて読んでいるときに、ローカルミニマとグローバルミニマについて、そしてニューラルネットワークがどのミニマに向かっているのかを実際に「認識」していないという議論に出くわしました。
ネットワークがグローバル最小値ではなくローカル最小値でスタックしていますか?
artificial-intelligence - 活性化関数と初期の重みの選択は、ニューラルネットワークが極小値でスタックするかどうかに関係がありますか?
私は昨日、ニューラルネットワーク(確率的勾配降下法を使用したバックプロパゲーションを介してトレーニングしている)が極小値でスタックしていないかどうかを尋ねるこの質問を投稿しました。次の論文では、XORニューラルネットワークの極小値の問題について説明しています。最初の論文では極小値の問題はないと述べていますが、次の論文(1年後に書かれた)では、2-3-1 XORニューラルネットワークに極小値の問題があると述べています(余談ですが、私は3-3-1を使用しています。つまり、入力層と非表示層にバイアスをかけています)。これらは両方とも要約です(私は完全な論文にアクセスできないので、それを読むことができません):
- XORには極小値がありません:ニューラルネットワークのエラー表面分析のケーススタディ。 ハミーLGによる。オーストラリア、シドニー、マッコーリー大学コンピューティング学部
- 2-3-1XORネットワークの極小値。 Sprinkhuizen-Kuyper IG、BoersEWによる。
最も単純なXORネットワークの極小値はないという別の論文[PDF]もありますが、2-3-1ネットワークについて話しているようには見えません。
さて、私の実際の質問に移ります。活性化関数の選択、初期の重み、そしてこれがニューラルネットワークが極小値でスタックするかどうかにどのような影響を与えるかについて議論するものは何も見つかりませんでした。私がこの質問をしている理由は、私のコードで標準のシグモイド活性化関数と双曲線正接活性化関数を使用しようとしたためです。前者の場合、私は約20%の時間しかスタックしないのに対し、後者の場合、私ははるかに頻繁にスタックする傾向があることに気づきました。また、最初にネットワークを初期化するたびに重みをランダム化しているので、特定のランダムな重みのセットがニューラルネットワークを「スタック」させるためにもっと配置されているのではないかと思います。
活性化関数に関して言えば、エラーは最終的には活性化関数によって生成される出力に関連しているので、効果がある(つまり、エラーの表面が変化する)と思います。ただし、これは単に直感に基づいているため、具体的な答えをお勧めします(両方の点で、初期の重みと活性化関数の選択)。
backpropagation - Snarli を使用した経時的なバックプロパゲーション
この質問は、時間によるバックプロパゲーションに Snarli を使用することを推奨する次の投稿から生じました。通常のバックプロパゲーションで試してみたところ、うまく機能しました。ただし、時間の経過によるバックプロップについてはわかりません。ドキュメントが限られているため、その方法がよくわかりません。BpptUpdate を使用しましたが、レイヤーにモメンタム タームを設定する必要があります。これには少し混乱しています(どのレイヤーをどのように設定するか)。
とにかく、迅速な対応を求めているところですが、おそらく Snarli を使用したことのある非常に限られたユーザーであることは理解しています。私の次のステップは、何も聞こえない場合は著者に電子メールを送信することであり、回答を投稿できると考えました.
artificial-intelligence - ニューラルネットワークへの入力の順序をランダム化する効果
私の高度なアルゴリズムとデータ構造のクラスでは、教授から興味のあるトピックを選択するように求められました。彼はまた、それを研究し、それに解決策を実装しようと私たちに言いました。長い間学びたかったので、ニューラルネットワークを選びました。
ニューロンがアクティベーターのステップ関数を使用するニューラルネットワークを使用して、AND、OR、およびXORを実装することができました。その後、XOR演算子の認識を学習する逆伝播ニューラルネットワークを実装しようとしました(シグモイド関数をアクティベーターとして使用)。3-3-1ネットワークを使用することで、これを90%の時間で機能させることができました(入力層と隠れ層で1つのバイアス、重みはランダムに初期化されます)。また、極小値と思われるものにとらわれているように見えることもありますが、よくわかりません(これについては以前に質問したことがあり、極小値はないはずだと言われています)。
それが機能していた時間の90%で、私は一貫して次の順序で入力を提示していました:[0, 0], [0, 1], [1, 0], [1, 0]
期待される出力をに設定しました[0, 1, 1, 0]
。一貫して同じ順序で値を提示すると、ネットワークは最終的にパターンを学習します。各エポックでまったく同じ順序である限り、実際に送信する順序は重要ではありません。
次に、トレーニングセットのランダム化を実装したので、今回は入力の順序が十分にランダム化されています。ニューラルネットワークがスタックし、エラーが減少していることに気づきましたが、速度は非常に小さいです(各エポックで小さくなっています)。しばらくすると、エラーは値の周りで振動し始めます(したがって、エラーは減少しなくなります)。
私はこのトピックの初心者であり、これまでに知っていることはすべて独学です(チュートリアルや論文などを読む)。入力の表示順序によってネットワークの動作が変わるのはなぜですか?これは、エラーの変化が1つの入力から次の入力まで一貫しているため(順序が一貫しているため)、ネットワークが学習しやすくなるためですか?
これを修正するにはどうすればよいですか?バックプロパゲーションアルゴリズムを調べて、正しく実装されていることを確認します。現在、学習率と勢いで実装されています。適応学習率のような他の拡張機能を検討しています。ただし、XORネットワークは非常に単純なネットワークとして表現されることが多いため、高度なバックプロパゲーションアルゴリズムを使用する必要はないと考えています。