深度学习——卷积神经网络(CNN)

本文总结了卷积神经网络(CNN)的基本框架,包括图像拉伸、卷积核与滤波器、特征图生成、池化层的应用、LeNet示例,以及参数学习过程。强调了CNN在图像识别中的核心步骤和历史演进,以及池化层的初衷与现代模型的变化。
摘要由CSDN通过智能技术生成

最近一直觉得对于卷积神经网络的整个流程不太清楚,所以又重新学习一遍后在这里做一个总结,让自己条理更清楚点。主要是看了李宏毅的课程以及邱锡鹏的《神经网络于深度学习》后结合来写的。emmm,里面的一些概念可能没有特别完整的说明,多为文字叙说,大家可以去看书。

总体框架:

        我们知道CNN主要运用于图像处理方面,所以其实CNN最主要的任务就是要将一个三维图像拉伸成一个一维向量,方便进行分类识别。整体黑箱图应如下:

        演变过程:

        前面学习知道最开始是使用前馈全连接网络来进行训练的。但是因为全连接会导致参数非常多,不仅计算量大,同时还容易导致过拟合(overfitting),这时候就想到要降低一点模型的弹性,采用一部分一部分(pattern)的看,这时候就出现了卷积核(kernel),卷积核里面的值就是我们的权重(weight)。而卷积核的运用实际上我们就可以将其看作是一个滤波器(filter)。通过卷积核在图像上遍历过后,我们就可以得到该输入图像的一个特征图(feature map),里面最大值对应的原图像的部分,其实就是我们要找的目标所在。

        后续发展过程中,发现尽管使用了卷积层,但还是存在参数过多的问题。这时候根据图像本身的特性(我们对图像进行一个按比例的缩小,不影响我们对整个图像的识别,只是清晰度低了点,类比超清和标清hhh~),提出了池化层(Pooling Layer)。池化层主要作用就是按一定比例缩小输入图像(也可以理解为在采样)。池化操作就是比如将所有的偶数像素拿掉,得到的图像就变为了原来图像的1/4。在上述的卷积(convolution)操作之后,可以再对其进行一个池化操作,降图像进一步缩小,但是channel不变。所以一般会几个卷积层后加一个池化层。但是会导致图像细节的丢失,它最开始出来还是为了减少计算量。如果算力足够可以不用。目前的前沿模型上其实也不咋用池化层了,毕竟还是会损失一定的精度。相关内容——“邱,P119”

步骤:

        整个卷积神经网络模型的步骤应该是:(以LeNet为例)

        1.输入图像经过crop/wrap操作(剪切合并操作)后,将不同大小的图像统一为指定格式图像后输入。

        2.经过卷积操作,得到特征图。

        3.经过池化层,缩小特征图。

        4.进入全连接层,通过全连接层输出成一维向量。(现在慢慢的不再用全连接层,全部使用卷积层了,比如用一个1x1的卷积核对应的卷积层来取代全连接层,有兴趣可以去看看相关论文)

        5.Softmax进行分类(这一步我还没搞懂hhh)

遇到问题:

        对于参数学习过程:

        其实卷积操作的参数学习过程跟前面学习的是一样的。我们的weight就是卷积核里面的值,并且卷积层在输出时,也会有一个传入激活函数的过程,在这之前就会加上偏置b。而参数学习就是求偏导,卷积操作中的求偏导还是利用反向传播来求,具体见书P120。

结语:

        太难了太难了,求大佬带带我!如有侵权,立即删除!

        

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值