• 感知机算法的几点总结


    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. 算法收敛性

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


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

  • 相关阅读:
    (OK) 交叉编译node-v4.2.1—for—android
    (OK) 交叉编译hello.c for android (--sysroot),不使用Android.mk和ndk-build
    (OK) port_lighttpd_to_Android——没有基于android 4.4源码
    (OK) 编译 pcre-8.37 静态库
    (OK) 完整编译android 4.4源码—问题—CSSValueKeywords.cpp—CSSPropertyNames.cpp
    (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—完整的调试过程—成功
    OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—5—process指向错误地址
    (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—4—段错误
    (OK) 调试cBPM—CentOS7—gdb—gdbserver—问题的解决—3—段错误
    (OK) 编译cBPM-android—CentOS 7—NDK8—androideabi-4.7—API14—3版
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9411644.html
Copyright © 2020-2023  润新知