CS231N-5-Convolutional Neural Networks
来源:互联网 发布:河南省公安厅网络 编辑:程序博客网 时间:2024/05/01 19:55
Preface
The title of the class.
上节课是神经网络的基本框架,一层层layer的堆积,每层都是简单的linear+RELU,这显然是不够的。在图像处理上,convolutional layer比较管用。
现在我们先介绍CNN的历史。忽略远古时期,直接看两篇标志性的论文。
1998年LeCun发表了bp算法在zipcode recognization上的应用。由于硬件资源和数据集,只是在zipcode上。不过算法本身已经成熟。
LeNet
2012年Alex发表了Imagenet的论文,标志着大数据GPU的CNN时代。simiar to Lecun, just scaled. with huge amounts of images by GPU.
AlexNet
CV的应用
注意CV的应用也是分级别的,有难易的。参照face++研究员所说,最简单的是classfication对象是整张照片,顺便实现retrieval图片检索;稍难的是detection对象是region,检测出照片中的主要物体;更难的是segmentation对象是pixel,对每个像素有个归属;最难的好像有几个版本,一是sequence对象是视频,建立在detection基础上动态一帧帧地检测物体的运动,从而实现自动驾驶,二是language对象是region和自然语言,建立在detection和NLP/RNN基础上,合成一句caption,三是生成图片,如GAN,要求逼真清晰,可以仿照真人的real-time表情合成表情包(iphone X),或者按照要求生成一段视频。
Process
正如之前说的,CS231N不数学,只是让你有个general idea,所以讲的比较粗略。
CNN是由若干层convolutional layer(with RELU/pooling)配上最后一层——全连接层fully connected(即为Wx+b得出最终的概率向量)。于是重点就是卷积层。
这是卷积层的构造。卷积的定义这里淡化了。filter是个depth喝Image相同的卷积核,和Image作卷积,通过slide over the spatial locations遍历整张图片(和一小块size相同的区域作卷积),得到一层薄薄的activation map。
于是一个filter形成一个平面activation map,多个filter就得到activation maps.
于是一个简单的CNN就搭好了。Image变为不同size的,根据filter的数量。
而CNN由浅入深的每一层提取的feature是从简单到复杂, low-level to high-level
Convolutional layer
有很多参数。
首先是stride步长。这是filter扫过image是遍历的间距,公式很容易推导。有时为了更好地处理edge,人为添加zero padding,这样就完整了。
简单的练习。每个filter是个3d的参数。然后加上Bias。
卷积层的所有参数都已列出。filter的体积和个数,bias,stride,pad。
Pooling layer
pooling是一种downsampling技术,为了保留关键值,也为了减少参数(更快,减少过拟合)。通常是Max pooling,至于average pooling被弃用,之前说过了。pooling的参数就是stride和filter,通常是2*2.
Fully Connected Layer
最后一层,输出概率向量。所有的架构都已清晰标明。
- CS231N-5-Convolutional Neural Networks
- CS231n: Convolutional Neural Networks for Visual Recognition
- CS231n: Convolutional Neural Networks for Visual Recognition
- 20170316#cs231n#8.Convolutional Neural Networks
- 【CS231n笔记】07 Convolutional Neural Networks
- CS231n Convolutional Neural Networks for Visual Recognition
- CS231n Convolutional Neural Networks for Visual Recognition
- CS231n Convolutional Neural Networks for Visual Recognition
- 20170325#cs231n#10.Understanding and Visualizing Convolutional Neural Networks
- CS231n系列课程Lecture 7: Convolutional Neural Networks
- CS231n系列课程Lecture9: Understanding and Visualizing Convolutional Neural Networks
- CS231N-4-Neural Networks
- Convolutional Neural Networks for Visual Recognition 5
- Convolutional Neural Networks
- Convolutional Neural Networks (LeNet)
- Convolutional Neural Networks Posts
- Convolutional neural networks
- Convolutional Neural Networks学习
- 线性表的两种实现
- 【数据结构练习】1.最大子列问题
- vim配置
- Round四舍五入用法举例
- Android应用opencv编译出错
- CS231N-5-Convolutional Neural Networks
- Oracle PL/SQL进阶编程(第一弹:子程序结构)
- VS2013用MFC操作64位access 2013
- 互联网创造价值吗?
- zabbix触发器介绍
- 主线程为何不会因为Looper.loop()方法阻塞
- Pyinstaller使用
- 安卓开发镜像烧写进开发板fastboot烧写方式
- POJ 1509 后缀自动机