在matlab里对BP神经网络的拟合,由于多种因素干扰和数据很少的效果不是很好,想添加一个正则化对BP神经网络,正则化程序应该怎么写,正则化是应该放在BP神经网络训练结束后,还是BP神经网络训练构建好以后?
正则化的作用就是降低过拟合,所谓过拟合简单理解成对于现有数据来说模型过于强大。
如果训练完了再加那模型已经生成了还怎么降低过拟合。
在构建网络的时候加入:计算成本函数时以及梯度下降计算梯度时加入,正则项可以理解为在原有公式后加一个小尾巴value。
以梯度时加入为例,加了正则项小尾巴后,梯度dw变大,那么更新模型权重w=w-r * dw后w就会比不加正则项时要小,极端情况下我们理解成0,那么就以为着有的神经元失去了作用,那模型自然就没那么强大了,故降低了过拟合的可能。