問題タブ [activation-function]
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.
neural-network - シグモイド - 逆伝播ニューラル ネットワーク
クレジット スコアリングに使用できるサンプル ニューラル ネットワークを作成しようとしています。これは私にとって複雑な構造なので、最初は小さく学ぼうとしています。
入力層 (2 ノード)、1 つの隠れ層 (2 ノード + 1 バイアス)、出力層 (1 ノード) を使用してネットワークを作成しました。これは、すべての層の活性化関数としてシグモイドを使用します。最初に a^2+b2^2=c^2 を使用してテストしようとしています。これは、入力が a と b になり、ターゲット出力が c になることを意味します。
私の問題は、入力値とターゲット出力値が (-/infty、+/infty) の範囲の実数であることです。したがって、これらの値をネットワークに渡すと、エラー関数は (target-network output) のようになります。それは正しいですか、正確ですか?ネットワーク出力 (0 から 1 の範囲) とターゲット出力 (多数) の差を取得しているという意味で。
解決策は最初に正規化することだと読みましたが、これを行う方法がよくわかりません。ネットワークに供給する前に、入力値とターゲット出力値の両方を正規化する必要がありますか? 正規化でさまざまな方法を読んだので、どの正規化関数を使用するのが最適ですか。最適化された重みを取得し、それらを使用していくつかのデータをテストした後、シグモイド関数のために 0 と 1 の間の出力値を取得しています。計算された値を正規化されていない/元の形式/値に戻す必要がありますか? または、入力値ではなくターゲット出力のみを正規化する必要がありますか? 望ましい結果が得られず、トレーニングアルゴリズムとテストに正規化のアイデアを組み込む方法がわからないため、これは本当に何週間も行き詰まりました..
どうもありがとうございました!!
machine-learning - 隠れ層ではなく、出力層でのみソフトマックスを使用するのはなぜですか?
私が見た分類タスク用のニューラル ネットワークのほとんどの例では、ソフトマックス層を出力活性化関数として使用しています。通常、他の隠れユニットは活性化関数としてシグモイド関数、tanh 関数、または ReLu 関数を使用します。ここでソフトマックス関数を使用すると、私の知る限り、数学的にもうまくいきます。
- ソフトマックス関数を隠れ層活性化関数として使用しないことの理論的正当性は何ですか?
- これに関する出版物はありますか?
python - 複数の活性化関数から構成されるニューラルネットワーク
sknn パッケージを使用してニューラル ネットワークを構築しています。使用しているデータセットのニューラル ネットワークのパラメーターを最適化するために、進化的アルゴリズムを使用しています。このパッケージを使用すると、各レイヤーに異なる活性化関数を持つニューラル ネットワークを構築できるので、それが実際的な選択なのか、それともネットごとに 1 つの活性化関数を使用するだけでよいのか疑問に思っていました。ニューラル ネットワークに複数の活性化関数を持たせることは、ニューラル ネットワークに害を及ぼしますか?
また、レイヤーごとに必要なニューロンの最大量と、ネットごとに必要なレイヤーの最大量は?
java - アクティベーション関数はどのくらい正確である必要があり、その入力はどれくらい大きくなりますか?
私は Java で基本的なニューラル ネットワークを作成しており、活性化関数を作成しています (現在、シグモイド関数を作成しています)。トレーニングに実際に妥当な時間がかかることを期待して、double
( に並べて) sを使用しようとしています。BigDecimal
ただし、関数がより大きな入力では機能しないことに気付きました。現在、私の機能は次のとおりです。
この関数は when までかなり正確な値を返しますが、関数が を返すt = -100
ときです。入力が正規化されている場合の典型的なニューラルネットワークでは、これで問題ありませんか? ニューロンは、入力の合計が ~37 を超えることはありますか? 活性化関数に与えられる入力の合計のサイズが NN ごとに異なる場合、それに影響を与える要因にはどのようなものがありますか? また、この機能をより正確にする方法はありますか? より正確かつ/またはより高速な代替手段はありますか?t >= 37
1.0
machine-learning - LSTMでtanhを使用することの直感は何ですか?
LSTM ネットワーク ( LSTM について) では、入力ゲートと出力ゲートが tanh を使用するのはなぜですか?
この背後にある直感は何ですか?
それは単なる非線形変換ですか?もしそうなら、両方を別のアクティベーション関数 (ReLU など) に変更できますか?
neural-network - ラベルが確率である場合の回帰のための TensorFlow モデルのトレーニング
出力が確率 ([0, 1] 区間) を表す単なる実数値であるニューラル ネットワーク (フィード フォワード ネットワークなど) をトレーニングします。最後の層 (つまり、出力ノード) にはどのアクティベーション関数を使用すればよいですか?
活性化関数を使用せずに出力tf.matmul(last_hidden_layer, weights) + biases
するだけの場合、負の出力が得られる可能性がありますが、これは受け入れられません。出力は確率であり、予測も確率である必要があるためです。tf.nn.softmax
またはモデルを使用するtf.nn.softplus
と、テスト セットで常に 0 が返されます。なにか提案を?