zoukankan      html  css  js  c++  java
  • 【笔记】单层感知机


    Preface


    这是单层感知机。多层感知机(MLP)在路上了,等一等(

    为了好看,转置记作 (dagger)(dagger)

    EDIT:这个符号实际上是伪逆矩阵(Moore-Penrose Inverse)的符号。我在这里就暂且误用一下吧,不改了

    一些证明暂时不打算做,具体的代码实现也会先鸽着
    就大大概概讲一讲。然后上支持向量机。

    很抱歉本文没有配图,不过可以自行想象
    二维平面上图大概这样吧
    ∵·  ·∵
    ∵∴  ··∴
    ∵∴··· 
    总而言之感知机挺好理解的,单层感知机更好理解。。


    基本概念


    感知机是二分类模型、线性分类器。
    处理线性可分的数据集。

    超平面:(n) 维欧氏空间中,余维度为 (1)线性子空间(经过原点)
    其中 (n>3)

    感知机学习目标是:一个 被感知数据集 划分为两类的分离超平面。
    输入 被感知数据集的特征向量,得到输出:数据集的类别(一般是 +1 或 -1)。



    模型


    模型:

    [f(x)=operatorname{sign}(oldsymbolomega^daggercdot oldsymbol x+b) ]

    其中 (oldsymbolomega) 为权值向量,(b) 为偏置,(x) 为输入,(f(x)) 为输出。

    超平面:

    [oldsymbolomega^daggercdot oldsymbol x+b=0 ]

    样本点 (oldsymbol x') 到该超平面距离:

    [d=frac{oldsymbolomega^daggercdot oldsymbol x'+b}{|oldsymbolomega|} ]



    损失函数


    感知机的优化目标:正确分类(就是让所有点不要被误分类
    对于一个线性可分的数据集,这是可以做到的。

    所有点 的集合为 (f M_u)
    被误分类的点 的集合为 (f M)(随着超平面调整会变化)
    (y_i=f(oldsymbol x_i)),那么

    插播一个无关紧要的定义,几何间隔:

    [y_icdotfrac{oldsymbolomega^daggercdot oldsymbol x_i+b}{|oldsymbolomega|} ]

    函数间隔:

    [y_icdot(oldsymbolomega^daggercdot oldsymbol x+b) ]

    损失函数如果用 误分类点到超平面距离和 定义,就是

    [L(oldsymbolomega,b)=sumlimits_{x_iinf M}left|y_icdotfrac{oldsymbolomega^daggercdot oldsymbol x_i+b}{{|oldsymbolomega|}} ight|=-sumlimits_{x_iinf M}y_icdotfrac{oldsymbolomega^daggercdot oldsymbol x_i+b}{{|oldsymbolomega|}} ]

    优化目标是让它等于零。但是没有必要这么定义

    实际上呢,因为 (oldsymbolomega) 在优化过程中随超平面调整而变化,
    考虑到感知机只是想要正确分类而已,不妨更直接地令

    [L(oldsymbolomega,b)=-sumlimits_{oldsymbol x_iinf{M}_{ iny{u}}}y_i(oldsymbolomega^daggercdot oldsymbol x_i+b) ]

    让这东西小于零就好了,
    也可以记成把那个 (f{M}_{ iny{u}}) 换成 (f M) 然后让 (L(oldsymbolomega,b)) 归零,不过上面那个是这个的充分条件



    优化


    那只要让误分类点变成正确分类点就可以了

    根据判定条件,也就是令误分类点的函数间隔(误分类点是小于 (0) 的,正确分类的点是大于 (0) 的)变大。
    沿梯度方向即可。

    所以,具体地:不妨任意选择一个初始超平面(即选定 (oldsymbolomega_0)(b_0) 作为初始值)
    然后极小化损失函数:让误分类点梯度下降。



    收敛性:Novikoff定理简介


    就是,用这种损失函数,经过有限次迭代可以得到将(线性可分的)训练集完全正确划分的分离超平面和模型。
    很抱歉但是我想要略过证明,直接上复杂度

    为了方便,把偏置跟权重放一起。记

    [hat{oldsymbolomega}=(oldsymbolomega^dagger,b)^dagger ]

    相应地,令

    [hat{oldsymbol x_i}=(oldsymbol x_i^dagger,1)^dagger ]

    那么,

    [hat{oldsymbolomega}cdothat{oldsymbol x_i}=oldsymbolomega^daggercdot oldsymbol x+b ]

    [R=maxlimits_{oldsymbol x_iinf{M}_{ iny{u}}}|hat{oldsymbol x_i}| ]

    那么误分类次数 (k) 满足

    [kleleft(frac{R}{gamma} ight)^2 ]

    综上所述,
    约定 (mathbb{R^n}) 表示 (n) 维向量空间。那么,可以给出
    Theorem 1(Novikoff) Consider a training sequence

    [T={(x_1,y_1),(x_2,y_2),cdots,(x_N,y_N)} ]

    线性可分。其中,

    [x_iinmathcal{X}=mathbb{R^n},quad y_iinmathcal{Y}={-1,+1},quad i=1,2,cdots,n ]

    则① 存在分离超平面

    [hat{oldsymbolomega}cdothat{oldsymbol x_i}=0,quad s.t.;|hat{oldsymbolomega}|=1 ]

       使数据集中所有点均被正确分类;

     ② 并且

    [kleleft(frac{R}{gamma} ight)^2 ]



    Novikoff定理的证明

  • 相关阅读:
    Solaris 10学习笔记初学
    EBS R12中文升级补丁
    EXPDP,今天犯了个愚蠢的错误
    LOGSTDBY status: ORA01418,Logical standby問題可真多
    ORA04045,Standby停止Apple log处理一例
    无法relay信件处理一例
    cordova启动页面和图标的设置
    CSS布局探密02
    CSS布局探密01
    CSS布局探密03
  • 原文地址:https://www.cnblogs.com/ccryolitecc/p/13880061.html
Copyright © 2011-2022 走看看