在與對象檢測和語義分割相關的深度學習實現中,我看到了使用sigmoid或softmax的輸出層。我不是很清楚什麼時候用哪個?在我看來,他們都可以支持這些任務。有這個選擇的指導方針嗎?softmax和sigmoid函數輸出層
回答
softmax()
有助於當你想要一個概率分佈,總結爲1 sigmoid
當你想輸出將範圍從0到1時,但不必總和爲1
在你的情況,你想分類和選擇兩種選擇。我會建議使用softmax()
,因爲您會得到一個可以應用交叉熵損失函數的概率分佈。
對象檢測是在圖像中的滑動窗口上使用的對象分類。在分類中,重要的是在某些類別空間中找到正確的輸出。例如。你會發現10個不同的物體,你想知道哪個物體最有可能在那裏。然後softmax是好的,因爲它的整體層總和爲1。
另一方面,語義分割以某種方式分割圖像。我已經完成了語義醫學分割,並且輸出是二進制圖像。這意味着您可以將sigmoid作爲輸出來預測此像素是否屬於此特定類,因爲對於每個輸出類,sigmoid值都介於0和1之間。
http://stackoverflow.com/help/someone-answers –
一般來說,當有'n'個類別存在時,使用Softmax(Softmax分類器)。 Sigmoid或softmax都可用於二進制(n = 2)分類。
乙狀結腸: S(X)= 1 /(1+(E ^( - X)))
使用SoftMax:
σ(x)j = e /**Σ**{k=1 to K} e^zk for(j=1.....K)
使用SoftMax是一種多級的乙狀結腸,但如果看到Softmax的功能,所有softmax單位的總和應該是1.在sigmoid中,它並不是真的有必要。
挖深,你也可以使用sigmoid進行多級分類。當你使用softmax時,基本上你可以得到每個類的概率(聯合分佈和多項式可能性),其總和必定爲1。如果你使用sigmoid進行多類分類,它會像一個邊緣分佈和伯努利似然,p(y0/x),p(y1/x)等。
- 1. Sigmoid函數使用賈馬數學庫在sigmoid函數中沒有輸出
- 2. 分層輸出層中的單元數Softmax
- 3. 如何用Tensorflow中的物流層替換Softmax輸出層?
- 4. 計算sigmoid函數
- 5. 多類分類和sigmoid函數
- 6. SOFTMAX層返回1S
- 7. 如何在輸出層使用softmax激活函數,但在TensorFlow的中間層重新使用?
- 8. Tflearn排名文件與神經網絡沒有softmax輸出層
- 9. vb中的sigmoid函數
- 10. Stepmo函數與Sigmoid函數的比較
- 11. 反向Logistic函數/反向Sigmoid函數
- 12. Python中的Softmax和Hinge函數
- 13. 分類器神經網絡的最後一層是否同時使用sigmoid和softmax?
- 14. Tensorflow CNN - 緻密層作爲SOFTMAX層輸入
- 15. OpenCV神經網絡Sigmoid輸出
- 16. 在目標函數本身內使用softmax圖層
- 17. Python中大數字的Sigmoid函數
- 18. Tensorflow Convnet奇怪的Softmax輸出
- 19. 如何從深層模型獲得輸入圖像的特徵向量(softmax之前的N-1層輸出)?
- 20. 在tensorflow MNIST SOFTMAX教程,SOFTMAX函數時使用
- 21. Android /爪哇:Sigmoid函數更新雙值
- 22. 在mathematica中繪製sigmoid函數
- 23. 聲明sigmoid函數的問題
- 24. 部署網絡缺少一個Softmax層
- 25. keras - softmax top N - 損失函數
- 26. 輸出層神經元數
- 27. PROLOG中的函數輸入和輸出
- 28. 如何在單次運行中從Inception-v3檢索fc和softmax圖層的輸出?
- 29. 數據鏈路層和傳輸層
- 30. caffe中的Softmax和SoftmaxWithLoss圖層有什麼區別?
嗨,我認爲我的問題很普通。當我閱讀一些論文或深度學習實現時,我發現作者使用sigmoid或softmax。我沒有看到與這種選擇背後的邏輯有關的解釋。例如,如果我們正在研究語義分割問題,則應將每個像素預測爲第1類或第2類(假設此語義分割是兩類標籤)。那麼我認爲softmax和sigmoid都可以使用。但哪一個更好,哪個應該給予更多的偏好。 – user288609
查看已更新的答案 – martianwars