吴恩达DeepLearning复习笔记(1)
关于初始化参数w,b…
1、what happens if you initialize weights to zero?(将参数初始化为0有什么结果?)
导致隐含层单元hidden layer仍然在计算完全一样的函数,仅需一个隐藏单元可完成的事情,现在所有单元都在计算同样的东西,耗费时间且达不到效果。
2、something about random initialization
随机初始化参数:w = np.random.rand((2,2))*0.01
参数应该尽可能小,否则从一开始就达到饱和,梯度接近0,导致学习过慢,很难收敛。
神经网络的梯度下降法
偏差和方差
偏差:衡量了预测值与实际值之间的偏离关系;——导致欠拟合
方差:训练数据在不同迭代阶段中,预测值的变化波动情况;——导致过拟合
High bias -> Bigger network 、Training longer、NN architecture and so on
High variance -> More data、Regulalization、NN architecture and so on
缓解过拟合的方法
-
权重衰减(L2正则化)
具体做法是将其范数作为惩罚项加到最小化损失中
为什么L2可以有效缓解过拟合?
答:L2范数是指向量各元素的平方和然后求平方根,使得L2范数参数最小,即使得w中的每个元素都很小,越小的参数意味着模型越简单,越简单越不容易产生过拟合。
吴恩达的deeplearning中利用tanh做了很好的解释(个人觉得他讲的更容易理解) -
Dropout(随机失活)
仅在training的时候用! Dropout在正向传播过程中, 计算每一内部层的同时注入噪声, 即在计算下一层之前将当前层中的一些节点置零。 其保持了期望值不变。