卷积神经网络小白笔记

对于图像检测、分类和识别等计算机视觉任务,卷积神经网络表现优异。

卷积神经网络是由用于特征提取的卷积层和用于特征处理的池化层交叠组成的多层神经网络。

1、卷积层

卷积层主要目的就是完成图像的特征提取,其过程主要依靠于卷积核与输入图像进行的卷积运算。

(1)卷积操作:

将卷积核沿着输入图像(或特征图像)的水平方向和垂直方向以一定的步长(stride)进行滑动,每移动一个步长,卷积核便会与输入图像(或特征图像)对应范围内的所有像素进行卷积运算,运算结果被放置在与卷积核中央位置相对应的输出特征图像上,随着滑动的结束,可以得到一张新的二维特征图像。

(2)卷积运算

是一种线性运算,它将卷积核与输入图像对应位置的像素相乘相加,所以卷积操作只能表达和模拟线性映射关系。
在这里插入图片描述

输入图像通道:即图像的RBG三通道,黑白图片只有单通道;

卷积核深度:可以理解为每个卷积核上的通道,与输入图像的通道数保持一致;

卷积过程如下动图所示:
在这里插入图片描述

(3)多层网络卷积核的channel问题

如果上一层输出64个featuremap ,下一层的filter 的channel 就会变为64(必须这样),一个filter做卷积的话将会在64个featuremap组成的64channel上做,如果有128个filter,将再次生成128个featuremap,而不是128*64:

即在多层卷积网络中:下一层的filter的channel数= 上一层的featuremap数(kernel数量),如果不相等就没办法继续做卷积了。我们知道随着网络的加深,filter卷积核(是三维的:长、宽、深channel,不算batch)将会越来越深,或者说这个卷积核越来越细长。

对深度学习来说,卷积核,越小越好,降低参数数量,降低复杂度。

(4)常见疑问

①卷积核数目设置:按照16的倍数倍增,结合gpu硬件的配置。
②卷积层数设置:选最好性能的那个模型,它是几层那就设置几层。这个受训练数据,激活函数,梯度更新算法等多方面的影响,不是简单就试出来的
③各个卷积核是不一样的,卷积核 W 都是随机初始化的,所以对应每个卷积生成的featuremap均不同;
④卷积层中关注更多的是位置相邻的像素;

2、激活函数

上述已说明,卷积运算是线性运算;只具有线性关系的卷积层的建模能力是远远无法满足需求,因而需要引入非线性函数来增强网络的性能。

通常非线性函数运算是紧跟在卷积运算之后的。在深度学习中,这些非线性函数被称为激活函数,它们保证了卷积神经网络的非线性映射能力,是卷积层的重要组成部分。

常见的激活函数,主要有sigmoid函数、tanh函数、ReLU函数、Leaky ReLU函数、Maxout函数和 ELU函数。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
ReLU函数的公式为:
在这里插入图片描述

3、池化层

池化层通过对特征图像相邻位置的特征进行聚合,以降低特征图像尺寸,从而减少训练参数量和加快训练速度。

池化操作是在特征图像的每一个通道上独自完成,因而它不会改变特征图像的维度。

(1)池化过程

是将一个池化核沿着特征图像的水平方向或垂直方向以一定的步长滑动(通常池化核的步长等于池化核的宽度),每移动一个步长,在特征图像上与池化核相对应的位置进行池化运算,即选择一个在统计上具有某种代表性的特征来代替特征图像在该范围内的输出。常用的池化层形式有:最大池化、平均池化和加权平均池化等。
下图为最大池化运算:
在这里插入图片描述
不管釆用何种池化形式,当对输入图像作出少量平移时,池化层能够使经过池化操作后的特征图像大部分不发生改变。在图像分类任务中,一般只关心某个特征是否出现而不关心它出现的具体位置,所以希望获取的图像特征具有平移不变性,而池化层的正好满足这样的需求。

参考文献:
1、https://zhuanlan.zhihu.com/p/109592609
2、基于深度学习的铝型材表面瑕疵识别技术研究_魏若峰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用,这篇笔记是关于卷神经网络(CNN)的深度学习理论详解和项目实战的学习笔记。这篇笔记主要介绍了CNN在计算机视觉和图像识别中的应用。 根据引用,在CNN中,Co代表输出通道数(也称为卷核数量),Ci代表输入通道数,Kh代表卷核的高度,Kw代表卷核的宽度。这些参数可以用来定义CNN的结构。 根据引用,你提到想要使用R语言实现一维CNN,并输入一些变量进行二分类。你可以按照想要的数据进行二分类,然后使用R语言编写代码来实现CNN,并添加损失函数的曲线。 希望这些信息对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [深度学习—卷神经网络(CNN)全笔记,附代码](https://blog.csdn.net/weixin_58176527/article/details/125530000)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [深度学习——CNN卷神经网络个人理解笔记汇总](https://blog.csdn.net/m0_59998867/article/details/123696930)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [语言实现一维CNN吗,想输入些变量实现二分类 就是有一些变量,想输入到cnn里算一下进行二分类,这个是想做...](https://download.csdn.net/download/Mrrunsen/88267034)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值