线性分类与感知机
线性回归
线性回归定义:
利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。
例如下图中对房屋面积和售价之间的关系进行分析,蓝色为数据点,回归得到的红色直线可表示定量关系。
线性回归要素
- 输入数据,一般称为x
- 输出数据,一般称为y
- 模型,拟合得到的函数
- 训练数据条目数,输入数据的维度(特征个数)
学习过程
扩展问题
- 假设和n个因素有关
y = h θ ( x ) = θ T x y=h_{\theta}\left( x \right) =\theta ^Tx y=hθ(x)=θTx
其中
θ = [ θ 1 , θ 2 , ⋯ θ n ] T x = [ x 1 , x 2 , ⋯ x n ] T \theta =\left[ \theta _1,\theta _2,\cdots \theta _n \right] ^T \\ x=\left[ x_1,x_2,\cdots x_n \right] ^T θ=[θ1,θ2,⋯θn]Tx=[x1,x2,⋯xn]T - 根据给定样本
(
x
(
i
)
,
y
(
i
)
)
\left( x^{\left( i \right)},y^{\left( i \right)} \right)
(x(i),y(i))构造代价函数
J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) 2 J\left( \theta \right) =\frac{1}{2}\sum_{i=1}^m{\left( y^{\left( i \right)}-h_{\theta}\left( x^{\left( i \right)} \right) \right) ^2} J(θ)=21i=1∑m(y(i)−hθ(x(i)))2 - 意图求得参数
θ
\theta
θ使得
J
(
θ
)
J(\theta)
J(θ)最小
∂ J ( θ ) ∂ θ = 0 ⟹ θ = ( X T X ) − 1 X T Y \frac{\partial J\left( \theta \right)}{\partial \theta}=0\Longrightarrow \theta =\left( X^TX \right) ^{-1}X^TY ∂θ∂J(θ)=0⟹θ=(XTX)−1XTY
其中
X = [ ( x ( 1 ) ) T ( x ( 2 ) ) T ⋯ ( x ( N ) ) T ] , Y = [ ( y ( 1 ) ) T ( y ( 2 ) ) T ⋯ ( y ( N ) ) T ] X=\left[ \begin{array}{c} \left( x^{\left( 1 \right)} \right) ^T\\ \left( x^{\left( 2 \right)} \right) ^T\\ \cdots\\ \left( x^{\left( N \right)} \right) ^T\\ \end{array} \right] ,Y=\left[ \begin{array}{c} \left( y^{\left( 1 \right)} \right) ^T\\ \left( y^{\left( 2 \right)} \right) ^T\\ \cdots\\ \left( y^{\left( N \right)} \right) ^T\\ \end{array} \right] X= (x(1))T(x(2))T⋯(x(N))T ,Y= (y(1))T(y(2))T⋯(y(N))T
线性二分类问题
线性分类
线性分类的定义
线性分类器通过特征的线性组合来对样本做出分类决定。简言之,样本通过直线(或超平面)可分。
线性分类输入输出
输入为特征向量;若为二分类问题,则输出为0和1,或由概率表示,即0-1间的数。
线性分类过程
以二分类为例,目的是根据给定数据构造二分类的“分界线”,在线的两边分别为正负值,属于这类概率越大,值越大(正),反之越小(负)。
- 对给定样本
(
x
(
i
)
,
y
(
i
)
)
\left( x^{\left( i \right)},y^{\left( i \right)} \right)
(x(i),y(i)),其中
y
(
i
)
y^{\left( i \right)}
y(i)只能取0和1。构造代价函数
J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) 2 J\left( \theta \right) =\frac{1}{2}\sum_{i=1}^m{\left( y^{\left( i \right)}-h_{\theta}\left( x^{\left( i \right)} \right) \right) ^2} J(θ)=21i=1∑m(y(i)−hθ(x(i)))2 - 求得值可能不在0-1内,但需要得到概率,故须对值进行变换,一般使用 S i g m o i d Sigmoid Sigmoid函数 y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+e−z1,其中 z = θ T x ( i ) z=\theta ^Tx^{\left( i \right)} z=θTx(i),相应的代价函数中应写为 h θ ( x ( i ) ) = 1 1 + e − θ T x ( i ) h_{\theta}\left( x^{\left( i \right)} \right) =\frac{1}{1+e^{-\theta ^Tx^{\left( i \right)}}} hθ(x(i))=1+e−θTx(i)1
- 求得参数 θ \theta θ使得 J ( θ ) J(\theta) J(θ)最小
梯度下降法
回归和分类都需计算
∂
J
(
θ
)
∂
θ
=
0
\frac{\partial J\left( \theta \right)}{\partial \theta}=0
∂θ∂J(θ)=0,但是
J
(
θ
)
J(\theta)
J(θ)非线性,为求解带来了障碍。因此需要使用迭代法计算,构建序列
θ
1
,
θ
2
,
⋯
\theta_1,\theta_2,\cdots
θ1,θ2,⋯,直到计算出满足要求的
θ
∗
\theta^*
θ∗,一般使用梯度下降法。
θ
k
+
1
=
θ
k
+
Δ
θ
k
J
(
θ
k
+
1
)
=
J
(
θ
k
)
+
[
d
J
d
θ
]
T
Δ
θ
k
\\ \theta _{k+1}=\theta _k+\varDelta \theta _k \\ J\left( \theta _{k+1} \right) =J\left( \theta _{k} \right) +\left[ \frac{dJ}{d\theta} \right] ^T\varDelta \theta _k
θk+1=θk+ΔθkJ(θk+1)=J(θk)+[dθdJ]TΔθk
为使
J
(
θ
k
+
1
)
⩽
J
(
θ
k
)
J\left( \theta _{k+1} \right) \leqslant J\left( \theta _k \right)
J(θk+1)⩽J(θk),此处选择
Δ
θ
k
=
−
α
∇
θ
J
\varDelta \theta _k=-\alpha \nabla _{\theta}J
Δθk=−α∇θJ,其中$ \alpha$是一个参数。
对数回归与多分类回归
指数回归
使用条件概率描述二分类问题
P
(
y
(
i
)
=
1
∣
x
(
i
)
,
θ
)
=
h
θ
(
x
(
i
)
)
P
(
y
(
i
)
=
0
∣
x
(
i
)
,
θ
)
=
1
−
h
θ
(
x
(
i
)
)
P\left( y^{\left( i \right)}=1|x^{\left( i \right)},\theta \right) =h_{\theta}\left( x^{\left( i \right)} \right) \\ P\left( y^{\left( i \right)}=0|x^{\left( i \right)},\theta \right) =1-h_{\theta}\left( x^{\left( i \right)} \right)
P(y(i)=1∣x(i),θ)=hθ(x(i))P(y(i)=0∣x(i),θ)=1−hθ(x(i))
统一记为
P
(
y
(
i
)
∣
x
(
i
)
,
θ
)
=
(
h
θ
(
x
(
i
)
)
)
y
(
i
)
(
1
−
h
θ
(
x
(
i
)
)
)
1
−
y
(
i
)
P\left( y^{\left( i \right)}|x^{\left( i \right)},\theta \right) =\left( h_{\theta}\left( x^{\left( i \right)} \right) \right) ^{y^{\left( i \right)}}\left( 1-h_{\theta}\left( x^{\left( i \right)} \right) \right) ^{1-y^{\left( i \right)}}
P(y(i)∣x(i),θ)=(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
这里可取代价函数为
J
(
θ
)
=
−
∑
(
y
(
i
)
log
(
h
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
)
J\left( \theta \right) =-\sum{\left( y^{\left( i \right)}\log \left( h_{\theta}\left( x^{\left( i \right)} \right) \right) +\left( 1-y^{\left( i \right)} \right) \log \left( 1-h_{\theta}\left( x^{\left( i \right)} \right) \right) \right)}
J(θ)=−∑(y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i))))
使用极大似然估计可以得到上面的代价函数
L
(
θ
)
=
∏
i
=
1
m
p
(
y
(
i
)
∣
x
(
i
)
,
θ
)
l
(
θ
)
=
log
L
(
θ
)
=
∑
(
y
(
i
)
log
(
h
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
)
L\left( \theta \right) =\prod_{i=1}^m{p\left( y^{\left( i \right)}|x^{\left( i \right)},\theta \right)} \\ l\left( \theta \right) =\log L\left( \theta \right) =\sum{\left( y^{\left( i \right)}\log \left( h_{\theta}\left( x^{\left( i \right)} \right) \right) +\left( 1-y^{\left( i \right)} \right) \log \left( 1-h_{\theta}\left( x^{\left( i \right)} \right) \right) \right)}
L(θ)=i=1∏mp(y(i)∣x(i),θ)l(θ)=logL(θ)=∑(y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i))))
对比可知概率最大时即为上边的代价函数最小。
多分类回归
对 k k k个标记分类问题,需要多个分割超平面。这里给出公式
分类函数及参数:
h
θ
(
x
(
i
)
)
=
[
P
(
y
(
i
)
=
1
∣
x
(
i
)
,
θ
)
P
(
y
(
i
)
=
2
∣
x
(
i
)
,
θ
)
⋮
P
(
y
(
i
)
=
k
∣
x
(
i
)
,
θ
)
]
=
1
∑
c
=
1
k
e
θ
c
T
x
(
i
)
[
e
θ
1
T
x
(
i
)
e
θ
2
T
x
(
i
)
⋮
e
θ
k
T
x
(
i
)
]
θ
=
[
θ
1
T
θ
2
T
⋮
θ
k
T
]
h_{\theta}\left( x^{\left( i \right)} \right) =\left[ \begin{array}{c} P\left( y^{\left( i \right)}=1|x^{\left( i \right)},\theta \right)\\ P\left( y^{\left( i \right)}=2|x^{\left( i \right)},\theta \right)\\ \vdots\\ P\left( y^{\left( i \right)}=k|x^{\left( i \right)},\theta \right)\\ \end{array} \right] =\frac{1}{\sum_{c=1}^k{e^{\theta _{c}^{T}x^{\left( i \right)}}}}\left[ \begin{array}{c} e^{\theta _{1}^{T}x^{\left( i \right)}}\\ e^{\theta _{2}^{T}x^{\left( i \right)}}\\ \vdots\\ e^{\theta _{k}^{T}x^{\left( i \right)}}\\ \end{array} \right] \\ \theta =\left[ \begin{array}{c} \theta _{1}^{T}\\ \theta _{2}^{T}\\ \vdots\\ \theta _{k}^{T}\\ \end{array} \right]
hθ(x(i))=
P(y(i)=1∣x(i),θ)P(y(i)=2∣x(i),θ)⋮P(y(i)=k∣x(i),θ)
=∑c=1keθcTx(i)1
eθ1Tx(i)eθ2Tx(i)⋮eθkTx(i)
θ=
θ1Tθ2T⋮θkT
代价函数及梯度
J
(
θ
)
=
−
[
∑
i
=
1
m
∑
k
=
1
K
1
{
y
(
i
)
=
k
}
log
exp
(
θ
(
k
)
T
x
(
i
)
)
∑
j
=
1
K
exp
(
θ
(
j
)
T
x
(
i
)
)
]
=
−
∑
j
=
1
K
y
j
log
y
^
j
∇
θ
(
k
)
J
=
−
∑
i
=
1
m
[
x
(
i
)
(
1
{
y
(
i
)
=
k
}
−
P
(
y
(
i
)
=
k
∣
x
(
i
)
,
θ
)
)
]
J\left( \theta \right) =-\left[ \sum_{i=1}^m{\sum_{k=1}^K{1\left\{ y^{\left( i \right)}=k \right\} \log \frac{\exp \left( \theta ^{\left( k \right) T}x^{\left( i \right)} \right)}{\sum_{j=1}^K{\exp \left( \theta ^{\left( j \right) T}x^{\left( i \right)} \right)}}}} \right] =-\sum_{j=1}^K{y_j\log \hat{y}_j} \\ \nabla _{\theta ^{\left( k \right)}}J=-\sum_{i=1}^m{\left[ x^{\left( i \right)}\left( 1\left\{ y^{\left( i \right)}=k \right\} -P\left( y^{\left( i \right)}=k|x^{\left( i \right)},\theta \right) \right) \right]}
J(θ)=−[i=1∑mk=1∑K1{y(i)=k}log∑j=1Kexp(θ(j)Tx(i))exp(θ(k)Tx(i))]=−j=1∑Kyjlogy^j∇θ(k)J=−i=1∑m[x(i)(1{y(i)=k}−P(y(i)=k∣x(i),θ))]
该方法又称
S
o
f
t
m
a
x
Softmax
Softmax
神经元模型
神经元模型
- 生物神经元 (Spiking模型):
多个前神经元给出脉冲,经过加权传递,一个后神经元接受一定的脉冲后向后发出脉冲。 - 生物神经元:Integrate-and-fire模型:
结构与上面类似,但神经元间传递的信号在神经元上被积分。 - 人工神经元模型: M-P模型:
同样是一个神经元接收多个神经元信号,经过加权求和和激发函数后发出信号。 - 单神经元模型:
接收信号加权求和得到 z z z,再经过激发函数得到 y y y, y y y的取值为0或1。
z = ∑ j = 1 n w j x j − θ = W T X y = f ( z ) z=\sum_{j=1}^n{w_jx_j-\theta}=W^TX \\ y=f\left( z \right) z=j=1∑nwjxj−θ=WTXy=f(z)
作用函数
-
非对称型 S i g m o i d Sigmoid Sigmoid函数 ( L o g S i g m o i d ) (Log Sigmoid) (LogSigmoid)
-
对称型 S i g m o i d Sigmoid Sigmoid函数 ( T a n g e n t S i g m o i d ) (Tangent Sigmoid) (TangentSigmoid)
-
对称型阶跃函数
H e b b Hebb Hebb规则
连接权值的调整量与输入与输出的乘积成正比
感知机模型
感知机原理
感知机(Perceptron)是1957年,由Rosenblatt提出,是神经网络和支持向量机的基础。用于解决线性分类问题。
有一直线
a
x
+
b
y
+
c
=
0
ax+by+c=0
ax+by+c=0,任一点坐标
(
x
0
,
y
0
)
\left( x_0,y_0 \right)
(x0,y0)到直线距离:
d
=
a
x
0
+
b
y
0
+
c
a
2
+
b
2
d=\frac{ax_0+by_0+c}{\sqrt{a^2+b^2}}
d=a2+b2ax0+by0+c
高维情况下
d
=
w
T
x
∥
w
∥
d=\frac{w^Tx}{\left\| w \right\|}
d=∥w∥wTx
感知机模型
- 输入到输出
y = f ( x ) = s i g n ( w T x ) y=f\left( x \right) =sign\left( w^Tx \right) y=f(x)=sign(wTx) - 代价函数
考虑到
故可选择代价函数为
L
(
w
)
=
−
1
∥
w
∥
∑
y
(
i
)
(
w
T
x
(
i
)
)
L\left( w \right) =-\frac{1}{\left\| w \right\|}\sum{y^{\left( i \right)}\left( w^Tx^{\left( i \right)} \right)}
L(w)=−∥w∥1∑y(i)(wTx(i))
3. 当检测到误分类点时更新权值
w
k
+
1
=
w
k
+
η
y
(
i
)
x
(
i
)
w_{k+1}=w_k+\eta y^{\left( i \right)}x^{\left( i \right)}
wk+1=wk+ηy(i)x(i)