[解決済み] ロジットとは何ですか?softmaxとsoftmax_cross_entropy_with_logitsの違いは何ですか?
質問
で
tensorflow API ドキュメント
というキーワードを使用しています。
logits
. これは何でしょうか?みたいな書き方のメソッドが多い。
tf.nn.softmax(logits, name=None)
もし
logits
は単なる一般的な
Tensor
という入力がありますが、なぜ
logits
?
次に、次の2つの方法の違いは何でしょうか。
tf.nn.softmax(logits, name=None)
tf.nn.softmax_cross_entropy_with_logits(logits, labels, name=None)
知っている
tf.nn.softmax
はできますが、他はできません。例を示してもらえると本当に助かります。
どのように解決するのですか?
softmax+logitsは、単純に、関数が以前の層のスケーリングされていない出力で動作し、単位を理解するための相対的なスケールが線形であることを意味します。 特に、入力の和が 1 にならないことがある、その値が ない の確率(5が入力されるかもしれない)。内部的には、まず、スケーリングされていない出力にソフトマックスを適用し、次に、それらの値とラベルで定義された「あるべき姿」とのクロスエントロピーを計算するのです。
tf.nn.softmax
を適用した結果が表示されます。
ソフトマックス関数
を入力テンソルに適用する。 ソフトマックスは入力をquot;squishes" する。
sum(input) = 1
ソフトマックスの出力は入力と同じ形状である。
a = tf.constant(np.array([[.1, .3, .5, .9]]))
print s.run(tf.nn.softmax(a))
[[ 0.16838508 0.205666 0.25120102 0.37474789]]
参照 この回答 は、DNNでソフトマックスが広く使われている理由を説明しています。
tf.nn.softmax_cross_entropy_with_logits
は、ソフトマックスのステップと、ソフトマックス関数を適用した後のクロスエントロピーの損失の計算を組み合わせたものですが、より数学的に慎重な方法でそれをまとめて行っています。 という結果に似ています。
sm = tf.nn.softmax(x)
ce = cross_entropy(sm)
クロスエントロピーは要約指標であり、要素間の総和を算出する。 の出力は
tf.nn.softmax_cross_entropy_with_logits
形状に
[2,5]
テンソルは形状
[2,1]
(1次元目はバッチとして扱われる)。
クロスエントロピーを最小化する最適化を行いたい場合
AND
最後のレイヤーの後にソフトマックスを行う場合は
tf.nn.softmax_cross_entropy_with_logits
なぜなら、数値的に不安定なコーナーケースを数学的に正しい方法でカバーしてくれるからです。 そうでなければ、あちこちに小さなイプシロンを追加してハックすることになるでしょう。
2016-02-07に編集しました。
オブジェクトが1つのクラスにしか属さないようなシングルクラスラベルを使用している場合、次のように使用することを検討します。
tf.nn.sparse_softmax_cross_entropy_with_logits
そうすれば、ラベルを密な一重の配列に変換する必要がなくなります。 この関数はリリース0.6.0以降に追加されました。
関連
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] パラメータに**(ダブルスター/アスタリスク)、*(スター/アスタリスク)がありますが、これはどういう意味ですか?
-
[解決済み] SQLAlchemy: flush() と commit() の違いは何ですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenvなどの違いは何ですか?
-
[解決済み】type()とisinstance()の違いは何ですか?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python百行で韓服サークルの画像クロールを実現する
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
Python入門 openを使ったファイルの読み書きの方法
-
Python 入出力と高次代入の基礎知識
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] RuntimeError: 次元が範囲外([-1, 0]の範囲にあると期待されたが、1が得られた)
-
[解決済み] 標準的な正規化ではなく、なぜソフトマックスを使用するのですか?