李沐pytorch学习-多层感知机及其实现

一、多层感知机的定义

多层感知机就是全连接层神经网络,如图1所示,其中隐含层可以有多层

李沐pytorch学习-多层感知机及其实现_第1张图片

 图1. 多层感知机结构(隐含层与输出层之间为全连接,图中少了几根连接线)

二、运行原理

2.1 数据输入

Input层输入向量\mathbf{X}=\begin{bmatrix} x_0\\ x_1\\ ...\\ x_{n-1} \end{bmatrix},为每个输入层节点的数值,即\left\{\begin{matrix} I_0=x_0\\ I_1=x_2\\ ...\\ I_{n-1}=x_{n-1} \end{matrix}\right.,如图2所示。

李沐pytorch学习-多层感知机及其实现_第2张图片

 图2. 多层感知机数据的输入(图中以输入层3个神经元,一个4神经元的隐含层,两个输出神经元为例,可包含多个隐含层,每层神经元个数不固定)

2.2 从输入层前向传播到隐含层

先看隐含层单个神经元H_0的数据传输情况,如图3所示,每根连线都有一个权重(weight,w_{0,0},w_{1,0},w_{2,0}),隐含层每个神经元都有一个偏置(bias,b_0),sigmoid为激活函数,此时有

H_0=sigmoid\left ( w_{0,0}\cdot I_0+w_{1,0}\cdot I_1+w_{2,0}\cdot I_2+b_0=\left [ w_{0,0},w_{1,0},w_{2,0} \right ]\cdot \begin{bmatrix} I_0\\ I_1\\ I_2 \end{bmatrix}+b_0 \right )

李沐pytorch学习-多层感知机及其实现_第3张图片

 图3. 单个神经元数据传输情况

同理有

H_1=sigmoid\left ( w_{0,1}\cdot I_0+w_{1,1}\cdot I_1+w_{2,1}\cdot I_2+b_1=\left [ w_{0,1},w_{1,1},w_{2,1} \right ]\cdot \begin{bmatrix} I_0\\ I_1\\ I_2 \end{bmatrix}+b_1 \right )\\H_2=sigmoid\left ( w_{0,2}\cdot I_0+w_{1,2}\cdot I_1+w_{2,2}\cdot I_2+b_2=\left [ w_{0,2},w_{1,2},w_{2,2} \right ]\cdot \begin{bmatrix} I_0\\ I_1\\ I_2 \end{bmatrix}+b_2 \right )

将隐含层数值拼成列向量有:

\begin{bmatrix} H_0\\ H_1\\ H_2\\H_3 \end{bmatrix}=sigmoid\left ( \begin{bmatrix} w_{0,0},w_{1,0},w_{2,0}\\ w_{0,1},w_{1,1},w_{2,1}\\ w_{0,2},w_{1,2},w_{2,2}\\ w_{0,3},w_{1,3},w_{2,3} \end{bmatrix}\cdot \begin{bmatrix} I_0\\ I_1\\ I_2 \end{bmatrix}+\begin{bmatrix} b_0\\ b_1\\ b_2\\ b_3 \end{bmatrix} \right )

隐含层传播到下一隐含层,隐含层传播到输出层同理。

你可能感兴趣的:(深度学习,pytorch,学习,人工智能)