1.如果训练集具有数百万个特征,那么可以使用哪种线性回归训练算法?
A:如果你的训练集具有数百万个特征,则可以使用随机梯度下降或小批量梯度下降。如果训练集适合容纳于内存,则可以使用批量梯度下降。但是你不能使用标准方程或SVD(奇异值分解)方法,因为随着特征数量的增加,计算复杂度会快速增长(超过二次方)。
2.如果训练集里特征的数值大小迥异,哪种算法可能会受到影响?受影响程度如何?你应该怎么做?
A:如果你的训练集中的特征具有不同的尺寸比例,则成本函数具有细长碗的形状,因此梯度下降算法需要很长时间才能收敛。为了解决这个问题,应该在训练模型之前缩放数据。【标准方程法和SVD(奇异值分解)法无须缩放即可正常工作。】此外,如果特征未按比例缩放,则正则化模型可能会收敛至次优解:由于正则化会惩罚较大的权重,因此与具有较大值的特征相比,具有较小值的特征往往会被忽略。
3.训练逻辑回归模型时,梯度下降会卡在局部最小值中吗?
A:不会,逻辑回归成本函数是凸函数,可以通过梯度下降找到全局最小值,不会陷入局部最小值。
4.如果你让它们运行足够长的时间,是否所有的梯度下降算法都能得出相同的模型?
A:不一定,如果优化问题是凸的(例如线性回归或逻辑回归),并且假设学习率不是太高,那么所有梯度下降算法都将接近全局最优并最终产生很相似的模型。但是,除非逐步降低学习率,否则随机梯度下降和小批量梯度下降将永远不会真正收敛。相反,它们会一直围绕全局最优值来回跳跃。这意味着即使让它们运行很长时间,这些梯度下降算法也会产生略微不同的模型。
5.假设你使用批量梯度下降,并在每个轮次绘制验证误差。如果你发现验证错误持续上升,可能是什么情况?你该如何解决?
A:如果验证错误在每个轮次后持续上升,则一种可能性是学习率过高且算法在发散。如果训练错误也增加了,那么这显然是问题所在,应该降低学习率。但是,如果训练错误没有增加,则模型已经过拟合训练集,应该停止训练。
6.当验证错误上升时立即停止小批量梯度下降是个好主意吗?
A:不是,由于随机性,随机梯度下降和小批量梯度下降都不能保证在每次训练迭代中取得进展。因此,如果在验证错误上升时立即停止训练,则可能在达到最优值之前就停止太早了。更好的选择是按照一定的间隔时间保存模型。然后,当它很长时间没有改善(意味着它可能永远不会超过最优值)时,可以恢复到保存的最佳模型。
7.哪种梯度下降算法(目前讨论的)将最快到达最佳解附近?哪个实际上会收敛?如何使其他的也收敛?
A:SGD最快到达最佳解附近;批量梯度下降算法实际上会收敛;随机下降和小批量梯度下降会在最优值附近反弹,除非逐渐降低学习率。
8.假设你正在使用多项式回归。绘制学习曲线后,你会发现训练误差和验证误差之间存在很大的差距。发生了什么?解决此问题的三种方法是什么?
A:发生了过拟合。解决此问题的一种方法是降低多项式阶数:较小自由度的模型不太可能过拟合。另一种方法是对模型进行正则化,例如将Ridge(岭回归)或Lasso惩罚添加到成本函数。这也会降低模型的自由度。最后,可以尝试增加训练集的大小。
9.假设你正在使用岭回归,并且你注意到训练误差和验证误差几乎相等且相当高。你是否会说模型存在高偏差或高方差?你应该增加正则化超参数α还是减小它呢?
A:如果训练误差和验证误差几乎相等且相当高,则该模型很可能欠拟合训练集,这意味着它具有很高的偏差。应该尝试减少正则化超参数α。
10.为什么要使用:
a.岭回归而不是简单的线性回归(即没有任何正则化)?
b.Lasso而不是岭回归?
c.弹性网络而不是Lasso?
A:a.具有某些正则化的模型通常比没有任何正则化的模型要好,因此,通常应优先选择岭回归而不是简单的线性回归。
b.Lasso回归使用l1惩罚,这通常会将权重降低为零。这将导致稀疏模型,其中除了最重要的权重之外,所有权重均为零。这是一种自动进行特征选择的方法,如果怀疑实际上只有很少的特征很重要,那么这是一种很好的方法。如果不确定,应首选岭回归。
c.与Lasso相比,弹性网络通常更受青睐,因为Lasso在某些情况下可能产生异常(当几个特征强相关或当特征比训练实例更多时)。但是,它确实增加了额外需要进行调整的超参数。如果希望Lasso没有不稳定的行为,则可以仅使用l1_ratio接近1的弹性网络。
11.假设你要将图片分类为室外/室内和白天/夜间。你应该实现两个逻辑回归分类器还是一个Softmax回归分类器?
A:如果要将图片分类为室外/室内和白天/夜间,因为他们不是排他的类(即所有四种组合都是可能的),则应训练两个逻辑回归分类器。