深度学习基础知识(2)反向传播算法
来源:互联网 发布:mac如何免费翻墙 编辑:程序博客网 时间:2024/06/02 02:00
版权声明:本文系转载,已获得作者授权
原文网址:http://blog.csdn.net/l691899397/article/details/52223998
作者:佳寧
1、损失函数
损失函数在统计学中是一种衡量损失和误差程度的函数,它一般包括损失项(loss term)和正则项(regularization term)。
损失项
损失项比较常见的有平方损失,常用在回归问题;
以及对数损失函数,常用在分类问题。
正则项
加入正则项目的是减小权重的幅度,防止过度拟合。常用的有L1-regularization和L2-regularization。
关于损失函数发现一篇文章讲的比较详细,看一下能比较详细的了解损失函数:点击打开链接
2、BackPropagation算法
BackPropagation算法是多层神经网络的训练中举足轻重的算法,简单的理解,它就是复合函数的链式法则。由于后面我的网络中会用到对数损失函数,所以在这里我们使用平方损失函数。对于单个样例,其平方损失函数为:
对于给定一个包含m个样例的数据集,我们可以定义整体代价函数为:
和直线的拟合类似,深度学习也有一个目标函数,通过这个目标函数我们可以知道参数为何值时对我们来说才是一组“好”的参数,这个函数就是前边提到的损失函数。训练的过程就是通过每一次迭代对网络中参数进行更新,来使损失函数的值达到最小(下图中α为学习率)。
虽然一般损失函数都是非凸的,含有局部最小值,但实际使用中一般都不会下降到局部最小值。
3、利用BackPropagation算法计算偏导数
由上一节可知,我们只需求出每一层的
和
即可完成该层的权值和偏置的更新。
BP算法的整体思路如下:对于每个给定的训练样本,首先进行前向计算,计算出网络中每一层的激活值和网络的输出。对于最后一层(输出层),我们可以直接计算出网络的输出值与已经给出的标签值(label)直接的差距,我们将这个值定义为残差δ。对于输出层之前的隐藏层L,我们将根据L+1层各节点的加权平均值来计算第L层的残差。
插入一些我个人对BP算法的一点比较容易理解的解释(如有错误请指出):在反向传播过程中,若第x层的a节点通过权值W对x+1层的b节点有贡献,则在反向传播过程中,梯度通过权值W从b节点传播回a节点。不管下面的公式推导,还是后面的卷积神经网络,在反向传播的过程中,都是遵循这样的一个规律
反向传播的具体步骤如下:
(1)根据输入,计算出每一层的激活值。
(2)对于输出层,我们使用如下公式计算每个单元的残差:
(3)对于输出层之前的每一层,按照如下公式计算每一层的残差:
(4)由残差计算每一层的偏导数:
(5)最后,使用偏导数更新权值和偏置。
- 深度学习基础知识(2)反向传播算法
- 深度学习笔记2:反向传播算法
- 深度学习基础2(反向传播算法)
- 深度学习笔记(二)---反向传播算法
- 深度学习笔记三:反向传播(backpropagation)算法
- 深度学习反向传播
- 反向传播学习算法
- 深度学习笔记---反向传播
- July深度学习笔记之神经网络与反向传播算法
- 神经网络与深度学习 笔记3 反向传播算法
- <深度学习系列>反向传播算法的公式推导
- 干货 | 深度学习之CNN反向传播算法详解
- 机器学习(九)反向传播算法
- 神经网络与深度学习笔记——第2章 反向传播算法
- 神经网络和深度学习(二)——BP(Backpropagation Algorithm, 反向传播算法)
- 神经网络与深度学习笔记(三)python 实现反向传播算法
- 神经网络和深度学习(二)——BP(Backpropagation Algorithm, 反向传播算法)
- 深度学习——循环神经网络RNN(一)_反向传播算法
- 云平台与云管平台,你分得清吗?
- Content(内容提供者)
- 数据库中Having放在分组函数group by后过滤查询组
- 配置ssh无密码登录docker container以及遇到问题的解决方案
- 【neutron源码分析】create_network/create_subnet/create_port源码分析
- 深度学习基础知识(2)反向传播算法
- 关于 php 中 pack 、unpack、 ord 的理解和用法
- zookeeper搭建Windows环境
- highcharts做图形报表去掉highcharts.com的版权信息
- 麦克纳姆轮全向移动原理
- Windows 2008系统下搭建SVN版本控制系统
- Tomcat ipv6改成ipv4
- 创建具有复选框的树型控件
- STL算法之返回最大值最小值