美文网首页深度学习机器学习
2020深度学习—感知机(2)

2020深度学习—感知机(2)

作者: zidea | 来源:发表于2020-09-24 20:21 被阅读0次
machine_learning.jpg

感知器算法(Perceptron Algorithm)

  • 随机选择 Wb
  • 取一个训练样本 (X,y)
    • W^TX + b > 0y=-1W = W -X\,b=b-1
    • W^TX + b < 0y=+1W = W -X\,b=b+1
  • 再取另一个(X,y) 回到(2)
  • 终止条件: 直到所有输入输出对都不满足(2)中(i)和(ii)之一,退出循环

SVM 与神经网

SVM 适合处理小样本,而感知机特别是后来神经网络需要的大数据。神经网模型没有 SVM 那么美,也没有 SVM 那么严谨。

SVM 首先将 X 和 y 全部输入到模型,然后所有样本来建立一个很大优化问题,然后再去解这个优化的问题。以全局眼光来看所有样本来做这件事。感知器与 SVM 最大不同就是感知器一批一批接收样本然后不断地优化参数来实现模型训练。

而感知机,每次只看一部分模型,然后进行学习更新参数,最后看看结果怎么样,如果结果不算好,继续投入样本进行学习更新参数。这样学习过程更加符合我们人类实际情况。

  • W^TX + b > 0 的情况下会将 y 分类到 +1 所以也就是说明目前的W^TX + b 不能对 X 正确分类,所以接下来做了W = W -X\,b=b-1 来更新参数
    \begin{aligned} W_{new}^TX + b_{new}\\ = (W - X)^TX + (b-1)\\ = (W^TX + b) -(||X||^2 + 1) \end{aligned}

那么我们想一下,现在我们希望将W^TX + b 向负方向移动,那么移动距离就是(||X||^2 + 1)

  • W^TX + b < 0 的情况下会将 y 分类到 -1 所以也就是说明目前的W^TX + b 不能对 X 正确分类,所以接下来做了W = W + X\,b=b+1 来更新参数

这里存在一个问题,经过反复调整也不会停止情况,如果数据是线性可分,经过调整最终调整会停止下来。但是感知机分开效果没有 SVM 那么好。

定义一个增广向量\vec{X} ,若 y=+1\vec{X} = \begin{bmatrix} X & 1 \end{bmatrix}^T,若 y=-1\vec{X} = \begin{bmatrix} -X & -1 \end{bmatrix}^T,所谓增广就是给 X 增加一个维度。这样写方便,增广的 W 如下 W = \begin{bmatrix} W & b \end{bmatrix}^T 我们可以用增广的\vec{X}W 来打入上式

  • 输入\vec{X_i}
  • 随机选择 W
  • 取一个训练样本 \vec{X_i}
    • W^T\vec{X_i} < 0W=W+ \vec{X_i}
  • 再取另一个 (X,y) 回到(2)
  • 终止条件: 直到所有输入输出对都不满足(2)中(i)和(ii)之一,退出循环。现在我们用 W^T\vec{X_i} < 0 替换掉上面两个不等式。现在找 W 使满足 W^T\vec{X_i} \ge 0

感知器算法收敛算法定理

输入增广向量 \{ \vec{X_i} \}_{i=1-N} 若线性可分,即存在 W_{opt} 使 W_{opt}^T\vec{X_i} > 0 则利用上述感知器算法,经过有限步得到一个 W,使 W\vec{X_i} > 0 \,

证明: 不失一般性,设||W_{opt}||=1, 这样做的原因是 W_{opt}a W_{opt} 是同一个平面,所以可以用 a 参数对其进行调整,假设第 k 步的 WW_k, 且有一个\vec{X_i} 使 W_k^T \vec{X_i} < 0 ,根据感知机算法:

\begin{aligned} W_{k+1} = W_k + \vec{X_i} \\ W_{k+1} - a W_{opt} = W_k + \vec{X_i} - a W_{opt} \\ ||W_{k+1} - a W_{opt}||^2 = ||W_k + \vec{X_i} - a W_{opt}||^2 \\ ||W_{k+1} - a W_{opt}||^2 = ||(W_k - a W_{opt})+ \vec{X_i} ||^2 \\ = ||(W_k - a W_{opt})||^2 + ||\vec{X_i} ||^2 + 2 W_k\vec{X_i} - 2aW_{opt}^T\vec{X_i} \end{aligned}

既然存在 aW_{opt} 存在,而根据上面假设则有 aW_{opt}^T\vec{X_i} > 0 W_k\vec{X_i} 一定可以取很大 a 使得||(W_{k+1} - a W_{opt})||^2 < ||W_k - a W_{opt}||^2 然后经过不断迭代都会使 W_{k+1}W_{opt} 距离变小。

定义一个 \beta = \max_{i=1-N}\{||\vec{X_i}||\} 定义一个 \gamma = \min_{i=1-N}(W_{opt^T}X_i) 如果取 a = \frac{\beta^2 +1}{2 \gamma}
||(W_{k+1} - a W_{opt})||^2 < ||W_k - a_{opt}||^2 - 1

相关文章

  • 2020深度学习—感知机(2)

    感知器算法(Perceptron Algorithm) 随机选择 和 取一个训练样本 若 且 则 若 且 ...

  • 感知机

    感知机 感知机算法是很多算法的鼻祖,比如支持向量机算法,神经网络与深度学习。在学习感知机的构造时可以学习到深度学习...

  • 1、深度学习入门-感知机

    感知机是什么? 感知机 (perceptron):感知机是神经网络(深度学习)的起源算法,学习感知机的构造是通向神...

  • 2018-05-27

    Deep Learning :感知机的前世今生 1.什么是深度学习 2.什么是感知机 3.感知机能够做什么 4.感...

  • 深度学习入门(1)感知机

    感知机 感知机基础知识 感知机是神经网络(深度学习)的起源算法。 感知机可以接收多个输入信息,输出一个信号。 感知...

  • 反馈神经网络

    1、Reference 多层感知机MLP(机器学习5)多层感知机原理详解 & Python与R实现深度学习笔记——...

  • 2020深度学习—感知机(1)

    1943 年,心理学 W.S. McCulloch 和数学逻辑学家 W.Pitts 基于神经元的生理特征,建立了单...

  • R做深度学习之-MLP二分类问题

    深度理解多层感知机MLP[https://cleverbobo.github.io/2020/08/30/bp/]...

  • 深度学习理论笔记(感知机)

    学习韩老师的文章,笔记如下: 深度学习的入门不得不谈感知机,何为感知机? 感知机其实就是神经元,神经网络的组成单位...

  • 深度学习瞎学之路--感知器

    标签: 深度学习、感知器 [TOC] 本文将介绍感知机这一算法。感知机是由美国学者Frank Rosenblatt...

网友评论

    本文标题:2020深度学习—感知机(2)

    本文链接:https://www.haomeiwen.com/subject/ygutuktx.html