zoukankan      html  css  js  c++  java
  • 感知机算法的几点总结

    y

    语句让他家户户 任天野还让

    1. 感知机函数:

                                                                  f(x)=sign(wx+b)   

    其实,sign是符号函数,w是权重,w·x是内积,b是偏置, wx+b=0是超平面。

    2. 损失函数




                                                             L(w,b)=xiMyi(wxi+b)

                                     wL(w,b)=xiMyixibL(w,b)=xiMyiwL(w,b)=xiMyixibL(w,b)=xiMyi

    损失函数是由误分类点到超平面的距离推导而来

    损失函数的梯度:

    wL(w,b)=xiMyixibL(w,b)=xiMyiwL(w,b)=xiMyixibL(w,b)=xiMyi

                                            wL(w,b)=xiMyixi        所以 ww+ηyixi        

                                                      bL(w,b)=

    xiM
    yi     bb+ηyi







    3. 算法流程:

    1. (1)选取初值w0,b0
    2. (2)在训练集中任意选取点(xi,yi)
    3. (3)如果yi(wxi+b)>0则按照(4)式更新w,b
    4. (4)重复2直到没有被误分的点


    4. 对偶形式

    对偶形式的基本想法是,将w和b表示为实例xi 和标记 yi 的线性组合的形式,通过求解其系数而求得w和b.
    假设w0=0,b=0,当所有的点均不发生误判时,最后的w,b一定有如下的形式:
    w=i=1Nniηyixi=i=1Nαiyixib=i=1Nniηyi=i=1Nαiyiw=i=1Nniηyixi=i=1Nαiyixib=i=1Nniηyi=i=1Nαiyiw=i=1Nniηyixi=i=1Nαiyixib=i=1Nniηyi=i=1Nαiyiw=i=1Nniηyixi=i=1Nαiyixib=i=1Nniηyi=i=1Nαiyiw=i=1Nniηyixi=i=1Nαiyixib=i=1Nniηi=1
    iNαiyiw=i=1Nniηyixi=i=1Nαiyixib=i
                                                    w=i=1Nniηyixi=i=1Nαiyixi


                                                      

                                                         b=i=1Nniηyi=i=1Nαiyi

     其中αi=niηni代表对第i个样本的学习次数,感知机对偶形式的完整形式:

                                                     f(x)=sign(j=1Nαjyjxjx+b)










    简而言之,感知机的对偶形式就是把对w,b的学习变成了对α,b的学习,原始形式中,w在每一轮迭代错分时都需要更新,而采用对偶形式时,对于某一点(xi,yi)发生错分时,我们只需要更新其对应的αi即可,然后一次性计算出w

    对偶形式中训练实例仅仅以内积的形式出现,为了方便,可以预先将训练集中的实例间的内积计算出来并且以矩阵的形式储存,这个矩阵就是Gram矩阵(Gram matrix)


    5. 算法收敛性

           当训练数据集线性可分时,感知机的算法是收敛的,并且存在无穷多个解。


    参考资料:李航《统计学习方法》

  • 相关阅读:
    课后作业2
    软工团队项目度量反馈平台需求分析文档-北航软工暑期培训班团队项目1组
    《构建之法》教学笔记——Python中的效能分析与几个问题
    高职院校软件技术专业程序设计课程体系探索(一)
    network_node:host解决Docker容器化部署微服务出现的Dobbo通信问题
    微服务中的健康监测以及其在ASP.NET Core服务中实现运行状况检查
    词频统计
    消息队列
    Linux文件扩展思考随笔
    如何在Mirth Connect中创建和调用自定义Java代码
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9411644.html
Copyright © 2011-2022 走看看