看完上一章的概要学习后,开始就进入第二章的内容——感知机。对于统计学习方法而言,包含三要素,模型+策略+算法,接下来就从以下三个要素全面了解感知机。
感知机模型
简单来说,感知机(Perceptron)针对的是二分类的线性模型,其输入为实例的特征向量,输出为实例的类别,取+1、-1。利用数学语言抽象模型可以这样描述:
假 设 输 入 空 间 ( 特 征 空 间 ) 是 χ ∈ R n , 输 出 空 间 是 y = + 1 , − 1 , 输 入 x ∈ χ 表 示 实 例 的 特 征 向 量 , 对 应 于 输 入 空 间 的 点 ; 输 出 y ∈ Y 表 示 实 例 的 类 别 。 由 输 入 空 间 到 输 出 空 间 满 足 如 下 函 数 : f ( x ) = s i g n ( w ⋅ x + b ) 其 中 w 是 权 重 参 数 , b 是 偏 置 项 , s i g n 是 符 号 函 数 , 即 : s i g n ( x ) = { 1 , x ≥ 0 − 1 , x < 0 假设输入空间(特征空间)是\chi \in R^n,输出空间是y={+1,-1},输入x\in \chi表示实例的特征向量,\\ 对应于输入空间的点;输出y\in Y表示实例的类别。由输入空间到输出空间满足如下函数:\\ f(x)= sign(w \cdot x + b )\\ 其中w是权重参数,b是偏置项,sign是符号函数,即:\\ sign(x) = \left\{ \begin{aligned} 1 & , & x \geq 0 \\ -1 & , & x < 0 \end{aligned} \right. 假设输入空间(特征空间)是χ∈Rn,输出空间是y=+1,−1,输入x∈χ表示实例的特征向量,对应于输入空间的点;输出y∈Y表示实例的类别。由输入空间到输出空间满足如下函数:f(x)=sign(w⋅x+b)其中w是权重参数,b是偏置项,sign是符号函数,即:sign(x)={
1−1,,x≥0x<0
感知机模型属于判别模型,旨在求出将训练数据进行线性划分的分离超平面。如图所示:
感知机学习策略
在对于一个训练数据集是线性可分的情况下,感知机学习的目标就是在于找到一个可以将正实例点和负实例点完全正确分隔开的超平面。既然要明确这样一个分离超平面,那么就需要确定一个感知机模型,也就是需要确定一个学习策略,即定义损失函数并将损失函数最小化。
对于常见的损失函数就是一个自然选择是误分类点的总数,但是这样的一个损失函数并不是连续可导函数,不容易优化,那么另一个选择就是误分类点到超平面的总距离。即可抽象描述为:
输 入 空 间 R n 中 任 意 一 点 x 0 到 超 平 面 S 的 距 离 可 表 示 为 : ∣ w ⋅ x + b ∣ ∣ ∣ w ∣ ∣ , 其 中 ∣ ∣ w ∣ ∣ 表 示 为 w 的 L 2 范 数 输入空间R_n中任意一点x_0到超平面S的距离可表示为: \frac{|w \cdot x + b|}{||w||},其中||w||表示为w的L2范数 输入空间Rn中任意一点x0到超平面S的距离可表示为:∣∣w∣∣∣w⋅x+b∣,其中∣∣w∣∣表示为w的L2范数
其次,对于误分类点(x,y)来说,-y(w x+b)>0成立。
∵ w ⋅ x + b > 0 时 , y i = 1 又 ∵ w ⋅ x + b > 0 时 , y i = − 1 ∴ 总 距 离 为 : − 1 ∣ ∣ w ∣ ∣ ∑ X i ∈ M y i ( w ⋅ x + b ) \because w \cdot x + b > 0时,y_i=1 \\ 又\because w \cdot x + b > 0时,y_i=-1 \\ \therefore 总距离为:- \frac{1}{||w||}\sum_{X_i \in M} y_i(w \cdot x + b) ∵w⋅x+b>0时,yi=1又∵w⋅x+b>0时,yi=−1∴总距离为:−∣∣w∣∣1Xi∈M∑yi(w⋅x+b)
由此,可这样描述为:
给 定 数 据 集 T = ( X 1 , Y 1 ) , ( X 2 , Y 2 ) . . . ( X N , Y N ) , 其 中 , x i ∈ χ = R n , y i ∈ Y = + 1 , − 1 , i = 1 , 2 , . . . N 损 失 函 数 定 义 为 : L ( w , b ) = − ∑ X i ∈ M y i ( w ⋅ x + b ) , 其 中 M 时 误 分 类 点 的 集 合 给定数据集T={(X_1,Y_1),(X_2,Y_2)...(X_N,Y_N)},其中,x_i \in \chi=R^n,y_i \in Y={+1,-1},i=1,2,...N \\ 损失函数定义为:L(w,b)=-\sum_{X_i \in M} y_i(w \cdot x + b),\\其中M时误分类点的集合 给定数据集T=(X1,Y1),(X2,Y2)...(XN,YN),其中,xi∈χ=Rn,yi∈Y=+1,−1,i=1,2,...N损失函数定义为:L(w,b)=−Xi∈M∑yi(w⋅x+b),其中M时误分类点的集合
感知机算法
感知机的学习问题转化为求解损失函数的的最优化问题,其最优化的方向是随机梯度下降法(Stochastic Gradient Descent)。(每次迭代更新的是两个向量)
原始形式
输 入 : 训 练 数 据 集 T = ( X 1 , Y 1 ) , ( X 2 , Y 2 ) . . . ( X N , Y N ) , 其 中 , x i ∈ χ = R n , y i ∈ Y = + 1 , − 1 , i = 1 , 2 , . . . N ; 学 习 率 η ( 0 < η ≤ 1 ) ; 输 出 : w , b ; 感 知 机 模 型 f ( x ) = s i g n ( w ⋅ x + b ) ( 1 ) 选 取 初 值 w 0 , b 0 ; ( 2 ) 在 训 练 集 中 选 取 数 据 ( x i , y i ) ( 3 ) 如 果 y i ( w ⋅ x + b ) ≤ 0 w ← w + η y i x i b ← b + η y i ( 4 ) 转 至 ( 2 ) , 直 至 训 练 集 中 没 有 误 分 类 点 输入:训练数据集T={(X_1,Y_1),(X_2,Y_2)...(X_N,Y_N)},\\ 其中,x_i \in \chi=R^n,y_i \in Y={+1,-1},i=1,2,...N \\;学习率\eta(0<\eta \leq 1);\\ 输出:w,b;感知机模型f(x)=sign(w \cdot x + b)\\ (1) 选取初值w_0,b_0;\\ (2) 在训练集中选取数据(x_i,y_i)\\ (3) 如果y_i(w \cdot x + b) \leq 0 \\ w \leftarrow w + \eta y_ix_i\\ b \leftarrow b+\eta y_i\\ (4)转至(2),直至训练集中没有误分类点 输入:训练数据集T=(X1,Y1),(X2,Y2)...(XN,YN),其中,xi<