Sklearn 与 TensorFlow 机器学习实用指南——第四章课后习题

本文深入探讨了机器学习中各种梯度下降算法的选择与应用,包括随机梯度下降、小批量梯度下降及批量梯度下降的特点与适用场景,以及如何解决训练过程中遇到的问题如过拟合、欠拟合等。同时,对比了线性回归、Logistic回归、多项式回归、岭回归、Lasso回归和弹性网络等模型的区别与优劣。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.如果你有一个数百万特征的训练集,你应该选择哪种线性回归训练算法?

  • 如果拥有具有数百万特征的训练集,则可以使用随机梯度下降小批量梯度下降
  • 如果内存够,则也可以是批量梯度下降
  • 但是你不能使用 the Normal Equation,因为计算复杂度随着特征数量的增长而快速增长(超过二次方)。

2.假设你训练集中特征的数值尺度(scale)有着非常大的差异,哪种算法会受到影响?有多大的影响?对于这些影响你可以做什么?

  • 如果训练集中的特征具有非常不同的比例,损失函数将具有细长碗的形状,因此梯度下降算法梯度下降算法收敛会很慢,将花费很长时间。
  • 要解决此问题,应该在训练模型之前特征缩放。请注意, the Normal Equation在没有缩放的情况下可以正常工作。

3.训练 Logistic 回归模型时,梯度下降是否会陷入局部最低点?

   在训练Logistic回归模型时,梯度下降不会陷入局部最小值,因为成本函数是凸的

4.在有足够的训练时间下,是否所有的梯度下降都会得到相同的模型参数?

  • 如果优化问题是凸的(例如线性回归或Logistic回归),并且假设学习率不是太高,那么所有梯度下降算法将接近全局最优并最终产生相当类似的模型。
  • 但是,除非你逐渐降低学习率,否则Stochastic GD and Mini-batch GD 将永远不会真正收敛; 相反,他们将继续围绕在全局最佳状态附近来回跳跃。这意味着即使你让它们运行很长时间,这些Gradient Descent算法也会产生略微不同的模型

5.假设你使用批量梯度下降法,画出每一代的验证误差。当你发现验证误差一直增大,接下来会发生什么?你怎么解决这个问题?

如果验证错误在每个epoch后一直上升,那么一种可能性是学习率太高导致算法正在发散。

  • 如果训练错误也会增加,那么这显然是学习率太高的问题,你应该降低学习率。
  • 但是,如果训练错误没有增加,那么您的模型将过拟合训练集,您应该停止训练。

6.当验证误差升高时,立即停止小批量梯度下降是否是一个好主意?

  • 应该保留那个值,如果长时间没有更好的值,则停止。
  • 由于它们的随机性,Stochastic Gradient Descent nor Mini-batch Gradient Descent 都不能保证在每次训练迭代中会取得进步。

  • 因此,如果在验证错误增加时立即停止训练,您可能会在达到最佳值之前过早停止。更好的选择是定期保存模型,当它长时间没有改进时(意味着它可能永远不会超过记录),您可以恢复到最佳保存模型。

7.哪个梯度下降算法(在我们讨论的那些算法中)可以最快到达解的附近?哪个的确实会收敛?怎么使其他算法也收敛?
一般来将随机梯度下降最快到达解的附近,而批量梯度下降经过长时间的迭代确实会收敛,

  • 随机梯度下降具有最快的训练迭代,因为它一次只考虑一个训练实例,因此它通常是第一个达到全局最佳值(或具有非常小的批量大小的小批量GD)附近。

  • 然而,在给定足够的训练时间的情况下,只有批量梯度下降实际上会收敛。
    降低学习速度,随机梯度下降和小批量梯度下降设置合理的学习步长也会收敛。

8.假设你使用多项式回归,画出学习曲线,在图上发现学习误差和验证误差之间有着很大的间隙。这表示发生了什么?有哪三种方法可以解决这个问题?
      说明发生了过拟合现象,解决方法有:简化模型;增加数据集;添加正则化项。

  • 尝试解决此问题的一种方法是降低多项式次数:具有较少自由度的模型不太可能过拟合。
  • 您可以尝试的另一件事是规范模型 - 例如,通过在成本函数中添加添加正则化项。 这也会降低模型的自由度。
  • 最后,您可以尝试增加训练集的大小。也就是获取更多的数据

9.假设你使用岭回归,并发现训练误差和验证误差都很高,并且几乎相等。你的模型表现是高偏差还是高方差?这时你应该增大正则化参数 ,还是降低它?
    如果训练误差和验证误差几乎相等且相当高,则模型可能欠拟合训练集,这意味着它具有高偏差。你应该尝试减少正则化超参数α

10.你为什么要这样做:
使用岭回归代替线性回归?

  • 具有一些正则化的模型通常比没有任何正则化的模型表现更好,因此您通常应该优先选择岭回归(添加l2惩罚项)而不是简单线性回归。

Lasso 回归代替岭回归?

  • Lasso回归使用l1惩罚项,这往往会将权重降低到完全为零。这会导致稀疏模型,除了最重要的权重之外,所有权重都为零。这是一种自动执行特征选择的方法,如果您怀疑只有少数特征真正重要,这是很好的。当你不确定时,你应该更喜欢岭回归。

弹性网络代替 Lasso 回归?

  • 岭回归为了使模型的参数权重尽量小;Lasso 回归完全消除最不重要的特征的权重;一般来说,弹性网络的表现要比 Lasso 好,因为当特征数量比样本的数量大的时候,或者特征之间有很强的相关性时,Lasso 可能会表现的不规律。

11.假设你想判断一副图片是室内还是室外,白天还是晚上。你应该选择二个逻辑回归分类器,还是一个 Softmax 分类器?

  • 两个逻辑回归分类器,因为Softmax分类器只能输出一个标签,只能用于判断互斥的类别。如果您想将图片分类为室外/室内和白天/夜晚,因为这些不是排他性的类(即,所有四种组合都是可能的),你应该训练两个Logistic回归分类器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值