神经网络与深度学习-线性分类与感知机
1. 线性回归
定义: 利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法
举例: 房屋销售价钱与面积的关系
可以用一条曲线尽量准的拟合这些数据
线性回归要素:
- 输入数据:训练集(training set)或者训练数据(training data)
- 输出数据
- 模型:又称假设或拟合的函数
学习过程:
线性回归的一般形式:
输入数据为: x = [ x 1 , x 2 , ⋯ x n ] T \pmb{x} = [x_1,x_2,\cdots x_n]^T x=[x1,x2,⋯xn]T
参数为: θ = [ θ 1 , θ 2 , ⋯ θ n ] T \pmb{\theta }= [\theta_1,\theta_2,\cdots \theta_n]^T θ=[θ1,θ2,⋯θn]T
则输出为: y = h θ ( x ) = θ T x \pmb{y} = h_{\theta}(\pmb{x}) = \pmb{\theta}^T \pmb{x} y=hθ(x)=θTx
给定样本: ( x ( i ) , y ( i ) ) (\pmb{x}^{(i)},\pmb{y}^{(i)}) (x(i),y(i))
则可以构造代价(误差、损失)函数(二次型形式): J ( θ ) = 1 2 ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) 2 \pmb{J(\theta)}=\frac{1}{2}\sum^m_{i=1}(\pmb{y}^{(i)}-h_{\theta}(\pmb{x}^{(i)}))^2 J(θ)=21∑i=1m(y(i)−hθ(x(i)))2
目标:找到超平面参数 θ \theta θ,使得 J ( θ ) \pmb{J(\theta)} J(θ)最小,及求解 m i n θ J ( θ ) \mathop{min}\limits_{\theta}\pmb{J(\theta)} θminJ(θ)
对 J ( θ ) \pmb{J(\theta)} J(θ)求导,令: ∂ J ( θ ) ∂ θ = 0 \frac{\partial \pmb{J(\theta)}}{\partial \pmb{\theta}}=0 ∂θ∂J(θ)=0
及可以得到: θ = ( X T X ) − 1 X T y \pmb{\theta=(X^TX)^{-1}X^Ty} θ=(XTX)−1XTy
其中:
x = [ ( x ( 1 ) ) T ( x ( 2 ) ) T ⋯ ( x ( N ) ) T ] , y = [ y ( 1 ) y ( 2 ) ⋯ y ( N ) ] \pmb{x}= \left[ \begin{matrix} (\pmb{x}^{(1)})^T \\ (\pmb{x}^{(2)})^T \\ \cdots \\ (\pmb{x}^{(N)})^T \\ \end{matrix} \right] ,\pmb{y}= \left[ \begin{matrix} \pmb{y}^{(1)} \\ \pmb{y}^{(2)} \\ \cdots \\ \pmb{y}^{(N)} \\ \end{matrix} \right] x= (x(1))T(x(2))T⋯(x(N))T ,y= y(1)y(2)⋯y(N)
2. 线性二分类问题
2.1. 线性分类
线性分类定义: 线性分类器则透过特征的性组合来做出分类决定,以达到此种目的。简之,样本通过直线(或超平面)可分
举例: 苹果分类,有两个特征:
- 横轴是苹果的直径
- 纵轴是苹果外观评价
线性分类器输入: 特征向量
线性分类器输出: 所属类别或概率
线性分类与线性回归差别:
- 输出意义不同: 属于某类的概率<->回归具体值
- 参数意义不同: 最佳分类直线<->最佳拟合直线
- 维度不同: 前面的例子中,一个是一维的归,一个是二维的分类
线性分类思路: 构造分类的分界超平面,以二分类为例,则为”分界直线“。令直线的一侧为正值,另一侧为负值。因此考虑带入直线方程的值。
Sigmoid函数: 由于我们最终需要概率,结果在0-1之间,因此需要对值做一个变换:
y
=
1
1
+
e
−
z
y=\frac{1}{1+e^{-z}}
y=1+e−z1其中:
z
=
θ
1
x
1
+
θ
2
x
2
+
θ
0
z=\theta_1x_1+\theta_2x_2+\theta_0
z=θ1x1+θ2x2+θ0
性质:
y
′
=
y
(
1
−
y
)
y'=y(1-y)
y′=y(1−y)
代价(误差)函数:
J
(
θ
)
=
1
2
Σ
i
=
1
N
(
y
(
i
)
−
h
θ
(
x
(
i
)
)
)
2
\pmb{J(\theta)}=\frac{1}{2}\Sigma^N_{i=1}(y^{(i)}-h_\theta(\pmb{x}^{(i)}))^2
J(θ)=21Σi=1N(y(i)−hθ(x(i)))2
h
θ
(
x
(
i
)
)
=
1
1
+
e
−
θ
T
x
(
i
)
h_\theta(\pmb{x^{(i)}})=\frac{1}{1+e^{-\theta^T x^{(i)}}}
hθ(x(i))=1+e−θTx(i)1其中:
(
x
(
i
)
,
y
(
i
)
)
\pmb{(x^{(i)},y^{(i)})}
(x(i),y(i))为给定样本,
y
(
i
)
∈
{
0
,
1
}
\pmb{y^{(i)}} \in\{0,1\}
y(i)∈{0,1}
说明:上述和回归方程一致,仅加入S函数,因此又称为softmax回归
目标: 找到超平面参数 θ \pmb{\theta} θ,使得 J ( θ ) \pmb{J(\theta)} J(θ)最小,即求解 m i n θ J ( θ ) \mathop{min}\limits_{\pmb{\theta}}\pmb{J(\theta)} θminJ(θ)
2.2. 梯度下降法
问题: 按照线性回归的思路,令: ∂ J ( θ ) d θ = 0 \frac{\partial J(\theta) }{d\theta}=0 dθ∂J(θ)=0,但是 J J J变为非线性。
解决: 采用迭代的方法,构造序列 θ 1 , θ 2 , ⋯ θ k → θ ∗ \pmb{\theta_1,\theta_2,\cdots \theta_k\rightarrow\theta^*} θ1,θ2,⋯θk→θ∗使得 J ( θ ) → 0 \pmb{J(\theta)}\rightarrow0 J(θ)→0,其中最简单的方式为: θ k + 1 = θ k + Δ θ k \pmb{\theta_{k+1}=\theta_k+\Delta\theta_k} θk+1=θk+Δθk
最简单的方式:
J
(
θ
k
+
1
)
=
j
(
θ
k
)
+
[
d
J
d
θ
]
T
Δ
θ
k
\pmb{J(\theta_{k+1})=j(\theta_k)+\left[ \frac{dJ}{d\theta}\right]^T\Delta\theta_k}
J(θk+1)=j(θk)+[dθdJ]TΔθk
其中:
Δ
θ
k
=
−
α
d
J
d
θ
=
−
α
∇
θ
J
\Delta\theta_k=-\alpha\frac{dJ}{d\theta}=-\alpha\nabla_\theta J
Δθk=−αdθdJ=−α∇θJ
此时可以满足:
J
(
θ
k
+
1
)
≤
J
(
θ
k
)
\pmb{J(\theta_{k+1})\leq J(\theta_k)}
J(θk+1)≤J(θk)
3. 对数回归与多分类回归
3.1 指数回归
3.2 多分类回归
对于有
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
)
]
h_\theta (x^{(i)})= \left[ \begin{matrix} \pmb{p(y^{(i)}=1|x^{(i)},\theta)} \\ \pmb{p(y^{(i)}=2|x^{(i)},\theta)} \\ \cdots \\ \pmb{p(y^{(i)}=k|x^{(i)},\theta)} \\ \end{matrix} \right]=\frac{1}{\sum^k_{c=1}e^{\theta^T_cx^{(i)}}} \left[ \begin{matrix} \pmb{e^{\theta^T_1x^{(i)}}} \\ \pmb{e^{\theta^T_2x^{(i)}}} \\ \cdots \\ \pmb{e^{\theta^T_kx^{(i)}}} \\ \end{matrix} \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)
因为是多分类,所以需要多个分割超平面,因此有:
θ
=
[
θ
1
T
θ
2
T
⋯
θ
k
T
]
\pmb{\theta}= \left[ \begin{matrix} \pmb{\theta}^T_1 \\ \pmb{\theta}^T_2 \\ \cdots \\ \pmb{\theta}^T_k \\ \end{matrix} \right]
θ=
θ1Tθ2T⋯θkT
取代价函数:
J
(
θ
)
=
−
[
∑
i
=
1
m
∑
k
=
1
K
1
{
y
(
i
)
=
k
}
l
o
g
e
x
p
(
θ
(
k
)
T
x
(
i
)
)
∑
j
=
1
K
e
x
p
(
θ
(
j
)
T
x
(
i
)
)
]
J(\theta)=-\left[\sum\limits^m_{i=1}\sum\limits^K_{k=1}1\{y^{(i)}=k\}log\frac{exp(\theta^{(k)T}x^{(i)})}{\sum^K_{j=1}exp(\theta^{(j)T}x^{(i)})}\right]
J(θ)=−[i=1∑mk=1∑K1{y(i)=k}log∑j=1Kexp(θ(j)Tx(i))exp(θ(k)Tx(i))]
对应梯度:
∇
θ
(
k
)
J
(
θ
)
=
−
∑
i
=
1
m
[
x
(
i
)
(
1
{
y
(
i
)
=
k
}
−
P
(
y
(
i
)
=
k
∣
x
(
i
)
;
θ
)
)
]
\nabla_\theta(k)J(\theta)=-\sum\limits_{i=1}^m\left[x^{(i)}(1\{y^{(i)}=k\}-P(y^{(i)}=k|x^{(i)};\theta))\right]
∇θ(k)J(θ)=−i=1∑m[x(i)(1{y(i)=k}−P(y(i)=k∣x(i);θ))]
这种方式又称为Softmax
前面的代价函数可简写为:
l
(
y
,
y
^
)
=
−
∑
j
=
1
n
y
j
l
o
g
y
^
j
l\left(y,\hat{y}\right)=-\sum\limits^n_{j=1}y_jlog\hat{y}_j
l(y,y^)=−j=1∑nyjlogy^j
称为交叉熵损失(对比信息熵的定义:
H
(
X
)
=
−
Σ
i
=
1
K
p
(
x
i
)
l
o
g
(
p
(
x
i
)
)
H(X)=-\Sigma^K_{i=1}p(x_i)log(p(x_i))
H(X)=−Σi=1Kp(xi)log(p(xi)))
Softmax演示:
·
4. 神经元模型
4.1. 神经元模型
生物神经网络:
生物神经元:
生物神经元(Spiking模型):
生物神经元(Integrate-and-fire模型):
人工神经元模型: M-P模型: 1943年心理学家W.McCulloch和数学家W.Pitts合作提出
单神经元模型:
y
=
f
(
∑
j
=
1
n
w
j
x
j
−
θ
)
y=f\left(\sum\limits^n_{j=1}w_jx_j-\theta\right)
y=f(j=1∑nwjxj−θ)
f ( x ) = { 1 , x ≥ 0 0 , x < 0 f(x)=\left\{ \begin{aligned} 1, \quad x&\ge0 \\ 0, \quad x&<0 \end{aligned} \right. f(x)={1,x0,x≥0<0
4.2. 作用函数
4.2.1. 非对称型Sigmoid函数(Log Sigmoid)
简称S型作用函数,是可微的,图(a)、(b),用下式表示:
4.2.2. 对称型Sigmoid函数(Tangent Sigmoid)
是可微的,图©、(d),用下式表示:
4.2.3. 对称型阶跃函数
f ( x ) = { + 1 x ≥ 0 − 1 x ≤ 0 f(x)=\left\{ \begin{aligned} +1 \quad x&\ge0 \\ -1 \quad x&\le0 \end{aligned} \right. f(x)={+1x−1x≥0≤0即具有阶跃作用函数的神经元,称为阈值逻辑单元
4.3 Hebb规则
连接权值的调整量与输入与输出的乘积成正比: Δ w = α ⋅ x ⋅ y \varDelta w=\alpha \cdot x \cdot y Δw=α⋅x⋅y
5. 感知机模型
5.1. 感知机原理
感知机简介: 感知机(Perceptron)是1957年,由Rosenblatt提出,是神经网络和支持向量机的基础,可用于解决线性分类问题
公式中的直线方程为
a
x
+
b
y
+
c
=
0
ax+by+c=0
ax+by+c=0,假设任一点的坐标为
(
x
0
,
y
0
)
(x_0,y_0)
(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}{||w||}
d=∣∣w∣∣wTx其中
w
0
=
b
w_0=b
w0=b
5.2. 感知机模型
感知机从输入到输出的模型如下: y = f ( x ) = s i g n ( w T x ) y=f(x)=sign(w^Tx) y=f(x)=sign(wTx)其中 s i g n sign sign为符号函数: s i g n ( x ) = { − 1 x < 0 1 x ≥ 0 sign(x)=\left\{ \begin{aligned} -1 \quad x&<0 \\ 1 \quad x&\ge0 \end{aligned} \right. sign(x)={−1x1x<0≥0
对于样本
(
x
(
i
)
,
y
(
i
)
)
(x^{(i)},y^{(i)})
(x(i),y(i)),注意到,如果样本正确分类,则有:
s
i
g
n
(
x
)
=
{
y
(
i
)
(
w
T
x
(
i
)
)
∣
∣
w
∣
∣
>
0
正确分类样本
y
(
i
)
(
w
T
x
(
i
)
)
∣
∣
w
∣
∣
<
0
错误分类样本
sign(x)=\left\{ \begin{aligned} \frac{y^{(i)}(w^Tx^{(i)})}{||w||}>0 \quad &正确分类样本 \\ \frac{y^{(i)}(w^Tx^{(i)})}{||w||}<0 \quad &错误分类样本 \end{aligned} \right.
sign(x)=⎩
⎨
⎧∣∣w∣∣y(i)(wTx(i))>0∣∣w∣∣y(i)(wTx(i))<0正确分类样本错误分类样本
因此可定义损失函数如下: L ( w ) = − 1 ∣ ∣ w ∣ ∣ ∑ y ( i ) ( w T x ( i ) ) L(w)=-\frac{1}{||w||}\sum y^{(i)}(w^Tx^{(i)}) L(w)=−∣∣w∣∣1∑y(i)(wTx(i))我们需要找到超平面参数 w ∗ w^* w∗满足: L ( w ∗ ) = m i n w ∑ y ( i ) ( w T x ( i ) ) L(w^*)=\mathop{min}\limits_w\sum y^{(i)}(w^Tx^{(i)}) L(w∗)=wmin∑y(i)(wTx(i))
输入: 训练数据集
{
x
(
i
)
,
y
(
i
)
}
\{x^{(i)},y^{(i)}\}
{x(i),y(i)}(监督学习)
输出:
w
\pmb{w}
w
步骤:
- 赋初值 w 0 w_0 w0,数据序号 i = 1 i=1 i=1,迭代次数 k = 0 k=0 k=0
- 选择数据点 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i))
- 判断该数据点是否为当前模型的误分类点,即判断若 y ( i ) ( w T x ( i ) ≤ 0 ) y^{(i)}(w^Tx^{(i)}\le0) y(i)(wTx(i)≤0),则更新权值(与Hebb规则相同): w k + 1 = w k + η y ( i ) x ( i ) w_{k+1}=w_k+ \eta y^{(i)}x^{(i)} wk+1=wk+ηy(i)x(i)
- 转到2,直到训练集中没有误分类点
5.3. 训练过程
线性可分参数迭代过程:
线性不可分参数迭代过程:
5.4. 感知机与神经元模型类比
具有完全相同的形式:
5.2. 感知机模型
6. 总结
目标定位: 常用的定位方法有边界框定位和特征点定位;同时,定位问题与分类问题的区别无非在神经网络的输出环节多输出了几个数字用于传达更多的信息。
目标检测: 常用的方法有滑动窗口算法和YOLO算法。YOLO算法改善了滑动窗口边界框定位不准的问题,同时运算效率高,甚至可用于实时检测。