本章介绍了机器学习中一些“上帝视角”,包括对目标函数的理解、统一的神经网络框架等。
3. 机器学习中的统一框架
很多机器学习问题都可以放在一个统一框架下讨论,这样大家在理解各种模型时就是相互联系的。
3.1 目标函数
回忆一下目标函数的定义:
很多模型可以用这种形式框起来,比如linear regression、logistic regression、SVM、additive models、k-means,neural networks 等等。其中损失函数部分用来控制模型的拟合能力,期望降低偏差,正则项部分用来提升模型泛化能力,期望降低方差,最优模型是对偏差和方差的最优折中。
3.1.1 损失函数
损失函数反应了模型对历史数据的学习程度,我们期望模型能尽可能学到历史经验,得到一个低偏差模型。
Q:大家想想横坐标是什么?
实践当中很少直接使用0-1损失做优化(当然也有这么用的如:Direct 0-1 Loss Minimization and Margin Maximization with Boosting 和 Algorithms for Direct 0–1 Loss Optimization in Binary Classification,但总的来说应用有限),原因如下:
- 0-1损失的优化是组合优化问题且为NP-hard,无法在多项式时间内求得;
- 损失函数非凸非光滑,很多优化方法无法使用;
- 对权重的更新可能会导致损失函数大的变化,即变化不光滑;
- 只能使用
正则,其他正则形式都不起作用;
- 即使使用
正则,依然是非凸非光滑,优化求解困难。
由于0-1损失的问题,所以以上损失函数都是对它的近似。原理细节可以参考:Understanding Machine Learning: From Theory to Algorithms
不同损失函数在相同数据集下的直观表现如下:
3.1.2 正则化项
正则化项影响的是模型在未知样本上的表现,我们希望通过它能降低模型方差提高泛化性。
如果有数据集:
假设模型参数也服从某种概率分布:
3.1.3 L2 正则
假设

3.1.4 L1 正则
假设

3.1.5 正则化的几何解释

给定向量

3.1.6 Dropout正则化与数据扩充
这两类方法在神经网络中比较常用,后面会专门介绍。
3.2 神经网络框架
很多模型可以看做是神经网络,例如:感知机、线性回归、支持向量机、逻辑回归等
3.2.1 Linear Regression
线性回归可以看做是激活函数为
3.2.2 Logistic Regression
逻辑回归可以看做是激活函数为
3.2.3 Support Vector Machine
采用核方法后的支持向量机可以看做是含有一个隐层的3层神经网络:
3.2.4 Bootstrap Neural Networks
采用bagging方式的组合神经网络:
3.2.5 Boosting Neural Network
采用boosting方式的组合神经网络:
v1.3.10