BP神经网络

简介: BP神经网络

讲解视频:学习视频


BP神经网络


1.激活函数


激活函数(Activation Function)是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。激活函数对于人工神经网络模型去学习、理解复杂的非线性函数,具有十分重要的作用。


如果不使用激活函数,每一层输出都是上一层输入的线性运算,无论神经网络有多少层,最终的输出只是输入的线性组合,相当于感知机。如果使用了激活函数,将非线性因素引入到网络中,使得神经网络可以任意逼近任何非线性函数,能够应用到更多的非线性模型。


常用的激活函数


sigmoid 函数

Sigmoid函数是一个在生物学中常见的S型函数,也称为S型生长曲线。在信息科学中,由于其单增以及反函数单增等性质,Sigmoid函数常被用作神经网络的阈值函数,将变量映射到0,1之间,公式如下:

image.png

7f8b3506a8e14c9697aefc031c2fd8d2.png

ReLU函数


Relu激活函数(The Rectified Linear Unit),用于隐藏层的神经元输出。公式如下:


f(x)=max(0,x)

204192c237964747a8bd85425c55dbd3.png


Tanh 函数


Tanh 是双曲函数中的一个,Tanh() 为双曲正切。在数学中,双曲正切“Tanh”是由基本双曲函数双曲正弦和双曲余弦推导而来。公式如下:

image.png

softmax 函数


softmax 函数用于输出层。假设输出层共有n个神经元,计算第k个神经元的输出ky

softmax 函数的分子是输入信号ak的指数函数,分母是所有输入信号的指数函数的和。softmax 函数公式如下:

image.png


2.神经网络结构


第0层是输入层(2个神经元),第1层是隐含层(3个神经元),第2层是隐含层(2个神经元),第3层是输出层。

6d4265363d5a4c2c808c972347685e2c.png


符号约定


image.png

image.png

image.png


3.损失函数


在有监督的机器学习算法中,我们希望在学习过程中最小化每个训练样例的误差。通过梯度下降等优化策略完成的,而这个误差来自损失函数。

损失函数用于单个训练样本,而成本函数是多个训练样本的平均损失。优化策略旨在最小化成本函数。下面例举几个常用的损失函数。


回归问题


image.png


分类问题


image.png


4.反向传播


反向传播的基本思想:通过计算输出层与期望值之间的误差来调整网络参数,使得误差变小(最小化损失函数或成本函数)。反向传播基于四个基础等式,非常简洁优美,但想要理解透彻还是挺烧脑的。


求解梯度矩阵


image.png

矩阵相乘


image.png

矩阵对应元素相乘


使用符号⊙ \odot表示:

image.png


梯度下降法


从几何意义,梯度矩阵代表了函数增加最快的方向,沿着梯度相反的方向可以更快找到最小值。

658832a6258d42bcb95724095a11a6fd.png


反向传播的过程就是利用梯度下降法原理,逐步找到成本函数的最小值,得到最终的模型参数。


反向传播公式推导(四个基础等式)


image.png


等式一 输出层误差


image.png

写成矩阵形式是:

image.png


表示成公式:

image.png


推导

image.png


等式二 隐藏层误差


image.png

写成矩阵形式:

image.png

矩阵形状:(j,k) * (k,1) ⊙ (j,1) = (j,1)


权重矩阵的形状从(k,j)转置变成(j,k)。


表示成公式:

image.png


推导


image.png


等式三 参数变化率


image.png

写成矩阵形式:

image.png


矩阵形状:(j,1)

image.png


矩阵形状:(j,1) * (1,k) = (j,k)

image.png

表示成公式:

image.png


推导


image.png


等式四 参数更新


根据梯度下降法原理,朝着梯度的反方向更新参数

image.png


写成矩阵形式:

image.png


这里的α 指的是学习率。学习率决定了反向传播过程中梯度下降的步长。


反向传播图解


计算输出层误差

爱吃.png

计算隐藏层误差

风格.png

image.png

366ca6547c4343709d6b592ecd527042.png

的.png


改变.png


计算参数变化率

充分的.png


反向传播公式总结


单样本输入公式表

image.png


多样本输入公式表


成本函数

多样本输入使用的成本函数与单样本不同。假设单样本的成本函数是交叉熵损失函数。

L(a,y)=[ylog(a)+(1y)log(1a)]

那么,对于m个样本输入,成本函数是每个样本的成本总和的平均值。

image.png


误差


单样本输入的每一层的误差是一个列向量

image.png

而多样本输入的每一层的误差不再是一个列向量,变成一个m列的矩阵,每一列对应一个样本的向量。那么多样本的误差定义为:

image.png


参数变换率


image.png

image.png


目录
相关文章
|
3月前
|
机器学习/深度学习 算法
【Matlab智能算法】PSO优化(双隐层)BP神经网络算法
【Matlab智能算法】PSO优化(双隐层)BP神经网络算法
|
4月前
|
机器学习/深度学习 算法 Python
BP神经网络算法讲解及实战应用(超详细 附源码)
BP神经网络算法讲解及实战应用(超详细 附源码)
333 0
|
2月前
|
机器学习/深度学习 算法
基于BP神经网络的手写体数字识别matlab仿真
基于BP神经网络的手写体数字识别matlab仿真
|
3月前
|
机器学习/深度学习 存储 算法
【Matlab智能算法】BP神经网络-遗传算法(BP-GA)函数极值寻优——非线性函数求极值
【Matlab智能算法】BP神经网络-遗传算法(BP-GA)函数极值寻优——非线性函数求极值
|
4月前
|
机器学习/深度学习 算法 TensorFlow
【Python机器学习】神经网络中误差反向传播(BP)算法详解及代码示例(图文解释 附源码)
【Python机器学习】神经网络中误差反向传播(BP)算法详解及代码示例(图文解释 附源码)
48 0
|
4月前
|
机器学习/深度学习 算法
【MATLAB 】BP神经网络回归预测
【MATLAB 】BP神经网络回归预测
39 1
|
4月前
|
机器学习/深度学习
BP神经网络应用案例(二)
BP神经网络应用案例
|
4月前
|
机器学习/深度学习 人工智能 知识图谱
BP神经网络应用案例(一)
BP神经网络应用案例
|
1月前
|
机器学习/深度学习 数据采集 人工智能
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
m基于深度学习网络的手势识别系统matlab仿真,包含GUI界面
44 0
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真
基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真

热门文章

最新文章