机器学习算法的一般结构

1. 算法框架

跟把大象放进冰箱里一样,李宏毅老师将机器学习方法总结为三步,如下:
机器学习算法的一般结构
根据上图所述,总的来说,就是如下三步:

  • Define a set of function(Model
  • Goodness of function(Objective Function
  • Pick the best function(Gradient Descent

所有机器学习算法都满足这个架构,而且理解起来也是颇为合理的。所以提到一种算法,我们就要思考这三部分究竟是什么?以及如何被定义出来的?基本就可以理解算法的核心内容,同时也建立各种算法之间的联系。

2. 主要算法比较

下面针对几种主要的算法做个比较:
机器学习算法的一般结构
上图,我们比较了线性回归、逻辑回归、SVM和神经网络模型的三个组成部分,以及模型做特征装换的方式,下面具体说一下:

  • Function Set:我们发现这些算法的决策函数是很相似的,基本都是线性模型做些简单变化得到的,其实看上去也就是线性模型,只是不同算法加入不同的feature transformation从而具备处理非线性问题的能力。
  • Loss:损失函数也就是机器学习方法的第二步:判断模型的好坏。最基本的可以划分成两部分:回归问题使用square loss分类问题使用cross entropy(SVM中说明了hinge loss就是square loss的近似)。其中square loss(平方损失)反映预测值与实际值之间偏差的大小,偏差越小说明模型越好;cross entropy(交叉熵)反映实际分布与预测分布之间的接近程度,交叉熵越小,说明分布越接近,分类结果越好。
  • Find Best Function:机器学习模型基本都是使用Gradient Decent训练出来的,虽然还有其他的方法,但是梯度下降是使用最广泛的,包括深度学习中各种优化器其实都是梯度下降的变体。
  • Feature Transformation:模型要具备处理非线性问题的能力,基本都是将原始数据经特征变换映射到另外一个可以线性划分的空间,然后使用线性方法处理,只是feature transform的方式不一样。LR使用串联逻辑回归模型或者引入核函数实现,neural network使用多层hidden layer实现,SVM使用核函数实现。所以机器学习模型基本都可以看做feature transform + Linear Model的形式。
  • Feature Interaction:为了更好地挖掘出数据的潜在模式,使用特征交互构造更高层级的特征。比如人工特征工程,FM的二阶交互,DNN的高阶交互,在推荐系统中使用十分广泛。

以上属于个人理解,如果有不当之处请指出,谢谢。