簡體   English   中英

如何考慮一個熱向量的結果桶與正確桶之間的差異?

[英]How to take the difference between the resulting and the correct bucket of a one hot vector into account?

嗨,我正在大學使用tensorflow嘗試僅使用模擬生成的圖像對模擬程序的轉向角進行分類。

轉向角是-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。 我的問題是。 我如何考慮例如正確的存儲桶是否位於索引25處,則26的預測要比48的預測好得多。

我沒有發布實際的網絡,因為它只是幾個conv2d和maxpool層,最后是一個完全連接的層。

由於您正在應用交叉熵或負對數可能性。 給定預測的輸出和基本事實,您將對系統進行懲罰。

因此,假設您的系統在50個類別的輸出上預測了不同的數字,而最高的數字是25類,但您的實際情況是26類。因此,系統將采用26的預測值,並調整參數以產生最大的數字。下次看到此輸入時,此輸出。

您可以做兩件事:

將您的y和預測更改為-1..1范圍內的標量; 使損失函數為(y-預測)** 2或其他值。 一個非常不同的模型,但也許比單熱模型更合理。

保持單一目標和損失,但具有y = target * w,其中w是一個常數矩陣,大部分為零,對角線為1s,下一個對角線為較小值(例如y(i)= target( i)* 1. + target(i-1)* .5 + target(i + 1)* .5 + ...); 有點毛,但應該收斂到合理的水平。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM