zoukankan      html  css  js  c++  java
  • 机器学习笔记—感知机

    在学习理论的最后,我们介绍一种不同的机器学习模型。之前介绍的都是批学习,先从训练集合中学习,再在测试集上评估。本文介绍的是在线学习,边学习边预测。

    给定学习算法一个序列例子 (x(1),y(1)),(x(2),y(2)),...,(x(m),y(m)),算法先遇到 x(1),然后预测 y(1) 是什么,做了预测后,y(1) 的真实值会给算法,算法使用这个信息来执行学习。然后给算法 x(2) 并要求做预测,然后再给 y(2) 的真实值,再次执行学习,直到 (x(m),y(m))。在在线学习中,我们对算法在执行过程中的错误总数很感兴趣。

    我们将给感知机算法的在线学习错误一个上界,为使连续求导容易些,我们还使用标识 y∈{-1,1}

    感知机算法有参数 θ∈Rn+1,做预测是根据

    hθ(x)=g(θTx)

    其中

    给定训练集 (x,y),感知机学习规则以下面方式更新。如果 hθ(x)=y,那么对参数不作更改。不然执行以下更新:

    θ:=θ+yx

    下面定理给了感知机算法的在线学习错误一个上界。注意下面给的上界,并不明显依赖于序列的例子个数 m 或者输入的维度 n。

    定理:给定序列 (x(1),y(1)),(x(2),y(2)),...,(x(m),y(m)),假设对所有的 i,都有 ||x(i)||≤D,且有一个单位长度向量 u(||u||2=1),使得 y(i)(uTx(i))≥γ(例如,当 y(i)=1 时,uTx(i)≥γ,当 y(i)=-1 时,uTx(i)≤-γ,所以,是 u 以至少 γ 的间隔把数据分开)。感知机在序列上犯错的总数至多是 (D/γ)2

    证明:感知机只是在它犯错时才更新权重,令 θ(k) 表示犯第 k 个错误时的权重,θ(1)=0(权重初始化为 0),如果第 k 个错误时在例子 (x(i),y(i)) 上,那么 g((x(i))Tθ(k))≠y(i),所以

    (x(i))Tθ(k)y(i)≤0

    从感知机学习规则,有 θ(k+1)(k)+y(i)x(i)

    然后可得

    通过推导,可得

    (k=1))Tu≥kγ

    同样可得到

    同样应用归纳法

    ||θ(k+1)||2≤kD2

    联合式子,可得

    第二个式子的依据是,u 是个单位长度的向量,zTu=||z||·||u||cosΦ≤||z||·||u||,其中 Φ 是 z 和 u 的角度。

    结果显示 k≤(D/γ)2,所以感知机的第 k 个错误, k≤(D/γ)2

    参考资料:

    1、http://cs229.stanford.edu/notes/cs229-notes6.pdf

  • 相关阅读:
    mybatis入参错误:There is no getter for property named ‘status‘ in ‘class java.lang.Integer‘
    JAVA程序员面试笔试题(一)
    Java8新特性LocalDateTime获取周几
    linux常用命令记录 screen
    ubuntu 19.04 + lenovo-xiaoxin-I2000 触摸板右键单击无法使用
    华为交换路由常用命令
    centos7常用软件
    一般网络延迟高的原因
    华为防火墙进程&简单配置
    私网互联(本质是三层路由)
  • 原文地址:https://www.cnblogs.com/NaughtyBaby/p/5368339.html
Copyright © 2011-2022 走看看