感知器推导总结
我们知道当
x
∈
R
x \in \mathbb{R}
x∈R,若规定
y
y
y 的取值只能为
{
1
,
−
1
}
\{1, -1\}
{1,−1},那么我们的决策边界函数为:
f
(
x
)
=
s
i
g
n
(
ω
T
x
+
b
)
f(x) = sign(\omega^Tx+b)
f(x)=sign(ωTx+b)
其中上式的
s
i
g
n
sign
sign 函数用于判断选择最后
y
y
y 的取值。
s
i
g
n
(
a
)
=
{
1
,
a
⩾
0
−
1
,
a
⩽
0
sign(a) = \left\{\begin{array}{rr} 1, a\geqslant0\\-1, a\leqslant0\end{array}\right.
sign(a)={1,a⩾0−1,a⩽0
条件推理
证明: ω ⃗ \vec \omega ω是超平面的法向量
证:
我们知道对一个超平面,划分决策边界为 ω T x + b = 0 \omega^Tx+b = 0 ωTx+b=0,其中 ω \omega ω 向量为超平面的权重向量( w e i g h t weight weight v e c t o r vector vector),而 b b b 则被称为偏置( b i a s bias bias)。如上图我们在决策边界上取两个点,分别是 x 1 , x 2 x_1, x_2 x1,x2。将其分别带入到决策边界上得到两个方程。
由 { ω T x 1 + b = 0 ω T x 2 + b = 0 \left\{\begin{array}{lr} \omega^Tx_1+b=0\\\omega^Tx_2+b=0\end{array}\right. {ωTx1+b=0ωTx2+b=0 ,将两式相减可推出: ω T ( x 1 − x 2 ) = 0 \omega^T(x_1-x_2)=0 ωT(x1−x2)=0
我们仔细观察得出的式子,实际上就是两个向量的数量积为0,即: ω → ⋅ ( x − y ) → = 0 \overrightarrow{\omega} \centerdot \overrightarrow{(x-y)} = 0 ω⋅(x−y)=0,这说明 ω → ⊥ ( x 1 − x 2 ) → \overrightarrow{\omega} \perp \overrightarrow{(x_1-x_2)} ω⊥(x1−x2),即证明了 ω → \overrightarrow{\omega} ω 是超平面的法向量。
从点到超平面的距离 d d d 如何计算?
首先在计算
d
d
d 之前先补充一个知识点:
如图,假设向量
b
→
=
x
−
x
1
→
\overrightarrow{b} = \overrightarrow{x-x_1}
b=x−x1,直线到
x
x
x 点的向量为
a
→
\overrightarrow{a}
a。此时对于
a
→
⋅
b
→
\overrightarrow{a} \centerdot \overrightarrow{b}
a⋅b 随着
a
→
\overrightarrow{a}
a 逐渐单位化,向量
b
→
\overrightarrow{b}
b 会逐渐靠近
a
→
\overrightarrow{a}
a 这侧(即单位化这侧的投影)。所以
x
x
x 到直线的距离为:
d
=
∣
b
→
⋅
e
→
∣
∥
ω
∥
2
d = \frac{|\overrightarrow{b}\centerdot\overrightarrow{e}|}{\|\omega\|_2}
d=∥ω∥2∣b⋅e∣
这个结论非常的重要,以至于我们后面的证明因此而变得清晰,接下来计算点到超平面的距离。
{ d = ∣ ( x − x 1 ) → ⋅ ω → ∣ ∥ ω ∥ 2 ω T x 1 + b = 0 \left\{\begin{array}{lr} d = \frac{|\overrightarrow{(x-x_1)}\centerdot\overrightarrow{\omega}|}{\|\omega\|_2}\\\omega^Tx_1+b=0\end{array}\right. {d=∥ω∥2∣(x−x1)⋅ω∣ωTx1+b=0,由此推出: { d = ∣ ω T x − ω T x 1 ∣ ∥ ω ∥ 2 b = − ω T x 1 \left\{\begin{array}{lr} d = \frac{|\omega^Tx-\omega^Tx_1|}{\|\omega\|_2}\\b=-\omega^Tx_1\end{array}\right. {d=∥ω∥2∣ωTx−ωTx1∣b=−ωTx1
所以结论得到,平面一点到决策边界的距离(或者说点到超平面的距离)为: d = ∣ ω T x + b ∣ ∥ ω ∥ 2 d = \frac{|\omega^Tx+b|}{\|\omega\|_2} d=∥ω∥2∣ωTx+b∣
L o s s Loss Loss f u n c t i o n function function
感知器的损失函数最初设想如下:
L ( ω , b ) = ∑ i = 1 N I [ y i ( ω T x i + b ) ] L(\omega, b) = \sum\limits_{i=1}^NI\left[y_i(\omega^Tx_i+b)\right] L(ω,b)=i=1∑NI[yi(ωTxi+b)]
其中中括号里的部分,代表着错误的分类,比如分类错误:
f
(
x
i
)
=
s
i
g
n
(
ω
T
x
i
+
b
)
=
+
1
,
y
i
=
−
1
⇒
y
i
(
ω
T
x
i
+
b
)
<
0
f(x_i) = sign(\omega^Tx_i+b) = +1,y_i=-1 \Rightarrow y_i(\omega^Tx_i+b)<0
f(xi)=sign(ωTxi+b)=+1,yi=−1⇒yi(ωTxi+b)<0
f
(
x
i
)
=
s
i
g
n
(
ω
T
x
i
+
b
)
=
−
1
,
y
i
=
+
1
⇒
y
i
(
ω
T
x
i
+
b
)
<
0
f(x_i) = sign(\omega^Tx_i+b) = -1,y_i=+1 \Rightarrow y_i(\omega^Tx_i+b)<0
f(xi)=sign(ωTxi+b)=−1,yi=+1⇒yi(ωTxi+b)<0
上式的 I I I 函数功能: { 若 y i ( ω T x i + b ) > 0 , I = 1 若 y i ( ω T x i + b ) < 0 , I = 0 \left\{\begin{array}{lr}若y_i(\omega^Tx_i+b)>0,I=1\\若y_i(\omega^Tx_i+b)<0,I=0\end{array}\right. {若yi(ωTxi+b)>0,I=1若yi(ωTxi+b)<0,I=0,那么就很好解释损失函数了,主要是用于计算当预测错误时,点到决策边界的代价值。通常,为了使得损失达到最小,我们需要寻找在定义内的最小点,就会涉及到求导。对于上式 L o s s Loss Loss f u n c t i o n function function, I I I 不可导,因此我们互哪一种思路,将 L o s s Loss Loss f u n c t i o n function function 转化为下式:
L ( ω , b ) = ∑ x i ∈ M ∣ ω T x i + b ∣ ∥ ω ∥ 2 L(\omega, b) = \sum\limits_{x_i\in M}\frac{|\omega^Tx_i+b|}{\|\omega\|_2} L(ω,b)=xi∈M∑∥ω∥2∣ωTxi+b∣
其中 M M M 是所有误分类点的集合, L o s s Loss Loss f u n c t i o n function function 代表的就是所有分类错误的点到直线的距离之和。我们只需要将这个距离降到最小,即可划分出一条直线到各个点的距离之和最小,因此我们对上式求导,这个时候问题又出现了,由于分子中有绝对值,这不方便我们求导,我们对该式的分子去绝对值操作后即为:
L ( ω , b ) = ∑ x i ∈ M − y i ( ω T x i + b ) ∥ ω ∥ 2 L(\omega, b) = \sum\limits_{x_i\in M}\frac{-y_i(\omega^Tx_i+b)}{\|\omega\|_2} L(ω,b)=xi∈M∑∥ω∥2−yi(ωTxi+b)
学习策略
通过梯度下降算法,找到局部最优解。我们将上式 L ( ω , b ) = ∑ x i ∈ M = − y i ( ω T x i + b ) ∥ ω ∥ 2 L(\omega, b) = \sum\limits_{x_i\in M} = \frac{-y_i(\omega^Tx_i+b)}{\|\omega\|_2} L(ω,b)=xi∈M∑=∥ω∥2−yi(ωTxi+b) 的常数 1 ∥ ω ∥ 2 \frac{1}{\|\omega\|_2} ∥ω∥21 直接去掉,对找到局部最优解无任何影响,得到:
L ( ω , b ) = ∑ x i ∈ M − y i ( ω T x i + b ) L(\omega, b) = \sum\limits_{x_i\in M}-y_i(\omega^Tx_i+b) L(ω,b)=xi∈M∑−yi(ωTxi+b)
我们分别对 L ( ω , b ) L(\omega, b) L(ω,b) 关于权重 ω \omega ω 和偏置 b b b 求梯度,分别确定这两个参数所对应超平面的梯度下降,并进行迭代更新,直至找到局部最优解为止。
{ ∇ ω L ( ω , b ) = − ∑ x i ∈ M y i x i ∇ b L ( ω , b ) = − ∑ x i ∈ M y i \left\{\begin{array}{lr}\nabla_{\omega}L(\omega, b) = -\sum\limits_{x_i\in M}y_ix_i\\\nabla_bL(\omega, b) = -\sum\limits_{x_i\in M}y_i \end{array}\right. ⎩⎨⎧∇ωL(ω,b)=−xi∈M∑yixi∇bL(ω,b)=−xi∈M∑yi
通过 { ω ⇐ ω − ∇ ω L ( ω , b ) ⋅ α b ⇐ b − ∇ b L ( ω , b ) ⋅ α \left\{\begin{array}{lr}\omega \Leftarrow \omega - \nabla_{\omega}L(\omega, b)\centerdot\alpha\\b \Leftarrow b - \nabla_{b}L(\omega, b)\centerdot\alpha\end{array}\right. {ω⇐ω−∇ωL(ω,b)⋅αb⇐b−∇bL(ω,b)⋅α 分别对误分类点的 L o s s Loss Loss f u n c t i o n function function 中的 ω \omega ω 和 b b b 更新,即如下迭代方式:
ω ⇐ ω + α ⋅ ∑ x i ∈ M y i x i \omega \Leftarrow \omega + \alpha\centerdot\sum\limits_{x_i\in M}y_ix_i ω⇐ω+α⋅xi∈M∑yixi b ⇐ b + α ⋅ ∑ x i ∈ M y i b \Leftarrow b + \alpha\centerdot\sum\limits_{x_i\in M}y_i b⇐b+α⋅xi∈M∑yi
以上即为感知器相关公式推导。