斯坦福大学-李菲菲,深度学习14-15课时听课笔记

第十四课时: 

卷积的时候,假设是F*F的滤波器在N*N的图片上滑动,可以通过(N-F)/stride+1是否是整数来判断,选取的stride是否可行。

通过填补(pad)可以让卷积后的图像和原来的图像大小一样,而不用考虑图像大小。填补的圈数是(F-1)/2。

CNN处理的是一些数据块,在这之间有很多层,一系列的层将输入数据变换为输出数据,所以完成操作的中间量不仅是NN时候讲的那些向量,而是立体结构,有宽,高和深度,在整个计算过程中要保持这些三维特征。这里的深度指的是一个数据体的第三个维度。

我们得到一些数据,作为网络的输入,在CNN中我们有这样的滤波器,假设现在我们只有一个滤波器,这些滤波器空间维度很小,我们用这个滤波器来和输入图像做卷积运算。这里的卷积运算,意思是说滤波器要在这个图像的空域范围内全部位置滑动,而且,在每一个位置滤波器和图像做点乘。滤波器表示为w,把这些滤波器当做你的一堆w,然后你在图像范围内滑动这个滤波器,随着我们滑动滤波器,还要计算w的转置和x的乘积加上b。这里的x是输入数据的一小块区域,大小为滤波器的大小。当滤波器在滑动的时候,最后得到的整个结果,我们叫做激活图。激活图给出了在每个空间位置处滤波器的反应。

Polling 层,全连接层。


最后的两列小圆球就是两个全连接层,在最后一层卷积结束后,进行了最后一次池化,输出了20个12*12的图像,然后通过了一个全连接层变成了1*100的向量。

这是怎么做到的呢,其实就是有20*100个12*12的卷积核卷积出来的,对于输入的每一张图,用了一个和图像一样大小的核卷积,这样整幅图就变成了一个数了,如果厚度是20就是那20个核卷积完了之后相加求和。这样就能把一张图高度浓缩成一个数了。

全连接的目的是什么呢?因为传统的网络我们的输出都是分类,也就是几个类别的概率甚至就是一个数--类别号,那么全连接层就是高度提纯的特征了,方便交给最后的分类器或者回归。

但是全连接的参数实在是太多了,你想这张图里就有20*12*12*100个参数,前面随便一层卷积,假设卷积核是7*7的,厚度是64,那也才7*7*64,所以现在的趋势是尽量避免全连接,目前主流的一个方法是全局平均值。

也就是最后那一层的featuremap(最后一层卷积的输出结果),直接求平均值。有多少种分类就训练多少层,这十个数字就是对应的概率或者叫置信度。

第十五课时:

我们每次做池化层时都扔掉了一小部分信息

在全连接层之前会有深度减少的地方

输入的数据中,边缘的数据可能和中心不太一样

我们不会为滤波器进行特定的初始化

池化层没有参数,只有卷积层有参数

规范化层是一个进行规范化的特殊的层,在2012年之后就不再用到了

当在做反向传播的时候一定要注意,因为参数是共享的,当你在用滤波器做卷积时,所有的神经元都共享参数。你必须小心,所有的滤波器的梯度都汇总到一个权重。

ZFNet

基于AlexNet构建conv1的滤波器大小、步长比AlexNet更小,对原始图像做更密集的计算。conv3、conv4、conv5相比AlexNet有更多的过滤器

VGGNET

VGG并没有在疯狂的架构选择(例如你如何设定过滤器个数,尺寸大小,过滤器的大小等参数)上做非常多的工作,VGG的关键点在于在这个操作你重复了多少次(多少层),最后同样的这组参数设定的网络结构重复层叠至16层

VGG网络有一个非常简单的线性结构

GoogLeNet

 

最关键的创新点是引入了inception模块,但是它仅仅是inception模块的序列,一个接一个进行排列,他们使用的是inception层而不是卷积层,随后他们使用average pool而非全连接层,所以他们省去了大量的参数,他致力于同时减少对内存和计算量的需求。

必须小心处理增加层数,如果仅仅是简单的去做,他将没有什么用处

ResNet

   https://www.jianshu.com/p/f71ba99157c7

   大致的工作原理是我们有plain net,然后选取一张图片,接着有conv,pool,然后继续conv,conv,conv,conv.在ResNet中,在这些有趣的跳跃连接中,除了这种严格将一个容量转移到下一个容量的传递之外,我们还有这些连接。你可以将很多的信息打包进一个小的容器里。


在一个普通的神经网络中,你有一些函数H(x),想做一些计算,你要转换映射后的值,所以你有一个权重层,你有神经元映射后的值,你要将其转换,等等。在残差网络中,你的输入不是去计算你的变换F(x),而是计算过程中需要加上输入的残差。这个2层的神经网络需要计算的是顶部输入的原始表示,而不是一种与之前x完全没关系的表示,这个就是resent模型。

这一层基本上是由默认的恒等运算,这些建立在顶部的恒等上,只是让他更好的优化。

 



全部评论

相关推荐

头像
01-12 14:44
已编辑
百度_高级研发工程师
今天看到了某平台攻击牛友的帖子,段段今天打算为牛友们说句话,我们的努力到底有没有意义。 (原文复述:感觉牛客就是当年那群做题区毕业了开始找工作还收不住那股味,颇有一种从年级第一掉到年纪第二后抱怨考不上大学的区味)  粗鄙,无礼,傲慢,攻击,在这里我没有看到任何有用的分析,我只看到了屁股决定脑袋的攻击,我只看到了嫉妒和眼红。一、去医院不看病你去逛街吗 去医院你不去看病你去逛街吗?去加油站不加油你去抽烟吗?去部队你不训练战斗技能你去养老吗?来牛客你不努力求职你来干什么来了。 牛客本身就是个求职平台,大家分享有用的知识,分享面经,分享offer,分享求职经验的,来牛客不就干这个来了吗?有什么问题吗?...
给个好点的工作吧啊啊...:不知道我看的是不是和博主同样的帖子,我记得原帖是表达的是有些匿名老是发几十万的offer侮辱价,然后就有牛友觉得凡尔赛了导致后面的评论有些偏激。我觉得这个最近闫学晶那个事情有点类似了,她说他儿子一年只能赚七八十万家庭生活都难以为继,不说普通家庭,多少大厂的程序员都赚不到这个数字,大部分家庭看到这种发言肯定会难受的一p,生活的担子又这么重,人都是需要发泄情绪的,互联网就是个极佳的载体,所以很多人直接就喷她了,人在情绪发泄的时候是不思考的,否则就不叫发泄了。然后还有一个点,段哥假定了这些喷的人全都是“躺平的”,这点可能有失偏颇,很多人一直在努力,但是始终缺乏天时地利人和的某一个条件,这点相信段哥找工作的过程中深有体会。绝大部分人都以结果的失败去否认了努力的全过程,可能只是别人努力的方向错了。就像一次面试,可能你准备了很久,结果面试官就是比较奇葩,一直问没有学习到的领域或知识点,然后有人凭一个挂掉的结果就直接给你扣了一个“躺平”的帽子,觉得挂掉是你不够努力,您心里滋味如何?再说点近点的,我也是od,多少同事深夜无偿加班,涨过一分工资吗?多少外包的技术大牛因为学历被困在外包,连od都进不去,这些人难道不努力吗?只是限制与生活、公司制度等等之类的无奈罢了。说到努力,又想到李家琦79元眉笔事件,这么多年有没有认真工作?有没有涨工资?他嘴里说出来是那么的理所当然,打工牛马都知道“任劳任怨”,“认真工作”真能涨工资?只干活不发声就等着被摘果子吧,企业里永远都是“汇报杰出者”升的最快(当然不是所有企业),这种事情相信段哥包括我甚至大部分od都经历过。最近辞职回老家,和老爸散步每次他都会感慨街上的蔬菜小贩多不容易,他们晚上就窝在那种三轮小货车的驾驶室里,腿都伸不直,我们这里晚上零下了,只盖一条薄毛毯,始终舍不得住我们镇上几十块的酒店,因为一车蔬菜就赚几百块顶多一千而且要卖好久,这样的例子还有太多了。这种芸芸众生可能辛苦了一天之后,打开手机看到网上的凡尔赛发言,跟风喷了几句发泄情绪,我觉得这种人不应该扣上“躺平”的帽子。我觉得大部分正常人都是努力的,或者曾经努力过,但世界上有太多努力解决不了的无奈了,甚至说你都没有那个努力的机会,不过正因如此,才显得坚持不懈的努力奋斗之人的难得可贵,认清生活的真相后仍然热爱生活,敢于直面现实的淋漓。
段段STEADY觉醒与突...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务