github开源:https://nndl.github.io/
nndl作者:邱锡鹏
笔记作者:Isaac.(原创)
线性模型(Linear Model)是机器学习中应用最广泛的模型,指通过样本特征的线性组合来进行预测的模型。
在分类问题中,由于输出目标 y 是一些离散的标签,而 f(x; w)的值域为实数,因此无法直接用 f(x; w)来进行预测,需要引入一个非线性的决策函数(Decision Function)g(·)来预测输出目标。
其中 f(x; w)也称为判别函数(Discriminant Function)。
对于两类分类问题,比较典型的非线性决策函数g(·)可以是符号函数(Sign Function)。
目录结构
3.1 线性判别函数和决策边界
3.1.1 两类分类
3.1.2 多类分类
3.2 Logistic回归
3.2.1 参数学习
3.3 Softmax回归
3.3.1 参数学习
3.4 感知器
3.4.1 参数学习
3.4.2 感知器的收敛性
3.4.3 参数平均感知器
3.4.4 扩展到多类分类
3.5 支持向量机
3.5.1 参数学习
3.5.2 核函数
3.5.3 软间隔
3.6 损失函数对比
3.7 总结和深入阅读
3.1 线性判别函数和决策边界
一个线性分类模型(Linear Classification Model)或线性分类器(Linear Classifier),是由一个(或多个)线性的判别函数 f(x; w) = wTx + b 和非线性的决策函数 g(·)组成。
3.1.1 两类分类
两类分类(Binary Classification)的类别标签 y 只有两种取值,通常可以设为 {+1, -1}。
在两个分类中,我们只需要一个线性判别函数 f(x; w) = wTx + b。特征空间Rd 中所有满足 f(x; w) = 0的点组成用一个分割超平面(Hyperplane),称为决策边界(Decision Boundary)或决策平面(Decision Surface)。决策边界将特征空间一分为二,划分成两个区域,每个区域对应一个类别。
所谓“线性分类模型”就是指其决策边界是线性超平面。
3.1.2 多类分类
多类分类(Multi-class Classification)问题是指分类的类别数 C 大于 2。多类分类一般需要多个线性判别函数。
“一对其余”方式:把多类分类问题转换为 C 个“一对其余”的两类分类问题。这种方式共需要C 个判别函数,其中第c个判别函数fc 是将类c的样本和不属于类 c的样本分开。
“一对一”方式:把多类分类问题转换为 C(C - 1)/2个“一对一”的两类分类问题。这种方式共需要 C(C - 1)/2个判别函数,其中第 (i, j)个判别函数是把类 i和类 j 的样本分开。
“argmax”方式:这是一种改进的“一对其余”方式,共需要 C 个判别函数
如果存在类别c,对于所有的其他类别 ( ≠ c)都满足
那么 x 属于类别 c。即
“一对其余”方式和“一对一”方式都存在一个缺陷:特征空间中会存在一些难以确定类别的区域,而“argmax”方式很好地解决了这个问题。
argmax()函数简单的说就是取最大值的自变量。
- y = max f(t) 代表:y 是f(t)函式所有的值中最大的output。
- y = argmax f(t) 代表:y 是f(t)函式中,会产生最大output的那个参数t。
3.2 Logistic回归
Logistic回归(Logistic Regression, LR)是一种常用的处理两类分类问题的线性模型。
为了解决连续的线性函数不适合进行分类的问题,我们引入非线性函数 g :Rd → (0, 1)来预测类别标签的后验概率 p(y = 1|x)。
其中g(·)通常称为激活函数(Activation Function),其作用是把线性函数的值域从实数区间“挤压”到了(0, 1)之间,可以用来表示概率。
在 Logistic回归中,我们使用 Logistic函数来作为激活函数。
3.2.1 参数学习
Logistic 回归采用交叉熵作为损失函数,并使用梯度下降法来对参数进行优化。
Logistic函数具有如下的特性:当x趋近于负无穷时,y趋近于0;当x趋近于正无穷时,y趋近于1;当x= 0时,y=0.5。Logistic函数是Sigmoid函数的一种。
理解 logistic 回归 写的很好
3.3 Softmax回归
Softmax 回归(Softmax Regression),也称为多项(multinomial)或多类(multi-class)的 Logistic回归,是 Logistic回归在多类分类问题上的推广。
对于多类问题,类别标签 y ∈ {1, 2, · · · , C}可以有 C 个取值。给定一个样本x,Softmax回归预测的属于类别 c的条件概率为:
当类别数 C = 2时,Softmax回归的决策函数就是Logistic函数。
3.3.1 参数学习
Softmax回归使用交叉熵损失函数来学习最优的参数矩阵 W。
3.4 感知器
感知器(Perceptron) 是一种广泛使用的线性分类器。感知器可谓是最简单的人工神经网络,只有一个神经元。
3.4.1 参数学习
给出了感知器参数学习的更新过程,其中红色实心点为正例,蓝色空心点为负例。黑色箭头表示权重向量,红色虚线箭头表示权重的更新方向。
3.4.2 感知器的收敛性
虽然感知器在线性可分的数据上可以保证收敛,但其存在以下不足之处:
在数据集线性可分时,感知器虽然可以找到一个超平面把两类数据分开,但并不能保证能其泛化能力。
感知器对样本顺序比较敏感。每次迭代的顺序不一致时,找到的分割超平面也往往不一致。
如果训练集不是线性可分的,就永远不会收敛。
3.4.3 参数平均感知器
感知器并不能保证找到的判别函数是最优的(比如泛化能力高),这样可能导致过拟合。
感知器的学习到的权重向量和训练样本的顺序相关。在迭代次序上排在后面的错误样本,比前面的错误样本对最终的权重向量影响更大。
比如有 1, 000个训练样本,在迭代 100 个样本后,感知器已经学习到一个很好的权重向量。在接下来的 899个样本上都预测正确,也没有更新权重向量。但是在最后第 1, 000个样本时预测错误,并更新了权重。这次更新可能反而使得权重向量变差。
为了改善这种情况,可以使用“参数平均”策略来提高感知器的鲁棒性,也叫投票感知器(Voted Perceptron) 。
投票感知器记录第 k 次更新后得到的权重 wk 在之后的训练过程中正确分类样本的次数 ck。
投票感知器虽然提高了感知器的泛化能力,但是需要保存 K 个权重向量。在实际操作中会带来额外的开销。
因此,人们经常会使用一个简化的版本,也叫做平均感知器(Averaged Perceptron) 。
3.4.4 扩展到多类分类
略。
3.5 支持向量机
支持向量机(Support Vector Machine,SVM)是一个经典两类分类算法,其找到的分割超平面具有更好的鲁棒性,因此广泛使用在很多任务上,并表现出了很强优势。
给定一个两类分类器数据集 D = {(x(n) , y(n) )}N n=1 ,其中 yn ∈ {+1, -1},如果两类样本是线性可分的,即存在一个超平面:
将两类样本分开,那么对于每个样本都有 y(n) ( wTx(n) + b ) > 0。
数据集 D 中每个样本 x(n) 到分割超平面的距离为:
我们定义整个数据集 D 中所有样本到分割超平面的最短距离为间隔(Margin),用 γ 来表示。
如果间隔 γ 越大,其分割超平面对两个数据集的划分越稳定,不容易受噪声等因素影响。支持向量机的目标是寻找一个超平面 (w∗, b∗)使得 γ 最大。
数据集中所有满足 y(n) ( wTx(n) + b ) = 1 的样本点,都称为支持向量(Support Vector)。
对于一个线性可分的数据集,其分割超平面有很多个,但是间隔最大的超平面是唯一的。
3.5.1 参数学习
支持向量机的目标函数可以通过 SMO等优化方法得到全局最优解,因此比其它分类器的学习效率更高。
此外,支持向量机的决策函数只依赖于支持向量,与训练样本总数无关,分类速度比较快。
3.5.2 核函数
支持向量机还有一个重要的优点是可以使用核函数(Kernel Function)隐式地将样本从原始特征空间映射到更高维的空间,并解决原始特征空间中的线性不可分问题。
3.5.3 软间隔
在支持向量机的优化问题中,约束条件比较严格。如果训练集中的样本在特征空间中不是线性可分的,就无法找到最优解。
为了能够容忍部分不满足约束的样本,我们可以引入松弛变量 ξ,引入松弛变量的间隔称为软间隔(Soft Margin)。
支持向量机很重要,这里写的还是不够详细,这里面有几篇其他人写的文章巩固一下知识点
3.6 损失函数对比
除了平方损失,Logistic回归损失函数、感知器的损失函数 、软间隔支持向量机的损失函数 都比较适合于两类分类问题 。