cs231n学习笔记——五.CNN 卷积神经网络

5.1 卷积神经网络简介

要介绍CNN,TA选择从神经网络的历史开讲,从1957年的单层感知器讲起
cs231n学习笔记——五.CNN 卷积神经网络_第1张图片
到1960年的多层感知器
cs231n学习笔记——五.CNN 卷积神经网络_第2张图片
到1986年才明确出现反向传播的方法,然而这也只是个理论可行的方法,在实际应用中还是被打烂了头
cs231n学习笔记——五.CNN 卷积神经网络_第3张图片
而直到2006年,深层网络才被验证是初步可训练和使用的,但是也很受限制,需要谨慎的进行初始化,当时是采用受限玻尔兹曼机进行预训练
cs231n学习笔记——五.CNN 卷积神经网络_第4张图片
而直到2012年Hinton和他的学生Alex才使用DNN,分别在语音识别和图像识别领域做出了很惊艳的成果,而图像领域的成果就是早期的CNN,其极大的降低了图像分类的误差并维持了很不错的分类速度
cs231n学习笔记——五.CNN 卷积神经网络_第5张图片
卷积在图像上的应用还是追溯到可怜的脑袋插电猫猫
cs231n学习笔记——五.CNN 卷积神经网络_第6张图片
他们根据大脑中电信号找到了和视觉信息相关的皮层
cs231n学习笔记——五.CNN 卷积神经网络_第7张图片
在此基础上,还发现这部分是存在层级关系的。实验发现视觉刺激会对视觉链路中不同层产生不同的刺激,比如视觉信息会对初级皮层中的视网膜感受神经节造成中心辐射式的刺激,而其他的细胞可能对不同朝向的光以及视觉中目标的边缘产生反应,不同的细胞面向视觉信息中不同的特征产生反应,而这种将视觉信息解耦再在大脑中重组的过程,就成为了卷积神经网络诞生的思路基础
cs231n学习笔记——五.CNN 卷积神经网络_第8张图片
然后1980年就有日本老哥根据这种特点提出一种s-c层交替的网络结构,这种简单simple-复杂complex节点交替的结构显然要比全复杂节点构成的网络更好训练,同时也保证了一定的模型效果
cs231n学习笔记——五.CNN 卷积神经网络_第9张图片
然后就有了1998年的LeNet
cs231n学习笔记——五.CNN 卷积神经网络_第10张图片
然后有了2012年的AlexNet,结构上没有太大区别,只是节点更多,层数更深,从而可以解决复杂的图像分类问题
cs231n学习笔记——五.CNN 卷积神经网络_第11张图片
然后现在CNN就到处用了,包括图像的分类,重建,检测,分割等等
cs231n学习笔记——五.CNN 卷积神经网络_第12张图片cs231n学习笔记——五.CNN 卷积神经网络_第13张图片
还被应用到了自动驾驶、人脸识别、视频分类、姿态检测、玩小游戏啥的,太多了,后面懒得截图了
cs231n学习笔记——五.CNN 卷积神经网络_第14张图片
cs231n学习笔记——五.CNN 卷积神经网络_第15张图片
cs231n学习笔记——五.CNN 卷积神经网络_第16张图片

5.2 卷积神经网络的结构

先从全连接层讲起,最简单神经网络的连接方式就是全连接,比如对于一个32323的图像输入,我们会把他展开成30721的数据输入,根据权重计算之后,输出就是一个单值,但事实上这样就失去了像素数据之间的空间关系,我们又不是不想保留空间关系,我们是木得办法,所以卷积层的出现提出了一种解决思路
cs231n学习笔记——五.CNN 卷积神经网络_第17张图片
卷积层是用一个过滤器filter作为权重,filter的最后维度和图像的最后维度相同,则可以将图像和filter进行卷积计算,即滑动点乘
cs231n学习笔记——五.CNN 卷积神经网络_第18张图片
然后用同样大小不同数值的filter分别计算出新的结果,这些结果就是卷积层对原始输入的初步计算
cs231n学习笔记——五.CNN 卷积神经网络_第19张图片
然后每层加上一个激活神经元(比如Relu),多叠几层,就是个CNN了
cs231n学习笔记——五.CNN 卷积神经网络_第20张图片
以VGG举例,可能浅层网络理解的是一些低阶语义,比如边缘之类的,而高层就在学习一些复杂语义,比如拐角或者斑点之类的(不知道在学啥了),总之从浅层到深层相当于从简单到复杂的特征序列
cs231n学习笔记——五.CNN 卷积神经网络_第21张图片
然后又拿个车尾灯的多层卷积举例子,可以看到蓝色层已经有点常规理解的车灯特征的感觉了
cs231n学习笔记——五.CNN 卷积神经网络_第22张图片
CNN的卷积层&激活层&池化层结构如下,不过说后面讲池化,行吧你是TA你说了算
cs231n学习笔记——五.CNN 卷积神经网络_第23张图片
然后讲快乐的卷积计算,嘛很熟了就随便截图一张,这张应该是计算一个same的卷积,做的0填充
cs231n学习笔记——五.CNN 卷积神经网络_第24张图片
事实上不进行填充的话原始的图像输入在深层网络中会收缩的很快,而这会导致信息的损失
cs231n学习笔记——五.CNN 卷积神经网络_第25张图片
嘛然后就是卷积层的总结了
cs231n学习笔记——五.CNN 卷积神经网络_第26张图片
同时给出了一些常见的超参数组
cs231n学习笔记——五.CNN 卷积神经网络_第27张图片
然后给了caffee中实际设计时候的一个对应
cs231n学习笔记——五.CNN 卷积神经网络_第28张图片
嘛这个部分不错,讲了一下其实不同层的卷积计算在面对用一个空间位置进行计算的时候就类似与不同层次的神经元面对同一个视觉输入的不同层次刺激变化,而这就是卷积层区别于全连接层的核心
cs231n学习笔记——五.CNN 卷积神经网络_第29张图片
哈!讲到池化层啦,池化层主要是为了将之前层生成的表示缩小,越小需要训练的参数越少,但是这种缩小和之前卷积层不填充导致的缩小是不同的,卷积层的缩小伴随的是边缘信息的损失,而池化层的缩小更相当于数据压缩,这种压缩面对完整的信息矩阵的每一个位置是同步的
cs231n学习笔记——五.CNN 卷积神经网络_第30张图片
比如最常见的Max Pooling,在2
2的区域里面取最大值作为降采样结果,相当于认为最大值是临近区域的最关键信息
cs231n学习笔记——五.CNN 卷积神经网络_第31张图片
不得不说,有个最大池化部分的弹幕给我看乐了,虽然语义结构上不太对,但是意会到想表达的意思了hhhh
在这里插入图片描述
然后同样给出了一些常见设置
cs231n学习笔记——五.CNN 卷积神经网络_第32张图片
一堆絮絮叨叨的还原分析就不说了,直接总结!下课!
cs231n学习笔记——五.CNN 卷积神经网络_第33张图片

你可能感兴趣的:(cs231n,卷积神经网络)