编号按照对应的内容,1-1代表第一大部分遇到的第一题,R代表Review,C代表运行的代码(Code)。
1-1
解:D
首先应该做的事是去检查一个这么大规模的训练集是否真的必要,也许我们只用1000个训练集也能获得较好的效果,我们可以绘制学习曲线来帮助判断。
1-2
解:AB
训练数据集很大的时候,随机梯度下降会比梯度下降快。
1-3
解:C
1-4
解:BD
A:选择一个很小的学习率,不能加快学习速度,错误。
C:如果我们希望随机梯度下降收敛到(局部)极小,而不是在它周围漂移振荡,我们应该慢慢减小o随时间的推移,错误。
2-1
解:AC
使用在线学习可以适应用户随时间改变的特性,允许我们从连续的数据流中学习。
2-2
解:B
使用了十台机器,那么每台机器计算数据的1/10上的前向传播和反向传播,以计算与该数据的1/10相关的导数。
R
R1-1
解:D
当代价函数呈上升趋势的时候,可以尝试使用一个更小的学习率α。
R1-2
解:AD
A:在随机梯度下降算法执行之前,需要先随机打乱训练集,正确。
B:随机梯度未必会随着每次迭代下降,错误。
C:在随机梯度下降中,我们在每一次更新θ之前都计算一次代价,然后每 次迭代后,求出这x 次对训练实例计算代价的平均值,然后绘制这些平均值与x 次迭代的次数之间的函数图表,错误。
D:可以使用梯度检查的方法来检查梯度下降算法,正确。
R1-3
解:CD
A:在线学习也需要学习率α,错误。
B:我们不会使用一个固定的数据集,我们会做的是获取一个用户样本,从那个样本中学习,然后丢弃那个样本并继续下去,错误。
R1-4
解:BC
凡是需大量计算的算法,便可考虑MapReduce来进行计算。
A:在线学习每次都是小的计算量,因此不需要MR。
D:使用随机梯度下降不需要计算大的数据量,因此也不需要MR。
R1-5
解:BCD
A:使用N台电脑,我们则需要分割数据集成N份。
B:多核并行计算,正确。
C:为了将学习算法并行化,首先要解决的是如何将算法的主要工作表示为训练实例的函数和,正确。
D:我们每台机器都会进行参数更新,正确。