問題タブ [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.
tensorflow - Tensorflow R0.12 softmax_cross_entropy_with_logits ASSERT エラー
私は、「softmax_cross_entropy_with_logits」を 147 クラスの問題のコスト関数の一部として機能させることに取り組んできました。「sigmoid_cross_entropy_with_logits」で動作するコードがありますが、softmax に移行したいと考えています。
ランク 3 からランク 2 に変更してコードを機能させるために、さまざまな試みを何度も試みましたが (役に立ちませんでした)、立ち往生しました。ノートブックでいくつかのおもちゃのコードを試してみましたが、softmax_cross .... はエラーをアサートしません。また、float32 を float64 にキャストしようとしましたが (ノートブックの例では 64 ビットを使用して動作していたため)、それでもエラーがアサートされました。
おもちゃのコードは次のとおりです。
これが私のコードフラグメントです:(サイズは以下にエラーで印刷されています)
私がやろうとしているのは、結果ごとに2つのエンコードされた「単語」があるため、単語ごとに個別にエラーを計算しようとしていますが、まだ機能しませんでした. 上記の最初の行でエラーが発生します。
ここで何が起こっているのでしょうか?エラーは「範囲」機能によるものと思われますが、何が間違っているのかわかりません。
tensorflow - Tensorflow - 損失が高く始まり、減少しない
私はテンソルフローでニューラルネットワークを書き始めましたが、サンプルプロジェクトのそれぞれに直面しているように見える問題が1つあります。
私の損失は常に 50 かそれ以上から始まり、減少しないか、減少したとしてもゆっくりと減少するため、すべてのエポックの後、許容可能な損失率に近づくことさえできません。
すでに試したこと(結果に大きな影響はありませんでした)
- 過適合でテストされていますが、次の例では、15000 のトレーニングと 15000 のテスト データセット、および 900 のニューロンのようなものがあることがわかります
- さまざまなオプティマイザーとオプティマイザー値をテストしました
- テストデータをトレーニングデータとしても使用して、トレーニングデータを増やしてみました
- バッチサイズを増減してみました
https://youtu.be/vq2nnJ4g6N0の知識でネットワークを作成しました
しかし、私のテストプロジェクトの1つを見てみましょう:
名前のリストがあり、性別を仮定したかったので、生データは次のようになります。
それをネットワークに供給するために、名前をcharCodeの配列に変換し(最大長は30を想定)、性別をビット配列に変換します
出力層として [30,20]、[20,10]、[10,10]、[10,2] の 3 つの隠れ層を持つネットワークを構築しました。すべての隠れ層には活性化関数として ReLU があります。出力層にはソフトマックスがあります。
次に、損失、精度、およびトレーニング操作の計算を行います。
100 のバッチでネットワークをトレーニングします
そして、次の結果が得られます。
私は何を間違っていますか?
私のプロジェクトで ~69 から始まり、それ以下にならないのはなぜですか?
どうもありがとうございました!
tensorflow - TensorFlow のロジットという単語の意味は何ですか?
次の TensorFlow 関数では、最終層で人工ニューロンの活性化をフィードする必要があります。私は理解しています。しかし、なぜロジットと呼ばれるのかわかりませんか?それは数学関数ではありませんか?
machine-learning - Crossentroy 損失と精度の関係
画像分類タスクで CNN をトレーニングしています。単純なバージョンではこれで問題なく動作しましたが、画像をより難しくすると、次の現象に遭遇しました (一晩かけてトレーニングさせました)。
トレーニング中、トレーニング クロスエントロピー損失は減少します。また、私のテスト データセットでは、クロスエントロピー損失が減少します。私はさらに精度を測定していますが、動作が異なります。最初は上がり、また下がるだけで、その後は 0.1 から 0.3 の間で揺れていました。私はクロスエントロピーの損失と精度が多少関連していると予想していました - それらは両方とも同じテストデータセットで測定されているからです。
誰かが私にこれを説明できますか?または、コードに誤りがありますか?
どうもありがとう
python - バイナリログ損失は、y に基づく方程式の一部を除外しますか?
対数損失の方程式を次のように仮定します。
logLoss=−(1/N)*∑_{i=1}^N (yi(log(pi))+(1−yi)log(1−pi))
ここでN
、 はサンプル数、yi...yiN
は従属変数の実際の値、 はpi...piN
ロジスティック回帰から予測された尤度です
私はそれをどのように見ていますか:
もしそうならyi = 0
最初の部分yi(logpi) = 0
あるいは、yi = 1
2 番目の部分(1−yi)log(1−pi) = 0
だから今、方程式の一部の値に応じてy
除外されます。私はこれを正しく理解していますか?
私の最終的な目標は、ログ損失の結果を解釈する方法を理解することです。