【笔记】单层感知机 Preface 基本概念 模型 损失函数 优化 收敛性:Novikoff定理简介 Novikoff定理的证明
这是单层感知机。多层感知机(MLP)在路上了,等一等(
为了好看,转置记作 (dagger)(dagger)
EDIT:这个符号实际上是伪逆矩阵(Moore-Penrose Inverse)的符号。我在这里就暂且误用一下吧,不改了
一些证明暂时不打算做,具体的代码实现也会先鸽着
就大大概概讲一讲。然后上支持向量机。
很抱歉本文没有配图,不过可以自行想象
二维平面上图大概这样吧
∵· ·∵
∵∴ ··∴
∵∴···
总而言之感知机挺好理解的,单层感知机更好理解。。
基本概念
感知机是二分类模型、线性分类器。
处理线性可分的数据集。
超平面:(n) 维欧氏空间中,余维度为 (1) 的线性子空间(经过原点)
其中 (n>3)。
感知机学习目标是:一个将 被感知数据集 划分为两类的分离超平面。
输入 被感知数据集的特征向量,得到输出:数据集的类别(一般是 +1 或 -1)。
模型
模型:
其中 (oldsymbolomega) 为权值向量,(b) 为偏置,(x) 为输入,(f(x)) 为输出。
超平面:
样本点 (oldsymbol x') 到该超平面距离:
损失函数
感知机的优化目标:正确分类(就是让所有点不要被误分类)
对于一个线性可分的数据集,这是可以做到的。
记 所有点 的集合为 (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) ]
损失函数如果用 误分类点到超平面距离和 定义,就是
优化目标是让它等于零。但是没有必要这么定义。
实际上呢,因为 (oldsymbolomega) 在优化过程中随超平面调整而变化,
考虑到感知机只是想要正确分类而已,不妨更直接地令
让这东西小于零就好了,
也可以记成把那个 (f{M}_{ iny{u}}) 换成 (f M) 然后让 (L(oldsymbolomega,b)) 归零,不过上面那个是这个的充分条件
优化
那只要让误分类点变成正确分类点就可以了
根据判定条件,也就是令误分类点的函数间隔(误分类点是小于 (0) 的,正确分类的点是大于 (0) 的)变大。
沿梯度方向即可。
所以,具体地:不妨任意选择一个初始超平面(即选定 (oldsymbolomega_0) 和 (b_0) 作为初始值)
然后极小化损失函数:让误分类点梯度下降。
收敛性:Novikoff定理简介
就是,用这种损失函数,经过有限次迭代可以得到将(线性可分的)训练集完全正确划分的分离超平面和模型。
很抱歉但是我想要略过证明,直接上复杂度
为了方便,把偏置跟权重放一起。记
相应地,令
那么,
令
那么误分类次数 (k) 满足
综上所述,
约定 (mathbb{R^n}) 表示 (n) 维向量空间。那么,可以给出
Theorem 1(Novikoff) Consider a training sequence
线性可分。其中,
则① 存在分离超平面
使数据集中所有点均被正确分类;
② 并且
。