神经网络(前向传播和反向传导)
2015-07-08 14:57
204 查看
所谓神经网络就是将许多个单一“神经元”(图1)联结在一起,这样,一个“神经元”的输出就可以是另一个“神经元”的输入,如图2所示。
图1 神经元
图2 神经网络结构图
本例神经网络的计算步骤如下:
其中,
表示第
层第
单元的激活值(输出值)。
用
表示第
层第
单元输入加权和(包括偏置单元),比如,
,则
。
那么,上面的等式可以更简洁地表示为:
这种方法的计算步骤叫作前向传播,这种联接图没有闭环或回路。
反向传导算法
假设我们有一个固定样本集
,它包含
个样例。我们可以用批量梯度下降法来求解神经网络。具体来讲,对于单个样例
,其代价函数为:
这是一个(二分之一的)方差代价函数。给定一个包含
个样例的数据集,我们可以定义整体代价函数为:
以上公式中的第一项
是一个均方差项。第二项是一个规则化项(也叫权重衰减项),其目的是减
小权重的幅度,防止过度拟合。
梯度下降法中每一次迭代都按照如下公式对参数
和
进行更新:
以上公式中的第一项
是一个均方差项。第二项是一个规则化项(也叫权重衰减项),其目的是减小权重的幅度,防止过度拟合。我们首先来讲一下如何使用反向传播算法来计算
和
,这两项是单个样例
的代价函数
的偏导数。一旦我们求出该偏导数,就可以
推导出整体代价函数
的偏导数:
以上两行公式稍有不同,第一行比第二行多出一项,是因为权重衰减是作用于
而不是
。
反向传播算法的思路如下:给定一个样例
,我们首先进行“前向传导”运算,计算出网络中所有的激活值,包括
的输出值。之后,针对第
层的每一个节点
,我们计算出其“残差”
,该残差表明了该节点对
最终输出值的残差产生了多少影响。对于最终的输出节点,我们可以直接算出网络产生的激活值与实际值之间的差距,我们将这个差距定义为
(第
层表示输出层)。对于隐藏单元我们如何处理呢?我们将基于节点(译者注:第
层节点)残差的加权平均值计算
,这些节点以
作为输入。下面将给出反向传导算法的细节:
1.进行前馈传导计算,利用前向传导公式,得到
直到输出层
的激活值。
2.对输出层(第
层),计算:
3.对于
的各层,计算:
4.计算最终需要的偏导数值:
其中:
来源:
http://deeplearning.stanford.edu/wiki/index.php/Neural_Networks
图1 神经元
图2 神经网络结构图
本例神经网络的计算步骤如下:
其中,
表示第
层第
单元的激活值(输出值)。
用
表示第
层第
单元输入加权和(包括偏置单元),比如,
,则
。
那么,上面的等式可以更简洁地表示为:
这种方法的计算步骤叫作前向传播,这种联接图没有闭环或回路。
反向传导算法
假设我们有一个固定样本集
,它包含
个样例。我们可以用批量梯度下降法来求解神经网络。具体来讲,对于单个样例
,其代价函数为:
这是一个(二分之一的)方差代价函数。给定一个包含
个样例的数据集,我们可以定义整体代价函数为:
以上公式中的第一项
是一个均方差项。第二项是一个规则化项(也叫权重衰减项),其目的是减
小权重的幅度,防止过度拟合。
梯度下降法中每一次迭代都按照如下公式对参数
和
进行更新:
以上公式中的第一项
是一个均方差项。第二项是一个规则化项(也叫权重衰减项),其目的是减小权重的幅度,防止过度拟合。我们首先来讲一下如何使用反向传播算法来计算
和
,这两项是单个样例
的代价函数
的偏导数。一旦我们求出该偏导数,就可以
推导出整体代价函数
的偏导数:
以上两行公式稍有不同,第一行比第二行多出一项,是因为权重衰减是作用于
而不是
。
反向传播算法的思路如下:给定一个样例
,我们首先进行“前向传导”运算,计算出网络中所有的激活值,包括
的输出值。之后,针对第
层的每一个节点
,我们计算出其“残差”
,该残差表明了该节点对
最终输出值的残差产生了多少影响。对于最终的输出节点,我们可以直接算出网络产生的激活值与实际值之间的差距,我们将这个差距定义为
(第
层表示输出层)。对于隐藏单元我们如何处理呢?我们将基于节点(译者注:第
层节点)残差的加权平均值计算
,这些节点以
作为输入。下面将给出反向传导算法的细节:
1.进行前馈传导计算,利用前向传导公式,得到
直到输出层
的激活值。
2.对输出层(第
层),计算:
3.对于
的各层,计算:
4.计算最终需要的偏导数值:
其中:
来源:
http://deeplearning.stanford.edu/wiki/index.php/Neural_Networks
相关文章推荐
- TCP Retransmission
- [火狐REST] 火狐REST 模拟 HTTP get, post请求
- https server
- CentOS 6配置iSCSI网络存储
- httpclient总结
- muduo网络编程分包和解包(一)
- HttpServletRequest.getParameter("key") 和 HttpServletRequest.getParameterMap().get("key")
- 根据IP地址查询主机名
- vmware安装的网络连接禁用后产生的问题以及解决方法
- 在实现视频播放器的步骤client(三)风行网络电影列表
- 关于百度echarts使用
- 黑马程序员---网络编程
- HttpWebRequest 高效并发问题
- AsyncHttpClient, RequestParams ,AsyncHttpResponseHandler三个类使用方法
- WoW服务器模拟器Ascent网络模块分析
- TCP、UDP 相关资料
- Http请求访问方式 GET PUT POST DELETE
- java发送http的get、post请求
- asp.net利用自定义Http处理程序实现URL伪静态之初探
- HLS(http live streaming) m3u8自制