对反向传播算法的理解
来源:互联网 发布:主提女装淘宝店有吗 编辑:程序博客网 时间:2024/06/06 08:39
对反向传播算法的理解
求梯度用反向传播算法,核心是“链式求导”法则,又如何具体实现呢?这里,主要参考Michael Nielsen的Neural Networks and Deep Learning里的第二章。
介绍反向传播算法之前,我们需要知道以下几点:
- 确定Cost function
- 根据
符号定义
对于一个训练样本,我们记做
对于神经网络里每一层的权值,我们记做
对于神经网络里每一层的偏差,我们记做
对于神经网络里每一层的输入,我们记做
对于神经网络里每一层的输出,我们记做
定义激活函数为
那么
神经网络的前向传播过程即:
…….
这样依次进行下去,即
前面提到我们需要求得一个训练样本的损失函数
例如:损失函数
下面为了方便,我们把
反向传播算法
定义神经网络里每一层的误差:
下面介绍的四个公式会给我们计算
公式1:
我们使用公式1,求得神经网络里最后一层的误差,最后一层通常不使用激活函数,因此在最后一层里
公式2:
这个公式是让我们通过递推的方式求得每一层的
公式3:
求得偏差
公式4:
以上是对一个训练样本的损失函数进行梯度计算,最后只需要我们把所有训练样本的梯度累加,然后除以样本数目,作为最终的梯度。(如有正则化,需要再加上正则化部分的梯度,而这个是最好求的,略讲)。
如果我们直接从所有训练样本出发,又该如何呢?注意!!下面在使用上述4个公式的时候,都是在使用整个训练样本,之前的
公式3表明了一个训练样本的
最后一层的
运用公式4,即可求得所有训练样本的
通过所有上面讲述的,我们可以意识到,关键点和难点是如何求出最后一层的
之后我会贴一份具体的实例代码。
- 对反向传播算法的理解
- 理解反向传播算法
- 反向传播算法的直观理解
- 关于反向传播算法的理解
- 反向传播算法的理解(Nielsen版)
- 反向传播算法的直观理解
- 对正向传播、反向传播和精度检查的理解
- 对反向传播算法(Back-Propagation)的推导与一点理解
- 对反向传播算法(Back-Propagation)的推导与一点理解
- RNN与反向传播算法(BPTT)的理解
- 反向传播算法的推导
- 如何理解反向传播算法(backpropagation)
- 理解反向传播(BackPropagation)算法(之一)
- 反向传播:整体描述 反向传播算法的起源
- CNN的反向传播推导与理解
- 反向传播与它的直观理解
- CNN的反向传播推导与理解
- cs231n关于反向传播的理解
- Spring的MVC框架认识
- linux grep命令
- 怎么用数学绘图软件制作正方体展开动画?
- [HDU](2544)最短路 ---单源最短路径(图)
- 漫谈程序员系列:怎么告别“混日子”
- 对反向传播算法的理解
- sqlite_exec回调函数的使用
- 一 ServletContext 和 spring ClassPathXmlApplicationContext
- Python for...else
- 最长不下降子序列
- Qt之QWidget/QDialog/QMainWindow
- 概念 Qt
- 工具类—Java下载远程文件到本地
- LeetCode-110-Balanced Binary Tree(平衡二叉树)