当前位置:   article > 正文

全连接神经网络(MLP)

全连接神经网络

@[TOC]全连接神经网络(MLP)

1 深度学习概述

深度学习是机器学习领域中的一个新的研究方向,模仿生人类神经网络,学习样本数据的内在规律的一种方法,可以处理回归、分类等问题。深度学习主要框架:Pytorch、Tensorflow、Mindspore等。

2 单个神经元

已知一个样本 ( x , y ) (x,y) (x,y) ,其中样本的维度 x ∈ R n x\in \mathbb{R}^{n} xRn。每个神经元由线性变换 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=

(x(1)x(2)x(n))
x= x(1)x(2)x(n) 输入一个神经元时,首先对该样本进行线性变换,即 z = w T x + b = w 1 x ( 1 ) + w 2 x ( 2 ) + ⋯ + w n x ( n ) + b z=w^{T}x+b=w_{1}x^{(1)}+w_{2}x^{(2)}+\cdots +w_{n}x^{(n)}+b z=wTx+b=w1x(1)+w2x(2)++wnx(n)+b,其中 w = ( w ( 1 ) w ( 2 ) ⋮ w ( n ) ) w=
(w(1)w(2)w(n))
w= w(1)w(2)w(n)
为权重向量, b b b为偏置标量;然后进行非线性变换,即 y ^ = σ ( z ) \hat{y}=\sigma (z) y^=σ(z),其中 σ \sigma σ为激活函数。激活函数主要包括sigmoid、tanh、Relu等,如图所示。
(1) S i g m o i d ( z ) = 1 1 + e − z Sigmoid(z)=\frac{1}{1+e^{-z}} Sigmoid(z)=1+ez1
sigmoid
(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+ezezez
tanh
(3) R e l u ( z ) = { m a x ( 0 , z ) , z ≥ 0 0 , z < 0 Relu(z)=\left\{
max(0,z),z00,z<0
\right.
Relu(z)={max(0,z),z00,z<0

Relu

3 全连接神经网络

3.1 回归任务

全连接神经网络由输入层、隐藏层和输出层组成。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=b1i=1byjyj^
(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=b1i=1b(yjyj^)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=b1i=1b(yjyj^)2

3.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}=

(0.33410.58510.08080.54280.17700.28030.28210.16650.55150.19660.48350.3199)
y^4×3= 0.33410.54280.28210.19660.58510.17700.16650.48350.08080.28030.55150.3199 ,真实分布 y 4 × 3 = ( 0 1 0 1 0 0 0 0 1 0 1 0 ) y_{4\times 3}=
(010100001010)
y4×3= 010010010010
。因此,batch_size的损失函数Loss是batch_size的平均Loss,即 L o s s = − [ l o g 0.5851 + l o g 0.5428 + l o g 0.5515 + l o g 0.4835 ] / 4 Loss=-[log0.5851+log0.5428+log0.5515+log0.4835]/4 Loss=[log0.5851+log0.5428+log0.5515+log0.4835]/4

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/308258
推荐阅读
相关标签
  

闽ICP备14008679号