cs231n spring 2017 lecture5 Convolutional Neural Networks听课笔记
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听课笔记的更多相关文章
- cs231n spring 2017 lecture10 Recurrent Neural Networks 听课笔记
(没太听明白,下次重新听一遍) 1. Recurrent Neural Networks
- cs231n spring 2017 lecture5 Convolutional Neural Networks
1. 之前课程里,一个32*32*3的图像被展成3072*1的向量,左乘大小为10*3072的权重矩阵W,可以得到一个10*1的得分,分别对应10类标签. 在Convolution Layer里,图像 ...
- cs231n spring 2017 lecture8 Deep Learning Networks 听课笔记
1. CPU vs. GPU: CPU核心少(几个),更擅长串行任务.GPU有很多核心(几千个),每一个核都弱,有自己的内存(几个G),很适合并行任务.GPU最典型的应用是矩阵运算. GPU编程:1) ...
- cs231n spring 2017 lecture10 Recurrent Neural Networks
(没太听明白,下次重新听一遍) 1. Recurrent Neural Networks
- cs231n spring 2017 lecture12 Visualizing and Understanding 听课笔记
这一节课很零碎. 1. 神经网络到底在干嘛? 浅层的是具体的特征(比如边.角.色块等),高层的更抽象,最后的全连接层是把图片编码成一维向量然后和每一类标签作比较.如果直接把图片和标签做像素级的最近领域 ...
- cs231n spring 2017 lecture7 Training Neural Networks II 听课笔记
1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...
- cs231n spring 2017 lecture6 Training Neural Networks I 听课笔记
1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法 ...
- cs231n spring 2017 lecture7 Training Neural Networks II
1. 优化: 1.1 随机梯度下降法(Stochasitc Gradient Decent, SGD)的问题: 1)对于condition number(Hessian矩阵最大和最小的奇异值的比值)很 ...
- cs231n spring 2017 lecture6 Training Neural Networks I
1. 激活函数: 1)Sigmoid,σ(x)=1/(1+e-x).把输出压缩在(0,1)之间.几个问题:(a)x比较大或者比较小(比如10,-10),sigmoid的曲线很平缓,导数为0,在用链式法 ...
随机推荐
- Flink升级到1.4版本遇到的坑
Flink 1.4没出来以前,一直使用Flink 1.3.2,感觉还算稳定,最近将运行环境升级到1.4,遇到了一些坑: 1.需要将可运行程序,基于1.4.0重新编译一次 2.对比了一下flink-co ...
- 【java】java.lang.Math:public static long round(double a)和public static int round(float a)
package math; public class TestMath_round { public static void main(String[] args) { System.out.prin ...
- TCP/IP----基本知识
就以这篇文章为起点,开始自己的学习计算机网络之路.这些仅是我个人之言,如有差错,希望读者能够逐一指出,在下不胜感激. 首先,我们需要知道一些关于网络的基本知识. 网络中的关系大多为拓扑结构.那么,何为 ...
- 【十八】php文件下载源码
index.php <!DOCTYPE html> <html> <head> <title></title> <meta chars ...
- iOS 从其他程序切换到自己App,屏幕闪一下问题
这个问题也是个奇葩的bug,如果你从出现闪的界面去找问题,那就入坑了.这种问题第一反应应该去搜索一下,是否设置了隐藏全局导航条返回按钮右边的title.有时候我们不想让导航控制器push的时候在下个界 ...
- java.util.ConcurrentHashMap (JDK 1.8)
1.1 java.util.ConcurrentHashMap继承结构 ConcurrentHashMap和HashMap的实现有很大的相似性,建议先看HashMap源码,再来理解Concurrent ...
- 回顾2017系列篇(一):最佳的11篇UI/UX设计文章
2017已经接近尾声,在这一年中,设计领域发生了诸多变化.也是时候对2017年做一个总结,本文主要是从2017设计文章入手,列出了个人认为2017设计行业里最重要的UI/UX文章的前11名,供大家参考 ...
- 第四节 mount /who / mkdir /rmdir /rm /cp /mv /touch /cat /tac/head /tail /more /less / chmod /chown /umask /chattr /lsattr /history /echo
***Linux下的文件类型如下: 9 8 7 6 5 4 3 2 1 0- r w x r - x r - x 第9位表示文件类型,可以为p.d.l.s.c.b和-:p表示命名管道文件 -pipe ...
- 手机端rem如何适配_rem详解及使用方法2
作为一个前端开发人员,我们的任务是将UI设计师的图稿运用计算机语言呈现在用户面前.而现在的设备大小尺寸不一,近年来智能手机的普及更是让网页的用户大部分来源与手机,所以让不同大小的移动端屏幕都能较好的还 ...
- C语言学生管理系统(增进版)
在原版上进行改进,主要改进的功能有. 1.利用atof:将字符串转换为浮点型: 利用atoi:将字符串转换为整型: 原文地址:http://www.cnblogs.com/sddai/p/577412 ...