卷积神经网络吴恩达深度学习课程第四课驰

卷积神经网络一般应用于计算机视觉领域,由于有的时候图片的像素点很多,导致神经网络输入特征值的维数很多。

如下图所示,原图是一个6*6*1的矩阵,卷积核是一个3*3*1的矩阵,经过卷积后得到一个4*4*1的矩阵。

下图展示了垂直边缘检测的原理:

垂直边缘检测不仅可以检测垂直方向的边缘,还可以区分该边是从亮到暗(正边)还是从暗到亮(负边)。

除了之前卷积核中数字组合外还有很多,在做边缘检测的过程中最好将卷积核中的数字作为参数进行学习,这样得到的神经网络效果最好。

对于之前介绍的卷积方式,其存在两个缺陷:一是当一个6*6的图像经过3*3的卷积核卷积后会变成一个4*4的图像,这使图像经过卷积后变小了;二是原矩阵边缘处只被运算一次,而中心处会被运算多次,导致边缘处大部分信息被丢失了。

下图是两种卷积方式:Valid卷积是令padding为0;Same卷积是通过添加padding使卷积前和卷积后图像的大小相同。

引入padding后维数的公式为n+2p-f+1。

当步长为2时,每进行一次运算后都要向左或者下移动两个像素点,如下图。

下图是有步长的情况下维数的计算公式:

对三维图像进行卷积时,卷积核的通道数要与三维图像的通道数相等。当我们想对图像的多个边缘特征进行检测时,我们可以使用多个卷积核,这样卷积后生成图像的通道数为使用的卷积核的个数。

对于三维卷积具体运算的实例如下:如果使用的是下图3*3*3的卷积核,则一共有27个参数,进行卷积运算时让数值与相应的参数相乘后求和,这就是最后4*4*1矩阵中的一个值。

通过下图来说明卷积层所做的操作,但我们有一个6*6*3的图片输入时,我们想要提取图片的两个特征值,所以我们用了两个3*3*3的卷积核,从而生成了4*4*2的两个矩阵,然后对矩阵增添一个偏置量b,这样就相当于完成了完成了全连接神经网络的线性运算z=w*a+b。之后对得到的矩阵运用激活函数就可以完成该卷积层的运算。

下图是对各个变量以及参数的维数的总结

下图展示了使用一个卷积神经网络实现图片分类,在最后我们要将得到的矩阵展开成一个向量,然后输入到输出层的sigmoid函数或者softmax函数。对于卷积神经网络来说,通常图片会变小,通道数会增加。

下图是最大池化,在每个作用区域内选择值最大的一个放在输出的方格上。当输入有多层时,对每一层都采用相同的操作,这样输入和输出的层数是相同的。最大池化的功能就是只要在任何一个象限内提取到某个特征,它都会保留在最大池化的输出里。最大池化运算的实际作用就是,如果在过滤器中提取到某个特征,那么保留其最大值,如果没有提取的这个特征,那么其最大值也是很小的。

下图是平均池化,平均池化没有最大池化应用的广泛。

需要注意的是,池化过程中的参数都是静态的,不需要进行学习。并且,卷积过程中计算维数的公式也可以应用在池化过程中。池化层的主要作用是特征降维,提高模型的鲁棒性。

一个卷积神经网络通常包含卷积层、池化层和全连接层,一般将卷积层和池化层作为一层。下图就是一个卷积神经网络的示例:

与只使用全连接层相比,卷积层有两个优势:参数共享和稀疏连接。这样可以有效减少参数的数量。

下图是后面几节课的提纲:

下图是LeNet-5神经网络的结构:

下图是AlexNet神经网络的结构:

下图是VGG-16神经网络的结构:每经过一次卷积和池化后图像大小减半,通道数加倍。

下图是一个残差块,输入a[l]会传送到l+2层的线性部分之后,这样它会直接参加非线性部分的计算。

下图是一个残差神经网络的示例:对于一般的神经网络,当网络层数变多时,训练错误会先减少后增加,但是对于ResNet不会出现这种情况。

残差网络起作用的主要原因就是这些残差块学习恒等函数非常容易,能够保证网络的性能不会收到影响,很多时候甚至可以提高效率,或者说至少不会降低网络效率,因此创建类似残差网络可以提升网络性能。一般卷积神经网络的结构都是几个卷积层后面跟一个池化层,在网络的最后还有一个或多个全连接层。

下图中用对一个1*1*32的卷积对6*6*32的图像进行卷积操作,相当于对6*6个单元分别进行添加了一个全连接层。

正如下图所示,1*1卷积层可以减少或者增加图像的通道数,之前学习的池化层会减少图像的高度和宽度,但不会改变图像的通道数。

Inception模块的作用:代替人工确定卷积层中的卷积核大小或者确定是否需要创建卷积层和池化层。即不需要人为的决定使用哪个过滤器,是否需要池化层等,由网络自行决定这些参数,可以给网络添加所有可能值,将输出连接起来,网络自己学习它需要什么样的参数。因此可以使计算量大大减少,收敛更快。

由于使用Inception模块的计算量还是比较多的,上图中的网络是1.2亿次,所以可以在中间添加瓶颈层来减少运算量。下图的运算量为1240万次,约为上面运算量的十分之一。

下图就是一个Inception模块,一个Inception模块可能由很多不同的卷积核甚至池化层构成,它们都要采用same卷积方式,这样最后的输出才可以拼接在一起,为了避免池化层的通道数过多,在池化层后面还加上了一个1*1的卷积核来减少通道数。

下图是一个Inception神经网络,我们可以看到在下面的网络中有很多分支,这些分支的作用就是通过隐藏层来做出预测。它确保了即便是隐藏单元和中间层也参与了特征计算,它们也能预测图片的分类,它在Inception网络中起到了一种调整的效果,并且能够防止网络发生过拟合。

开发一个计算机视觉应用的常用工作流程:先选择一个你喜欢的架构,接着寻找一个开源实现,从GitHub下载下来,以此为基础开始构建。

如果我们可以要做一个下图这样的三分类神经网络,,我们可以使用开源的神经网络结构和初始权重,然后将网络的最后一层改为三分类的softmax层。在我们数据量比较少的情况下,我们可以选择将softmax层之前的层冰冻起来,即参数不变,这样只需要训练softmax层的参数。由于前面几层都冰冻起来了,即为静态参数,不需要训练,我们可以将softmax的输入数据计算出来,然后存入硬盘中,该数据是静态的,不会改变,所以只需要计算一次。这就可以使该深层网络简化为一个浅层网络。

如果我们拥有的数据更多,则网络需要冰冻的层数越少,但我们最好使用参考网络的权重作为初始权重,这样可以提高训练速度。

数据扩充(数据增强)可以弥补计算机视觉领域数据不足的问题。具体的数据扩充的方法如下:

镜像对称和随即裁剪

色彩转换

在神经网络中主要依靠两部分,第一部分是被标记的数据,第二部分使是手工工程。当数据量较少时,需要的手工工程比较多,需要对神经网络进行精心的设计。

对于分类定位问题,通常只有一个较大的物体在图片的中央,我们需要识别该物体的类别并标记物体的位置。而对象检测问题在一张图片中可能会有多个不同类别的对象,我们需要识别各个物体的类别并标记位置。具体如下图:

对于目标定位问题,我们通常要输出该物体的类别以及物体中心点的坐标和宽高。

该目标定位神经网络要输出8个值,分别是图中是否有目标对象(pc)、目标对象的坐标(bx、by)、目标对象的宽和高(bh、bw)和三种类别物体的可能性(c1、c2、c3)。当pc=1时,下面7个值是有效的;当pc=0时,下面7个值是无效的。所以这也就对应着两种代价函数的计算公式,这里代价函数使用的是平方差。

如果我们想要做人脸识别或者人体姿态检测,我们可以人为设置一些特征点,在训练集上标记处特征点的位置用来训练,这样在输出时就可以输出标记点的位置,要注意训练集上标记点要前后一致。

这里介绍的是基于滑动窗口的目标检测方法。训练集是类似于图像分类的,标记图片中是否有汽车。

具体检测时是选定一个检测窗口大小以及步长,然后从图片的左上角开始依次将检测窗口中的图像输入到网络中。这种检测方法存在问题:当选择的步长过大时,检测效果可能不是很好,但当步长过小时,需要的运算量会很大。

要实现的卷积的滑动窗口,我们首先要将之前神经网络中的全连接层转化为卷积层。具体如下图,通过设置相应的卷积核就可以实现这样的操作:

如果我们在选择的检测窗口大小是14*14*3,那我们训练集中的图片大小与检测窗口的大小相同。按照上一节的方法,假如我们输入的图片大小是16*16*3,选择的步长为2,则我们先从图片的左上角开始选择一个检测窗口,然后输入到网络中输出分类结果,然后右移两个单元,在重复上面的方法,然后再移动,这样的操作要重复4次。但这种方法会有很多重复的运算。所以我们采用卷积层代替全连接层,不再按检测窗口输入图片,而是将整个图片一起输入到网络中,这样重复的部分会共享结果,不会重复运算。就如下图中的第二个网络最后输出的是一个2*2*4的矩阵,每一个1*1*4的矩阵相当于之前网络的一个输出。

下图展示了滑动窗口在目标检测方面的问题,即不能准确识别目标的边界。

YOLO算法可以很好的解决图像边界的问题。这里我们将图片分成9个部分,当然分的越细检测的越精准,我们按对象中心点所在的方块决定对象所属的方块。对于每一个方块,我们都要输出8个值,分别是是否有物体、物体的坐标、物体的宽高和属于各个种类的概率。我们并不是将方块一个一个输入,而是对整个图像整体进行输入,这样会加快计算速度。

交并比函数用来评价对象检测算法表现是否良好。在下图中,红框是对象的实际边界,紫框是对象检测算法检测出来的边界,交并比函数的计算方法就是用两个边界交集的大小除以两个边界并集的大小。一般当交并比(IOU)>0.5时可以接受,如果交并比=1,则两个边界完美重合。

如下图,由于我们会先将图片划分称很多小网格,所以可能出现一个对象在很多网格中的情况,这样一个对象就会被检测多次,因为有多个网格会认为该对象在自己的区域内,同时输出多个对象边界,但在下图中实际上只有两个对象,所以我们的目标是输出两个对象边界。这里采用的方法就是非极大值抑制。

下图我们做的是汽车检测,只有汽车和非汽车两种可能,所以不需要c1、c2、c3。具体方法:先将pc值小于0.6的边框去除,然后选取剩余边框中pc值最大的边框输出,将与该边框交并比小于0.5的边框去除。然后循环选取剩余边框中pc值最大的,重复上述操作。如果是多目标检测,则最好对每一个目标独立进行上述过程。

之前算法存在一个问题:一个格子只能检测一个对象。所以这里我们引入了anchorbox,我们可以根据要检测对象的形状认为设定anchorbox的形状,anchorbox可以有多个。如下图,行人和汽车的中心点位于一个方格中,这是就要根据汽车和行人的形状设定两个anchorbox,此时神经网络的输出不再是8维的,而是16维,其中上面8维是anchorbox1的,下面8维是anchorbox2的。至于如何判定对象输入anchorbox1还是anchorbox2,通过检测出目标的形状于anchorbox的形状取交并比来判定。

anchorbox可以使网络更具有针对性。但是也存在一些问题:

1.如果你设定了两个anchorbox,但是一个网格中有三个对象,anchorbox将无法很好的解决。

2.如果两个相同的对象在同一个anchorbox中,anchorbox也无法很好的解决。

如果我们要做一个识别三个对象的目标检测网络,分别是行人、汽车和摩托车。我们将输入图像划分称3*3的网格。然后遍历每个网格进行目标检测。这里我们设定两个anchorbox,所以网络最后会输出一个3*3*2*8的矩阵。

由于我们选择的是两个anchorbox,所以每个网格都会有两个边框,注意:这里的边框并不一定要在一个网格内,也可以超出。然后若边框的pc值小于设定的阈值则删除,然后再根据非极大值抑制算法进行筛选,最后输出结果。

R-CNN算法,也被称为带区域的CNN算法。它将目标检测分为两个过程,首先根据图像分割选出候选区域,然后对候选区域进行分类。

下面使R-CNN的改进版:

吴恩达老师在视频开头展示了百度开发的人脸识别系统,该系统用到了人脸识别和活体检测技术。

下面解释一下人脸验证和人脸识别:

人脸验证做的是1:1的对比,可以简单理解为证明你就是你。就是我们先告诉人脸识别系统,我是张三,然后用来验证站在机器面前的“我”到底是不是张三。

人脸识别做的是1:N的对比,即系统采集了“我”的一张照片之后,从海量的人像数据库中找到与当前使用者人脸数据相符合的图像,并进行匹配,找出来“我是谁”。

对于人脸识别来说,最难的是要解决一次学习的问题,即仅仅通过一张照片或一个人脸样例就能去识别这个人。

如果我们想要用softmax网络做识别4个人的人脸识别系统,那softmax的输出值可能有5个,但是这样的系统存在问题,如果我们要再加入一个人,那我们需要让softmax单元有6个输出,此时需要重新训练网络。

所以使用softmax网络做人脸识别系统是不可行的,下图提供了一种新的方法,即学习一个d函数(similarityfunction)。该函数是一个差异度函数,函数的输入是两张图片,该函数可以计算出两个图片的差异度,当差异度小于等于给定的阈值时,我们认为两张图片是同一个人,大于时为不同的人。但我们训练好d函数之后,我们令要检测图片为函数输入img1,然后遍历人脸数据库中的图片作为函数输入img2,然后分别输出差异度的值,根据差异度的值和阈值来进行人脸识别。

我们定义一个网络,假设经过卷积层、池化层和全连接层后会输出一个128维的特征值f(x1),则该特征值就是输入图像x1的特征值,然后我们再将另一张图片x2输入进相同参数的网络,也输出一个128维的特征值f(x2),假如输出的特征值可以很好的表示输入图片,我们可以定义d函数为f(x1)和f(x2)之间的欧氏距离。当两张图片为同一个人时,d函数的输出值很小,当两张图片不为同一个人时,d函数的输出值很大。

所以我们该如何训练这个神经网络呢?Siamese网络学习的是编码函数f(x),即输出的是图片的特征向量。在训练的时候,我们定义的代价函数是两张图片特征向量的欧氏距离,我们训练的目的是使相同图片的代价函数小,不同图片的代价函数大,以此为依据进行反向传播。

要使用三元组损失函数,我们需要将三张图片作为一组,其中第一张图片为anchor,第二张图片是positive,表示和第一张图片为同一个人,第三张图片为negative,表示和第一张图片不为同一张函数。我们的目的是使d(A,P)-d(A,N)+α<=0,这里的α为一个超参数。

损失函数的定义如下:

但是这个网络也存在一些问题,就是我们在训练网络时最好使三元组中d(A,P)与d(A,N)接近,这样会使网络训练起来更有效率,因为如果d(A,P)与d(A,N)本身就相差很大的话,网络训练起来太轻松了,也不会有很好的效果。

除了上节课中介绍的使用三元组的方法进行人脸识别,也可以将人脸识别作为一个二分类问题,输出为1时表示是同一个人,输出为0时表示不是同一个人。这里采用一对完全相同的神经网络,输入一对图像,分别计算输入图像的特征向量,然后将两个特征向量输入到sigmoid单元中进行计算,具体计算公式见下图。

同时,对于这种二分类人脸识别算法还有一种技巧,假设图片x(i)是人脸数据库中的图片,我们可以不用每次计算人脸数据库中图片的特征值,而是预先计算好后作为静态数据存入数据库中,在识别时直接输入sigmoid单元即可。

下图是神经风格转换的两个例子,我们C来表示内容图像,用S来表示风格图像,用G来表示生成图像。

我们选取能够最好激活隐藏单元的图片块,从中可以发现,浅层神经网络层学习的是边缘一类比较小的特征,而深层神经网络层学习的图像区域会更大,学习的特征也会更加全面。

神经风格转换的输入需要两张照片,分别是内容图像和风格图像。所以代价函数也包含两个部分,一部分是内容代价,它用来衡量内容图片与生成图片之间的相似度,另一部分是风格代价,它用来衡量风格图片与生成图片之间的相似度,同时还有两个超参数。

具体神经风格转换算法的过程:先生成一个初始的生成图片,然后通过正向以及反向传播使代价函数变小。

对于内容代价,我们要先选择一个隐含层来进行计算,这里一般选择中间层;然后使用一个预训练的网络,比如VGG;之后通过比较内容图像第l层的激活值和生成图像第l层的激活值来计算内容代价,当内容图像和生成图像相似时,使内容代价比较小。这里可以使用L2范式。

要计算风格代价,首先要计算出风格矩阵,求出风格图像和生成图像的风格矩阵,然后如下图求解风格代价。

THE END
1.轻松掌握OBSStudio多窗口设置技巧迷你手游网OBS Studio 是一款功能强大且广泛使用的直播和视频录制软件,能够满足用户多样化的需求,在进行直播或录制时,有时我们需要同时展示多个窗口,以丰富画面内容和提升观众体验,下面就为大家详细介绍 OBS Studio 怎么设置同时多个窗口。 要实现 OBS Studio 的多个窗口同时展示,我们需要先明确自己的需求和场景,是要同时展示游戏窗http://m.minchanghome.net/sygonglue/173519.html
2.帮助中心您也可以点击“添加一张”同时使用多张充值卡充值。如下图所示: 3、点击“确认充值”按钮后,您会进入到充值成功页面,提示您充值成功,此时您便可以购买中国统一教育网为您提供的各种学习服务。如下图所示: 如何登陆知识爱问平台 一、点击下图中红框区域的“登录” 二、在弹出的登录框中输入您的用户名,密码,验证https://www.tongyi.com/index.php/help/search
3.信息技术融合语文课教学设计(精选16篇)通过上节课学习,同学们对键盘有一个大概的了解了吧?键盘是计算机重要的输入工具,通过键盘,我们可以将命令、符号、数字等输入电脑中,因此熟练操作键盘是计算机基本技能之一,这节课我们一起来进一步接触和利用键盘点明本节课的主题,激发学生学习计算机的兴趣。 https://www.hrrsj.com/jiaoxuesheji/yuwen/768712.html
4.www.kaineng.cn/kngsdwww.kaineng.cn/kngsd-3.shtml 11月23日,内蒙古自治区呼和浩特市马鬃山滑雪场正式“开板”运营,吸引市民游客纷至沓来。 图为游客在马鬃山滑雪场体验滑雪。 丁根厚摄(影像中国) 凭借歼-20的隐形能力、超音速巡航性能和巨大的作战半径,中国空军将有能力穿透先进的防空体系,消灭美制E-3等远程预警机。https://www.kaineng.cn/kngsd-3.shtml
5.小学信息技术教案(精选20篇)课前准备: 1.教材 2.多媒体网络教室 教学过程: 一、导入 问:基准键是哪几个?分别对应哪个手指? 打字的正确姿势是什么呢,同学们做一做,复习巩固打字的姿势。 今天我们继续进行指法练习,不过我们今天继续学习用《金山打字通》软件来练习,熟练了以后,我们还可以在里面玩游戏哦! https://m.oh100.com/peixun/zhongxiaoxue/347104.html
6.新疆干部培训平台该平台能够同时打开多个页面。新疆干部在线学习平台显示多个课程播放页面的原因是该平台能够同时打开多个页面,是支持多开功能的,帮助工作者快速学习。 新疆干部网络学院怎么得分 不能快速刷分,只能慢慢看就会得分了。 为用好用足新疆干部网络学院平台,近期,哈密市分批对85名新疆干部网络学院管理员进行了培训,进一步提升区县https://www.govjiaoyu.cn/peixun/1454.html
7.中职在线教育平台官网入口,怎么注册课程的教学视频文件具有“防拖拽和防窗口切换”功能,即视频播放的时候无法进行快进播放,打开章节学习的时候不能再打开其它网页,否则视频播放停止。同时在章节视频中可以插入测验题,作答正确,才能继续学习。 4.1.3.6证书发放功能 教师可以将学生的学习成绩导出,提取成绩达标的学生ID,并为其发放证书,学生可以将证书下载并https://www.zhijiao.cn/news/detail/77842
8.www.qingyi.cn/mokoi12“我们发现在购物平台有数个用户账号产生买后必退的反常现象。而且经公司查验,相关退回的货物全部被鉴别为假货。”某电商平台工作人员至上海市公安局杨浦分局四平路派出所报案,称2023年8月以来,该公司网店平台在受理用户退货申请并退款后,发现退货的运动鞋均被调包成了外部渠道购买的高仿假鞋。 http://www.qingyi.cn/mokoi12_15/204743.html
9.卷积神经网络——吴恩达深度学习课程笔记(四)在卷积神经网络中,为了提取多个不同的特征模式,每一个卷积层通常会有多个卷积核,每个卷积核和图片进行卷积运算后得到的结果叫做特征图,各个卷积核中的参数在模型中进行学习。 3,池化运算 池化运算是卷积神经网络的另一种重要结构。池化运算的作用主要是下采样,或者简单地说,是为了对图片降维,以减少参数的个数。池化https://cloud.tencent.com/developer/article/1664694
10.www.99lace.com/aplstart/2024/12/14/76660.html产国美欧在线播放 407.84MB 136好评 丝袜美臀日日干 外围女口爆吞精 成人节目现场拍摄视频怎么拍 240.23MB 898好评 美国州肥毛片 精品久久久久免费观看 抽插性感美女 145.77MB 59好评 王者荣耀黄色化 国产又长又粗又长 骚穴被干 66.97MB 黄瑟瑟瑟白丝视屏视屏 http://www.99lace.com/aplstart/2024/12/14/76660.html
11.幼儿园办园行为督导评估汇报(通用17篇)家园互动,做好家长工作。教育不单单是学校教育,家长们的支持和帮助也是很重要的。因此,我常常利用家长园地、家园联系手册、家长活动等及时向家长反馈孩子在园的学习、生活情况,宣传科学育儿的知识。同时,孩子们在学校中碰到了什么难题,我们总是第一时间与家长取得联系,家园一致共同教育。 https://www.ruiwen.com/huibao/6372209.html
12.年度工作总结汇总14篇总结就是对一个时期的学习、工作或其完成情况进行一次全面系统的回顾和分析的书面材料,它可以提升我们发现问题的能力,不如静下心来好好写写总结吧。那么总结要注意有什么内容呢?下面是小编为大家整理的年度工作总结,仅供参考,希望能够帮助到大家。 年度工作总结 篇1 https://www.gdyjs.com/shiyongwen/gongzuozongjie/587408.html
13.www.lwlocks.com/mokaka13069.html同时,好医生康复新液还是疗效与品质兼备的独家溶液剂型——原料方面,好医生集团专门建立美洲大蠊养殖基地(通过了国家GAP认证),对美洲大蠊进行高标准化养殖;生产方面,好医生集团打造大输液生产标准的全自动、全封闭、无菌生产线。上市二十余年以来,好医生康复新液未出现严重不良反应报告,是被全国4000多家二甲及以上的https://www.lwlocks.com/mokaka13069.html
14.网络游戏主题班会(通用11篇)2、解疑答惑。学习上遇到问题,旁边又没有人会。只要能上网,就可以在网上搜索答案,或是网上提问。当然,你也可以通过即时交流的工具QQ进行网上咨询。 3、相互交流。交流聊天是排解不良情绪的很好方式。当今中学生承受着很大的学习压力,网络给了孩子一个敞开心扉交流的窗口,在与同龄人的交流中、在向专业网站老师的咨询https://yjbys.com/cehuashu/zhutibanhui/2072898.html
15.2024教育环境调查报告十二篇初中、小学阶段三分之一强的学生以___语为主或___汉双语的形式进行学习,这表明这部分学生学习汉语的时间就会缩短,当然学习效果也会难于保障,然而内地高中班却全部以汉语来进行教学和考核,这将不可避免地给这部分___班学生的学习带来困难。 2、学生开设英语课时间及学科学习难度感受情况。由于条件的限制,___州https://www.1566.cn/baogao/diaocha/1703491600278.html
16.吴恩达深度学习课程第四课—卷积神经网络(ConvolutionalNeural接下来,如果我们想要同时检测垂直边缘、水平边缘、甚至45°边缘……也就是同时采用多个滤波器。如下图所示,我们用两个不同的滤波器来分别检测RGB图像的不同的特征,将分别得到的结果叠在一起。所以,输出结果的通道数等于检测特征数。 5.卷积网络的层(One layer of a convolutional network) https://blog.csdn.net/LOG_IN_ME/article/details/122518784