机器学习可分为线性模型和非线性模型两类,线性模型如最古老经典的感知机,逻辑回归(对数几率回归),Fisher判别分析,90年代一度独领风骚的支持向量机,本文将详解感知机。
感知机是现在NN的鼻祖,不过下面写的感知机是最原始的纯线性版本,没有加激活函数,即没有任何非线性元素被引入。
(1)模型
y
=
w
T
x
+
w
0
y=\boldsymbol{w}^T\boldsymbol{x}+w_0
y=wTx+w0
y是线性分界面,可以是二维平面的一根直线,或者三维空间的一个平面,更高维的线性分界面就被叫做超平面。因此线性模型只能一刀切,只能做二分类。
模型也可简化为:
y
=
(
w
′
)
T
x
′
y=(\boldsymbol{w'})^T\boldsymbol{x'}
y=(w′)Tx′
w
′
=
[
w
w
0
]
,
x
′
=
[
x
1
]
\boldsymbol{w'}=\left[ \begin{matrix} \boldsymbol{w} \\ w_0 \end{matrix} \right],\quad \boldsymbol{x'}=\left[ \begin{matrix} \boldsymbol{x} \\ 1 \end{matrix} \right]
w′=[ww0],x′=[x1]
从模型容易想到:
- 感知机的重点就是权向量,分界面完全由权向量决定,所以使用感知机进行二分类的核心就是使用迭代法寻找一个可行的权向量和分界面。
- 若样本集是线性可分的,则可以实现线性分类的分界面不唯一,最后找到的可行的权向量和分界面因而也不唯一。
(2)判别函数:
g
(
x
)
=
{
c
1
,
w
T
x
>
0
c
2
,
w
T
x
<
0
g(\boldsymbol{x})=\left\{ \begin{aligned} c_1,\quad&\boldsymbol{w}^T\boldsymbol{x}>0\\ c_2,\quad&\boldsymbol{w}^T\boldsymbol{x}<0 \end{aligned} \right.
g(x)={c1,c2,wTx>0wTx<0
where
w
和
x
\boldsymbol{w}和\boldsymbol{x}
w和x均为扩展权向量和特征向量。
以最简单的二维特征空间为例,分界面是条直线: w 1 x 1 + w 2 x 2 + w 0 = 0 w_1x_1+w_2x_2+w_0=0 w1x1+w2x2+w0=0
使得
w
1
x
1
∗
+
w
2
x
2
∗
+
w
0
>
0
w_1x_1^*+w_2x_2^*+w_0>0
w1x1∗+w2x2∗+w0>0的特征点
(
x
1
∗
,
x
2
∗
)
(x_1^*,x_2^*)
(x1∗,x2∗)(分界线上方的点),被分为第一类
c
1
c_1
c1;
使得
w
1
x
1
∗
+
w
2
x
2
∗
+
w
0
<
0
w_1x_1^*+w_2x_2^*+w_0<0
w1x1∗+w2x2∗+w0<0的特征点
(
x
1
∗
,
x
2
∗
)
(x_1^*,x_2^*)
(x1∗,x2∗)(分界线下方的点),被分为第二类
c
2
c_2
c2;
另外由上图可以发现,权向量与分界面正交,这在高维也是成立的。
(3)代价函数
这个代价函数定义很巧妙。
E为错误样本集。分类有错时,代价函数总为正。
如:
x
\boldsymbol{x}
x实际上属于
c
1
c_1
c1,但由于当前权向量形成的分界面不够准确使得
w
T
x
<
0
\boldsymbol{w}^T\boldsymbol{x}<0
wTx<0,被错误分类为
c
2
c_2
c2,根据标签知道
x
∈
c
1
\boldsymbol{x}\in c_1
x∈c1,则
δ
x
=
−
1
\delta_x=-1
δx=−1,则
δ
x
w
T
x
>
0
\delta_x\boldsymbol{w}^T\boldsymbol{x}>0
δxwTx>0.