这一讲主要介绍了神经网络,基本内容之前如果学习过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. 使用Java connector消费ABAP系统的函数

    Java Connector(JCO)环境的搭建:Step by step to download and configure JCO in your laptop 我的ABAP系统有个函数名叫ZDI ...

  3. Oracle RAC/Clusterware 多种心跳heartbeat机制介绍 RAC超时机制分析

    ORACLE RAC中最主要存在2种clusterware集群件心跳 &  RAC超时机制分析: 1.Network Heartbeat 网络心跳 每秒发生一次: 10.2.0.4以后网络心跳 ...

  4. Raid 6与raid 5的区别

    RAID5和RAID6有下面几个区别: 1.冗余和数据恢复能力 RAID组级别 冗余及数据恢复能力 数据恢复策略 RAID 5 存在分散在不同条带上的奇偶校验数据 允许一块数据盘故障,并可通过奇偶校验 ...

  5. Beta冲刺(周五)

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1 这个作业要求在哪里 https://edu.cnblo ...

  6. @Param注解在dao层的使用

    有时在前台用ajax传过来许多参数,不知道在mybatis如何封装,就要用到@Param注解了,这时就不需要在映射文件写传入参数了,这种方法虽然比较取巧,但还是很实用的,如下图:

  7. 读书笔记-《深入理解Java虚拟机:JVM高级特性与最佳实践》

    目录 概述 第一章: 走进Java 第二章: Java内存区域与内存溢出异常 第三章: 垃圾收集器与内存分配策略 第四章: 虚拟机性能监控与故障处理 第五章: 调优案例分析与实战 第六章: 类文件结构 ...

  8. FastText算法

    转载自: https://www.cnblogs.com/huangyc/p/9768872.html 0. 目录 1. 前言 2. FastText原理 2.1 模型架构 2.2 层次SoftMax ...

  9. C#基于联通短信Sgip协议构建短信网关程序

    此软件基于中国联通Sgip协议程序接口,适合在中国联通申请了短信发送端口的公司使用.短信群发已经成为现在软件系统.网络营销等必不可少的应用工具.可应用在短信验证.信息群发.游戏虚拟商品购买.事件提醒. ...

  10. MySQL - INSERT 集合

    范例1: INSERT INTO t_table SELECT ot.* FROM t_other_table ot WHERE ot.is_sent = ? and ot.insert_time & ...