李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube、网易云课堂、B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对这些知识内容的理解与补充。(本笔记配合李宏毅老师的视频一起使用效果更佳!)


Lecture 6: Brief Introduction of Deep Learning

本节课主要围绕Deep Learing三步骤:

(1)function set

(2)goodness of function

(3)pick the best function

1.function set

Neuron之间采用不同的连接方式,就会得到不同的网络结构。

给定了网络结构,就定义了一个function set。

给定了网络结构并给定了参数,网络就是一个函数:而输入输出的形式都是向量。如下图所示:

在output layer之前的部分,可以看做特征提取(上一节描述的概念)。output layer是Multi-class Classifier.

但是问题来了,Deep learning中的隐层到底要订多少层合适呢?

2.goodness of function

损失函数表达式以及优化过程如下所示:

3.pick the best function

显而易见,优化损失函数采用的依旧是Gradient Descent。

但是现在市面上有很多软件可以帮我们进行GD的大部分计算:

Backpropagation:后向传播算法,在下一节内容我们将会详细讨论。

Lecture 7: Backpropagation

在神经网络的计算中,神经网络通常含有非常深的隐藏层,换句话说就是可能拥有百万量级的参数,为了在梯度下降时更加有效地计算梯度,所以本节课引入一个概念:反向传播算法(Backpropagation)

先让我们考虑只有一组data的时候对参数的偏微分,如下图:

根据链式法则, ∂C/∂w = ∂z/∂w * ∂C/∂z,计算∂z/∂w我们称为前向过程,计算∂C/∂z我们称为后向过程

前向过程:从上图中,我们能明显看出前向过程∂z/∂w的值。∂z / ∂wi = the value connected by the weight wi。

有关后向过程,让我们一起看下图:

后向过程:根据链式法则, ∂C / ∂z = ∂a / ∂z * ∂C / ∂a,其中∂a / ∂z = σ′(z)。

如下图所示倘若我们从另外一个观点看待上面的式子:有另外一个neuron(下图中的三角形,表示乘法/放大器),input是∂C / ∂z′与∂C / ∂z′′,权重分别是w3,w4w3,w4,求和经过neuron(乘以σ′(z)),得到∂C / ∂z。

那么现在问题又来了,我们该如何计算∂C / ∂z′与∂C / ∂z′′呢?分两种情况

(1)z′,z″ 所接的neuron是output layer的neuron

(2)z′,z″ 所接的neuron不是output layer的neuron

总结:实际上在做Backword Pass的时候,就是建立一个反向的neural network的过程,对损失函数求导 = 前向传播 * 后向传播

划重点:

链式法则将计算∂C / ∂w 拆成前向过程与后向过程。

前向过程计算的是∂z / ∂w ,这里z是w所指neuron的input,计算结果是与w相连的值。

后向过程计算的是∂C / ∂z,这里z仍是w所指neuron的input,计算结果通过从后至前递归得到

李宏毅机器学习笔记4:Brief Introduction of Deep Learning、Backpropagation(后向传播算法)的更多相关文章

  1. [1天搞懂深度学习] 读书笔记 lecture I:Introduction of deep learning

    - 通常机器学习,目的是,找到一个函数,针对任何输入:语音,图片,文字,都能够自动输出正确的结果. - 而我们可以弄一个函数集合,这个集合针对同一个猫的图片的输入,可能有多种输出,比如猫,狗,猴子等, ...

  2. 【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 ...

  3. Deep Learning论文笔记之(八)Deep Learning最新综述

    Deep Learning论文笔记之(八)Deep Learning最新综述 zouxy09@qq.com http://blog.csdn.net/zouxy09 自己平时看了一些论文,但老感觉看完 ...

  4. [C1W1] Neural Networks and Deep Learning - Introduction to Deep Learning

    第一周:深度学习引言(Introduction to Deep Learning) 欢迎(Welcome) 深度学习改变了传统互联网业务,例如如网络搜索和广告.但是深度学习同时也使得许多新产品和企业以 ...

  5. A beginner’s introduction to Deep Learning

    A beginner’s introduction to Deep Learning I am Samvita from the Business Team of HyperVerge. I join ...

  6. Introduction to Deep Learning Algorithms

    Introduction to Deep Learning Algorithms See the following article for a recent survey of deep learn ...

  7. 机器学习 —— 基础整理(七)前馈神经网络的BP反向传播算法步骤整理

    这里把按 [1] 推导的BP算法(Backpropagation)步骤整理一下.突然想整理这个的原因是知乎上看到了一个帅呆了的求矩阵微分的方法(也就是 [2]),不得不感叹作者的功力.[1] 中直接使 ...

  8. 李宏毅机器学习笔记5:CNN卷积神经网络

    李宏毅老师的机器学习课程和吴恩达老师的机器学习课程都是都是ML和DL非常好的入门资料,在YouTube.网易云课堂.B站都能观看到相应的课程视频,接下来这一系列的博客我都将记录老师上课的笔记以及自己对 ...

  9. 学习笔记之深度学习(Deep Learning)

    深度学习 - 维基百科,自由的百科全书 https://zh.wikipedia.org/wiki/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0 深度学习(deep lea ...

随机推荐

  1. laravel 迁移枚举

    $table->enum('type', ['replace', 'warning'])->comment('类型');

  2. npm 如何查看一个包的版本信息?

    转载. https://blog.csdn.net/cvper/article/details/79543262 有了npm 我们能够简单的一段代码就下载我们需要的包,但是包是不断更新的, 所以我们要 ...

  3. easyUI-layout布局

    https://www.cnblogs.com/kexb/p/3685913.html <!DOCTYPE html><html><head> <meta c ...

  4. txt提取文件中包含特定内容的内容

    @set/p str= 请输入要查找的内容: findstr " >%~1_查找内容.txt

  5. Ubuntu下创建桌面快捷方式(以Pycharm为例)

    之后要在Ubuntu虚拟机上玩PyTorch,安装了Pycharm. 然而每次打开Pycharm需要在其bin目录下进入终端,然后输入sh pycharm.sh,很麻烦.既然Ubuntu是桌面系统,为 ...

  6. Dom,查找标签和操作标签

    Dom,查找标签和操作标签 文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口.它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式 ...

  7. sprintf补位

    有的时候需要00001这样的字符串 来源却是Int的1 这个时候就可以用sprintf方法了 $i = 3; $a=sprintf("%08d", $i); echo $a; %0 ...

  8. ssh登陆linux服务器 实际场景讲解 让你管理服务器更安全

    很多时候我们管理linux系统,都谁使用ssh登陆,因为都知道ssh是加密传输的协议的,可以有效保证我们与 服务器之间的数据通信安全.但是我们忽略了一点,但是登陆的时候我们是输入的账号和密码,这一点其 ...

  9. 一起学Hadoop——MapReduce原理

        一致性Hash算法. Hash算法是为了保证数据均匀的分布,例如有3个桶,分别是0号桶,1号桶和2号桶:现在有12个球,怎么样才能让12个球平均分布到3个桶中呢?使用Hash算法的做法是,将1 ...

  10. Centos6.5安装Apache ab性能测试工具

    ab简洁: ab是apache自带的压力测试工具,ab是apachebench命令的缩写. ab不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试. ab是一个h ...