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

猜你喜欢

转载自blog.csdn.net/weixin_38314865/article/details/106174761