問題タブ [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.
matlab - アイリスデータセットnntool matlabに入れる「ターゲット」は何ですか?
私はmatlabを初めて使用するので、これは簡単かもしれません。nntool(フィードフォワード逆伝播ネットワーク)を使用して、matlab でアイリス データセット ニューラル ネットワークを作成しようとしています。しかし、ターゲットマトリックスがどうあるべきかわかりません。また、nntools を使用する代わりに同じことをプログラミングするためのコードを見つけようとしています (作成しようとしましたが、まだ何もしませんでした)。誰でも私を助けることができますか?
machine-learning - ANN トレーニング セットのスケーリング
現在、分類タスクのためにバックプロパゲーションを使用して ANN に取り組んでいます。ただし、使用しているデータセットの正規化について少し混乱しています(強力な統計/確率の背景がありません)。
データのサンプルを以下に示します。
それぞれの最後のトークンはクラスです。
現在、シグモイド伝達関数を使用しているため、ネットワークは明らかに 1 より大きい値を出力できないため、データを正規化/スケーリングする必要があります。
私の最初の質問; 機能とクラスの両方をスケーリングする必要がありますか、それともクラスのみをスケーリングする必要がありますか?
私の2番目の質問は、そのようなスケーリングを行うための「事実上の」または一般的に使用される方法はありますか?
よろしく、ジャック・ハント
neural-network - トレーニング セットの入力セグメントのみを正規化する必要がありますか?
入力と出力の両方または入力セグメントの両方のトレーニング セット全体に適用する必要があるかどうかに関係なく、必要なデータの正規化で十分であることを知りたいです。
matlab - バックプロパゲーション アルゴリズム (Matlab): 出力値は 1 に飽和しています
これらのメモに基づいて、Matlab でバックプロパゲーション アルゴリズムをコーディングしました: http://dl.dropbox.com/u/7412214/BackPropagation.pdf
私のネットワークは、長さ 43 の入力/特徴ベクトルを取り、隠れ層に 20 個のノード (変更可能な任意のパラメーターの選択) を持ち、単一の出力ノードを持ちます。43 個の特徴を取り、0 から 100 までの単一の値を出力するようにネットワークをトレーニングしたいと考えています。入力データはゼロ平均と単位標準偏差に正規化され (z = x - 平均 / 標準偏差を介して)、「1バイアスを表すベクトルを入力する項。私の targetValues は、0 から 100 までの単一の数値です。
私のコードの関連部分は次のとおりです。
(慣例により、層 I (i) は入力層を指し、J (j) は隠れ層を指し、K (k) は出力層を指します。この場合、単一ノードです。)
また、重み行列は次のように初期化されます。
「sigmoidVector」関数は、ベクトル内のすべての要素を取り、適用しますy = 1 / (1 + exp(-x))
。
コードの最初から、デバッグ メッセージは次のようになります。
明らかに、出力値が 0 から 100 の間になるようにネットワークをトレーニングして、それらのターゲット値に一致させたいと考えています。
さらに情報が必要な場合は、できる限り提供します。
matlab - オクターブバックプロパゲーションの実装の問題
問題が発生している最急降下逆伝播を実装するコードを作成しました。Machine CPUデータセットを使用しており、入力と出力を範囲[01]にスケーリングしました。
matlab/octaveのコードは次のとおりです。
最急降下法の逆伝播
予測する
RMSE関数
また、R RSNNSパッケージを使用して同じデータセットをトレーニングしmlp
ました。トレインセットのRMSE(最初の100例)は約0.03です。しかし、私の実装では、0.14より低いRMSEを達成することはできません。また、学習率が高くなるとエラーが大きくなることがあり、学習率が高くないとRMSEが0.14より低くなることがあります。また、私が参照した論文では、列車セットのRMSEは約0.03であると報告されています
コードのどこに問題があるのか知りたかったのです。Raul Rojasの本を読み、問題がないことを確認しました。
java - Java - ニューラル ネットワークの名義属性の正規化と非正規化
こんにちは、逆伝播を使用してトレーニングされる単純な多層ネットワークを構築しています。現時点での私の問題は、データセット内の一部の属性が公称 (非数値) であり、それらを正規化する必要があることです。私は最善のアプローチが何であるかを知りたかったのです。私は、属性ごとに個別の値がいくつあるかを数え上げ、それぞれに 0 と 1 の間の等しい数を割り当てるという方針に沿って考えていました。たとえば、属性の 1 つに A から E の値があった場合、次のようにすると適切でしょうか?:
私の質問の 2 番目の部分は、出力を非正規化して公称値に戻すことです。数値表現を取得するために、最初にデータセット内の個別の出力属性値ごとに上記と同じことを行いますか? また、ネットワークから出力を取得した後、どちらの数値に近いかを確認するだけですか? たとえば、出力として 0.435 を取得し、出力属性値が次のように割り当てられた場合:
y (0.5) である出力 (0.435) に最も近い値を見つけるだけですか?
python - Python - 多層パーセプトロン、バックプロパゲーション、XOR を学習できない
バックプロパゲーションを使用して多層パーセプトロンを実装しようとしていますが、それでも彼に XOR を教えることはできません。数学の範囲エラーもよく発生します。ルールとエラー逆伝播法を学ぶために本とグーグルを調べましたが、それでも自分の間違いがどこにあるのかわかりません
machine-learning - インクリメンタル(オンライン)バックプロパゲーション停止基準
バックプロパゲーションANNのオンライン実装では、停止基準をどのように決定しますか?
私がこれを行ってきた方法(これは間違いだと思います)は、各出力ノードのエラーを平均してから、このエラーを各エポックで平均することです。
これは間違った方法ですか?オンライン実装を停止する標準的な方法はありますか?
neural-network - 大きな線形出力によるニューラル ネットワークのトレーニング
強化学習と組み合わせて使用したいフィード フォワード ニューラル ネットワークをプログラミングしています。アクティベーション関数として tanh を持つ 1 つの非表示レイヤーと、線形出力レイヤーがあります。
[0,1] に正規化された 3 つの入力があります。環境から受け取った報酬を与える 3 つの出力ノードもあります。報酬は常にマイナスです。最初に、選択したアクションが悪い決定につながる場合、それは -50000 のようになる可能性があり、良い決定では -5 になる可能性があります。
バックプロパゲーションの実装に苦労しています。報酬が非常に大きいため、エラー値が大きくなり、大きな重みが作成されます。数回のトレーニング ラウンドの後、非表示レイヤーへの重みが非常に大きくなり、非表示レイヤーのノードは値 -1 または 1 しか作成しません。
これは私のコードです:
python - 次の入力/出力に逆伝播アルゴリズムを実装する方法は?
次の入力に対して、Python または C++ で逆伝播アルゴリズムを実装したいと考えています。
ここで、最初のタプルは入力で、2 番目のタプルは出力です。私がインターネットで検索した逆伝播アルゴリズムの実装はすべて、分類手順 (1 または 0) を使用しています。
与えられた入力/出力のセットは、チェッカー ゲーム用のニューラル ネットワークを開発するためのものです。チェスの実装に使用されるのと同じ手法を使用していると思います。
このためのアルゴリズムを開発することは可能ですか? これを実行するためのガイドラインまたは実装方法を教えてください。OpenCV関数も使用できます。