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 lecture5 Convolutional Neural Networks听课笔记

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

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

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

  3. cs231n spring 2017 lecture10 Recurrent Neural Networks

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

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

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

  5. cs231n spring 2017 lecture7 Training Neural Networks II

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

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

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

  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 lecture8 Deep Learning Networks 听课笔记

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

  9. CS231n笔记 Lecture 5 Convolutional Neural Networks

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

随机推荐

  1. PAT Advanced 1004 Counting Leaves (30) [BFS,DFS,树的层序遍历]

    题目 A family hierarchy is usually presented by a pedigree tree. Your job is to count those family mem ...

  2. Lyft、Uber、滴滴涉足汽车租赁领域,能打破既有汽车所有权模式吗?

    自共享经济出现之后,众多相关项目遍地开花.这些共享经济项目对于人们来说,最直观的感受就是实惠.性价比高.方便.不过抛开这些使用层面的优点来看的话,共享经济项目最大的特色或许就是改变了事物的所有权.一件 ...

  3. Linux(CENTOS7) Nginx安装

    1.下载nginx  在disk目录下,输入以下命令进行下载: wget http://nginx.org/download/nginx-1.12.2.tar.gz 2.解压nginx 在disk目录 ...

  4. OpenCV和Qt的图像格式互转

    做图像处理的时候经常使需要用到opencv的,这应该是免费的图像处理库中用得最广泛而且最好用的库了吧.然后有时候想用界面来展示点东西的时候,我们就需要编写个界面,编写界面的方法千千万,弱水三千我只取一 ...

  5. 18. docker 容器部署 python-redis

    1. 编写 Vagrantfile 并创建虚拟机 并虚拟机绑定外部 192.168.205.10:8888 ip:port # -*- mode: ruby -*- # vi: set ft=ruby ...

  6. css改变input输入框placeholder值颜色

    ::-webkit-input-placeholder { /* WebKit browsers */ color: #fff; } :-moz-placeholder { /* Mozilla Fi ...

  7. git配置报错fatal: Authentication failed for ''问题解决

    如果在git配置中报错fatal: Authentication failed for '',其实就是凭证失败的意思 接着输入一下命令行没有出现要求输入用户名或密码,并报错 $ git config ...

  8. Ubuntu python多个版本管理

    1.查看python有哪些版本使用命令 whereis python 如图: 2.这么多版本如何切换呢 使用 sudo update-alternatives --install <link&g ...

  9. vscode Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

    vscode 连接 mysql 时出现这个错误 alter user 'root'@'localhost' identified with mysql_native_password by 'pass ...

  10. 后台用Hbase对表单数据实现增删改查遇到的问题

    1.无法解析jsp 原因:hbase中lib下jar包会与tomcat包冲突,需要删除与tomcat冲突的包 这是我删除的几个包 之后运行就没有问题了 2.对于Hbase修改的问题 在添加数据时,HB ...