目 录
1 感知机(Perceptron)
感知机是二类分类的线性分类模型,旨在求出将训练数据进行线性划分的分离超平面,因此导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。
1.1 定义
假设输入空间是 X ⊆ R n \mathcal{X} \subseteq \mathbf{R}^n X⊆Rn ,输出空间是 Y = { + 1 , − 1 } \mathcal{Y} = \left\{+1,-1\right\} Y={ +1,−1} 。输入 x ∈ X x \in \mathcal{X} x∈X 表示实例的特征向量,对应于输入空间的点;输出 y ∈ Y y \in \mathcal{Y} y∈Y 表示实例的类别。由输入空间到输出空间的如下函数
f ( x ) = s i g n ( w ⋅ x + b ) f(x) = sign(w \cdot x + b) f(x)=sign(w⋅x+b)
称为感知机。其中, w ∈ R n w \in \mathbf{R}^n w∈Rn 叫做权值(weight)或权值向量(weight vector), b ∈ R b \in \mathbf{R} b∈R 叫做偏置(bias)。 s i g n sign sign 是符号函数,即
s i g n ( x ) = { + 1 , x ≥ 0 − 1 , x < 0 sign(x) = \begin{cases} +1, & x \ge 0 \\ -1, & x \lt 0 \end{cases} sign(x)={ +1,−1,x≥0x<0
1.2 几何解释
线性方程
w ⋅ x + b = 0 w \cdot x + b = 0 w⋅x+b=0
对于特征空间 R n \mathbf{R}^n Rn 中的一个超平面 S ,其中 w w w 是超平面的法向量, b b b 是超平面的截距。这个超平面将特征空间划分为两个部分。位于两部分的点(特征向量)分别被分为正、负两类。因此超平面 S S S 称为分离超平面,如图所示
感知机通过训练训练集数据求得感知机模型,即求得模型参数 w w w , b b b 。通过学习得到的感知机模型,对于新的输入实例给出其对应的输出类别。
1.3 学习策略
假设训练数据集是线性可分的,我们需要找到一个前面所说的分离超平面,即确定感知机模型参数 w w w , b b b 。这需要制定一个学习策略,即定义损失函数并将损失函数极小化。
首先考虑误分点总数,但因其不是参数 w w w , b b b 的连续可导函数,不易优化,因此选择误分点到超平面 S S S 的总距离。我们知道一个点 x 0 x_0 x0 到平面 w ⋅ x + b w \cdot x + b w⋅x+b 的距离 d d d 为 1 ∣ ∣ w ∣ ∣ ∣ w ⋅ x 0 + b ∣ \frac{1}{||w||}| w \cdot x_0 + b | ∣∣w∣∣1∣w⋅x0+b∣ ,对于误分点 ( x i , y i ) (x_i,y_i) (xi,yi) 来说,当 w ⋅ x i + b > 0 w \cdot x_i + b \gt 0 w⋅xi+b>0 时, y i = − 1 y_i = -1 yi=−1 ;当 w ⋅ x i + b < 0 w \cdot x_i + b \lt 0 w⋅xi+b<0 时, y i = + 1 y_i = +1 yi=+1 。所以有:
− y i ( w ⋅ x i + b ) > 0 -y_i (w \cdot x_i + b) \gt 0 −yi(w⋅xi+b)>0
于是误分点到超平面 S S S 的距离为:
− 1 ∣ ∣ w ∣ ∣ y i ( w ⋅ x 0 + b ) -\frac{1}{||w||}y_i(w \cdot x_0 + b) −∣∣w∣∣1yi(w⋅x0+b)
假设超平面 S S S 的误分点集合为 M M M ,那么误分点到超平面 S S S 的总距离为:
− 1 ∣ ∣ w ∣ ∣ ∑ x i ∈ M y i ( w ⋅ x i + b ) -\frac{1}{||w||} \sum_{x_i \in M} y_i (w \cdot x_i + b) −∣∣w∣∣1xi∈M∑yi(w⋅xi+b)
因为 w w w 的大小 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣ 不会影响极小化的结果,因此,忽略 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} ∣∣w∣∣1 就得到感知及学习的损失函数:
L o s s ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) Loss(w, b) = - \sum_{x_i \in M} y_i (w \cdot x_i + b) Loss(w,b)=−xi∈M∑yi(w⋅xi+b)
1.4 算法
1.4.1 原始形式
感知机学习算法是误分类驱动的,采用随机梯度下降(SGD)法极小化损失函数。首先任意选取一个超平面 S 0 S_0 S0 (即初始化模型参数 w 0 w_0 w0 , b 0 b_0 b0 ),然后随机选取一个误分类点(遍历数据集找到误分类的点)使其梯度下降(见CH12_2):
∇ w L