这一讲主要介绍了神经网络,基本内容之前如果学习过Andrew的Machine learning应该也都有所了解了。不过这次听完这一讲后还是有了新的一些认识。

计算图 Computational graph

之前没有体会到计算图的强大,今天听Serena讲解后,有一种豁然开朗的感觉。 总的来说,有一些很复杂的表达式,如果直接使用它对变量求导,虽然也能得到一个显式的表达,但可能会牵扯到非常复杂的展开、求导等一系列操作。如果换种方式,把这个式子里的基本运算,通过计算图的方式表示出来,用节点来表示一个基本运算,如 +、*、max等。那么我们从结尾出发,不断地在当前的节点上对前面的变量进行求导,这个求导过程往往非常简单,然后根据链式法则,不断“向后”传播,就可以得到整个式子关于输入变量的导数。这个思想也正是神经网络的精髓所在。
值得注意的是,我们可以根据自己的需要选择性地合并一些节点,比如像sigmoid函数,非常常见,而且我们也能够给出它的微分的显式表达,这时候就没有必要冗余地去列举sigmoid函数里的每一个简单运算。

max的微分怎么求

普通的加法、乘法的微分都很好想象,如果这个节点是对输入变量求一个max值呢?此时当前节点对于输入变量的微分分别是多少?

其实也不难想象,答案就是,对于是max的那个变量,微分是1,其它为0。这也非常合理,因为有了这个max的操作,相当于其它变量都对输出不会再产生影响了,那么再把微分传递给它们也用处不大,因为我们关心的是最终的表达式在那些能够影响它的值的那些变量上的微分或者梯度

Jacobian matrix 雅克比矩阵

因为我们实际上处理的数据大多数是向量化的,那么求导的结果其实是一个雅可比矩阵。不要被这个名字吓到,其实它就是一个用每个输出维度对每个输入维度求导的过程。
假设我们输入的x是n维,输出的y是m维,那么函数f(x) = y 针对x求导得到的雅克比矩阵是m*n的,其i,j位置的值为\(d(y_i)/d(x_j)\)。

(来自维基百科https://en.wikipedia.org/wiki/Jacobian_matrix_and_determinant)

主题无关

Serena Yeung的英语听着好舒服,发音很清晰,不拖泥带水,几乎没有不必要的语气词,值得学习~~而且人还很美,感觉这门课的老师们颜值都好高@_@

CS231n笔记 Lecture 4 Introduction to Neural Networks的更多相关文章

  1. cs231n spring 2017 lecture4 Introduction to Neural Networks 听课笔记

    1. Backpropagation:沿着computational graph利用链式法则求导.每个神经元有两个输入x.y,一个输出z,好多层这种神经元连接起来,这时候已知∂L/∂z,可以求出∂L/ ...

  2. CS231n笔记 Lecture 1 Introduction

    主题有关 这一讲主要是介绍性质的,虽然大多数概念以前听说过,但还是在他们的介绍中让我有如下一些认识,所谓温故而知新,不无道理: IMAGENET Feifei Li的团队首先爬取.标注了IMAGENE ...

  3. cs231n spring 2017 lecture4 Introduction to Neural Networks

    1. Backpropagation:沿着computational graph利用链式法则求导.每个神经元有两个输入x.y,一个输出z,好多层这种神经元连接起来,这时候已知∂L/∂z,可以求出∂L/ ...

  4. 【DeepLearning学习笔记】Coursera课程《Neural Networks and Deep Learning》——Week1 Introduction to deep learning课堂笔记

    Coursera课程<Neural Networks and Deep Learning> deeplearning.ai Week1 Introduction to deep learn ...

  5. 【DeepLearning学习笔记】Coursera课程《Neural Networks and Deep Learning》——Week2 Neural Networks Basics课堂笔记

    Coursera课程<Neural Networks and Deep Learning> deeplearning.ai Week2 Neural Networks Basics 2.1 ...

  6. 深度学习笔记(三 )Constitutional Neural Networks

    一. 预备知识 包括 Linear Regression, Logistic Regression和 Multi-Layer Neural Network.参考 http://ufldl.stanfo ...

  7. CS231n笔记 Lecture 5 Convolutional Neural Networks

    一些ConvNets的应用 Face recognition 输入人脸,推测是谁 Video classfication Recognition 识别身体的部位, 医学图像, 星空, 标志牌, 鲸.. ...

  8. 机器学习入门14 - 神经网络简介 (Introduction to Neural Networks)

    原文链接:https://developers.google.com/machine-learning/crash-course/introduction-to-neural-networks/ 神经 ...

  9. 论文笔记《Notes on convolutional neural networks》

    这是个06年的老文章了,但是很多地方还是值得看一看的. 一.概要 主要讲了CNN的Feedforward Pass和 Backpropagation Pass,关键是卷积层和polling层的BP推导 ...

随机推荐

  1. python基础教程总结15——2 画幅好画

    要求:从Internet上下载数据文件:  分析数据文件并提取感兴趣的部分 工具:图形生成包(ReportLab,PYX等) 数据:太阳黑子和射电辐射流量(http://services.swpc.n ...

  2. RAC数据库后台进程介绍

    在RAC数据库上会比单实例数据库多一些进程,这些进程是RAC特有的,为了实现集群数据库功能而设置的. 10g RAC特有进程:$ ps -ef|grep ora_oracle    4721     ...

  3. 【转】OS X 中快速调出终端

    作者:Frank Pu链接:https://www.zhihu.com/question/20692634/answer/37152883来源:知乎著作权归作者所有,转载请联系作者获得授权. 来至 M ...

  4. Shell脚本调用ftp上传文件

    Shell脚本调用ftp上传文件 1.脚本如下 ftp -n<<! open x.x.x.x ###x.x.x.x为ftp地址 user username password ###user ...

  5. 解决 cocos2dx iOS/mac 设置纹理寻址模式后纹理变黑的问题

    sprite:getTexture():setTexParameters(gl.LINEAR,gl.LINEAR,gl.REPEAT,gl.REPEAT) 在安卓设备上,设置了纹理自定义寻址模式,纹理 ...

  6. (69)zabbix监控惠普打印机

    假设公司有多个楼层或者分布在不同楼,打印机自然分布很广泛,打印机缺少油墨或者卡纸了,都需要员工找IT部门.我们使用zabbix对打印机进行监控,一旦缺少油墨,zabbix发出报警,it人员能够及时更换 ...

  7. 在 Ubuntu 环境下实现插入鼠标自动关闭触摸板

    Ubuntu 以及其他衍生版本,如 Linux Mint 等等都可以用官方的 PPA 来安装"触摸板指示"应用程序.打开一个终端,运行以下命令: sudo add-apt-repo ...

  8. 15Shell脚本—流程控制

    流程控制语句 尽管可以通过使用Linux命令.管道符.重定向以及条件测试语句编写最基本的Shell脚本,但是这种脚本并不适用于生产环境.原因是它不能根据真实的工作需求来调整具体的执行命令,也不能根据某 ...

  9. init0-6(启动级别)

    一. init是Linux系统操作中不可缺少的程序之一. 所谓的init进程,它是一个由内核启动的用户级进程. 内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后, ...

  10. python并发编程之线程(创建线程,锁(死锁现象,递归锁),GIL锁)

    什么是线程 进程:资源分配单位 线程:cpu执行单位(实体),每一个py文件中就是一个进程,一个进程中至少有一个线程 线程的两种创建方式: 一 from threading import Thread ...