机器学习第五章:神经网络
1.M-P神经元
一个用来模拟生物行为的数学模型:接受n个输入(通常是来自其他神经元),并给各个输入赋予权重计算加权和,然后和自身特有的阈值
θ
\theta
θ进行比较(做减法),最后经过激活函数模拟“激活”(结果>0)和“抑制”(结果<0),处理得到输出(通常是给下一个神经元)。
y
=
f
(
∑
i
=
1
n
w
i
x
i
?
θ
)
=
f
(
w
T
x
+
b
)
y=f(\sum_{i=1}^{n}w_{i}x_{i}-\theta)=f(w^Tx+b)
y=f(i=1∑n?wi?xi??θ)=f(wTx+b)
单个M-P神经元:感知机(阶跃函数作激活函数)、对数几率回归(sigmoid函数作激活函数) 其中阶跃函数,它将输入值映射为输出值‘0’(对应抑制)或‘1’(对应兴奋); 阶跃函数不连续、不光滑性质不太好,所以实际常用sigmoid函数;
sigmoid函数,它把可能在较大范围内变化的输入值挤压到(0,1);
多个M-P神经元:神经网络
感知机(分类模型)
其激活函数为阶跃函数;
y
=
s
g
n
(
w
T
x
?
θ
)
=
{
1
,
w
T
x
?
θ
≥
0
0
,
w
T
x
?
θ
<
0
y=sgn(w^Tx-\theta)=\begin{cases}1,w^Tx-\theta\geq 0\\ 0,w^Tx-\theta<0\end{cases}
y=sgn(wTx?θ)={1,wTx?θ≥00,wTx?θ<0? 其中
x
∈
R
n
x\in R^{n}
x∈Rn为样本的特征向量,是感知机模型的输入,
w
∈
R
n
w \in R^{n}
w∈Rn是权重,
θ
\theta
θ 为阈值
从几何角度出发,给定线性可分(非线性的感知机不能分)的数据集T,感知机学习的目标是求得能对数据集T中正负样本完全正确划分的超平面,其中
w
T
x
?
θ
w^{T}x-\theta
wTx?θ即为超平面方程;
n维空间超平面(
w
T
x
+
b
=
0
w^{T}x+b=0
wTx+b=0)
- 超平面方程不唯一;
- 法向量
w
w
w垂直于超平面;
- 法向量
w
w
w和位移项
b
b
b确定唯一超平面;
- 法向量
w
w
w指向的那一半空间为正空间,另一半为负空间;
感知机学习策略:
随机初始化
w
,
b
w,b
w,b,将全体训练样本带入模型找出误分类样本; 假设此时误分类样本集合为
M
?
T
M\subseteq T
M?T,对于任意一个误分类样本
(
x
,
y
)
∈
M
(x,y)\in M
(x,y)∈M来说,当
w
T
x
?
θ
≥
0
w^Tx-\theta\geq 0
wTx?θ≥0时,模型输出值为
y
^
\widehat{y}
y
?=1,样本真实标记为
y
=
0
y=0
y=0; 反之,当
w
T
x
?
θ
<
0
w^Tx-\theta< 0
wTx?θ<0时,模型输出值为
y
^
\widehat{y}
y
?=0,样本真实标记为
y
=
1
y=1
y=1; 综合两种情况:
(
y
^
?
y
)
(
w
T
x
?
θ
)
≥
0
(\widehat{y}-y)(w^{T}x-\theta)\geq0
(y
??y)(wTx?θ)≥0恒成立;
所以给定数据集
T
T
T,其损失函数可以定义为:
L
(
w
,
θ
)
=
∑
x
∈
M
(
y
^
?
y
)
(
w
T
x
?
θ
)
L(w,\theta)=\sum_{x\in M}(\widehat{y}-y)(w^{T}x-\theta)
L(w,θ)=x∈M∑?(y
??y)(wTx?θ) 显然,该损失函数非负。如果没有误分类点,损失函数是0;当误分类点越少,误分类点离超平面越近,损失函数也就越小。
具体的,给定数据集KaTeX parse error: Can't use function '$' in math mode at position 52: …(x_{N},y_{N})\}$? $x_{i}\in R^{…,求参数
w
,
θ
w,\theta
w,θ,使其为极小化损失函数的解:
m
i
n
w
,
θ
L
(
w
,
θ
)
=
m
i
n
w
,
θ
∑
x
i
∈
M
(
y
^
?
y
)
(
w
T
x
?
θ
)
min_{w,\theta}L(w,\theta)=min_{w,\theta}\sum_{x_{i}\in M}(\widehat{y}-y)(w^{T}x-\theta)
minw,θ?L(w,θ)=minw,θ?xi?∈M∑?(y
??y)(wTx?θ)
M
?
T
M\subseteq T
M?T是误分类样本集合,若将阈值看作一个固定输入为“-1”d的”哑结点“,即:
?
θ
=
?
1
?
w
n
+
1
=
x
n
+
1
?
w
n
+
1
-\theta=-1·w_{n+1}=x_{n+1}·w_{n+1}
?θ=?1?wn+1?=xn+1??wn+1? 可将要求解的极小化问题进一步化简为:
m
i
n
w
L
(
w
)
=
m
i
n
w
∑
x
i
∈
M
(
)
y
^
i
?
y
i
)
w
T
x
i
min_{w}L(w)=min_{w}\sum_{x_{i}\in M}()\widehat{y}_{i}-y_{i})w^{T}x_{i}
minw?L(w)=minw?xi?∈M∑?()y
?i??yi?)wTxi?
神经网络
像感知机这种单个神经元的分类能力有限; 但是多个神经元够成构成的神经网络能够分类线性不可分的数据集,且有理论证明(通用近似定理):只需要一个包含足够多神经元的隐层,多层前馈网络就能以任意精度逼近任意复杂度的连续函数; 所以,神经网络既能做回归,也能作分类;
多层前馈网络: 每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。(隐层阈值
γ
h
\gamma_{h}
γh?,输出层阈值
θ
j
\theta_{j}
θj?)
将神经网络(记NN)看作一个特征加工函数:
x
∈
R
d
→
N
N
(
x
)
→
y
=
x
?
∈
R
l
x\in R^{d}\rightarrow NN(x)\rightarrow y=x^{*}\in R^{l}
x∈Rd→NN(x)→y=x?∈Rl
单输出回归:后面接一个
R
l
→
R
R^{l}\rightarrow R
Rl→R的神经元,例如,没有激活函数的神经元
y
=
w
T
x
+
b
y=w^{T}x+b
y=wTx+b;
分类:后面接一个
R
l
→
[
0
,
1
]
R^{l}\rightarrow [0,1]
Rl→[0,1]的神经元,例如:激活函数为sigmoid函数的神经元
y
=
1
1
+
e
?
(
w
T
x
?
+
b
)
y=\dfrac{1}{1+e^{-(w^{T}x^{*}+b)}}
y=1+e?(wTx?+b)1?;
在模型训练过程中,神经网络(NN)自动学习提取有用的特征。
假设多层前馈网络中的激活函数全为sigmoid函数,且当前要完成的任务为一个多输出回归任务,因此损失函数可以采用均方误差(分类任务用交叉熵); 对于某个训练样本
(
x
k
,
y
k
)
(x_{k},y_{k})
(xk?,yk?),其中
y
k
=
(
y
1
k
,
y
2
k
,
.
.
.
,
y
l
k
)
y_{k}=(y_{1}^{k},y_{2}^{k},...,y_{l}^{k})
yk?=(y1k?,y2k?,...,ylk?),假定其多层前馈网络的输出为
y
^
k
=
(
y
^
1
k
,
y
^
2
k
,
.
.
.
,
y
^
l
k
)
\widehat{y}_{k}=(\widehat{y}_{1}^{k},\widehat{y}_{2}^{k},...,\widehat{y}_{l}^{k})
y
?k?=(y
?1k?,y
?2k?,...,y
?lk?),则单个样本的均方误差为:
E
k
=
1
2
∑
j
=
1
l
(
y
^
j
k
?
y
j
k
)
2
E_{k}=\dfrac{1}{2}\sum_{j=1}^{l}(\widehat{y}_{j}^{k}-y_{j}^{k})^{2}
Ek?=21?j=1∑l?(y
?jk??yjk?)2
|