0

我要訓練一個神經網絡(例如前饋網絡),其中輸出只是一個表示概率的實數值(因此在[0, 1]間隔)。我應該爲最後一層(即輸出節點)使用哪種激活函數?當標籤爲概率時訓練TensorFlow迴歸模型

如果我不使用任何激活函數並輸出tf.matmul(last_hidden_layer, weights) + biases它可能會導致一些負輸出,這是不可接受的,因爲輸出是概率,因此預測也應該是概率。如果我使用tf.nn.softmaxtf.nn.softplus,則模型在測試集中始終返回0。任何建議?

回答

1

最簡單的方法是使用sigmoid激活作爲輸出,因爲這會將任何輸出範圍擠壓到[0,1]範圍內。然後爲了訓練,您可以使用均方誤差或類似損失,或二元交叉熵。一般來說,二進制交叉熵可能更好。

+0

謝謝Matias。這是有道理的,但是當我使用sigmoid作爲最後一個節點的激活函數時,所有的預測變爲零。任何想法? – boomz

+0

@boomz不是從這麼少的信息,我想你的網絡或培訓有問題,我希望你不是初始化權重爲零:) –