Relu神经网络输出预测全为0或1,对所有输入样本的预测概率也相同
生活随笔
收集整理的這篇文章主要介紹了
Relu神经网络输出预测全为0或1,对所有输入样本的预测概率也相同
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
現有一個使用Relu激活函數的網絡,訓練過程中發現,它對所有的輸入樣本都輸出一樣的預測概率,比如二分類,對所有樣本的預測概率都是[0.4,0.6]。由于預測概率都一樣,因此預測標簽也都一樣,全預測為0或1。
一開始以為是不是網絡結構搭建有問題,因為當網絡參數確定后,不同的輸入樣本的輸入數據不一樣,那么輸出的預測概率肯定不一樣,怎么會全輸出一樣的概率。然后一層一層找原因,發現某一卷積層的輸出值全為0。經過分析,該層使用的是Relu激活函數,而且該層訓練后的權值W和偏置b都是負數,這樣,輸入在這一層的卷積運算結果全為負值,再經過Relu激活函數后,這一層的輸出值就全為0。因此,不管輸入樣本是什么,經過該層后的輸出都為0,從而導致網絡最終輸出的預測概率和輸入樣本完全沒有關系,此時輸出概率取決于這一層后面層的偏置參數b。
解決方法:
換一種網絡參數的初始化方法,或者改變初始化方法中的參數(比如使用正態初始化的話可以嘗試改變方差)
網絡參數的初始化方法:
https://blog.csdn.net/weixin_38314865/article/details/106049511
總結
以上是生活随笔為你收集整理的Relu神经网络输出预测全为0或1,对所有输入样本的预测概率也相同的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaSE——常用类库(String类
- 下一篇: JavaSE——类集(下)(Set、Co