支持向量机

支持向量机(SVM)的概念

  • 主要思想:可以在逻辑回归的基础上修改,修改代价函数,去掉1/m,正则项去掉λ,代价项增加C;这些更改使得函数在保证算法性能的基础上减少运算量,同时直接给出预测结果而不是预测概率
      1)修改代价函数:
        原逻辑回归对针对一项样本的代价计算:yln(hθ(x))(1y)ln(1hθ(x))
        修改后y=1时针对一项样本的代价计算:cost1(θTx)
        修改后y=0时针对一项样本的代价计算:cost0(θTx)
        cost函数是对当y=1和y=0时近似模拟得到的曲线
    (图1)
      2)去掉1/m:整体的常数项系数并不影响整体的最小值求解
      3)正则项去掉λ,代价项增加C:可以理解为C是1λ
        对于逻辑回归的正则化函数可以理解为A+λB,其中λ是权衡A和B最小化的比重
        对于修改后的函数可以理解为CA+B,其中C是权衡A和B最小化的比重,所以也可以理解上认为C是1λ
  • 最终的代价函数以及预测函数hθ(x)的变化:
      其中对于hθ(x)来说-1到1的间距是一个安全因子

minθCi=1m[y(i)cost1(θTx(i))+(1y(i))cost0(θTx(i))]+12j=1nθj2hθ(x)={1θTx10θTx1

  • 大间隔分类器的直观理解
      当C很大时“大间隔”会比较形象的显现出来(大间隔是指样本到决策界限的间距,大间隔分类器通常使用尽可能大的间距分隔不同种类的样本)
  • 大间隔分类器的数学原理
      首要前提:当C很大时,相当于给优化问题增加了约束条件(因为要使cost尽可能小):

s.t.θTx(i)1,ify=1θTx(i)1,ify=0

        最小化的其它工作:因为前面一项接近于0,剩下就是12j=1nθj2的最小化,即目标是找到使得θ尽可能小的θ
        转化向量内积表达:θTx(i)=p(i)θ,其中p(i)可以视作样本i对应的坐标到决策界限的距离(p(i)直观意义是样本i对应的向量在θ对应的向量上的投影长度,这是因为由决策界限表达式θTx(i)=0可知θ向量垂直于决策界限)
        预测函数的决策范围:因为只有当p(i)θ0时才有y=1(或反之),而θ是在最小化过程中最小化的对象,这使得p(i)只能尽可能大,即样本点到到决策界限的距离要尽可能大,这也说明了大间隔的由来(SVM具有大间距分类器的性质)

核函数

特征构造

  • 选取标记:在特征空间中中指定几个点作为标记(给定样本维数为n,特征空间就是n维,不包括常数项)
  • 核函数概念:类似于各种相似度度量的函数,一般表达为fi=k(x,l(i))
  • 高斯核函数:fi=exp(xl(i)22ε2)
  • 核函数的使用:在预测函数hθ中的θTx中,用构造的特征fi取代xi(除了偏置项)
  • 对于给定样本x(i),y(i):确定特征向量f(i),其中fj(i)=k(x(i),l(j)),f0(i)=0,且l(j)=x(j),所以该向量中元素fi(i)=1(使用高斯核函数)
  • 对于正则化项12j=1nθj2,注意到可以向量化表示为12θTθ的形式,而一般的支持向量机里人们还会在上面做出一点改变:12θTMθ,这使得支持向量机能更有效率地工作,使得其能运用在更大的训练集上

参数的选择

  • C参数:C过大,对应着低偏差高方差,倾向于过拟合;C过小,对应着高偏差低方差,倾向于欠拟合;
  • σ2参数:σ2过大,fi变化平缓,对应着高偏差低方差,倾向于欠拟合;σ2过小,fi变化不平缓,对应着低偏差高方差,倾向于过拟合;

SVM的使用

内核函数的选择

  • 线性内核函数(无核函数):该函数没有内核参数,直接使用θTx预测(比如θTx>0y=1

    使用:1)当特征数n较大样本量m较小时使用(避免陷入过拟合);

    2)当n较小m很大时适当增加特征数再使用(提高拟合速度)

  • 高斯内核函数:使用fi=exp(xl(i)22ε2)代替θTx中的xi进行预测

    使用:当特征数n较小样本量m始终或较大(不是很大)时使用(拟合复杂的曲线,同时比神经网络快)

    注意:样本变量在使用前记得先规范化,避免某个变量占很大比重的情况

  • 其它内核函数:其它核函数都比较少用,且只有满足莫塞尔定理的核函数才能用于SVM中

    多项式核函数(Polynomial kernel):(xTl+)degree,通常用在x和l都是严格非负数的情况下

    其它:String kernel,chi-square kernel, histogram intersection kernel...

与其他拟合方法的比较

  • 逻辑回归:SVM与逻辑回归实际上相类似,大部分能使用线性内核函数或逻辑回归的问题中,结果都比较相近,两者其中一个能适用的情况下另一个回归方法都可能有不错的效果,像n较大m较小或n较小m很大的情况下都可以使用逻辑回归,其特征的获取与线性内核函数中的做法相类似
  • 神经网络:对于三种不同的n和m规模情况,一个设计得好的神经网络都可以获得不错的结果,但许多情况下神经网络的训练都特别慢,这时候使用SVM可以提高训练效率;此外关于局部最优,这对于神经网络来说不是个大问题,而好的SVM包通常也会找到全局最小值或接近全局最小的值(SVM的优化问题是一种凸优化问题)
posted @   kksk43  阅读(49)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
特效
黑夜
侧边栏隐藏
点击右上角即可分享
微信分享提示