支持向量机的概率计算

本文介绍了支持向量机(SVM)如何计算输出标签的概率,特别是John C. Platt提出的概率校准方法。Platt校准包括直接训练逻辑关联函数的SVM模型和使用SVM决策值映射到概率的sigmoid函数。文章详细讨论了sigmoid函数的模型训练,包括参数优化、防止过拟合的方法,并指出Platt原始训练算法存在的问题及其改进方案。
摘要由CSDN通过智能技术生成

1. 引言

      最近在简单复现SVM算法时,了解了一下SVM输出标签概率的方法。简单记录于此,以求斧正于方家。

      标准的SVM算法是将决策函数计算出的决策值输入符号函数然后输出标签,这个决策值是一个未校准值(uncalibrated value)而不是一个标签的后验概率P(class | input)。简而言之,标准的SVM算法无法直接输出标签的后验概率分布,而在某些场景下,例如需要根据输出标签的概率做全局最优决策,后验概率就显得十分必要。

2. 两种方式

        为了解决这个问题,著名的SVM算法实现库libsvm采用了John C. Platt(1999)的一篇名为《Probabilistic Outputs for Support Vector Machinesand Comparisons to Regularized Likelihood Methods》论文中阐述的SVM概率计算的方法。

在文章中,Platt提到了两种使SVM输出后验概率的方式:

1.      直接训练一个带有逻辑关联函数(logit link function)和正则化的最大似然分数(regularized maximum likelihood score)的SVM模型;

2.      首先训练一个标准的SVM模型,然后额外训练一个可以将SVM模型的输出映射成概率的sigmoid函数。

2.1 联结函数

第一种方式的一种方法是由G. Wahba提出的,他使用了一个如下的逻辑联结函数: 

  P(class|input)=P(y=1|x)=P(x)=\frac{1}{1+exp(-f(x)))}

其中f(x)为SVM的决策函数。训练SVM模型就是最小化一个负对数多项式似然(negative log multinomial likelihood)项加一个再生核希伯特空间(Reproducing Kernel Hilbert Space, RKHS)的正则项:

  -\frac{1}{m}\Sigma_i[\frac{y_i+1}{2}log(p_i)+\frac{1-y_i}{2}log(1-p_i)]+\lambda||h||_F^2

其中p_i=P(x_i),输出一个后验概率。

       然而Platt认为直接训练联结函数的方式导致的一个问题是使SVM模型失去参数的稀疏性(即除了支持向量和间隔内的向量之外的其他向量的系数都为0)。虽然以上训练的SVM也有方法可以克服这个缺点,但是不能直接训练出一个像标准SVM一样的稀疏模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值