赞
踩
@[TOC]全连接神经网络(MLP)
深度学习是机器学习领域中的一个新的研究方向,模仿生人类神经网络,学习样本数据的内在规律的一种方法,可以处理回归、分类等问题。深度学习主要框架:Pytorch、Tensorflow、Mindspore等。
已知一个样本
(
x
,
y
)
(x,y)
(x,y) ,其中样本的维度
x
∈
R
n
x\in \mathbb{R}^{n}
x∈Rn。每个神经元由线性变换
z
=
w
T
x
+
b
z=w^{T}x+b
z=wTx+b和非线性变换
σ
(
z
)
\sigma (z)
σ(z)组成,如图所示。
当一个样本
x
=
(
x
(
1
)
x
(
2
)
⋮
x
(
n
)
)
x=
(1)
S
i
g
m
o
i
d
(
z
)
=
1
1
+
e
−
z
Sigmoid(z)=\frac{1}{1+e^{-z}}
Sigmoid(z)=1+e−z1
(2)
T
a
n
h
(
z
)
=
e
z
−
e
−
z
e
z
+
e
−
z
Tanh(z)=\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}
Tanh(z)=ez+e−zez−e−z
(3)
R
e
l
u
(
z
)
=
{
m
a
x
(
0
,
z
)
,
z
≥
0
0
,
z
<
0
Relu(z)=\left\{
全连接神经网络由输入层、隐藏层和输出层组成。N层神经网络=隐藏层总数+输出层,例如2层神经网络=1个隐藏层+1个输出层。用全连接神经网络实现回归问题,结构如图:
假设一个样本
x
1
×
n
x_{1\times n}
x1×n作为输入层,经过隐藏层和输出层,得到预测结果
y
^
\hat{y}
y^,用矩阵表示:
(1)隐藏层:
z
1
×
5
=
σ
(
x
1
×
n
W
n
×
5
(
1
)
+
b
1
×
5
(
1
)
)
z_{1\times 5}=\sigma (x_{1\times n}W^{(1)}_{n\times 5}+b^{(1)}_{1\times 5})
z1×5=σ(x1×nWn×5(1)+b1×5(1))
(2)输出层:
y
^
1
×
1
=
σ
(
z
1
×
5
W
5
×
1
(
2
)
+
b
1
×
1
(
2
)
)
\hat{y}_{1\times 1}=\sigma (z_{1\times 5}W^{(2)}_{5\times 1}+b^{(2)}_{1\times 1})
y^1×1=σ(z1×5W5×1(2)+b1×1(2))
假设batch_size个样本
x
b
×
n
x_{b\times n}
xb×n作为输入层,经过隐藏层和输出层,得到预测结果
y
^
b
×
1
\hat{y}_{b\times 1}
y^b×1,用矩阵表示:
(1)隐藏层:
z
b
×
5
=
σ
(
x
b
×
n
W
n
×
5
(
1
)
+
b
b
×
5
(
1
)
)
z_{b\times 5}=\sigma (x_{b\times n}W^{(1)}_{n\times 5}+b^{(1)}_{b\times 5})
zb×5=σ(xb×nWn×5(1)+bb×5(1))
(2)输出层:
y
^
b
×
1
=
σ
(
z
b
×
5
W
5
×
1
(
2
)
+
b
b
×
1
(
2
)
)
\hat{y}_{b\times 1}=\sigma (z_{b\times 5}W^{(2)}_{5\times 1}+b^{(2)}_{b\times 1})
y^b×1=σ(zb×5W5×1(2)+bb×1(2))
比较样本预测值
y
^
b
×
1
\hat{y}_{b\times 1}
y^b×1和真实值
y
b
×
1
y_{b\times 1}
yb×1的误差可以用平均绝对误差(Mean Absolute Error,MAE)、均方误差(Mean Square Error,MSE)和均方根误差(Root Mean Square Error,RMSE)等。
(1)
M
A
E
=
1
b
∑
i
=
1
b
∣
y
j
−
y
j
^
∣
MAE=\frac{1}{b}\sum_{i=1}^{b}\left | y_{j}-\hat{y_{j}} \right |
MAE=b1∑i=1b∣yj−yj^∣
(2)
M
S
E
=
1
b
∑
i
=
1
b
(
y
j
−
y
j
^
)
2
MSE=\frac{1}{b}\sum_{i=1}^{b}(y_{j}-\hat{y_{j}})^{2}
MSE=b1∑i=1b(yj−yj^)2
(3)
R
M
S
E
=
1
b
∑
i
=
1
b
(
y
j
−
y
j
^
)
2
RMSE=\sqrt{\frac{1}{b}\sum_{i=1}^{b}(y_{j}-\hat{y_{j}})^{2}}
RMSE=b1∑i=1b(yj−yj^)2
当用全连接神经网络实现多分类问题,需要知道每个样本为每个类别的概率是多少,这时可以在输出层后面接入softmax函数。softmax是先对每个输出
p
j
p_{j}
pj进行
e
x
e^{x}
ex指数函数变换,然后进行归一化处理,最终输出每个类别的概率值,结构如图:
假设数据集分为3类,则输出层包括3个神经元。将一个样本
x
1
×
n
x_{1\times n}
x1×n作为输入层,经过隐藏层和输出层,得到预测分布为
p
1
p_{1}
p1,
p
2
p_{2}
p2和
p
3
p_{3}
p3,最后经过softmax层进行归一化,将该样本的预测分布变为
y
^
1
\hat{y}_{1}
y^1,
y
^
2
\hat{y}_{2}
y^2和
y
^
3
\hat{y}_{3}
y^3 。用矩阵表示:
(1)隐藏层:
z
1
×
5
=
σ
(
x
1
×
n
W
n
×
5
(
1
)
+
b
1
×
5
(
1
)
)
z_{1\times 5}=\sigma (x_{1\times n}W^{(1)}_{n\times 5}+b^{(1)}_{1\times 5})
z1×5=σ(x1×nWn×5(1)+b1×5(1))
(2)输出层:
p
1
×
3
=
σ
(
z
1
×
5
W
5
×
3
(
2
)
+
b
1
×
3
(
2
)
)
p_{1\times 3}=\sigma (z_{1\times 5}W^{(2)}_{5\times 3}+b^{(2)}_{1\times 3})
p1×3=σ(z1×5W5×3(2)+b1×3(2))
(3)softmax层:
y
^
1
×
3
=
s
o
f
t
m
a
x
(
p
1
×
3
)
\hat{y}_{1\times 3}=softmax(p_{1 \times 3})
y^1×3=softmax(p1×3)
假设batch_size个样本
x
b
×
n
x_{b\times n}
xb×n作为输入层,经过隐藏层和输出层,得到预测结果
y
^
b
×
3
\hat{y}_{b\times 3}
y^b×3,用矩阵表示:
(1)隐藏层:
z
b
×
5
=
σ
(
x
b
×
n
W
n
×
5
(
1
)
+
b
b
×
5
(
1
)
)
z_{b\times 5}=\sigma (x_{b\times n}W^{(1)}_{n\times 5}+b^{(1)}_{b\times 5})
zb×5=σ(xb×nWn×5(1)+bb×5(1))
(2)输出层:
p
b
×
3
=
σ
(
z
b
×
5
W
5
×
3
(
2
)
+
b
b
×
3
(
2
)
)
p_{b\times 3}=\sigma (z_{b\times 5}W^{(2)}_{5\times 3}+b^{(2)}_{b\times 3})
pb×3=σ(zb×5W5×3(2)+bb×3(2))
(3)softmax层:
y
^
b
×
3
=
s
o
f
t
m
a
x
(
p
b
×
3
)
\hat{y}_{b\times 3}=softmax(p_{b \times 3})
y^b×3=softmax(pb×3)
比较样本的预测分布
y
^
b
×
3
\hat{y}_{b\times 3}
y^b×3和真实分布
y
b
×
3
y_{b\times 3}
yb×3的误差可以用交叉熵度量。
例如:batch_size为4,待分类标签有3个,其中预测分布
y
^
4
×
3
=
(
0.3341
0.5851
0.0808
0.5428
0.1770
0.2803
0.2821
0.1665
0.5515
0.1966
0.4835
0.3199
)
\hat{y}_{4\times 3}=
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。