@[TOC]全连接神经网络(MLP)
1 深度学习概述
深度学习是机器学习领域中的一个新的研究方向,模仿生人类神经网络,学习样本数据的内在规律的一种方法,可以处理回归、分类等问题。深度学习主要框架:Pytorch、Tensorflow、Mindspore等。
2 单个神经元
已知一个样本(x,y)(x,y)(x,y) ,其中样本的维度 x∈Rnx\in \mathbb{R}^{n}x∈Rn。每个神经元由线性变换z=wTx+bz=w^{T}x+bz=wTx+b和非线性变换σ(z)\sigma (z)σ(z)组成,如图所示。

当一个样本x=(x(1)x(2)⋮x(n))x=\begin{pmatrix}
x^{(1)}\\
x^{(2)}\\
\vdots \\
x^{(n)}\\
\end{pmatrix}x=x(1)x(2)⋮x(n)输入一个神经元时,首先对该样本进行线性变换,即z=wTx+b=w1x(1)+w2x(2)+⋯+wnx(n)+bz=w^{T}x+b=w_{1}x^{(1)}+w_{2}x^{(2)}+\cdots +w_{n}x^{(n)}+bz=wTx+b=w1x(1)+w2x(2)+⋯+wnx(n)+b,其中w=(w(1)w(2)⋮w(n))w=\begin{pmatrix}
w^{(1)}\\
w^{(2)}\\
\vdots \\
w^{(n)}\\
\end{pmatrix}w=w(1)w(2)⋮w(n)为权重向量,bbb为偏置标量;然后进行非线性变换,即y^=σ(z)\hat{y}=\sigma (z)y^=σ(z),其中σ\sigmaσ为激活函数。激活函数主要包括sigmoid、tanh、Relu等,如图所示。
(1)Sigmoid(z)=11+e−zSigmoid(z)=\frac{1}{1+e^{-z}}Sigmoid(z)=1+e−z1

(2)Tanh(z)=ez−e−zez+e−zTanh(z)=\frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}Tanh(z)=ez+e−zez−e−z

(3)Relu(z)={max(0,z),z≥00,z<0Relu(z)=\left\{\begin{matrix}
max(0,z),z\geq 0\\
0,z< 0 \\
\end{matrix}\right.Relu(z)={max(0,z),z≥00,z<0

3 全连接神经网络
3.1 回归任务
全连接神经网络由输入层、隐藏层和输出层组成。N层神经网络=隐藏层总数+输出层,例如2层神经网络=1个隐藏层+1个输出层。用全连接神经网络实现回归问题,结构如图:

假设一个样本x1×nx_{1\times n}x1×n作为输入层,经过隐藏层和输出层,得到预测结果y^\hat{y}y^,用矩阵表示:
(1)隐藏层:z1×5=σ(x1×nWn×5(1)+b1×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=σ(z1×5W5×1(2)+b1×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个样本xb×nx_{b\times n}xb×n作为输入层,经过隐藏层和输出层,得到预测结果y^b×1\hat{y}_{b\times 1}y^b×1,用矩阵表示:
(1)隐藏层:zb×5=σ(xb×nWn×5(1)+bb×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=σ(zb×5W5×1(2)+bb×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和真实值yb×1y_{b\times 1}yb×1的误差可以用平均绝对误差(Mean Absolute Error,MAE)、均方误差(Mean Square Error,MSE)和均方根误差(Root Mean Square Error,RMSE)等。
(1)MAE=1b∑i=1b∣yj−yj^∣MAE=\frac{1}{b}\sum_{i=1}^{b}\left | y_{j}-\hat{y_{j}} \right |MAE=b1∑i=1b∣yj−yj^∣
(2)MSE=1b∑i=1b(yj−yj^)2MSE=\frac{1}{b}\sum_{i=1}^{b}(y_{j}-\hat{y_{j}})^{2}MSE=b1∑i=1b(yj−yj^)2
(3)RMSE=1b∑i=1b(yj−yj^)2RMSE=\sqrt{\frac{1}{b}\sum_{i=1}^{b}(y_{j}-\hat{y_{j}})^{2}}RMSE=b1∑i=1b(yj−yj^)2
3.2 分类任务
当用全连接神经网络实现多分类问题,需要知道每个样本为每个类别的概率是多少,这时可以在输出层后面接入softmax函数。softmax是先对每个输出pjp_{j}pj进行exe^{x}ex指数函数变换,然后进行归一化处理,最终输出每个类别的概率值,结构如图:
假设数据集分为3类,则输出层包括3个神经元。将一个样本x1×nx_{1\times n}x1×n作为输入层,经过隐藏层和输出层,得到预测分布为p1p_{1}p1,p2p_{2}p2和p3p_{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)隐藏层:z1×5=σ(x1×nWn×5(1)+b1×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)输出层:p1×3=σ(z1×5W5×3(2)+b1×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=softmax(p1×3)\hat{y}_{1\times 3}=softmax(p_{1 \times 3})y^1×3=softmax(p1×3)
假设batch_size个样本xb×nx_{b\times n}xb×n作为输入层,经过隐藏层和输出层,得到预测结果y^b×3\hat{y}_{b\times 3}y^b×3,用矩阵表示:
(1)隐藏层:zb×5=σ(xb×nWn×5(1)+bb×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)输出层:pb×3=σ(zb×5W5×3(2)+bb×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=softmax(pb×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和真实分布yb×3y_{b\times 3}yb×3的误差可以用交叉熵度量。
例如:batch_size为4,待分类标签有3个,其中预测分布y^4×3=(0.33410.58510.08080.54280.17700.28030.28210.16650.55150.19660.48350.3199)\hat{y}_{4\times 3}=\begin{pmatrix}
0.3341& 0.5851& 0.0808\\
0.5428& 0.1770& 0.2803\\
0.2821& 0.1665& 0.5515\\
0.1966& 0.4835& 0.3199
\end{pmatrix}y^4×3=0.33410.54280.28210.19660.58510.17700.16650.48350.08080.28030.55150.3199,真实分布y4×3=(010100001010)y_{4\times 3}=\begin{pmatrix}
0& 1& 0\\
1& 0& 0\\
0& 0& 1\\
0& 1& 0
\end{pmatrix}y4×3=010010010010。因此,batch_size的损失函数Loss是batch_size的平均Loss,即Loss=−[log0.5851+log0.5428+log0.5515+log0.4835]/4Loss=-[log0.5851+log0.5428+log0.5515+log0.4835]/4Loss=−[log0.5851+log0.5428+log0.5515+log0.4835]/4。
本文介绍了深度学习的基本概念,重点讲解了全连接神经网络(MLP)的结构和工作原理,包括单个神经元的线性与非线性变换,以及在回归和分类任务中的应用。激活函数如sigmoid、tanh和ReLU被提及,同时阐述了在多分类问题中softmax函数的作用。最后,讨论了评估模型性能的指标,如MAE、MSE和RMSE,并举例说明了损失函数的计算。
3万+

被折叠的 条评论
为什么被折叠?



