这次作业参考这篇文档,只对其中部分翻译做了修改。另外第12题我没做(懒),感谢关注我的人,我本来以为没人看的,最近都仅仅是记录学习了,代码和文本没有做太多的矫正,请大家在留言中指出。谢谢~
https://www.jianshu.com/p/ac7a835202fb
如果你有一个数百万特征的训练集,你应该选择哪种线性回归训练算法?
- 优先使用随机梯度下降或小批量梯度下降。
- 如果训练集适合内存,则可能是批量梯度下降。
假设你训练集中特征的数值尺度(scale)有着非常大的差异,哪种算法会受到影响?有多大的影响?对于这些影响你可以做什么?
- 如果训练集中的特征具有非常不同的比例,损失函数将具有细长碗的形状,因此梯度下降算法将花费很长时间来收敛。
- 要解决此问题,应该在训练模型之前缩放数据。请注意, the Normal Equation在没有缩放的情况下可以正常工作。
在训练Logistic回归模型时,梯度下降会陷入局部最小值吗?
- 在训练Logistic回归模型时,梯度下降不会陷入局部最小值,因为成本函数是凸的。
如果运行时间足够长,所有梯度下降算法是否会导致相同的模型?
- 如果优化问题是凸的(例如线性回归或Logistic回归),并且学习率不是太高,那么所有梯度下降算法将接近全局最优并最终产生相当类似的模型。
- 但是,除非你逐渐降低学习率,否则随机梯度下降(SGD) 和小批量梯度下降(Mini-batch GD)将永远不会真正收敛,会继续围绕在全局最佳状态附近来回跳跃。这意味着即使你让它们运行很长时间,这些梯度下降算法也会产生略微不同的模型。
假设您使用批量梯度下降并在每个迭代(epoch)绘制验证错误。 如果您发现验证错误一直在上升,可能会发生什么? 你怎么解决这个问题?
- 如果验证错误在每个epoch后一直上升,那么一种可能性是学习率太高导致算法正在发散。
- 如果训练错误也会增加,那么这显然是学习率太高的问题,你应该降低学习率。但是,如果训练错误没有增加,那么模型将过拟合训练集,应该停止训练。
在验证错误上升时,立即停止小批量梯度下降是不是一个好主意?
- 由于它们的随机性,随机梯度下降SGD和小批量梯度下降Mini-batch GD都不能保证在每次训练迭代中会取得进步。因此,如果在验证错误增加时立即停止训练,您可能会在达到最佳值之前过早停止。更好的选择是定期保存模型,当它长时间没有改进时(意味着它可能永远不会超过记录),您可以恢复到最佳保存模型。
哪种梯度下降算法(我们讨论的那些)会最快达到最佳解决方案附近? 哪个会实际收敛?你怎么能让其他算法收敛呢?
- 随机梯度下降具有最快的训练迭代,因为它一次只考虑一个训练实例,因此它通常是第一个达到全局最佳值(或具有非常小的批量大小的小批量梯度下降)附近。
- 在给定足够的训练时间的情况下,只有批量梯度下降实际上会收敛。
假设你正在使用多项式回归。你绘制学习曲线,并注意到训练误差和验证误差之间存在很大差距。 原因是什么? 有哪三种方法可以解决这个问题?
- 如果验证错误远远高于训练错误,这可能是因为模型过拟合训练集。
- 降低多项式次数:具有较少自由度的模型不太可能过拟合。
- 规范模型:通过在成本函数中添加惩罚项l2(岭)或l1惩罚项(Lasso)。 这也会降低模型的自由度。
- 增加训练集的大小。也就是获取更多的数据。
假设你正在使用岭回归Ridge Regression 并且你注意到训练错误和验证错误几乎相等且相当高。你是否认为该模型存在高偏差或高偏差?你应该增加正则化超参数α还是减少它?
- 如果训练误差和验证误差几乎相等且相当高,则模型可能欠拟合训练集,这意味着它具有高偏差。你应该尝试减少正则化超参数α。
你为什么要使用:
1.岭回归代替线性回归?
- 具有一些正则化的模型通常比没有任何正则化的模型表现更好,因此您通常应该优先选择岭回归(添加l2惩罚项)而不是简单线性回归。
2. Lasso回归代替岭回归
- Lasso回归使用l1惩罚项,这往往会将权重降低到完全为零。这会导致稀疏模型,除了最重要的权重之外,所有权重都为零。这是一种自动执行特征选择的方法,如果您怀疑只有少数特征真正重要,这是很好的。当你不确定时,你应该更喜欢岭回归。
3.Elastic Net代替Lasso?
- Elastic Net通常优于Lasso,因为Lasso在某些情况下可能表现不稳定(当多个特征强烈相关或者当有比训练实例更多的特征时)。但是,它确实添加了一个额外的超参数来调整。如果你只想要非常稳定的Lasso,你可以使用Elastic Net,其接近 1。
假设你要将图片分类为室外/室内和白天/夜晚。你应该实现两个Logistic回归分类器吗还是一个Softmax回归分类器?
如果您想将图片分类为室外/室内和白天/夜晚,因为这些不是排他性的类(即,所有四种组合都是可能的),你应该训练两个Logistic回归分类器。