反向传播算法(Back Propagation):

引言:

在逻辑回归中,我们使用梯度下降法求参数方程的最优解。

这种方法在神经网络中并不能直接使用,

因为神经网络有多层参数(最少两层),(?为何不能)

这就要求对梯度下降法做少许改进。


实现过程:

 一、正向传播

首先,同逻辑回归,我们求出神经网络输出与实际值的“误差”——COST:

这里先使用欧式距离而不是索夫曼函数作为输出的cost:

展开之后:

(注意右边的权重衰减项,既规则化)

二、反向传播

对于第  层(输出层)的每个输出单元 ,我们根据以下公式计算残差

对  的各个层,第  层的第  个节点的残差计算方法如下

这里:

这里相当于把本层节点的残差按照权重“投影”到上一层残差的节点上(“反向传播”就是这个意思)

在计算出各节点的残差之后,参数的偏导如下计算:

然后就可以梯度下降去了!

梯度下降过程:

1、进行前馈计算,求的所有节点的输出,求得cost;

2、进行反向传播计算,求的所有节点残差(第nl ~ 第2层)

3、利用公式求得cost对参数的偏导

4、更新偏导。

5、重复1~4知道cost差距小于预设值或重复次数大于预设值

(这里以上只讲实现方法,省略所有证明。相关证明贴于最后。)


随机初始化( Random Initialization):

在进行第一次前馈算法之前,神经网络参数的值是多少呢?

全零初始化?这是不可以的!

如果选择相同的参数进行初始化,

隐藏节点的出入必定相同(自己推推,更不用说输出了)。

为了使得对称失效,我们对神经网络的参数进行随机初始化,

既采用接近零的初始值进行初始化

这个过程可以用matlab产生随机矩阵的功能来实现。

初始化之后,让我们一起下降吧!


用到的证明(残差的计算):

1、

2、

Deep Learning 学习笔记(7):神经网络的求解 与 反向传播算法(Back Propagation)的更多相关文章

  1. Neural Networks and Deep Learning学习笔记ch1 - 神经网络

    近期開始看一些深度学习的资料.想学习一下深度学习的基础知识.找到了一个比較好的tutorial,Neural Networks and Deep Learning,认真看完了之后觉得收获还是非常多的. ...

  2. 【deep learning学习笔记】注释yusugomori的DA代码 --- dA.h

    DA就是“Denoising Autoencoders”的缩写.继续给yusugomori做注释,边注释边学习.看了一些DA的材料,基本上都在前面“转载”了.学习中间总有个疑问:DA和RBM到底啥区别 ...

  3. Deep Learning 学习笔记(8):自编码器( Autoencoders )

    之前的笔记,算不上是 Deep Learning, 只是为理解Deep Learning 而需要学习的基础知识, 从下面开始,我会把我学习UFDL的笔记写出来 #主要是给自己用的,所以其他人不一定看得 ...

  4. paper 149:Deep Learning 学习笔记(一)

     1. 直接上手篇 台湾李宏毅教授写的,<1天搞懂深度学习> slideshare的链接: http://www.slideshare.net/tw_dsconf/ss-62245351? ...

  5. 深度学习——深度神经网络(DNN)反向传播算法

    深度神经网络(Deep Neural Networks,简称DNN)是深度学习的基础. 回顾监督学习的一般性问题.假设我们有$m$个训练样本$\{(x_1, y_1), (x_2, y_2), …, ...

  6. 深度神经网络(DNN)反向传播算法(BP)

    在深度神经网络(DNN)模型与前向传播算法中,我们对DNN的模型和前向传播算法做了总结,这里我们更进一步,对DNN的反向传播算法(Back Propagation,BP)做一个总结. 1. DNN反向 ...

  7. Deep Learning 学习笔记(6):神经网络( Neural Network )

    神经元: 在神经网络的模型中,神经元可以表示如下 神经元的左边是其输入,包括变量x1.x2.x3与常数项1, 右边是神经元的输出 神经元的输出函数被称为激活函数(activation function ...

  8. [置顶] Deep Learning 学习笔记

    一.文章来由 好久没写原创博客了,一直处于学习新知识的阶段.来新加坡也有一个星期,搞定签证.入学等杂事之后,今天上午与导师确定了接下来的研究任务,我平时基本也是把博客当作联机版的云笔记~~如果有写的不 ...

  9. 【deep learning学习笔记】Recommending music on Spotify with deep learning

    主要内容: Spotify是个类似酷我音乐的音乐站点.做个性化音乐推荐和音乐消费.作者利用deep learning结合协同过滤来做音乐推荐. 详细内容: 1. 协同过滤 基本原理:某两个用户听的歌曲 ...

随机推荐

  1. java在文件中输出换行符

    在字符串后面添加\r\n就可以了.   或者使用newline方法: FileOutputStream fos=new FileOutputStream("c:\\11.txt") ...

  2. Codeforces Round #394 (Div. 2) B. Dasha and friends

    B. Dasha and friends time limit per test:2 seconds memory limit per test:256 megabytes input:standar ...

  3. SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)

    版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. http://blog.csdn.net/forezp/art ...

  4. OC-Foundation框架

    ========================== Foundation框架下的常用类 ========================== 一.[NSNumber]================ ...

  5. cursor光标类型

    今天早上在网上看到一篇关于光标类型的总结代码,很好,特定拿来: 最终结果: 代码: <!DOCTYPE html> <html lang="zh-cn"> ...

  6. linux rsync-文件同步和数据传输工具

    一.rsync的概述 rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync.rsync是Linux系统下的文件同步和数据传输工具,它采用“rsync” ...

  7. DotNet Core Console 程序使用NLog

    参考:https://github.com/NLog/NLog/wiki/Tutorial 步骤: 1. 使用Nuget安装NLog.Extensions.Logging Install-Packag ...

  8. 21天学通C++_Day3_Part2

    0.语句的分行 法1:在第一行末尾添加反斜杠 cout<<"Hello \ World!"<<endl; 法2:将字符串字面量分成两个,编译器注意到两个响铃 ...

  9. 神奇的TextField(2)

    var text_content:TextField=new TextField(); text_content.autoSize="left"; // text_content. ...

  10. Hexo博客网站再配置

    这两天整理网站方面的事,本地IIS部署,个人网站,发现我的hexo做的个人网站实在很单调,于是找来资料做进一步的配置. 一.网站图标 看一下hexo\themes\modernist\layout\_ ...