机器学习复习

监督学习的假设是:样本数据独立同分布

统计学习三要素:模型+策略+算法

风险函数(期望风险)(期望损失)
经验风险(经验损失)
当样本容量无穷大时,可以用经验风险估计期望风险。

极大似然估计就是经验风险最小化的一个例子。当模型是条件概率分布时,损失函数是对数损失函数时,经验风险最小化等价于极大似然估计;贝叶斯估计中的最大后验概率估计就是结构风险最小化的一个例子。(使用正则化)

测试误差、训练误差
误差率,准确率 :当损失函数为0-1损失函数时,测试误差变成了误差率
学习方法对未知数据的预测能力称为泛化能力

过拟合、
模型选择方法:
1.正则化(结构风险最小化策略的实现,经验风险上加一个正则化项或罚项)
从贝叶斯估计的角度来看,正则化项对应于模型的先验概率
2.交叉验证
当样本数据充足时(训练集、验证集和测试集)
样本数据不充足时:
1。简单交叉验证
2。S折交叉验证(数据切成S份,S-1作为训练集)
3。留一交叉验证(S=N的特殊情况)

泛化能力
泛化误差就是所学习到的模型的期望风险
假设空间包括有限个函数情况下的泛化误差上界:训练误差小的模型,其泛化误差也会小

监督学习方法:
1。生成方法,生成模型
由数据学习联合概率分布,然后求出条件概率分布
朴素贝叶斯法,隐马尔科夫模型
2。判别方法,判别模型
直接学习决策函数或条件概率分布
k近邻法、感知机、决策树、逻辑斯蒂回归模型、最大熵模型、支持向量机、提升方法和条件随机场
生成方法和判别方法的异同

分类问题
分子总是TP—-正类预测为正类
精确率:分母为预测为正类的总数
召回率:分母为样本为正类的总数

标注问题

回归问题:
回归问题的学习等价于函数拟合
回归学习最常用到的损失函数是平方损失函数,在此情况下,可以通过最小二乘法求解

感知机
为神经网络和支持向量机的基础
线性分类模型,判别模型
数据集的线性可分性
模型为:书中的公式
策略:损失函数定义的是误分类点到超平面S的总距离。
算法:随机梯度下降法

感知机学习算法的原始形式:一次随机选择一个误分类点使其梯度下降
可以证明,当数据线性可分,算法收敛。有限次可以完全正确划分
对偶形式的基本思想:看书

k近邻法
不具有显式的学习过程
算法:见书
模型:k近邻模型
由:距离度量、k值的选择和分类决策规则组成
k值越小,越容易导致过拟合,模型变得复杂
k值越大,模型变得简单
多数表决规则等价于经验风险最小化
利用kd树,可以减少搜索的计算量。其原理是一棵二叉树

朴素贝叶斯法
生成模型,首先得到联合概率分布。
学习先验概率分布和条件概率分布,然后利用贝叶斯定理求得后验概率。(假设特征条件独立分布)
最终分到后验概率最大的类中,这等价于期望风险最小化(推导看书,基于假设选择0-1损失函数)
极大似然估计和贝叶斯估计

决策树
可以看成if-then的规则集合,也可以看成是定义在特征空间和类空间上的条件概率分布
与训练集不相矛盾的决策树可能有多个,也可能一个也没有
决策树学习的损失函数通常是正则化的极大似然函数。策略是:以损失函数为目标函数的最小化
决策树学习包括3个步骤:递归法
1。特征选择(信息增益)
2。决策树的生成(局部选择)
3。决策树的修剪(全局选择)
信息增益:
信息增益表示得知特征X的信息而使得类Y的信息的不确定性减少的程度
算信息增益的时候,条件熵:先按特征取值划分,再按类的取值划分。
信息增益比
ID3算法相当于用极大似然法进行概率模型的选择,ID3算法中只有树的生成,所以该算法容易造成过拟合
C4.5生成算法是对ID3算法的改进,其中用信息增益比替代信息增益
决策树的剪枝算法:
剪枝往往通过极小化决策树整体的损失函数或代价函数来实现。
需要用动态规划算法实现
CART算法没有看

LR(逻辑斯蒂回归)
逻辑斯蒂回归模型:其分布
属于对数线性模型
模型参数估计的推导:看书

关于支持向量机,我发现总是隔段时间就会忘记,我觉得是因为站的高度不够吧。
首先要明确它是干什么的?
SVM是用来分类的,当然也可以用来回归。我们暂且先考虑分类的问题。
好的,提到分类,我们首先要考虑它是二元分类还是多元分类?因为往往产生记忆模糊或是概念混淆或是看到同样的道理说法写法不一样的时候觉得自己可能看了假的svm,就是因为这些很根本的问题没有弄清楚。(其它的知识点也是这样的)。
其实SVM主要是进行二分类的,当然它也可以进行多分类。只不过二分类就只有一个分类超平面(或是超曲面),而多分类就是多个这样的面。
到了这里,我们还要问自己,它是针对线性的,还是非线性,抑或是对数线性(比如logistic回归,注意,它是分类而不是回归)。
那么它可以分成三类情况讨论:
线性可分支持向量机
线性支持向量机
非线性支持向量机
第一种即是说,样本数据是线性可分的,即存在一个超平面(对应二维,就是一条线;对应三维,其实就是一个平面…)将它完全正确划分。
第二种是说,样本可以被线性划分,但是不是完全,即存在一些分类错误的样本。
而第三类是说,样本不可以被线性划分,准确说是,用非线性模型才能很好地进行分类的问题。
到了这个地方,我们还要问自己,SVM对应的模型,策略和算法是什么?首先是模型,其实在回答上面的问题时,就大概提及了。就是找到一个超面进行划分,从而达到分类的效果。它的基本模型就是:定义在特征空间里面的间隔最大的线性分类器。
这个超平面就是 w x + b = 0 。而策略呢?策略就是:间隔最大化(正则化的合页损失函数的最小化问题)
说到间隔最大化就要理解一下间隔这个概念。这个也就是它的

SVM的推导
1。首先要写出函数间隔,几何间隔,
2。取函数间隔为1,等价转换最优化问题(变成了凸二次规划问题)
3。利用拉格朗日乘子法

线性可分支持向量机和硬间隔最大化
线性支持向量机与软间隔最大化:合页损失函数等价
非线性支持向量机与核函数

重点
SVM和LR的异同点
对于SVM我们用到的是:最大间隔化,或是带有正则化的合页损失函数的最小化。这两者是等价的。(到现在才明白过来)

我们来看一下公式: L i = C max ( 0 , 1 y i w T x i ) + R ( W ) ,这个是带正则化的合页损失函数,我们的目的是将它最小化。
而再看看这个公式:

1 2 w 2 + C i = 1 N ξ i

以下为限制条件:
y i ( w x i + b ) 1 ξ i , i = 1 , 2 , . . . , N

ξ i 0 , i = 1 , 2 , . . . , N

现在说说LR

SVM是最常用的两个分类器之一,而另一个就是Softmax分类器,它的损失函数与SVM的损失函数不同。Softmax分类器就可以理解为逻辑回归分类器面对多个分类的一般化归纳。SVM将输出 f ( x i , W ) 作为每个分类的评分(因为无定标,所以难以直接释)。与SVM不同,Softmax的输出(归一化的分类概率)更加直观,并且从概率上可以解释,在Softmax分类器中,函数映射 f ( x i ; W ) = W x i 保持不变,但将这些评分值视为每个分类的未归一化的对数概率,并且将折叶损失(hinge loss)替换为交叉熵损失(cross-entropy loss)。公式如下:

L i = l o g ( e f y i j e f j )
或等价的
L i = f y i + l o g ( j e f j )

还记得逻辑回归分类器吗?它可以看作是Softmax分类器的特例。
L i = l o g ( e f y i 1 + e f y i )

提到这个,不得不从概率论和信息论中来慢慢解释。首先看看熵这个概念:
想要考察信息量的损失,就要先确定一个描述信息量的量纲。 在信息论这门学科中,一个很重要的目标就是量化描述数据中含有多少信息。 为此,提出了熵的概念,记作 H ,一个概率分布所对应的熵表达如下:

H = i = 1 N p ( x i ) log p ( x i )

在“真实”分布 p 和估计分布 q 之间的交叉熵定义如下:

H ( p , q ) = x p ( x ) log q ( x )

在统计应用中,我们经常需要用一个简单的,近似的概率分布 f 来描述观察数据 D 或者另一个复杂的概率分布 f 。这个时候,我们需要一个量来衡量我们选择的近似分布 f 相比原分布 f 究竟损失了多少信息量,这就是KL散度起作用的地方。

D K L ( p | | q ) = i = 1 N p ( x i ) ( log p ( x i ) log q ( x i ) )

或者写成:
D K L ( p | | q ) = i = 1 N p ( x i ) log p ( x i q ( x i )

因此,Softmax分类器所做的就是最小化在估计分类概率(就是上面的 e f y i / j e f j )和“真实”分布之间的交叉熵,在这个解释中,“真实”分布就是所有概率密度都分布在正确的类别上(比如: p = [ 0 , . . .1 , . . . , 0 ] 中在 y i 的位置就有一个单独的1)。还有,既然交叉熵可以写成熵和相对熵(Kullback-Leibler divergence) H ( p , q ) = H ( p ) + D K L ( p | | q ) ,并且 H 函数 p 的熵是0,那么就能等价的看做是对两个分布之间的相对熵做最小化操作。换句话说,交叉熵损失函数“想要”预测分布的所有概率密度都在正确分类上。

精确地说,SVM分类器使用的是折叶损失(hinge loss),有时候又被称为最大边界损失(max-margin loss)。Softmax分类器使用的是交叉熵损失(corss-entropy loss)。Softmax分类器的命名是从softmax函数那里得来的,softmax函数将原始分类评分变成正的归一化数值,所有数值和为1,这样处理后交叉熵损失才能应用。注意从技术上说“softmax损失(softmax loss)”是没有意义的,因为softmax只是一个压缩数值的函数。但是在这个说法常常被用来做简称。

猜你喜欢

转载自blog.csdn.net/qxconverse/article/details/79520498