感知机
感知机
机器学习的第一篇, 写给浮躁的自己
简介
感知机(perceptron)是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取 +1 和 -1 二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机学习算法具有简单而易于实现的优点,是神经网络与支持向量机的基础。
感知机模型
感知机的以一个实数值向量作为输入,计算这些输入的线性组合,如果结果大于某个阈值则输出 +1 否则输出 -1. 如 输入为
其中
sign 函数:sign(x)={1,ifx>0−1,otherwise
几何解释
为了方便说明, 这里将
对于线性方程:
对应于 特征空间
在数学中,超平面(Hyperplane)是
n 维欧氏空间中余维度等于1 的线性子空间。这是平面中的直线、空间中的平面之推广。
设F 为域(为初等起见,可考虑F=R) 。n 维空间Fn 中的超平面是由方程a1x1+⋯+anxn=b
定义的子集,其中a1,…,an∈F 是不全为零的常数。
超平面 - 维基百科
为什么这么费劲的引入几何解释, 超平面的概念? 因为这对下面的损失函数的推导很有帮助, 而且最重要的是这个概念的引入令我对
线性可分
应用感知机的数据集(训练样本集)必须完全线性可分, 线性可以指的是 给定的数据集 对所有的
既然提到异或逻辑, 感知机的一个应用就是用来表示原子布尔函数. 比如一个二输入的感知机就可以表示 AND 和 OR 逻辑. 感知机能表示 AND OR N 逻辑 这一点很重要, 如果我们将他们互联, 两层深度的感知机便可以表示所有布尔函数. 我们现在使用的电脑就是由这些逻辑组合起来的.
感知机的学习策略
为了找出超平面, 即
损失函数的一个自然选择就是误分类的总数, 但是这样的损失函数不是参数
做数学之美妙
下面我们来推导这个损失函数
首先, 写出输入空间中任一点
对于实数
p≥1 ,p 范数定义为∥x∥p=(|x1|p+|x2|p+⋯+|xn|p)1p.
当p=2 即为 L2 范数, 又称欧几里得范数.∥x∥2=(x21+x22+⋯+x2n)12.
值得注意的是,p=0 时有两个定义. 一个是数学定义, 另一个是函数. 我们在机器学习中用到的是后者, 即非零元素的总数:|x1|0+|x2|0+⋯+|xn|0.
Lp space: #The p-norm in finite dimensions - wikipedia
然后, 由于损失函数需要始终大于 0 , 对误分类的数据
当
这里的
yi 为输出结果(假设输出)
因此, 误分类点
这样, 假设超平面的误分类点集合为
忽略
损失函数
感知机学习算法
分原始模式和对偶模式两种, 使用随机梯度下降方法.
感知机学习算法的原始形式
对参数
极小化过程中不是一次使
假设误分类点集合
给出.
随机选取一个误分类点
关于 delta 法则, 梯度下降, 随机梯度下降 将会另起另一篇
用最开始讲到的简化后的模型简化后的<统计学习方法>算法2.1:
xi=(1,x(1),x(2),...,x(n))T wi=(w(0),w(1),w(2),...,w(n))T
输入: 训练数据集
输出:
(1) 选取初值
(2) 在训练集中选取数据
(3) 如果
(4) 转至 (2) ,直至训练集中没有误分类点
直观解释是 如果有了误分类则调整
留坑, 将例题 2.1 可视化
感知机学习算法的对偶形式
对偶形式, 指的是从不同的形式去解答一个问题, 但问题的解释一样的.
对偶形式的基本想法是, 将
在感知机学习算法的原始形式中, 对误分类点
算法 2.2 (简化版原始形式的对偶形式)
输入: 训练数据集
输出:
(1)
(2) 在训练集中选取数据
(3) 如果
(4) 转至 (2) ,直至训练集中没有误分类点
可以看到对偶形式中训练实例仅以内积的形式出现, 引入 Gram 矩阵形式 储存实例间的内积
比如现在有 3 个实例点
对算法第三步, 可以改写为
(3) 如果
yi(∑Nj=1αjyjGji)≤0 αi←αi+η
参考
[1] 李航. 《统计学习方法》[M]. 北京:清华大学出版社,2012:25-35
[2] Tom M. Mitchell. 《机器学习》[M] 曾华军,张银奎等译. 北京:机械工业出版社,2015:63-69
[3] 超平面 - 维基百科
[4] Lp space: #The p-norm in finite dimensions - wikipedia