分类用图形来解释,把他想象为有大小有方向带箭头的向量。
设权重向量为 w w w,虚线为使权重向量称为法线向量的直线。
直线的表达式为: w ⋅ x = 0 w\cdot x=0 w⋅x=0 (两个向量的内积)
也可写为: w ⋅ x = ∑ i = 1 n w i x i = w 1 x 1 + w 2 x 2 = 0 w\cdot x=\sum\limits_{i=1}^nw_ix_i=w_1x_1+w_2x_2=0 w⋅x=i=1∑nwixi=w1x1+w2x2=0
w ⋅ x = ∣ w ∣ ⋅ ∣ x ∣ ⋅ c o s θ w\cdot x=|w|\cdot|x|\cdot cos\theta w⋅x=∣w∣⋅∣x∣⋅cosθ 要使内积0, θ = 90 ° \theta=90\degree θ=90°或 θ = 270 ° \theta=270\degree θ=270°
感知机
感知机是接受多个输入后将每个值与各自的权重相乘,最后输出总和的模型。是神经网络和深度学习的基础模型。人们常用这样的图来表示它。
训练数据的准备
f w ( x ) f_w(x) fw(x):根据参数向量 x x x来判断图像是横向还是纵向的函数,即返回1或者-1的函数,这个函数被称为判别函数。
f w ( x ) = { 1 ( w ⋅ x ≥ 0 ) − 1 ( w ⋅ x < 0 ) f_w(x)= \begin{cases} 1& {(w\cdot x\ge0)}\\ -1&{(w\cdot x<0)} \end{cases} fw(x)={1−1(w⋅x≥0)(w⋅x<0)
根据内积正负来分割区域
权重向量的更新表达式
w : = { w + y ( i ) x ( i ) ( f w ( x ( i ) ) ≠ y ( i ) ) w ( f w ( x ( i ) ) = y ( i ) ) w:= \begin{cases}w+y^{(i)}x^{(i)}&(f_w(x^{(i)})\not=y^{(i)})\\w&(f_w(x^{(i)})=y^{(i)}) \end{cases} w:={w+y(i)x(i)w(fw(x(i))=y(i))(fw(x(i))=y(i))
分类正确不动,分类失败更新权重向量, y ( i ) y^{(i)} y(i)为1或-1,做向量的加法和减法去旋转直线。
线性可分
感知机只能解决线性可分问题。
无法解决下图情况
之前提到的感知机也被称为简单感知机或单层感知机,实际上多层感知机就是神经网络。
逻辑回归
sigmoid函数
f θ ( x ) = 1 1 + e x p ( − θ T x ) f_\theta(x)=\frac{1}{1+exp(-\theta^Tx)} fθ(x)=1+exp(−θTx)1 ( e x p ( x ) = e x exp(x)=e^x exp(x)=ex)
图形如下:
θ T x = 0 \theta^Tx=0 θTx=0时 f θ ( x ) = 0.5 f_\theta(x)=0.5 fθ(x)=0.5, 0 < f θ ( x ) < 1 0<f_\theta(x)<1 0<fθ(x)<1是sigmoid函数的两个特征。
决策边界
把位置数据 x x x是横向图像的概率作为 f θ ( x ) f_\theta(x) fθ(x),表达式如下
P ( y = 1 ∣ x ) = f θ ( x ) P(y=1|x)=f_\theta(x) P(y=1∣x)=fθ(x)
这是在给出 x x x的数据时 y = 1 y=1 y=1,即图像为横向的概率。
y = { 1 ( f θ ( x ) ≥ 0.5 ) 0 ( f θ ( x ) < 0.5 ) y=\begin{cases}1&(f_\theta(x)\ge0.5)\\0&(f_\theta(x)<0.5) \end{cases} y={10(fθ(x)≥0.5)(fθ(x)<0.5)
可以改写为:
y = { 1 ( θ T x ≥ 0 ) 0 ( θ T x < 0 ) y=\begin{cases}1&(\boldsymbol{\theta}^T\boldsymbol{x}\ge0)\\0&(\boldsymbol{\theta}^T\boldsymbol{x}<0)\end{cases} y={10(θTx≥0)(θTx<0)
我们将 θ T x = 0 \boldsymbol{\theta}^T\boldsymbol{x}=0 θTx=0这条直线作为边界线,把数据分类为横向和纵向,这种用于数据分类的直线称为决策边界。
为了求正确的参数 θ \theta θ而定义目标函数,进行微分,然后求参数的更新表达式。这种算法就称为逻辑回归
似然函数
开始求参数的更新表达式。
P ( y = 1 ∣ x ) P(y=1|x) P(y=1∣x)是图像为横向的概率, P ( y = 0 ∣ x ) P(y=0|x) P(y=0∣x)是图像为纵向的概率。
我们期待的概率是这样的
假定所有的训练数据都是互不影响、独立发生的,这种情况下整体的概率就可以用下面的联合概率来表示。
L ( θ ) = P ( y ( 1 ) = 0 ∣ x ( 1 ) ) P ( y ( 2 ) = 0 ∣ x ( 2 ) ) ⋯ P ( y ( 6 ) = 1 ∣ x ( 6 ) ) L(\theta)=P(y^{(1)}=0|x^{(1)})P(y^{(2)}=0|x^{(2)})\cdots P(y^{(6)}=1|x^{(6)}) L(θ)=P(y(1)=0∣x(1))P(y(2)=0∣x(2))⋯P(y(6)=1∣x(6))
将其一般化,写法如下:
L ( θ ) = ∏ i = 1 n P ( y ( i ) = 1 ∣ x ( i ) ) y ( i ) P ( y ( i ) = 0 ∣ x ( i ) ) 1 − y ( i ) L(\theta)=\prod\limits_{i=1}^nP(y^{(i)}=1|x^{(i)})^{y^{(i)}}P(y^{(i)}=0|x^{(i)})^{1-y^{(i)}} L(θ)=i=1∏nP(y(i)=1∣x(i))y(i)P(y(i)=0∣x(i))1−y(i)
考虑使目标函数最大化的参数 θ \theta θ,可以认为似然函数 L ( θ ) L(\theta) L(θ)中,使其值最大的参数 θ \theta θ能够最近似地说明训练数据。
对数似然函数
取似然函数的对数
l o g L ( θ ) = l o g ∏ i = 1 n P ( y ( i ) = 1 ∣ x ( i ) ) y ( i ) P ( y ( i ) = 0 ∣ x ( i ) ) 1 − y ( i ) logL(\theta)=log\prod\limits_{i=1}^nP(y^{(i)}=1|x^{(i)})^{y^{(i)}}P(y^{(i)}=0|x^{(i)})^{1-y^{(i)}} logL(θ)=logi=1∏nP(y(i)=1∣x(i))y(i)P(y(i)=0∣x(i))1−y(i)
log是单调递增函数,如图
L ( θ ) L(\theta) L(θ)最大化等价于 l o g L ( θ ) logL(\theta) logL(θ)最大化
l
o
g
L
(
θ
)
=
l
o
g
∏
i
=
1
n
P
(
y
(
i
)
=
1
∣
x
(
i
)
)
y
(
i
)
P
(
y
(
i
)
=
0
∣
x
(
i
)
)
1
−
y
(
i
)
logL(\theta)=log\prod\limits_{i=1}^nP(y^{(i)}=1|x^{(i)})^{y^{(i)}}P(y^{(i)}=0|x^{(i)})^{1-y^{(i)}}
logL(θ)=logi=1∏nP(y(i)=1∣x(i))y(i)P(y(i)=0∣x(i))1−y(i)函数变形如下
l
o
g
L
(
θ
)
=
l
o
g
∏
i
=
1
n
P
(
y
(
i
)
=
1
∣
x
(
i
)
)
y
(
i
)
P
(
y
(
i
)
=
0
∣
x
(
i
)
)
1
−
y
(
i
)
=
∑
i
=
1
n
(
l
o
g
P
(
y
(
i
)
=
1
∣
x
(
i
)
)
y
(
i
)
+
l
o
g
P
(
y
(
i
)
=
0
∣
x
(
i
)
)
1
−
y
(
i
)
)
=
∑
i
=
1
n
(
y
(
i
)
l
o
g
P
(
y
(
i
)
=
1
∣
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
P
(
y
(
i
)
=
0
∣
x
(
i
)
)
)
=
∑
i
=
1
n
(
y
(
i
)
l
o
g
P
(
y
(
i
)
=
1
∣
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
P
(
y
(
i
)
=
1
∣
x
(
i
)
)
)
)
=
∑
i
=
1
n
(
y
(
i
)
l
o
g
f
θ
(
x
i
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
f
θ
(
x
(
i
)
)
)
)
\begin{aligned} logL(\theta)&=log\prod\limits_{i=1}^nP(y^{(i)}=1|x^{(i)})^{y^{(i)}}P(y^{(i)}=0|x^{(i)})^{1-y^{(i)}}\\&= \sum\limits_{i=1}^n(logP(y^{(i)}=1|x^{(i)})^{y^{(i)}}+logP(y^{(i)}=0|x^{(i)})^{1-y^{(i)}})\\&= \sum\limits_{i=1}^n(y^{(i)}logP(y^{(i)}=1|x^{(i)})+({1-y^{(i)}})logP(y^{(i)}=0|x^{(i)}))\\&= \sum\limits_{i=1}^n(y^{(i)}logP(y^{(i)}=1|x^{(i)})+({1-y^{(i)}})log(1-P(y^{(i)}=1|x^{(i)})))\\&= \sum\limits_{i=1}^n(y^{(i)}logf_\theta(x^{i}) +({1-y^{(i)}})log(1-f_\theta(x^{(i)}))) \end{aligned}
logL(θ)=logi=1∏nP(y(i)=1∣x(i))y(i)P(y(i)=0∣x(i))1−y(i)=i=1∑n(logP(y(i)=1∣x(i))y(i)+logP(y(i)=0∣x(i))1−y(i))=i=1∑n(y(i)logP(y(i)=1∣x(i))+(1−y(i))logP(y(i)=0∣x(i)))=i=1∑n(y(i)logP(y(i)=1∣x(i))+(1−y(i))log(1−P(y(i)=1∣x(i))))=i=1∑n(y(i)logfθ(xi)+(1−y(i))log(1−fθ(x(i))))
接下来对各个参数
θ
j
\theta_j
θj求微分
∂
l
o
g
L
(
θ
)
∂
θ
j
=
∂
∂
θ
j
∑
i
=
1
n
(
y
(
i
)
l
o
g
P
(
y
(
i
)
=
1
∣
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
f
θ
(
x
(
i
)
)
)
)
\begin{aligned} \frac{\partial logL(\theta)}{\partial\theta_j}&= \frac{\partial}{\partial\theta_j}\sum\limits_{i=1}^n(y^{(i)}logP(y^{(i)}=1|x^{(i)})+({1-y^{(i)}})log(1-f_\theta(x^{(i)}))) \end{aligned}
∂θj∂logL(θ)=∂θj∂i=1∑n(y(i)logP(y(i)=1∣x(i))+(1−y(i))log(1−fθ(x(i))))
f
θ
(
x
)
=
1
1
+
e
x
p
(
−
θ
T
x
)
f_\theta(x)=\frac{1}{1+exp(-\theta^Tx)}
fθ(x)=1+exp(−θTx)1
过程省略得
∂
l
o
g
L
(
θ
)
∂
θ
j
=
∑
i
=
1
n
(
y
(
i
)
−
f
θ
(
x
(
i
)
)
)
x
j
(
i
)
\frac{\partial logL(\theta)}{\partial\theta_j}= \sum\limits_{i=1}^n(y^{(i)}-f_\theta(x^{(i)}))x_j^{(i)}
∂θj∂logL(θ)=i=1∑n(y(i)−fθ(x(i)))xj(i)
最大化为目标,与微分结果符号相同得方向移动,更新表达式如下
θ
j
:
=
θ
j
+
η
∑
i
=
1
n
(
y
(
i
)
−
f
θ
(
x
(
i
)
)
)
x
j
(
i
)
\theta_j:=\theta_j+\eta\sum\limits_{i=1}^n(y^{(i)}-f_\theta(x^{(i)}))x_j^{(i)}
θj:=θj+ηi=1∑n(y(i)−fθ(x(i)))xj(i)
也可以调整为下面这样
θ
j
:
=
θ
j
−
η
∑
i
=
1
n
(
f
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
\theta_j:=\theta_j-\eta\sum\limits_{i=1}^n(f_\theta(x^{(i)})-y^{(i)})x_j^{(i)}
θj:=θj−ηi=1∑n(fθ(x(i))−y(i))xj(i)
线性不可分
将逻辑回归应用于线性不可分问题
不能用直接分类,但是用曲线可以分类
向训练数据中加入
x
1
2
x_1^2
x12
θ
=
[
θ
0
θ
1
θ
2
θ
3
]
,
x
=
[
1
x
1
x
2
x
1
2
]
\boldsymbol{\theta}= \begin{bmatrix} \theta_0\\\theta_1\\\theta_2\\\theta_3 \end{bmatrix} , \boldsymbol{x}= \begin{bmatrix} 1\\x_1\\x_2\\x_1^2 \end{bmatrix}
θ=
θ0θ1θ2θ3
,x=
1x1x2x12
θ T x = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 \boldsymbol{\theta}^T\boldsymbol{x}= \theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_1^2 θTx=θ0+θ1x1+θ2x2+θ3x12
若
θ
=
[
θ
0
θ
1
θ
2
θ
3
]
=
[
0
0
1
−
1
]
\boldsymbol{\theta}= \begin{bmatrix}\theta_0\\\theta_1\\\theta_2\\\theta_3\end{bmatrix}= \begin{bmatrix} 0\\0\\1\\-1 \end{bmatrix}
θ=
θ0θ1θ2θ3
=
001−1
θ
T
x
=
x
2
−
x
1
2
≥
0
\boldsymbol{\theta}^T\boldsymbol{x}=x_2-x_1^2\ge0
θTx=x2−x12≥0如下图
现在决策边界是曲线了,参数 θ \theta θ可以再调整。如果再增加 x 2 2 x_2^2 x22就会有圆形得决策边界。
这就是逻辑回归,还有SVM(支持向量机得分类算法)也有很名。