ML笔记 - 机器学习方法三要素

版权声明:本文为博主原创文章,可以转载,但请添加原文链接。 https://blog.csdn.net/hwhsong/article/details/83012261

机器学习方法通常都是由模型、策略和算法三部分构成:方法 = 模型 + 策略 + 算法
模型确定学习范围,策略确定学习规则,算法按规则在范围内学习。

模型

输入空间到输出空间的映射关系,学习过程即为从假设空间搜索适合当前数据的假设。
分析当前需要解决的问题,确定模型:

  • 分类(Classification):预测分类
  • 回归(Regression):预测取值
  • 聚类(Clustering):发现结构
  • 异常检测(Anomaly Detection):发现异常数据

策略

从假设空间众多的假设中选择到最优的模型的学习标准或规则。
要从假设空间中选择一个最合适的模型出来,需要解决以下问题:

  • 评估某个模型对单个训练样本的效果
  • 评估某个模型对训练集的整体效果
  • 评估某个模型对包括训练集、预测集在内的所有数据的整体效果
    定义几个指标用来衡量上述问题:
  • 损失函数:0-1损失函数、平方损失函数、绝对损失函数、对数损失函数等
  • 风险函数:经验风险、期望风险、结构风险
    基本策略:
  • 经验风险最小(EMR: Empirical Risk Minimization)
  • 结构风险最小(SRM: Structural Risk Minimization)

损失函数(Loss Function)

用来衡量预测结果和真实结果之间的差距,其值越小,代表预测结果和真实结果越一致。
通常用一个非负实值函数。
通过各种方式缩小损失函数的过程被称作优化。
损失函数记做L(Y, f(x)) 。
不同的损失函数有不同的特定,适用于不同的场景。

0-1损失函数(0-1 LF)
预测值和实际值精确相等则“没有损失”为0,否则意味着“完全损失”为1。
预测值和实际值精确相等有些过于严格,可以采用两者的差小于某个阈值的方式。
适用于理想状况模型。

绝对值损失函数(Absolute LF)
预测结果与真实结果差的绝对值。
简单易懂,但是计算不方便。

平方损失函数(Squared LF)
预测结果与真实结果差的平方。
每个样本的误差都是正的,累加不会被抵消。
平方对于大误差的惩罚大于小误差。
数学计算简单友好,导数为一次函数。
适用于线性回归。

对数损失函数(Logarithmic LF)
对数函数具有单调性,在求最优化问题时,结果与原始目标一致。
可将乘法转化为加法,简化计算。
适用于逻辑回归、交叉熵。

指数损失函数(Exponential LF)
单调性、非负性的优良性质,使得越接近正确结果误差越小。

折叶损失函数(Hinge LF)
也称铰链损失,对于判定边界附近的点的惩罚力度较高,常见于SVM(支持向量机)。

风险函数(Risk Function)

又称期望风险,所有数据集(包括训练集和预测集,遵循联合分布)的损失函数的期望值。

经验风险(Empirical Risk)
损失函数度量了单个样本的预测结果,要想衡量整个训练集的预测值和真实值的差异,将整个训练集所有记录均进行一次预测,求取损失函数,将所有值累加,即为经验风险。
经验风险越小说明模型对训练集的拟合程度越好。
在数据样本较小时,仅关注经验风险,很容易导致过拟合。

经验风险 vs 期望风险

  • 期望风险是模型对全局(所有数据集)的效果,经验风险是模型对局部(训练集)的 效果。
  • 期望风险往往无法计算,即联合分布P(X, Y)通常是未知的,经验风险可以计算。
  • 当训练集足够大时,经验风险可代替期望风险,即局部最优代替全局最优。

结构风险(Structural Risk)
在经验风险的基础上,增加一个正则化项(Regularizer)或者叫做惩罚项(Penalty Term)。
正则化项,即惩罚函数,该项对模型向量进行惩罚,从而避免过拟合问题。正则化方法会自动削弱不重要的特征向量,自动从许多的特征变量中“抽取”重要的特征变量,减小特征变量的数量级。
正则化函数有多种选择,它一般是模型复杂度的单调递增函数,模型越复杂,该函数的值就越大,惩罚力度相应的越大。
常用模型参数向量的范数,常用的有零范数、一范数、二范数、迹范数、Frobenius范数和核范数等。

结构风险 vs 经验风险

  • 经验风险越小,模型决策函数越复杂,其包含的参数越多。
  • 当经验风险函数小到一定程度,就会出现过拟合现象。
  • 防止过拟合现象的方式,就要降低决策函数的复杂度,让惩罚项最小化。
  • 需要同时保证经验风险函数和模型决策函数的复杂度都达到最小化。
  • 把两个式子融合成一个式子得到结构风险函数,然后把该结构风险函数进行最小化。

算法

学习模型的具体的计算方法,通常是求解最优化问题。

猜你喜欢

转载自blog.csdn.net/hwhsong/article/details/83012261