《机器学习实战 学习笔记》(七):训练模型练习题

1. 如果训练集特征超过百万个,你会选择什么线性回归训练算法?

   随机梯度下降或小批量梯度下降,内存允许的话也可以用批量梯度下降。由于计算复杂度随着特征数量的增加而加速提升(比二次方高),所以不能使用标准方程。

2.如果训练集里特征的数值大小迥异,什么算法可能会受到影响?受影响程度如何?你该怎么做?

   成本函数呈现为细长的碗状,导致梯度下降算法震荡耗费很长时间才能收敛。解决:数据缩放。

3.训练逻辑回归模型时,梯度下降是否会困于局部最小值?

   逻辑回归的成本函数是凸函数,所以不会,否则会。

4.假设运行时间足够长,所有的梯度下降算法是不是最终会产生相同的模型?

   如果优化问题是凸的(比如线性回归或逻辑回归),且学习率不搞,那么所有梯度下降算法都可以接近全局最优,生成的模型都非常相似?为什么呢???。即使运行时间足够长,也会有轻微不同。

5.假设你使用的是批量梯度下降,并且每一轮训练都绘制出其验证误差,如果发现验证误差持续上升,可能发生了什么?如何解决?

   如果验证误差开始每轮上升,可能学习率太高。如果训练误差也开始上升,显示是算法开始发散,需要降低学习率。但是,如果训练误差不上升,验证误差上升(两条线间间隙变大),过拟合。

6.当验证误差开始上升时,立刻停止小批量梯度下降算法训练是否是一个好主意?

   不能,无论是SGD还是小批量梯度下降,由于随机性,不能保证每一轮迭代取得最优。解决方法:定时保存最优模型,当较长一段时间没有改善时,恢复到最优模型。

7.哪种梯度下降算法能最快到达最优解附近?哪种会收敛?如何使用其他算法同样收敛?

   随机梯度下降的迭代训练最快,因为一次只考虑一个训练实例。只有批量梯度下降才会真正收敛。随机梯度下降和小批量梯度下降,将会一直围绕最小值上上下下,除非降低学习率。

8.假设您使用的是多项式回归,绘制出学习曲线,你发现训练误差和验证误差之间存在很大的差距,发送了什么?哪三种方法可以解决这个问题?

   训练集上表现好,验证集上表现差,过拟合。 解决方法:多项式降阶 (降低模型复杂度)、增加正则项、扩大训练集。

9.假设你使用的是岭回归,你注意到训练误差和验证误差几乎相等,并且非常高。你认为模型是高方差还是高偏差?你应该提高还是降低正则化超参数 α \alpha α

   高偏差,降低

10.你为何要使用:

   岭回归而不是线性回归? 因为正则项使模型泛化能力更好。
   lasso回归而不是岭回归? lasso使用l1惩罚函数,倾向于将无用特征权重置为0,生成一个稀疏模型。
   弹性网络而不是lasso回归? 因为特征相关性强或特征数量比实例数量还多时,lasso非常不稳定。另外,弹性网络会添加一个额外的超参数r对模型进行调整,可自由切换岭回归和lasso回归。

11.如果你想将图片分类为户外/室内以及白天/黑夜。你应该实现两个逻辑回归分类器还是一个Softmax回归分类器?

   2个逻辑回归分类器,因为不是互斥的。

12.用Softmax回归进行批量梯度下降训练,并实施早期停止法(不使用sklearn)。

   略。

你可能感兴趣的:(机器学习)