课时8 反向传播与神经网络初步(上)

反向传播在运算连路中,这是一种通过链式法则来进行递推的计算过程,这个链路中的每一个中间变量都会对最终的损失函数产生影响。

链式法则通常包含两部分,局部梯度和后一层的梯度相乘

前向和反向花费的时间是基本一样的。

大的函数也可以直接视作一个整体计算梯度

当局部梯度非常容易求得时,你可以把这部分表达式看作一整个S门

加法:梯度分配器;所以无论何时当你有一个加法运算时,他会分配相等的梯度值。

最大值门:一个梯度路由,他的工作方式是,认为比较大的输入梯度为1,比较小的梯度为0,直观的理解就是比较小的输入对输出没有影响。所以最受你只会得到比较大输入值的梯度,这就是最大值门是梯度路由的原因。

乘法:梯度转换器

向前传播/向后传播:主要思想就是遍历网络中所有的运算门,并按照正确的逻辑顺序进行排列。这意味着所有的输入值在运算之前要知道这些标注信息

事实上一个网络对象就是对这些门进行简单封装,以后也会发现门也被称作层。

在前向传播中,我们按照要求计算结果;在反向传播中,我们最终要求得的是整个损失函数关于各个变量的梯度。

一般来说在反向传播和构建这些时都需要那些数值,所以当你真正学习这个网络,每一个门都需要记住输入值和其他出现过得中间微分值。所以一定记住要在前向传播时候记住这些值,因为在反向传播中可能会用到某些变量。如果你不进行反向传播,你可以删除很多东西。

Torch实际上是一系列层的巨大集合,也就是运算门的集合。深度学习网络框架实际上是包含一系列层并且记录所有层之间联系的计算图

我们将张量看做一个n维数组,我们用常数将其标量化

课时9 反向传播与神经网络初步(下)

在反向传播中,使用链式求导法则计算梯度是最关键的。

对于每次更新,我们都要进行一次完整的前馈和反馈。当你想要进行更新,你需要梯度,所以你需要前馈你的样本。然后马上进行反向求导,如此你得到梯度。然后根据求得的梯度进行权值微调,来完成权值更新。可以这么说,通过前馈得到损失,通过反馈得到梯度,通过对梯度的使用来完成权值更新。这就是神经网络的训练过程中,内部变化前馈、反馈、更新、前馈、反馈、更新。。。

我们不需要求出完整的雅各比矩阵。每个输入影响每个输出。

神经网络相当庞大,我们只能用这样的结构来计算,记录中间值,对每个节点,应用前馈反馈API,构成图结构,图结构是对所有层以及层与层之间连接的包装。层与层之间的连接是通过向量的传递完成的

神经网络

(NOW)这个式子所代表的操作大概就是给出一个x,用W1矩阵乘以x,接下来经过一个激活方程,然后我们再做一个矩阵乘法,就得到了评分。

激活函数得到的是一个比率值

每一个单个的神经元都可以看做是一个小线性分类器,只是这些神经元都是彼此相连的,他们可以在一起工作

激活函数

输入层并不算层数内,因为这层的神经元只有输入值(没有权),没有计算。

全连接层,每一个神经元都连着下一层的所有神经元。

分层可以使计算更加高效,与其设置大量的没有明确组织结构的神经元,并让这些神经元独立计算,我们更倾向于把这些神经元安排到一个个层中使得我们可以进行向量化的运算。

神经网络就是利用隐藏层把输入值转换成可以使用线性分类器分类的形式,然后再用后面的层作为线性分类器进行数据分类

神经网络里面确实是神经元越多越好,因为在机器学习中经常出现模型表达能力不足的问题,所以你加入更多的神经元总是会让他工作的更好,但是在那之后你也需要加入正则化。要注意正确的防止神经网络过拟合的方法,并不是减少神经元,使得神经网络变小,而是加入合适的正则化系数。

当用mini-batch做优化时,L-BFGS还是一个不错的东西

神经网络究竟是越宽越好还是越深越好并没有一个标准的答案。

一般来说,如果是图片问题的话,层数会更重要一些。但是如果你要处理的只是一个简单的数据,网络的深度就没有多大作用。

不同层使用不同的激活函数一般是做不到的,大部分情况下,我们都是选择一种激活函数,然后整个神经网络都用这一个

斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时8&&9的更多相关文章

  1. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时3

    课时3 计算机视觉历史回顾与介绍下 ImageNet有5000万张图片,全部都是人工清洗过得,标注了超过2万个分类. CS231n将聚焦于视觉识别问题,图像分类关注的是大图整体:物体检测告诉你东西具体 ...

  2. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时1

    课时1 计算机视觉历史回顾与介绍上 CS231n:这一一门关于计算机视觉的课程,基于一种专用的模型架构,叫做神经网络(更细一点说,是卷积神经网络CNN).计算机视觉是人工智能领域中发展最为迅猛的一个分 ...

  3. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时26&&27

    课时26 图像分割与注意力模型(上) 语义分割:我们有输入图像和固定的几个图像分类,任务是我们想要输入一个图像,然后我们要标记每个像素所属的标签为固定数据类中的一个 使用卷积神经,网络为每个小区块进行 ...

  4. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时24&&25

    课时24 深度学习开源库使用介绍(上) Caffe 被用于重新实现AlexNet,然后用AlexNet的特征来解决其他事情 用C++书写的,可以去GitHub上面读取源代码 主要四个类: Blob可以 ...

  5. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时12&&13

    课时12 神经网络训练细节part2(上) 训练神经网络是由四步过程组成,你有一个完整的数据集图像和标签,从数据集中取出一小批样本,我们通过网络做前向传播得到损失,告诉我们目前分类效果怎么样.然后我们 ...

  6. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时11

    课时11 神经网络训练细节part1(下) 2010年,Glorot等人写的论文,我们称之为Xavier初始化,他们关注了神经元的方差表达式.他们推荐一种初始化方式,那就是对每个神经元的输入进行开根号 ...

  7. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时10

    课时10 神经网络训练细节part1(上) 没有大量的数据也不会有太多影响,只需要找一个经过预训练的卷积神经网络然后进行调整 从数据集中抽样一小批数据, 将数据运入卷积神经网络中来计算损失值 通过反向 ...

  8. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时7

    课时7 线性分类器损失函数与最优化(下) 我们为什么要最大化对数概率而非直接最大化概率? 你在做逻辑斯蒂回归时,如果你只是想要最大化概率,那你使用log是无意义的.因为log函数是单调函数,最大化概率 ...

  9. 斯坦福CS231n—深度学习与计算机视觉----学习笔记 课时14&&15

    课时14 卷积神经网络详解(上) CNN处理的是一些数据块,在这之间有很多层,一系列的层将输入数据变换为输出数据,所以完成操作的中间量不仅是NN时候讲的那些向量,而是立体结构,有宽,高和深度,在整个计 ...

随机推荐

  1. Mysql数据库中CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP区别

    如图所示,mysql数据库中,当字段类型为timestamp时,如果默认值取CURRENT_TIMESTAMP,则在insert一条记录时,end_time的值自动设置为系统当前时间,如果勾选了 ON ...

  2. flask的debug模式下,网页输入pin码进行调试

    网站后端Python+Flask .FLASK调试模式之开启DEBUG与PIN使用? 自动加载: # 方式一 1 2 if __name__ == '__main__':     app.run(ho ...

  3. 在智能手机上跟踪ADS-B系统的飞机航线信息

    飞机飞行的中断可能会给航空公司造成数十亿美员的损失,但即便如此大多数现代商业航班仍旧依赖于存有严重安全问题的空中交通管制系统.到2020年,这些系统将会被升级为一个被称之为NextGen的系统,该系统 ...

  4. 转: 工欲善其事,必先利其器系列--Netbeans之远程开发

    转自: http://www.cnblogs.com/zuoca/archive/2012/07/09/Remote_Development_With_Netbeans_origin.html 工欲善 ...

  5. NAND FLash基础概念介绍

    一.引脚介绍 引脚名称 引脚功能 CLE 命令锁存功能 ALE 地址锁存功能 /CE 芯片使能 /RE 读使能 /WE 写使能 /WP 写保护 R/B 就绪/忙输出信号 Vcc 电源 Vss 地 N. ...

  6. EBS OAF开发中怎样实现功能页签(Global Tab)

    EBS OAF开发中怎样实现功能页签(Global Tab) (版权声明.本人原创或者翻译的文章如需转载.如转载用于个人学习,请注明出处.否则请与本人联系,违者必究) 功能页签的实现不须要不论什么编码 ...

  7. vuex 与 redux 的 区别

    一:redux和flux的区别 1)redux是flux中的一个实现 2))在redux中我们只能定义一个store,在flux中我们可以定义多个 3)在redux中,store和dispatch都放 ...

  8. 机房收费系统(VB.NET)个人版总结

    重构版个人机房收费系统大概从暑假开学開始进行.花了不到一个半月的时间才完毕.以下对我在重构过程中的一写理解. 1.系统设计一个非常重要的目的就是重用.而要做到重用,低耦合是最有效的手段回想一下我们C/ ...

  9. VS2008转VS2013时遇到的问题

    最近我们要把DPM进行行人检测嵌入到我们的项目里,需要一个高级版本的VS,于是我们要把2008转换成2013,至于为什么没有换成最高级的版本,可能担心会遇到有更多的麻烦吧,毕竟我们的DPM源码是在20 ...

  10. 李洪强iOS开发之- 点击屏幕遮挡键盘

    李洪强iOS开发之- 点击屏幕遮挡键盘 实现的效果:  01 - 给当前的view添加点击事件,使点击屏幕的时候,让键盘退出 /** * 点击屏幕 隐藏键盘 * * @param tap */-(vo ...