1、感知机模型
定义:
假设输入空间是
X⊆Rn
X
⊆
R
n
,输出空间是
y={+1,−1}
y
=
{
+
1
,
−
1
}
.输入
x∈X
x
∈
X
表示实例的特征向量,对应于输入空间的点;输出
y∈Y
y
∈
Y
表示实例的类别。由输入空间到输出空间的如下函数
f(x)=sign(w∙x+b) f ( x ) = s i g n ( w ∙ x + b )
称为感知机。其中, w w 和是感知机模型参数, w∈Rn w ∈ R n 叫作权值, b∈R b ∈ R 叫作偏置, w∙x w ∙ x 表示 w w 和的内积。sign是符号函数
sign(x)={+1,−1,x⩾0x<0 s i g n ( x ) = { + 1 , x⩾0 − 1 , x<0
感知机是二类分类的线性分类模型,属于判别模型。二类分类,所以取+1和-1二值;线性分类,所以存在超平面 S S 将特征空间划分为两个部分,位于两部分的点(特征向量)分别为正、负两类。
2、感知机学习策略
感知机的策略是求误分类点到超平面的总距离的最小值,因为感知机的数据集是线性可分的,所以也就是求误分类点到超平面
S
S
的总距离等于0的值。
点到超平面
S
S
的距离:
其中 ‖w‖ ‖ w ‖ 是 L2 L 2 范数(向量元数绝对值的平方和再开方)该公式可由 d=ax0+by0+ca2+b2‾‾‾‾‾‾‾√ d = a x 0 + b y 0 + c a 2 + b 2 可推理得到。
因些误分类点到超不面 S S 的距离:
我们已经知道感知机的策略是求误分类点到超平面 S S 的总距离等于0的值,所以可以忽略,但不能忽略负号,因为损失函数是非负实值的函数。因此可以定义 sign(w∙x+b) s i g n ( w ∙ x + b ) 的损失函数为
L(w,b)=−∑xi∈Myi(w∙xi+b) L ( w , b ) = − ∑ x i ∈ M y i ( w ∙ x i + b )3、感知机算法的原始形式
1、算法
输入:训练数据集 T={(x1,y1),(x2,y2),∙∙∙,(xn,yn)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ∙ ∙ ∙ , ( x n , y n ) } ,其中 xi∈X=Rn,yi∈Y={−1,+1},i=1,2,∙∙∙N x i ∈ X = R n , y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , ∙ ∙ ∙ N ;学习率 η(0<η⩽1) η ( 0 < η ⩽ 1 ) ;
输出: w,b w , b ;感知机模型:
f(x)=sign(w∙x+b) f ( x ) = s i g n ( w ∙ x + b )
(1)选取初值 w0,b0 w 0 , b 0 ,一般初值选 w0=0,b0=0 w 0 = 0 , b 0 = 0
(2)在训练集中选取数据 (xi,yi) ( x i , y i )
(3)如果 yi(w∙xi+b)⩽0 y i ( w ∙ x i + b ) ⩽ 0
w←w+ηyixi w ← w + η y i x i
b←b+ηyi b ← b + η y i
(4)转至(2),直到训练集没有误分类点。2、算法的收剑性
4、感知机算法的对偶形式
输入:训练数据集 T={(x1,y1),(x2,y2),∙∙∙,(xn,yn)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ∙ ∙ ∙ , ( x n , y n ) } ,其中 xi∈X=Rn,yi∈Y={−1,+1},i=1,2,∙∙∙N x i ∈ X = R n , y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , ∙ ∙ ∙ N ;学习率 η(0<η⩽1) η ( 0 < η ⩽ 1 ) ;
输出: α,b α , b ;感知模型:f(x)=sign(∑j=1Nαjyjxj∙x+b) f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ∙ x + b ).
其中 α=(α1,α2,∙∙∙,αN)T α = ( α 1 , α 2 , ∙ ∙ ∙ , α N ) T .
(1) α←0,b←0 α ← 0 , b ← 0
(2)在训练集中选取数据 (xi,yi) ( x i , y i )
(3)如果
yi(∑j=1Nαjyjxj∙x+b)⩽0 y i ( ∑ j = 1 N α j y j x j ∙ x + b ) ⩽ 0
则更新参数
αi←αi+η α i ← α i + η
b←b+ηyi b ← b + η y i
(4)转至(2),直到训练集没有误分类数据。