0

こんにちは私の大学でテンソルフローを使用して、シミュレーションプログラムのステアリングアングルを、シミュレーションが生成する画像だけを使って分類しようとしています。1つのホットベクトルの結果のバケットと正しいバケットの違いを考慮するにはどうすればよいですか?

ステアリングの角度は-1〜1の値で、50個のバケットに分けています。したがって、予測ベクトルの最初の値は、予測ステアリング角が-1と-0.96の間にあることを意味します。 私が使用している分類と最適化機能を以下に示します。

cost = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(prediction, y)) 
optimizer = tf.train.AdamOptimizer(0.001).minimize(cost) 

yは、正しいバケットの49個のゼロと1個の1のベクトルです。私の質問は今です。 例:正しいバケットはインデックス25にあり、26の予測は48の予測よりもはるかに優れていることがわかります。

完全に接続されたconv2dおよびmaxpoolレイヤーの数であるため、最後に層。

答えて

1

クロスエントロピーまたは負の対数尤度を適用しているためです。あなたは予測された成果と地上の真理を考慮してシステムにペナルティをかけています。

あなたのシステムは、あなたの50のクラスの出力で異なる数字を予測し、最高のものはクラス番号25でしたが、実際の真理はクラス26です。したがって、あなたのシステムは26で予想される値をとり、次回この入力が表示されたときに、この出力で最も高い数値です。次の2つの基本的なこと行うことができます

+0

ありがとうございました。あなたが言っていることを理解していますが、どのような行動をお勧めしますか? – Minalcar

1

:-1..1範囲のスカラーであることを

変更あなたのyの予測を、損失関数を(y予測)** 2または何かにする。非常に異なるモデルですが、おそらくより妥当なものであることが一番です。

ここで、wは定数行列、ほとんど0、対角線上の1s、次の対角線上の小さい値、例えばy(i (i + 1)* .5 + ...); =ターゲット(i)* 1.ターゲット(i-1)*。グロスのようなものですが、合理的なものに収束すべきです。

+0

ええ、最初の選択肢は私があまりにも考えていたものです。私の質問は、-1と1の間の値を取得するために出力レイヤーで使用する必要があるアクティブ化関数関数です.2番目のオプションは本当に面白いです。私はそれについて考えていただきありがとうございます。 – Minalcar

関連する問題