深度学可能存在的过拟合问题--高方差,其解决方法有正则化和准备更多的数据。
正则化:L2正则化(权重衰减)、dropout正则化
L2正则化:
成本函数:
其中,为正则项。
梯度下降:
dropout正则化:
首先要定义向量𝑑,𝑑 [3]表示一个三层的 dropout 向量:
d3 = np.random.rand(a3.shape[0],a3.shape[1])
a3 =np.multiply(a3,d3)
然后向外扩展𝑎 [3],用它除以 keep-prob 参数:𝑎3/= 𝑘𝑒𝑒𝑝 − 𝑝𝑟𝑜𝑏
---------------------------------------------------------------------------------------------------------------------------------
归一化输入:
1、零均值化:
然后用x减去,
2、归一化方差:
在隐藏单元中进行归一化处理: ;
Mini-batch梯度下降:
符号的规范:使用上角小括号(𝑖)表示训练集里的值,所以𝑥 (𝑖)是第𝑖个训练样本。用上角中括号[𝑙]来表示神经网络的层数,𝑧 [𝑙]表示神经网络中第𝑙层的𝑧值,用大括号𝑡来代表不同的mini-batch,所以有𝑋 {𝑡}和𝑌 {𝑡}。
𝑋 {𝑡}和𝑌 {𝑡}的维数:如果𝑋 {1}是一个有 1000 个样本的训练集,或者说是 1000 个样本的𝑥 值,所以维数应该是(, 1000),𝑋 {2}的维数应该是( ,1000),以此类推。因此所有的子集维数都是(, 1000),而这些(𝑌 {𝑡})的维数都是(1,1000)。
指数加权平均:
指数加权平均数的偏差修正:
动量梯度下降法:
RMSprop:
Adam算法:
初始化:
然后用当前的mini-batch计算dW,db;
接下来计算monentum指数加权平均数,所以,同样有:
接着用RMSprop进行更新:
接着计算偏差修正:
最后更新权重:
一般取0.9;推荐使用0.999;建议取
---------------------------------------------------------------------------------------------------------------------------------将Batch Norm 拟合进神经网络:
Batch 归一化:
Softmax回归:
激活函数:
损失函数:
其中C为分类结果数量。
作用:将多个神经元的输出映射到(0,1)区间内;
如图所示: