吴恩达深度学习-2

本文详细介绍了卷积神经网络在计算机视觉领域的应用,包括图像识别中的边缘检测、卷积核设计、填充和步长的选择,以及三维卷积处理RGB图像。还探讨了池化层的作用和常见的网络模型如conv-pool-conv结构。
摘要由CSDN通过智能技术生成

CV领域的应用

1图像识别

2目标检测

3风格重绘

卷积运算寻找边缘

例:我要在这个6*6的图像上进行边缘检测,这时候我可以建立一个3*3的过滤器:

注意,这个图像是个灰度图,因为没有RGB三色通道。

这样的过滤器(卷积核)拿去求6*6的卷积。

得到的结果是这个4*4矩阵(图片):

计算左上角那个值的时候:

对应位置相乘然后加起来...

其他位置同理:

寻找边缘的原理:

这样就能找到垂直的边缘了,检测的是“变化”。

其他边缘检测器

比如soble和scharr filter,给中间的值赋予了更高的权重,研究的一个点就是卷积核的数值怎么取?

后来有学者认为可以把卷积核的值设置为参数,通过反向传播来学习获得它们的值。

填充

为什么使用填充?

1:使用卷积操作时,图会缩小:比如前文的6*6图片使用3*3去卷积,得到了4*4的结果(降维了)。

2:边角上的像素,在每次计算时只会被使用一次,但是图像中间的像素会被多次计算。这样可能会丢失边缘的信息。

所以在卷积之前,我们先对原图进行填充:把6*6填充为8*8,在通过3*3的卷积后得到的还是6*6。

通常在填充的时候,用0来填。

填充多少?

1.valid:不填(就会越变越小)

2.same:希望输出和输入一样大,即:p=(f-1)/2,通常过滤器f*f的f都是奇数,甚至大多选择3*3

卷积步长

例。步长=2:

结果图片的维度

输入图片n*n,卷积核f*f,填充p,步长s,则结果是【(n+2p-f)÷s+1】*【(n+2p-f)÷s+1】

这里要考虑步长取整的问题,因为不能这样计算:

如果(n+2p-f)÷s+1不是整数的话,那就向下取整(丢弃边缘?)

三维卷积

不再仅仅对灰度图像卷积,换成rgb图像

然后得到一个三维过滤器:

两者的通道数必须一致。

当你使用多个过滤器,你就可以检测不同的特征:

比如第一个测水平,第二个测垂直...最后输出图像的通道数(多少个过滤器)有时候也叫立方体的 深度,为了不和神经网络的深度混淆,这里用通道数来说。

CNN中的一层:过滤器就是参数W,后面可以加一个偏置(通过广播),再利用非线性函数ReLU就能得到输出的a了。

池化层

输入图片:

选用一个2*2的过滤器,步长设为2,保留最大的值,得到

保留最大值是因为他是这一部分区域内最显著的特征。这种不常用。

另一种采样方式:均值采样(池化?)

这层没有任何要学习的,因为它就是个固定的函数。

CNN示例

输入一个32*32*3的彩色图像,卷积核5*5*3,步长1,6个核,得到28*28*6的一个输出,然后使用最大值池化,参数设置为2*2,步长=2,那么结果是14*14*6(通道保持不变,池化不会改变特征数,也没有需要靠反向传播学习的参数)。

接下来输入卷积2层,使用卷积核5*5*6,步长1,16个核,得到10*10*16的结果,再输入f=2,s=2的池化层,得到5*5*16的结果。

最后放一个全连接层(fc),意味着每一个单元都和lay2输出的400(5*5*16)个单元相连,需要120+120*400个参数。(就是120个单元,一个单元里要输入400个特征,要计算400个权重,然后每个单元有一个偏置b)。再通过softmax进行分类预测(比如你要做手写数字识别)。

常见的网络模型:

conv-pool-conv-pool-fc-fc-fc-softmax。

今天就到这里吧,效率有点低,明天去图书馆继续看

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值