問題タブ [cross-entropy]
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.
python - Python NLTK:総エントロピーと単語ごとのエントロピーの違いは何ですか?
NLTK を使用して、特定のテキストの合計クロス エントロピーと単語ごとのクロス エントロピーの両方を見つける必要があります。
具体的には、ここでエントロピー関数を使用しています... http://www.nltk.org/_modules/nltk/model/ngram.html
...しかし、これが合計または単語ごとのクロスエントロピーを計算するかどうか、および他のものを計算する方法がわかりません。
誰かが私に洞察を提供できますか?
tensorflow - TensorFlow: ロジットはクロス エントロピー関数に対して正しい形式ですか?
よし、tf.nn.softmax_cross_entropy_with_logits()
Tensorflow で関数を実行する準備が整いました。
「ロジット」は確率のテンソルでなければならないというのが私の理解です。それぞれが、最終的に「犬」や「トラック」などになる画像の一部である特定のピクセルの確率に対応しています...有限物の数。
これらのロジットは、次のクロス エントロピー方程式に組み込まれます。
私が理解しているように、ロジットは方程式の右側に差し込まれています。つまり、それらはすべての x (画像) の q です。それらが 0 から 1 までの確率である場合、それは私には理にかなっています。しかし、コードを実行してロジットのテンソルになってしまうと、確率が得られません。代わりに、正と負の両方のフロートを取得しています。
私の質問は...そうですか?どうにかしてすべてのロジットを計算し、それらを 0 から 1 までの確率に変換する必要がありますか?
machine-learning - 平均二乗誤差よりクロスエントロピーが優先されるのはどのような場合ですか?
上記の方法は両方とも、予測の精度が高いため、より良いスコアを提供しますが、それでもクロスエントロピーが優先されます。それはすべての場合ですか、それとも MSE よりもクロスエントロピーを好むいくつかの特殊なシナリオがありますか?
theano - Binary-CrossEntropy - Keras では動作しますが、ラザニアでは動作しませんか?
Keras と Lasagne で同じ畳み込みニューラル ネットワーク構造を使用しています。今、単純なネットワークに変更して何かが変わったかどうかを確認しましたが、何も変わりませんでした。
Keras では問題なく動作し、0 から 1 の間の値を高い精度で出力します。ラザニアでは、値はほとんど間違っていません。出力は入力と同じようです。
基本的に:ケラスでうまく出力してトレーニングします。しかし、私のラザニアバージョンではありません
ラザニアの構造 :
ケラスで:
そしてKerasで訓練する..
そして、 Lasagne でトレーニングして予測するには:
訓練する :
そして、これらのイテレータを使用していますが、それが原因ではないことを願っています..多分そうですか?
予測するには:
これは印刷します:
結果は完全に間違っています。しかし、私を混乱させているのは、ケラスでうまく出力されることです。
また、検証アカウントは変更されません。
助けてください!私は何を間違っていますか?
使用されている形状は次のとおりです。
python - Python - ログで無効な値が検出されました
次の表現があります。
log = np.sum(np.nan_to_num(-y*np.log(a+ 1e-7)-(1-y)*np.log(1-a+ 1e-7)))
次の警告が表示されます。
何が無効な値なのか、またはなぜそれが得られるのかわかりません。どんな助けでも大歓迎です。
注: これはクロス エントロピー コスト関数であり、1e-7
log 内にゼロが含まれないようにするために追加しました。y
&a
は numpy 配列であり、numpy
としてインポートされnp
ます。
python - tf.nn.softmax_cross_entropy_with_logits はバッチ サイズを考慮していますか?
tf.nn.softmax_cross_entropy_with_logits
バッチサイズを考慮していますか?
私の LSTM ネットワークでは、さまざまなサイズのバッチをフィードしています。最適化する前に、バッチ サイズに関してエラーを正規化する必要があるかどうかを知りたいです。
perceptron - シグモイド活性化 MLP の重み学習ルールにデルタ成分が表示されない
概念の基本的な証明として、入力 x、バイアス b、出力 y、S サンプル、重み v、および t 教師信号で K クラスを分類するネットワークで、一致するサンプルが k クラスの下にある場合、t(k) は 1 に等しくなります。
x_(is) が s_(th) サンプルの i_(th) 入力フィーチャを表すとします。v_(ks) は、s_(th) サンプル内のすべての入力から k_(th) 出力への接続の重みを保持するベクトルを表します。t_(s) は、s_(th) サンプルの教師信号を表します。
上記の変数を拡張して複数のサンプルを考慮する場合、変数 z_(k)、アクティベーション関数 f(.) を宣言し、corss エントロピーをコスト関数として使用しながら、以下の変更を適用する必要があります 。
通常、学習ルールでは、デルタ ( t_(k) - y_(k) ) が常に含まれますが、なぜデルタがこの式に表示されないのですか? 何か見逃したことがありますか、または表示されるデルタ ルールは必須ではありませんか?
python - テンソルフローの sparse_softmax_cross_entropy_with_logits 関数の元のコーディングはどこですか
テンソルフロー関数sparse_softmax_cross_entropy_with_logitsが数学的に正確に何をしているのか知りたいです。しかし、コーディングの起源を見つけることができません。手伝って頂けますか?
python - 多くのレルスのネットワークを使用するとクロスエントロピー損失関数が巨大になるのはなぜですか?
私はこの損失関数を持っています:
train_logits
次のように構築されたパイプラインから定義されます。
、 、および は次のlayer_sizes
ようweights
にbiases
構成されます。
arg('act-func')
is relu の場合、relu の長いチェーンを構築すると ( arg('layers')
beingのように[750, 750, 750, 750, 750, 750]
)、損失関数は巨大になります。
relus のチェーンが短い場合 (つまりarg('layers')
is only [750]
)、損失関数は小さくなります。
私の質問は、なぜ損失関数がそれほど劇的に異なるのですか? 私が理解しているように、ロジットの出力はソフトマックス化されて確率分布になります。次に、クロス エントロピーが、この確率分布からワンホット ラベルに決定されます。所有しているレルスの数を変更すると、この関数が変更されるのはなぜですか? 私は、各ネットワークは最初はほぼランダムに等しく間違っているはずであり、損失が大きくなりすぎることはないと考えています。
この損失関数には l2 損失が含まれていないため、重みとバイアスの数の増加はこれを考慮していないことに注意してください。
arg('act-func')
代わりにasを使用するとtanh
、この損失の増加は発生しません。予想どおり、ほぼ同じままです。
tensorflow - CNN をトレーニングするときの大きな入力に対する NaN の Tensorflow エントロピー
TensorFlow を使用して単純な畳み込みニューロン ネットワークを作成しました。入力画像をエッジ = 32px で使用すると、ネットワークは正常に動作しますが、エッジを 2 倍にして 64px にすると、エントロピーが NaN として返されます。問題は、それを修正する方法ですか?
CNN 構造は非常に単純で、次のようになります 。input->conv->pool2->conv->pool2->conv->pool2->fc->softmax
エントロピーは次のように計算されます。
64px の場合:
32px の場合は問題なく表示され、トレーニングにより結果が得られます。