机器学习整理

  1. 机器学习无非就是研究数据之间关联关系的学科。比如人脸图像与其身份之间的关系,语音数据与文字之间的对应关系,胆固醇指数与心脏病之间的关联关系,股票的历史数据与其未来走势的关联关系等等。

    简单的机器学习算法只能挖掘简单的关联关系(如线性关系),而复杂的模型(如深度学习)可以对更加复杂的非线性数据关联关系建模。

  2. 任何一种参数化的(parameterized)机器学习算法都可分解为如下三个部分(3 core components)

    1. 得分函数(score function)
    2. 损失函数(loss function)
    3. 优化算法(Optimization)

    以分类问题为例,得分函数用于将输入数据映射到类别得分,损失函数用于度量模型的估计结果与真实结果之间的一致性,优化算法则基于损失函数寻找最佳的模型参数。

    例如:

    1. SVM 的得分函数是线性函数 f(xi,W,b)=Wxi+b ,损失函数是 hinge loss + 正则项,优化算法是 SMO 等;
    2. Softmax 分类器的得分函数是线性函数 f(xi,W,b)=Wxi+b ,损失函数是 cross-entropy loss,优化算法是梯度下降;
    3. MLP (Multilayer Perception) 的得分函数是 Artificial Neural Network,损失函数是 cross-entropy loss,而优化算法是 BP (backpropagation)算法。

    因此,在设计算法或者编写机器学习代码的时候,重要的是把握以上三个部分的实现,剩下的都是细节。

  3. 任何算法无论复杂或简单,都遵循一个“结果估计→计算误差→修正系统”的迭代过程,直到得到最优解或可接受的误差为止。在此优化过程中,得分函数损失函数优化算法之间的信息交互过程(information flow)如下:

    1. 前向过程(forward pass):根据给定参数 W ,基于得分函数,计算训练数据的类别得分;
    2. 数据损失(data loss):基于损失函数,计算类别得分与真实标记之间的一致性(compatability);
    3. 反向过程(backward pass):根据数据损失,计算其相对于参数 W 的变化程度(梯度),并基于它更新 W ,以使得下一轮迭代中有更小的数据损失。
  4. 分类问题中,最理想的损失函数是 0-1 损失,即统计数据中错误分类的个数:

    0,1=i=0|D|If(xi)yi

    其中 D 是训练集, I 是符号函数(indicator function)。

    然而,0-1 损失不可微,其优化过程的代价会非常大。因此,才出现了很多对 0-1 损失的近似,如 NLL(Negative Log-Likelihood Loss)等。

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