Week 10:Large Scale Machine Learning课后习题解答

Posted Mac Jiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Week 10:Large Scale Machine Learning课后习题解答相关的知识,希望对你有一定的参考价值。

大家好,我是Mac Jiang,今天和大家分享Coursera-Stanford University-Machine Learning-Week 10:Large Scale Machine Learning的课后习题解答。虽然我的答案通过了系统测试,但是我的分析不一定是正确的,如果各位博友发现错误或有更好的想法,请留言联系,谢谢。希望我的博客对您的学习有所帮助!

这单元,吴恩达老师主要讲了五个方面的内容:
1.随机梯度下降(Stochastic Gradient Descent),比较了随机梯度算法与批量梯度算法(Batch Gradient Descent)的区别。随机梯度算法每次迭代只需要利用一个样本的偏导数即可,而批量梯度算法每次需要计算每个样本的偏导数,如果样本数m很大(千万级别),速度将会很慢。
2.介绍了小批量梯度下降法(Mini-Batch Gradient Descent),小批量梯度下降法是每次迭代计算b个样本点的偏导数用于更新参数Theta,他比批量梯度下降法计算量小,比随机梯度下降法收敛快。
3.介绍了判断随机梯度下降法的收敛判断。这里采用的方法是作代价函数J与迭代次数iteration的图判断。但是由于随机梯度每次迭代只用一个样本的偏导数修正Theta,所以收敛过程不稳定。我们采取每1000次迭代计算一次平均的cost(theta,(x(i),y(i)))的方法作图。
4.介绍了online learning。用户每次访问网页都会留下一些信息,我们得到这些信息,对已有的参数Theta进行修正,修正完成后就丢弃这些信息(这些信息学习完就丢,不用保存,以后数据有的是)。Online Learnin的好处如果用户的喜好发生变化,通过一次次的用户信息修正参数Theta,能把Theta逐渐向新的方向调整。
5.介绍Map-reduce。当一台机器不能完成当前数据量的学习时,可以利用多台机器并行运行。将数据体分为等份,每天机器学习其中一份,然后将各机器得到的结果合成为最终结果。Map-reduce还需要考虑一些网络延迟,数据传输等问题。
好的,就总结这么多,下面进行习题讲解!

1.第一题
技术分享
(1)题意:假设你利用随机梯度下降训练逻辑回归分类器。你每500次取cost(theta,(x(i),y(i)))的平均值为纵坐标,迭代次数为横坐标,做出图形后发现图形每次迭代后图形慢慢增加,我们应该怎么办?
1.用更小的学习速率alpha
2.尝试每1000次取一次平均值,而不是500次
3.尝试更大的学习速率alpha
4.这不是问题,应为我们在用随机梯度法时就希望这样
(2)分析:图形随着迭代次数增加慢慢增加,说明迭代过程发散!
1.正确。发散可能是alpha太大引起的,所以可以尝试减小alpha
2.错误。不管取多少次求平均,他都是递增的,还是发散的
3.错误。都发散了还增大alpha,那就更加发散了
4.错误。我们希望曲线收敛
(3)答案:1

2.第二题
技术分享
(1)题意:选出下列所有关于随机梯度下降的正确陈述
1.假如你利用随机梯度下降法训练线性回归分类器,代价函数为上面式子。代价函数值J在每次迭代过程中保证是递减的
2.随机梯度下降适合于小样本的问题。在这类问题中,随机梯度下降法经常比批量梯度下降法性能好
3.随机梯度下降法的一个优势就是每次迭代只要用一个样本修改Theta值,而批量梯度下降法则需要计算全部的样本值
4.随机梯度下降法每次只需要对一个样本进行学习
(2)分析:1.错误。随机梯度下降的方法不能保证每次迭代后J的值都是减小的,而且有很大可能是增加的
2.错误。随机梯度下降的提出是在样本数m太大,批量梯度下降法速度太慢。随机梯度下降法适合于大样本问题
3.正确。
4.正确。
(3)答案:3,4

3.第三题
技术分享
(1)题意:选出下列关于online learning的正确陈述。
1.在课堂上讨论online learning的方法中,我们反复得到翻译训练样本,对于这些重复样本我们只进行一次随机梯度下降法,然后进行下一个样本。
2.online learning的缺点是需要大量的存储空间存储训练样本数据
3.当进行online learning时,每当我们得到新的样本(x,y),则进行一次学习,然后丢弃这个样本训练下一个
4.online learning的一个优点是不需要选择学习速率alpha
(2)分析:1.正确。这些样本可能是一个用户反复提交的,我们只需要学习一个,然后将其丢弃就可以了。
  2.错误。online learning的最大特点是样本一旦经过训练就可以丢弃,不用保存,以后的数据多的是
3.正确。
4.错误。用的梯度下降法就需要选择学习速率alpha
(3)答案:1,3

4.第四题
技术分享
(1)题意:你有一个很大的数据集,下列那些算法可以用映射缩减的方法吧他们并行的放在多台机器上进行?
1.利用成批梯度下降的神经网络训练
2.online learing时,你重复得到一个训练样本(x,y),想从这个样本中学习
3.利用成批梯度下降的线性回归
4.利用随机梯度下降法的逻辑回归
(2)分析:1.正确。神经网络的代价函数计算也相当复杂,可以用映射缩减进行加速。
2.错误。online learning每次只学习一个样本,所以没必要利用维度缩减进行并行操作
3.正确。批量梯度下降每次迭代都需要计算所有数据,计算量大,可以把样本分为N分分别利用一台计算机计算,加快速度。
4.错误。随机梯度下降的话就没必要了,每次迭代只用到一个样本,不需要并行。
(3)答案:1,3

5.第五题
技术分享
(1)题意:选出下列关于映射缩减的正确陈述
1.如果你用N机器运行映射缩减,我们经常速度会比一台机器至少快N倍
2.如果你只有一台单核的计算机,那么映射所见毫无作用
3.在梯度下降时进行映射缩减,我们经常利用一台单独的机器来组合各台机器计算的梯度值,来计算这次迭代的参数
4.由于网络延迟和其他开销,如果用N太计算机运行映射缩减,我们的速度增加小于N倍
(2)分析:1.错误,网络有延迟,建立连接需要时间,数据传输需要时间,再怎么算也不可能多余N倍
2.正确,映射缩减可以用于多台计算机并行或者一台计算机的多核并行
3.正确
4.正确
(3)答案:2,3,4































































以上是关于Week 10:Large Scale Machine Learning课后习题解答的主要内容,如果未能解决你的问题,请参考以下文章

twelfth week

3 week work—Position

3rd week blog

将绘图导出到 Plot.ly 时出错

Docker

hgame week2 week3