《机器学习实战》4.7练习题目

1. 如果训练集具有数百万个特征,那么可以使用哪种线性回归训练方法?
如果你的训练集具有数百万个特征,则可以使用随机梯度下降或小批量梯度下降。如果训练集适合容纳于内存,则可以使用批量梯度下降,但是你不能使用标准方程法或者SVD方法,因为随着特征数量的增加,计算复杂度会快速增长(超过二次方)。

2. 如果训练集里特征的数值大小迥异,哪种算法可能会收到影响?受影响程度如何?你应该怎么做?
如果你的训练集中的数据具有不同的尺寸比例,则成本函数具有细长碗的形状,因此梯度下降算法需要很长时间才能收敛。为了解决这个问题,你因该在训练模型之前缩放数据。请注意,标准方程法和SVD方法无须缩放即可正常工作。此外,如果特征未按比例缩放,则正则化模型可能会收敛至次优解:由于正则化会惩罚较大的权重,因此与具有较大值的特征相比,具有较小值的特征往往会被忽略。

3. 训练逻辑回归模型时,梯度下降会卡在局部最小值中吗?
训练逻辑回归模型时,梯度下降不会陷入局部最小值,因为成本函数时凸函数。

4. 如果你让它们运行足够长的时间,是否所有的梯度下降算法都能得出相同的模型?
如果优化问题是凸的(例如线性问题或者逻辑回归)并且假设学习率不是太高,那么所有梯度下降算法都将接近全局最优并最终产生很相似的模型。
但是除非逐步降低学习率,否则随机梯度下降和小批量梯度下降将永远不会真正收敛。相反它们会一直围绕全局最优值来回跳跃。这意味着即使你让它们运行很长时间,这些梯度下降算法也会产生略微不同的模型。

5. 假设你使用批量梯度下降,并在每个轮次绘制验证误差。如果你发现验证误差持续上升,可能是什么情况?你该如何解决?
如果验证错误在每个轮次后持续上升,则一种可能是学习率过高并且算法在发散。如果训练错误也增加了,那么这显然是问题所在,你应该降低学习率。但是,如果训练错误没有增加,则你的训练模型已经过拟合训练集,则应该停止训练。(简化模型,或其它办法)

6. 当验证错误上升时立即停止小批量梯度下降是个好主意吗?
由于随机性,随机梯度下降和小批量梯度下降都不能保证在每次训练迭代中都取得进展。
因此,如果在验证错误上升时立即停止训练,则可能在达到最优值之前就停止太早了。更好的选择是按照一定的时间间隔保存模型。然后当它很长时间没有改善(意味着它可能永远不会超过最优值)时,则应停止训练。

7. 哪种梯度下降算法(我们讨论过的算法中)将最快达到最佳解附近?哪个实际上会收敛?如何使其它的也收敛?
随机梯度下降法具有最快的训练迭代速度,因为它一次只考虑一个训练实例,因此它通常是第一个达到全局最优值附近的(或是很小批量的小批量梯度下降)。但是,给定足够的训练时间,实际上只有批量梯度下降法会收敛。如前所述,随机梯度下降和小批量梯度下降会在最优值附近反弹,除非你逐渐降低学习率。

8. 假设你正在使用多项式回归,绘制学习曲线后,你会发现训练误差和验证误差之间存在很大差距。发生了什么?解决此问题的三种方法是什么?
如果验证误差远高于训练误差,则可能是因为模型过拟合了训练集。解决此问题的一种方法是降低多项式的阶数:较小自由度的模型不太可能过拟合。另一种方法是对模型进行正则化,例如,将l2(Ridge)或(Lasso)惩罚添加到成本函数。这也会降低模型的自由度。最后你可以尝试增加训练集的大小。

9. 假设你正在使用岭回归,并且你注意到训练误差和验证误差几乎相等且相当高。你是否会说模型存在高偏差或高方差?你应该增加正则化参数alpha还是应该减小它呢?
如果训练误差和验证误差几乎相等且相当高,则该模型很可能欠拟合训练集,这意味着它具有很高的偏差。你应该尝试减少正则化参数alpha。

10. 为什么要使用:
a. 岭回归而不是简单的线性回归(即没有任何正则化)?
b. Lasso而不是岭回归?
c. 弹性网络而不是Lasso?

具有某些正则化的模型通常比没有任何正则化的模型要好,因此,你通常应优先选择岭回归而不是简单的线性回归。

Lasso回归使用L1惩罚,这通常会将权重降低为0.这将导致稀疏模型,其中除了最重要的权重之外,所有权重均为0(其实对此我是保持怀疑的,我认为应该仅是最不重要的为0,有待考证)。这是一种自动进行特征选择的方法,如果你怀疑实际上只有很少的特征很重要,那么这是一种很好的方法。如果你不确定,则首先应该选岭回归。

与Lasso相比,弹性网络通常更受青睐,因为Lasso在某些情况下可能产生异常(当几个特征强相关或特征比训练实例更多时)。但是,它确实增加了额外需要进行调整的超参数。如果希望Lasso没有不稳定的行为,则可以仅使用L1_radio接近1的弹性网络。

11. 假设你要将图片分类为室外/室内,白天/黑夜。你应该实现两个逻辑分类器还是一个Softmax回归分类器?
如果你要将图片分为室外/室内和白天/夜间,因为它们不是排他的类(即所有的四种组合都是可能的),则应该训练两个逻辑回归分类器。

12. 用Softmax回归进行批量梯度下降训练,实现提前停止法(不使用Scikit-Learn)。
参考:https://github.com/ageron/handson-ml2/blob/master/04_training_linear_models.ipynb

我的实现以及解释:
https://blog.csdn.net/weixin_43087913/article/details/109526805

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值