感知机

Author Avatar
ahscuml 8月 08, 2018
  • 在其它设备中阅读本文章

二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间中将实例划分为正负两类的分离超平面,属于判别模型
感知机的学习旨在最小化分类误差,所以引入基于误分类的误差函数,通过梯度下降法最小化误差函数求得感知机。

感知机算法学习思路:

自己通过学习《统计学习方法》,对感知机有一些浅薄的理解,整理出了以下几个问题。通过回答以下问题可以了解感知机的具体思路。

  1. 什么是感知机模型?
  2. 怎么求感知机模型(求的是什么)?
  3. 损失函数是什么(为什么要用损失函数)?
  4. 通过什么方法习得感知机模型(通过什么方法求得最小的损失函数)?
  5. 为什么一定可以习得感知机模型(算法的收敛性证明)
  6. 怎么优化这个算法(感知机的对偶形式)

感知机模型

输入空间到输出空间函数($w$ 是超平面的法向量,$b$是法向量的截距):
$$ f(x) = sign(w * x + b)$$

感知机学习策略

  • 定义:数据集的线性可分性:

习得感知机模型的思路:

  • 目标:求得感知机就是求出超平面,也就是求出$w$与$x$两个变量。
  • 方法:为了求最合适的$w$与$x$,创造出损失函数,这样求感知机的问题就转化为损失函数最小化的问题。
  • 问题: 1. 如何确定损失函数? 2. 通过和种方法将损失函数降到最小?

损失函数

最容易想到损失函数就是误分类点的个数,但是这样的函数不是参数$w$与$b$的连续可导函数,不方便优化。
感知机采用的损失函数是误分类点到超平面的总距离(是参数$w$、$b$ 的可导函数)

+ 为什么是这个定义???
  • 空间任意一点到超平面的距离:
  • 误分类点到超平面的距离:
  • 误分类点到超平面的总距离:
  • 经过简化习得损失函数:
+ !!!为啥不考虑 $\frac{1}{\| w\|}$

损失函数最小化

采用 随机梯度下降法(SGD)

算法的收敛性证明

  • 定理2.1(Novikoff):
    前提是数据集是线性可分数据集。
    • 定理表明,误分类的次数$k$是有上界的,经过有限次搜索可以找到将训练数据完全正确分开的分离超平面。
    • 当训练数据集线性可分时,感知机学习算法原始形式迭代是收敛的。
    • 感知机学习算法存在许多解,这些解既依赖于处置的选择,也依赖于迭代过程中误分类点的选择顺序。

感知机学习算法(摘自《统计学习方法》)

学习算法原始形式

数学知识,点积与叉积
学习算法原始形式

  • 采用随机梯度下降法
    随机梯度下降算法的具体应用。
    感知机学习算法原始形式

感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。
当训练数据集线性可分时,感知机学习算法原始形式迭代是收敛的(一定有解)

感知机学习算法对偶形式

对偶形式的目的是降低运算量:样本点的特征向量以内积的形式存在于感知机对偶形式的算法中,因此,如果事先计算好所有的内积,也就是Gram矩阵,就可以大大地加快计算速度。
感知机对偶形式内容
感知机对偶形式算法

This blog is under a CC BY-NC-SA 4.0 Unported License
本文链接:https://ahscuml.github.io/感知机/