感知机

  • 感知机属于判别模型

  • 感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1两个值。

感知机模型

  • 感知机
    假设输入空间是(X subseteq R^n),输出空间是(y={ +1, -1})
    输入空间到输出空间的如下函数称为感知机。

[f(x) = sign(w cdot x + b) ]

其中,w和b为感知机模型参数,(w subseteq R^n)为权值,(b subseteq R^n)为偏置。sign是函数符号,即

[sign(x) = left{egin{matrix} +1, x geq 0 \ -1, x < 0 end{matrix} ight. ]

  • 几何解释
    线性方程(w cdot x + b =0)对应于特征空间(R^n)中的一个超平面S,其中w是超平面的法向量,b是超平面的截距。这个超平面将特征空间划分为两部分。位于两部分中的点分别被氛围正、负两类。因此,超平面S称为分离超平面。

  • 感知机学习,通过训练数据集求的感知机模型中w和b。通过感知机模型来对新输入的实例进行类别预测。


感知机学习策略

  • 数据集的先行可分性:存在某个超平面S可以将数据集中的正、负实例完全的划分到超平面的两侧,则称为训练数据集可分。

感知机学习策略

  • 假设训练数据集可分,感知机学习旨在确定感知机模型中的w和b参数。需要一个学习策略,即定义损失函数,并将损失函数最小化。

  • 损失函数的推导
    输入空间中任意一点(x_0)到分离超平面S的距离为((||w||)是w的二范数):

[frac {1} {||w||} |w cdot x_0 + b| ]

对于误分类数据((x_i, y_i))来说,(-y_i (w cdot x_i + b) > 0)成立。 因此,误分类点到超平面的距离是:

[-frac {1} {||w||} y_i (w cdot x_i + b) ]

则,所有误分类点到分离超平面的距离总和为

[-frac {1} {||w||} sum _{x_i in M} y_i (w cdot x_i + b) ]

不考虑(-frac {1} {||w||}),后面的就是感知机学习的损失函数。

  • 感知机损失函数
    给定训练集

[T = { (x_1, y_1), ..., (x_N, y_N) } ]

以及类别集合

[y = {-1, +1} ]

感知机学习的损失函数定义为

[L(w, b) = -sum _{x_i in M} y_i (w cdot x_i + b) ]

其中,M为误分类点的集合。这个损失函数就是感知机学习的经验风险函数。


感知机学习算法

感知机学习算法的原始形式

  • 训练问题转化为损失函数极小化问题:(min_{w,b} L(w, b))

  • 梯度下降法(gradient descent):首先任意选择一个超平面(w_0,b_0),然后用梯度下降发不断的极小化目标函数(损失函数)。极小化过程中不是一次使用M中所有的误分类点的梯度下降,而是一次随机选择一个误分类点使其梯度下降。

  • 感知机学习算法的原始形式
    输入:训练数据集T;学习速率(eta, 0<eta leq 1)
    输出:w, b;感知机模型(f(x) = w cdot x + b)

  1. 选择初始值(w_0, b_0)
  2. 在训练集中选择数据((x_i, y_i))
  3. 如果(y_i(w cdot x_i + b) leq 0)

[w Leftarrow w + eta y_i x_i$$ $$b Leftarrow b + eta y_i ]

  1. 转至(2),直到训练集中没有误分类点。
  • 感知机由于采用不同的初值或选择不同的误分类点,解可以不同。

感知机算法的收敛性

  • 根据Novikoff定理,如果训练数据集T是线性可分的,则存在分离超平面(hat{w}_{opt} cdot hat{x} = w_{opt} cdot x + b_{opt} = 0)将训练数据集完全正确分开。

感知机学习算法的对偶形式

  • 对偶形式的基本思想是,将w和b表示为实例(x_i)和标记(y_i)的线性组合的形式,通过求解其参数而求的w和b。假设初始值(w_0, b_0)均为0。对于误分类点((x_i, y_i))通过

[w Leftarrow w + eta y_i x_i$$ $$b Leftarrow b + eta y_i ]

逐步修改w,b。假设修改n次,则w,b关于((x_i, y_i))的增量分别为(alpha_i y_i x_i)(alpha_i y_i),其中(alpha_i = n_i eta)。由此得出最后学习到的w,b可以标识为:

[w = sum _{i=1}^{N} alpha_i y_i x_i$$ $$b = sum _{i=1}^{N} alpha_i y_i ]

  • 感知机学习算法的对偶形式
    输入:线性可分的数据集T,(y),学习速率(eta)
    输出:a,b;感知机模型(f(x) = sign( sum _{j=1}^{N} alpha_j y_j x_j cdot x + b)),其中(alpha = (alpha_1, ..., alpha_N)^T)
  1. (a=0, b=0)
  2. 在训练集中选择数据((x_i, y_i))
  3. 如果(y_i (sum _{j=1}^{N} alpha_j y_j x_j cdot x_i + b) leq 0)

[alpha_i = alpha_i + eta$$ $$b= b + eta y_i ]

  1. 转至(2),直到没有误分类数据为止
原文地址:https://www.cnblogs.com/milkcoffeesugar/p/5756761.html