一、初始化参数
神经网络中一个小单元的运算可由 z=wx+b,和 a=g(z)这两个式子来概括,在刚开始的时候需要对参数w和b赋初始值,如果赋值为0那么是没有意义的,如果赋值为一个简单随机数,那么会产生梯度爆炸和梯度消失。因此应采用抑梯度异常初始化,关键代码如下所示:parameters['W' + str(l)] = np.random.randn(layers_dims[l], layers_dims[l - 1]) * np.sqrt(2 / layers_dims[l - 1])。
二、正则化
如果神经网络中出现过拟合的情况,那么就需要采用正则化。接下来将介绍正则化的方法,第一种是使用范式,它的原理是通过在成本函数中加入一个正则项来调节W的大小,当W趋于0的时候,复杂的神经网络会变得相对简单,从而尽可能地改善过拟合。第二种是使用Droupout算法,它的原理是通过概率判断来善于网络中的某些节点,从而缓解过拟合,其他避免过拟合的方法还有数据增强和Early stopping。
三、梯度校验
梯度校验主要用于检验在梯度下降过程中是否出现误差过大的情况。
参考资料:https://blog.csdn.net/u013733326/article/details/79847918