感知机
二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取+1和-1二值。感知机对应于输入空间中将实例划分为正负两类的分离超平面,属于判别模型。
感知机的学习旨在最小化分类误差,所以引入基于误分类的误差函数,通过梯度下降法最小化误差函数求得感知机。
感知机算法学习思路:
自己通过学习《统计学习方法》,对感知机有一些浅薄的理解,整理出了以下几个问题。通过回答以下问题可以了解感知机的具体思路。
- 什么是感知机模型?
- 怎么求感知机模型(求的是什么)?
- 损失函数是什么(为什么要用损失函数)?
- 通过什么方法习得感知机模型(通过什么方法求得最小的损失函数)?
- 为什么一定可以习得感知机模型(算法的收敛性证明)
- 怎么优化这个算法(感知机的对偶形式)
感知机模型
输入空间到输出空间函数($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/感知机/