多层神经网络

《python machine learning 》chapter 12 Implementing a Multilayer Artificial Neural Network from Scratch

【主要内容】

(1)总体理解多层神经网络

(2)从头开始实施神经网络训练的基本反向传播算法

(3)训练基本的神经网络用语图像分类

【单层神经网络概要】

ADAptive LInear NEuron (Adaline): https://blog.csdn.net/Amy_mm/article/details/79668201

多层神经网络

【多层神经网络体系结构】

多层神经网络

完全连接的网络也叫做多层感知机 ——Multilayer Perceptron (MLP)

上图为一个三层MLP,包括输入层,隐藏层,输出层。当隐藏层多于一层时,也叫做深层神经网络deep artificial neural

network.——DNN.

如上图所示,我们将网络中第L层的第i单元的**函数写作多层神经网络,为了是代码以及数学公式看起来更加直观,用上标in,h,out分别代表输入层,隐藏层以及输出层。多层神经网络多层神经网络 即代表偏置值,设为1.

输入层的**函数为:

多层神经网络

字母说明:

多层神经网络层的每个单元都与多层神经网络的每个单元通过权值系数相连接 , 这样我们将第多层神经网络层的第K个单元与第多层神经网络层的第j个单元之间的权值系数写为多层神经网络. 将输入层与隐藏层之间的权值矩阵写为多层神经网络,隐藏层与输出层之间的权值矩阵为多层神经网络

看一下3-4-3的多层感知机展示图

多层神经网络


【通过向前传播**神经网络】

本节主要介绍用向前传播算法(forward propagation)计算MLP(多层感知机模型)的输出的过程。

【MLP学习过程】

1、从输入层开始,通过网络向前传播训练集数据来产生输出。

2、基于网络的输出,操作cost函数计算错误。

3、向后传播这个错误,计算错误对于网络中每个权值系数的导数,更新模型。

重复上述三个步骤多次得到MLP的权值系数,用向前传播方法计算网络输出,定义临界函数,用one-hot表示预测的类标签。

【详细过程】

计算隐藏层第一个单元的**函数多层神经网络

多层神经网络

多层神经网络

多层神经网络是网络输入,多层神经网络是**函数,由于要解决像图像处理之类的比较复杂的问题,这里采用非线性函数作为我们MLP模型的**函数多层神经网络,比如sigmoid函数,将输入数据映射为一个逻辑分布,取值为0-1之间。

多层神经网络

多层神经网络


为了便于书写和阅读,将上述公式写成向量的形式,码代码的时候也可以直接用numpy计算代替循环。

多层神经网络

多层神经网络指输入样本的1*m维特征向量加上偏置项。

多层神经网络 m*d维权值矩阵,d是隐藏层单元数。二者相乘的1*d维矩阵多层神经网络,并由此得到**函数。

泛化到n个样本集上,可得到

多层神经网络

多层神经网络即输入层的n*m维矩阵,多层神经网络 m*d维权值矩阵,矩阵相乘得到n*d维矩阵多层神经网络,运用多层神经网络得到下一层的**函数

多层神经网络

同理可得输出层的**函数

多层神经网络

多层神经网络