上次的分享中,介绍了模型建立与使用梯度下降法优化参数、梯度校验,以及一些超参数的经验。

本节课的主要内容:

1==链式法则

2==深度学习框架中链式法则

3==全连接神经网络

=========================================================================================

1、链式法则

  目前我们所处的阶段:

  学习了SVM softmax两个模型或者算法,需要优化w》》梯度下降。

  上述公式的计算图例:

  由上述计算图可见,模型非常简洁,可以使用计算偏导的方式来优化参数,但是当模型非常大时,比如:

      

  此时直接求偏导的方法不可行。

  解决方法》》链式法则。

  举例:

  对具体函数用链式法则求导。首先进行前向计算。如上图。

  求f对中间变量偏导:

  求中间变量对初始变量的偏导,结合之前计算,得到f对初始变量的偏导》》链式法则

                    

  链式法则解释:

    单一结点,输出值对输入变量的偏导:

    计算此结点与下一节点,联合对输入变量的偏导:

    多节点:

    上述即为链式法则的过程。

  实际例子:

    可视化流程如上,其中已经实现了前向计算。

    反向传播,首先计算最后节点:

    倒数第二个节点:

    按照上述方法,逐一反向计算:

        

    达到分支时:

      

  可以对某些步骤进行简化》》直接对某个表达式整体求导:

  各种计算的链式计算以及代码结构:

    加法:

      

    乘法:

  深度学习框架实现:

      

  向量形式的链式法则:

    Jacobian matrix

    向量形式链式法则举例:

      问题:

      问题:

      此时的输出如f1只与x1相关,所以对应的雅克比行列式只有在对角线上有值,为0或者1.其余元素均为0.

      由此可见,计算雅克比矩阵的方式不是很简洁。

  总结:

=========================================================================================

2、神经网络 Neural Network

  两层NN与线性函数对比:

  之前的分类器得到的可视化:

    可视化的结果显示,模型将某一类的特征训练调整到单一的w(向量或矩阵),此时的w混合了很多特点,比如颜色、形状。

    而NN包含了很多隐藏层,隐藏层的某个节点对应相应的某个特征,比如颜色,方向等等。将隐藏层节点得到的特征抽象到输出,可以得出结果。

    两层隐藏层:

      

    代码实现:

      其实就是层的叠加。

    前向、反向传播代码结构:

    具体细节在下一节课会涉及。

NN的生物学知识:

  使用sigmoid作为激活函数。

  神经系统中的树突如输入层到隐藏层节点的连接。轴突相当于隐藏层节点的输出与其他节点的连接。

  代码实现(结构):

  一些区别:

    生物神经系统功能更复杂。

常用的激活函数:

  根据模型特点以及计算的效果,选择不同的激活函数。其中ReLU、Maxout比较常用。

  各个激活函数的特点在课程配套的笔记中有详细说明。之后会把总结好的笔记扫描、分享出来。

NN层数:

  下图以2 3层网络为例,层数不计输入层,注意与UFLDL进行对比,UFLDL中计入了输入层:

前向传播代码结构:

前向传播实例:

关于NN的层数:

  NN可以视为对飞线性函数的逼近》》证明可以逼近任何函数。

  由上图可见,NN层数不同,分类的准确率也有差异,一般选取3层或以上的层数,并加入正则的方式。

  当高于3层时,层数的增加并不能很好的改善最终的结果,甚至会产生过拟合。

  cnn中层数较高表示抽象能力更强,希望较高的层数。

正则化强度对结果的影响:

  可以通过选择合适的正则化强度系数控制过拟合结果。上图中看出较高的正则化强度系数使得分类界面更平滑。

=========================================================================================

总结:

下节课的内容:

附:通关CS231n企鹅群:578975100 validation:DL-CS231n

CS231n 2016 通关 第四章-反向传播与神经网络(第一部分)的更多相关文章

  1. CS231n 2016 通关 第四章-NN 作业

    cell 1 显示设置初始化 # A bit of setup import numpy as np import matplotlib.pyplot as plt from cs231n.class ...

  2. CS231n 2016 通关 第五章 Training NN Part1

    在上一次总结中,总结了NN的基本结构. 接下来的几次课,对一些具体细节进行讲解. 比如激活函数.参数初始化.参数更新等等. ====================================== ...

  3. Cs231n课堂内容记录-Lecture 4-Part1 反向传播及神经网络

     反向传播 课程内容记录:https://zhuanlan.zhihu.com/p/21407711?refer=intelligentunit 雅克比矩阵(Jacobian matrix) 参见ht ...

  4. CS231n 2016 通关 第六章 Training NN Part2

    本章节讲解 参数更新 dropout ================================================================================= ...

  5. CS231n 2016 通关 第三章-SVM与Softmax

    1===本节课对应视频内容的第三讲,对应PPT是Lecture3 2===本节课的收获 ===熟悉SVM及其多分类问题 ===熟悉softmax分类问题 ===了解优化思想 由上节课即KNN的分析步骤 ...

  6. CS231n 2016 通关 第三章-Softmax 作业

    在完成SVM作业的基础上,Softmax的作业相对比较轻松. 完成本作业需要熟悉与掌握的知识: cell 1 设置绘图默认参数 mport random import numpy as np from ...

  7. CS231n 2016 通关 第三章-SVM 作业分析

    作业内容,完成作业便可熟悉如下内容: cell 1  设置绘图默认参数 # Run some setup code for this notebook. import random import nu ...

  8. 第四章 跨平台图像显示库——SDL 第一节 与SDL第一次亲密接触

    http://blog.csdn.net/visioncat/article/details/1596576 GCC for Win32 开发环境介绍(5) 第四章 跨平台图像显示库——SDL 第一节 ...

  9. CS231n 2016 通关 第五、六章 Dropout 作业

    Dropout的作用: cell  1 - cell 2 依旧 cell 3 Dropout层的前向传播 核心代码: train 时: if mode == 'train': ############ ...

随机推荐

  1. initializer_list、初始化列表、列表初始化

    什么是列表初始化 使用一个花括号来初始化变量,表现形式如下: std::vector<int>a{1,2,3,4,5}; 或者 std::vector<int>a = {1,2 ...

  2. mysql 中遇到金额 BigDecimal类型字段

    当数据库字段为BigDecimal型,and后面判断去掉. 否则当为0时候,视为空处理了.即传参为null

  3. Nmap扫描教程之基础扫描具体解释

    Nmap扫描教程之基础扫描具体解释 Nmap扫描基础扫描 当用户对Nmap工具了解后,就可以使用该工具实施扫描.通过上一章的介绍,用户可知Nmap工具能够分别对主机.port.版本号.操作系统等实施扫 ...

  4. 平滑的滚动listview到一个指定位

    http://blog.csdn.net/w8320273/article/details/9043339

  5. tomcat部署web应用的4种方法以及部署多个应用

    原文: tomcat部署web应用的4种方法 在Tomcat中有四种部署Web应用的方式,简要的概括分别是: (1)利用Tomcat自动部署 (2)利用控制台进行部署 (3)增加自定义的Web部署文件 ...

  6. wcf系列(一)--- 寄宿方式

    一.自我寄宿(self-hosting) 1.wcf采用基于终结点(Endpoint)的通信手段:终结点由:地址(Address)+绑定(Binding)+契约(Contract)组成:  Enpoi ...

  7. find命令用法

    关于查找 文件查找:     locate非实时查找:根据索引查找     find实时查找:根据文件的各种属性去找到相对应文件     根据文件的各种属性去找到相对应文件 文本搜索:     gre ...

  8. android DownloadManager.getInputStream返回null的一种情况

    将下载操作的代码放到一个新的子线程中来执行.

  9. A桶中有多少水?

    如果你能算出桶中有多少水,我便许你下山去玩.有一天,老和尚让小和尚将A桶的水挑到B桶去,可是小和尚却想下山玩,不愿意挑水,老和尚便说:”如果你能够根据我的提示算出A桶中有多少升水,我便许你下山去玩.” ...

  10. mongodb学习之:主从复制

    在sql server能够做到读写分离,双机热备份和集群部署,这些在mongodb也能做到.首先来看主从复制.我们就在一台电脑上进行操作 第一步:分别建立master和slave两个文件夹 第二步:开 ...