概述
机器学习实战课后习题第四章答案
课本:handson-ml2
1.如果训练集具有数百万个特征,那么可以使用哪种线性回归训练算法?
答:如果你的训练集具有数百万个特征,则可以使用随机梯度下降或小批量梯度下降。如果训练集适合容纳于内存,则可以使用批量梯度下降。但是你不能使用标准方程法或SVD方法,因为随着特征数量的增加,计算复杂度会快速增长(超过二次方)。
2.如果训练集里特征的数值大小迥异,哪种算法可能会受到影响?受影响程度如何?你应该怎么做?
答:如果你的训练集中的特征具有不同的尺寸比例,则成本函数具有细长碗的形状,因此梯度下降算法需要很长时间才能收敛。为了解决这个问题,你应该在训练模型之前缩放数据。请注意,标准方程法或SVD方法无须缩放即可正常工作。此外,如果特征未按比例缩放,则正则化模型可能会收敛至次优解:由于正则化会惩罚较大的权重,因此与具有较大值的特征相比,具有较小值的特征往往会被忽略。
3.训练逻辑回归模型时,梯度下降会卡在局部最小值中吗?
答:训练逻辑回归模型时,梯度下降不会陷入局部最小值,因为成本函数是凸函数。
4.如果你让它们运行足够长的时间,是否所有的梯度下降算法都能得出相同的模型?
答:如果优化问题是凸的(例如线性回归或逻辑回归),并且假设学习率不是太高,那么所有梯度下降算法都将接近全局最优并最终产生很相似的模型。但是,除非逐步降低学习率,否则随机梯度下降和小批量梯度下降将永远不会真正收敛。相反,它们会一直围绕全局最优值来回跳跃。这意味着即使你让它们运行很长时间,这些梯度下降算法也会产生略微不同的模型。
5.假设你使用批量梯度下降,并在每个轮次绘制验证误差。如果你发现验证错误持续上升,可能是什么情况?你该如何解决?
答:如果验证错误在每个轮次后持续上升,则一种可能性是学习率过高并且算法在发散。如果训练错误也增加了,那么这显然是问题所在,你应该降低学习率。但是,如果训练错误没有增加,则你的模型已经过拟合训练集,则应该停止训练。
6.当验证错误上升时立即停止小批量梯度下降是个好主意吗?
答:由于随机性,随机梯度下降和小批量梯度下降都不能保证在每次训练迭代中都取得进展。因此,如果在验证错误上升时立即停止训练,则可能在达到最优值之前就停止太早了。更好的选择是按照一定的间隔时间保存模型。然后,当它很长时间没有改善(意味着它可能永远不会超过最优值)时,你可以恢复到保存的最佳模型。
7.哪种梯度下降算法(在我们讨论过的算法中)将最快到达最佳解附近?哪个实际上会收敛?如何使其他的也收敛?
答:随机梯度下降法具有最快的训练迭代速度,因为它一次只考虑一个训练实例,因此,它通常是第一个到达全局最优值附近的(或是很小批量大小的小批量梯度下降)。但是,给定足够的训练时间,实际上只有批量梯度下降会收敛。如前所述,随机梯度下降和小批量梯度下降会在最优值附近反弹,除非你逐渐降低学习率。
8.假设你正在使用多项式回归。绘制学习曲线后,你会发现训练误差和验证误差之间存在很大的差距。发生了什么?解决此问题的三种方法是什么?
答:如果验证误差远高于训练误差,则可能是因为模型过拟合了训练集。解决此问题的一种方法是降低多项式阶数:较小自由度的模型不太可能过拟合。另一种方法是对模型进行正则化,例如,将 2(Ridge)或 1(Lasso)惩罚添加到成本函数。这也会降低模型的自由度。最后,你可以尝试增加训练集的大小。
9.假设你正在使用岭回归,并且你注意到训练误差和验证误差几乎相等且相当高。你是否会说模型存在高偏差或高方差?你应该增加正则化超参数α还是减小它呢?
答:如果训练误差和验证误差几乎相等且相当高,则该模型很可能欠拟合训练集,这意味着它具有很高的偏差。你应该尝试减少正则化超参数α。
11.假设你要将图片分类为室外/室内和白天/夜间。你应该实现两个逻辑回归分类器还是一个Softmax回归分类器?
答:如果你要将图片分类为室外/室内和白天/夜间,因为它们不是排他的类(即所有四种组合都是可能的),则应训练两个逻辑回归分类器
12.用Softmax回归进行批量梯度下降训练,实现提前停止法(不使用Scikit-Learn)
代码在我的github仓中:https://github.com/Tender-sun/ML,下载不了可以评论区或者私聊。
最后
以上就是优秀秋天为你收集整理的机器学习实战课后习题(四)的全部内容,希望文章能够帮你解决机器学习实战课后习题(四)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复