Neural Networks and Deep Learning习题解答--梯度下降

神经网络与深度学习习题解答

通过梯度下降法学习参数

最近在看 Michael Nielsen的Neural Networks and Deep Learning,这本书是以网页的形式放在网上,非常合适入门,附上传送地址:http://neuralnetworksanddeeplearning.com/chap1.html#learning_with_gradient_descent

国内哈工大社会计算与信息检索研究中心将这本书翻译成中文版放在网络上,地址为:https://hit-scir.gitbooks.io/neural-networks-and-deep-learning-zh_cn/content/chap1/c1s5.html

本节介绍了梯度下降的原理和具体过程。有一定的数学要求,不过大体是高等数学的范畴。

  • Prove the assertion of the last paragraph. Hint: If you're not already familiar with the Cauchy-Schwarz inequality, you may find it helpful to familiarize yourself with it.
  • I explained gradient descent when C is a function of two variables, and when it's a function of more than two variables. What happens when C is a function of just one variable? Can you provide a geometric interpretation of what gradient descent is doing in the one-dimensional case?
  • 证明最后一段的断言。提示:利用柯西-斯瓦茨不等式。

  • 我已经解释了当C是二元及其多元函数的情况。那如果C是一个单变量的函数呢?你能给出梯度下降法在一元函数的几何解释么?

对于问题1,证明方法如下图所示。证明利用了柯西不等式,大体思路是找到不等式等号成立时的条件,再根据已知条件推导出结果。

Neural Networks and Deep Learning习题解答--梯度下降_第1张图片

 

第二个问题如下图所示,代价函数是一元函数的情况比较容易理解,几何解释感觉和高中学习导数那时候学习的差不多。

代价函数的改变量为:$$\Delta C \approx \frac{dC}{dv}\Delta v = \bigtriangledown C \Delta v$$,约等于是因为这里的$$\Delta C $$和实际的并不相同,毕竟是根据直角三角形计算得到的,只有当函数是直线或者$$\Delta v $$趋近于0的时候$$\Delta C $$才和实际的相同。$$ \frac{dC}{dv}$$表示函数在该点的斜率,也就是直角三角形的对边和邻边的比值。当$$\Delta v = -\beta \bigtriangledown C$$时,C可以以最快的速度下降,这个时候v = v-\beta \bigtriangledown C,即可以更新变量v,不断迭代,从而使C不断靠近最低点。

Neural Networks and Deep Learning习题解答--梯度下降_第2张图片

下一个问题:

  • 梯度下降一个比较极端的版本就是让 mini-batch 的大小为1。这就是说,给定一个输入xx,我们通过规则wk→w′k=wk−η∂Cx/∂wk和 bl→b′l=bl−η∂Cx/∂bl更新权重和偏置。当我们选取另一个训练数据时也做同样的处理。其它的训练数据也做相同的处理。这种处理方式就是在线学习(online learning)增量学习(incremental learning)。在在线学习中,神经网络在一个时刻只学习一个训练数据(正如人类的做法)。说出 online learning 相比 mini-batch 为 20 的 SGD 的一个缺点和一个优点。

由于自己也算个初学者,对这样的问题缺少实战经验。经过查阅资料,总结以下几点

online learning优点:1. 容易执行;2. 对于大规模和较难对分类问题能提供有效解;3. 随机性使得不容易陷入局部极值点;4. 存储量少;

SGD优点:1. 消除样本顺序对影响;2. 对梯度向量进行精确估计;3. 具有学习对并行性

由于个人能力有限,有错误和不足还请指正。

你可能感兴趣的:(机器学习)