1. 之前课程里,一个32*32*3的图像被展成3072*1的向量,左乘大小为10*3072的权重矩阵W,可以得到一个10*1的得分,分别对应10类标签。

在Convolution Layer里,图像保持原样,依旧是32*32*3,把它和一个5*5*3的filter进行卷积运算(filter和原图像有相同的通道数,比如这里都是3)。这里的“卷积”并不是严格按照信号处理里先把图像翻转,这里只是对应像素乘积累加,可以按照fully connected layer的写法,把5*5*3的filter展开成75*1,原图像也抠出同样大小的一块并展开成一维,然后线性运算wTx+b。如此运算后,最终得到28*28*1的结果(32-5+1=28),名字叫activation map。每一个filter实际代表一种特征,通过卷积查看原图的各个局部位置与这个特征的匹配程度。实际处理中会用好多个不同的filter,如果用了6个,则得到28*28*6的“新图像”。卷积是线性运算,所以之后还要再跟一个非线性的激活函数(比如ReLU)。几个卷积层之后,还会再用一个POOL(池化层:池化层的输入一般来源于上一个卷积层,主要作用是增强鲁棒性,并且减少了参数的数量,防止过拟合现象的发生)。

卷积神经网络实际就是一系列的类似卷积层的堆叠。从底层到高层的卷积层对应的特征越来越复杂。

2. 上一部分的卷积过程是每次平移一个像素(stride=1),可以移动几个像素,最终输出大小是(N-F)/stride+1,这里假设图像是N*N,filter是F*F。输出大小必须是整数,如果不是的话,stride就不能取这个数。

还有两个问题:1)每次卷积会缩小图片,对于卷积层很多的深度学习网络,图片会很快缩的非常小。2)丢失了边缘信息。为了解决这个问题,实际操作中,会在图像周边补0,这时候输出大小是(N+2*P-F)/stride+1,这里P是两边各补的0的个数。

总结一下:

输入图片大小是W1*H1*D1

Hyperparameters:1)filter的数量K,一般取2的指数个,比如32,64,128,512。

2)filter的大小F,一般取1,3,5。(边长为1的filter是有意义的,因为这相当于是对每个像素的各个通道加权求和。)

3)步长stride S,一般取1,2。stride有降低图片分辨率的作用,或者说降采样。

4)单边补零的个数P。

输出图片大小是W2*H2*D2:

1)W2=(W1-F+2P)/S+1.

2)H2=(H1-F+2P)/S+1.

3)D2=K。

一共F*F*D1*K个权重参数,K个bias参数。

3. Pooling Layer:对图片降采样。

最常用的是Max pooling:降采样时取一个小区域里的最大值。可以这么直观理解,比如我们想在一个小区域里找某个特征,这个小区域内任何一处的值很高,都代表我们在这个小区域找到了这个特征,所以用它来表征这个区域。

卷积过程的步长stride大于1和pooling都是为了降采样,二者并不是必须有的,根据实际问题调整架构。

总结一下:

输入图片大小是W1*H1*D1

Hyperparameters:1)pooling的大小F,一般取2,3。

2)步长stride S,一般取2。

输出图片大小是W2*H2*D2:

1)W2=(W1-F)/S+1.

2)H2=(H1-F)/S+1.

3)D2=D1

不引入新的参数,并且一般不会补0。

cs231n spring 2017 lecture5 Convolutional Neural Networks听课笔记的更多相关文章

  1. cs231n spring 2017 lecture10 Recurrent Neural Networks 听课笔记

    (没太听明白,下次重新听一遍) 1. Recurrent Neural Networks

  2. cs231n spring 2017 lecture5 Convolutional Neural Networks

    1. 之前课程里,一个32*32*3的图像被展成3072*1的向量,左乘大小为10*3072的权重矩阵W,可以得到一个10*1的得分,分别对应10类标签. 在Convolution Layer里,图像 ...

  3. cs231n spring 2017 lecture8 Deep Learning Networks 听课笔记

    1. CPU vs. GPU: CPU核心少(几个),更擅长串行任务.GPU有很多核心(几千个),每一个核都弱,有自己的内存(几个G),很适合并行任务.GPU最典型的应用是矩阵运算. GPU编程:1) ...

  4. cs231n spring 2017 lecture10 Recurrent Neural Networks

    (没太听明白,下次重新听一遍) 1. Recurrent Neural Networks

  5. cs231n spring 2017 lecture12 Visualizing and Understanding 听课笔记

    这一节课很零碎. 1. 神经网络到底在干嘛? 浅层的是具体的特征(比如边.角.色块等),高层的更抽象,最后的全连接层是把图片编码成一维向量然后和每一类标签作比较.如果直接把图片和标签做像素级的最近领域 ...

  6. cs231n spring 2017 lecture7 Training Neural Networks II 听课笔记

    1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...

  7. cs231n spring 2017 lecture6 Training Neural Networks I 听课笔记

    1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法 ...

  8. cs231n spring 2017 lecture7 Training Neural Networks II

    1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...

  9. cs231n spring 2017 lecture6 Training Neural Networks I

    1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法 ...

随机推荐

  1. 初次使用Python脚本,proto协议文件转Lua代码

    使用IntelliJ IDEA编辑器编写Lua脚本的时候,安装一个插件 "EmmyLua" 可以对有代码提示功能 想把protoBuf协议文件转成Lua代码,然后给出代码提示 第一 ...

  2. 小白的Python之路 day2 字符编码和转码

    字符编码和转码 详细文章: http://www.cnblogs.com/yuanchenqi/articles/5956943.html http://www.diveintopython3.net ...

  3. scott表结构

  4. JNI的使用总结初篇

    前言:以下内容是个人在写JNI Demo前后进行查找理解总结得出的一些结论,如有错误的地方希望路过的朋友能够指正. 一.JNI是Java native interface的简称,目前就我所知这类方法的 ...

  5. 创建一个可用的简单的SpringMVC项目,图文并茂

    转载麻烦注明下来源:http://www.cnblogs.com/silentdoer/articles/7134332.html,谢谢. 最近在自学SpringMVC,百度了很多资料都是比较老的,而 ...

  6. C#Linq技术中SelectMany(...)函数的内部实现的伪代码

    我们先来假设这种场景: 一个学校中有多个年级,一个年级有多个班级,一个班级里有多个学生.这里我们只需要班级.年级.和学生这三个概念: 让我们先来定义Class类和Student类: // 注意,Cla ...

  7. ArcGIS API for JavaScript 4.2学习笔记[19] 搜索小部件——使用更多数据源

    上一篇中提到,空间搜索小部件是Search这个类的实例化,作为视图的ui属性添加进去后,视图就会出现搜索框了. 这节的主体代码和上篇几乎一致,区别就在上篇提及的sources属性. 先看看结果: 由于 ...

  8. bzoj 2302: [HAOI2011]Problem c

    Description 给n个人安排座位,先给每个人一个1~n的编号,设第i个人的编号为ai(不同人的编号可以相同),接着从第一个人开始,大家依次入座,第i个人来了以后尝试坐到ai,如果ai被占据了, ...

  9. SpringMVC对包的扫描范围扩大后,导致的事务配置不生效问题

    问题场景 项目使用的框架:Spring 4.1.4 + Hibernate 4.3.8 + MySQL. web.xml中对Spring的配置: <!-- 把 Spring 容器集成到 Web ...

  10. DES加解密、JavaScript、Java

    JavaScript代码    DES.js /** * Created by Andy on 2017/11/30. */ /** * DES加密/解密 * @Copyright Copyright ...