正则化回归模型
在一个模型中,自由度(可调节的参数)越多,就越容易过度拟合。因此需要约束这个模型,又称正则化
常见的正则化方法:
- Ridge Regression,也被称作L2 Regression
- Lasso Regression,也被称作L1 Regression
- Elastic Net
在上述正则化方法中,都有一个正则项(regularization term)被添加到cost function中。
Ridge Regression
Cost function:
可以看出 \alpha 越大,拟合的曲线越平滑,因为 \alpha 对高维惩罚更严重;反之 \alpha 越小,曲线会更弯曲。
LASSO Regression (Least Absolute Shrinkage and Selection Operator Regression)
正则化的线性回归,cost function 为
通过使用更激进的方法:没有 \frac{1}{2} 常数 以及 \theta 的绝对值,达到了减少了权重 \theta_i 值的目的。因此,最终可能会在模型中包含比开始时更少的特征,这是一个巨大的优势。
它在一个步骤中完成了特征选择和回归,形成了一个稀疏的模型。
Elastic Net Regression
这种方法,介于L1和L2之间。\alpha 控制着模型正则化的程度(模型的cost)。若\alpha非常大,由于结果是一条直线,那么所有参数(\theta_i)都会是0
模型的选择
- Ridge 一般作为默认选项
- 若特征较多,但是有用的较少,可以选择LASSO或者Elastic
- Elastic比LASSO更优,因为加入了更多的控制项
- 若特征数量 > 训练实例数,选择Elastic
梯度下降
Batch Gradient Descent BGD
通过整个数据集来计算模型的误差:
之后使用误差来更新参数 \theta_i
Stochastic Gradient Descent SGD
对数据进行随机采样并使用采样的1个样本来计算 cost function,再用每次的采样来计算并更新参数 \theta_i
SGD每次迭代时只有一组数据在内存中,算法运行更快,对大数据集的效果更好。
然而由于SGD随机性太强, cost function 会随着时间推移上下跳动,即使已经接近最小值了,也会继续跳动而不是稳定下来。因此最终的结果不会是最优的(optimal)。
但是也是因为其随机性,能够在高cost时跳出局部最优。能够解决cost function跳跃的一个途径是让学习率\eta随时间推移而降低。此过程被称为模拟退火。
Mini Batch Gradient Descent MGD
属于BGD和SGD的结合。既不是一次使用完整数据集,也不是随机抽样1个样本,而是基于随机抽样的一小部分样本。在深度学习中,这种方法用的是最多的,因为这个方法收敛不慢,局部最优也可以接受。