作者:@houkai
本文为作者原创,转载请注明出处:https://www.cnblogs.com/houkai/p/10160673.html
着重介绍hige loss 和 softmax loss。
C1,C2是要区分的两个类别,通过分类函数执行时得到的值与阈值的大小关系来决定类别归属,例如:
g(x)=g(wTx+b)
我们取阈值为0,此时f(x)=sgn[g(x)]就是最终的判别函数。对于同一个问题,有多个分类函数,哪一个更好呢?于是引入了“分类间隔”的指标
函数间隔和几何间隔
给定样本(xi,yi),函数间隔为:
γi=yi∗(wTxi+b)
当yi=1时,wTxi+b应该是一个很大的正数,反之是一个大负数。因此函数间隔反映了模型的确定度。
考虑w和b,如果同时加倍w和b,函数间隔也会加倍,但这对于求解问题是无意义的。因此我们限制w和b,引入了归一化条件,毕竟我们求解的唯一的一对w和b。
几何距离:点A到垂足的单位方向向量BA为w||w||,假设A=xi,则B=xi−^γ∗w||w||,带入wTx+b=0得到:
^γ=wTxi+b||w||
^γ可以看出就是二维平面中,点到直线的距离,高维下便是点到平面的距离。考虑正反例:
^γ=yi∗{wTxi+b||w||}
当||w||=1时,几何间隔也正是我们想要的归一化函数间隔。归一化也解释了函数间隔的实际意义。

最优间隔分类器
我们的目标是找到一个超平面,使得里超平面较近的点能有更大的间距,也就是我们不必考虑所有的点,值关心离它最近的点能具有最大间距。
maxγs.t. yi(wTxi+b)>γ,i=1,...,m||w||=1
然而这个目标函数仍然不是凸函数,我们把问题转化一下,我们取γ=1,此时离超平面最近点的距离即为1||w||,计算1||w||的最大值相当于计算12||w||2的最小值。(之所以采用这种形式,是为了方便后面的求解过程)
最终的优化方程如下:
min12||w||2s.t. yi(wTxi+b)≥1,i=i,...,m
只有线性约束,且是一个典型的二次规划问题。核函数、松弛变量等问题这里先不做涉及。
损失函数
模型的优化函数的通常形式如:
θ∗=argminθ1NN∑i=1L(yi,f(xi;θ))+λ Φ(θ)
前面是损失函数,后面是正则项。
常用的损失函数
- 铰链损失(Hinge Loss):主要用于支持向量机 SVM中;
- 交叉熵损失(Cross Entropy Loss/Softmax Loss):用于逻辑回归问题;
- 平方损失(Square Loss):用于最小二乘问题;
- 指数损失(Exponential Loss):主要用于Adaboost集成学习算法中;
- 其他特定场景有奇效的loss
Hinge Loss
损失函数是一个折线,函数表达式为:
L(xi)=max(0,1−f(mi,w))
如果类别正确,损失为0,否则为1−f(mi,w)。

在svm中,考虑松弛变量,优化函数为:
argminw,ζ12||w||2+C∑iζist.∀yiwTxi≥1−ζiζi≥0
约束进行变形得:ζi≥1−yiwTxi
优化损失函数进一步可写为:
J(w)=12||w||2+C∑imax(0,1−yiwTxi)=12||w||2+C∑imax(0,1−mi(w))=12||w||2+C∑iLHinge(mi)
SVM的损失函数实质可看作是L2-norm和Hinge loss之和。
Softmax Loss
逻辑回归问题要求:P(Y|X)尽可能的大,即最小化负的似然函数。
L=−log(P(Y|X))
逻辑回归的表达式为:
P(y=1|x;θ)=h(x)P(y=0|x;θ)=1−h(x)
p(y|x;θ)=h(x)y(1−h(x))(1−y)
得:
L(θ)=n∏i=1h(x)y(1−h(x))(1−y)
最大log似然函数为:
ℓ(θ)=log(L(θ))=m∑i=1ylog(h(x))+(1−y)log(1−h(x))
上式也是最小化交叉熵。
Squares Loss
损失函数:
L(Y,f(X))=n∑i=1(Y−f(X))2
Exponentially Loss
损失函数:
L(Y,f(X))=12n∑i=1exp[−yif(xi)]
Adabooost 的目标式子就是指数损失,可以参考https://en.wikipedia.org/wiki/AdaBoost
假设数据集 {(x1,y1),…,(xN,yN)},xi相应的标签yi∈{−1,1}, 已有的弱分类器组 {k1,…,kL},它们的输出为 kj(xi)∈{−1,1}。m−1次迭代后,得到boosted classifier:
C(m−1)(xi)=α1k1(xi)+⋯+αm−1km−1(xi)
第m次迭代后,我们添加了新的弱分类器:
Cm(xi)=C(m−1)(xi)+αmkm(xi)
为了确定新的弱分类器及其权重,定义损失函数:
E=N∑i=1e−yiCm(xi)
设w(1)i=1 , w(m)i=e−yiCm−1(xi) for m>1, 则:
E=N∑i=1w(m)ie−yiαmkm(xi)
我们把数据分为两部分: (yikm(xi)=1)km 分类器区分正确和 yikm(xi)=−1 分类错误:
E=∑yi=km(xi)w(m)ie−αm+∑yi≠km(xi)w(m)ieαm
=N∑i=1w(m)ie−αm+∑yi≠km(xi)w(m)i(eαm−e−αm)
因为只有右侧项∑yi≠km(xi)w(m)i依赖于km,我们最小化E 等价于最小化w(m)i=e−yiCm−1(xi)的权重。
计算αm,求导:
dEdαm=d(∑yi=km(xi)w(m)ie−αm+∑yi≠km(xi)w(m)ieαm)dαm
αm=12ln⎛⎜⎝∑yi=km(xi)w(m)i∑yi≠km(xi)w(m)i⎞⎟⎠
弱分类器的加权错误率为ϵm=∑yi≠km(xi)w(m)i/∑Ni=1w(m)i
所以:
αm=12ln(1−ϵmϵm)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2013-12-22 4、DES和RSA简介
2013-12-22 3、数字签名
2013-12-22 2、摘要函数——MD2/MD4/MD5数字签名
2013-12-22 1、数据加密基础
2013-12-22 cookie——小甜品