CNN卷积神经网络学习笔记

卷积神经网络应用领域

  1. 检测任务
  2. 追踪任务
  3. 分类检索
  4. 超分辨率重构
  5. 医学任务
  6. 无人驾驶
  7. 人脸识别

卷积的作用

卷积神经网络与传统网络区别

传统神经网络(nn)

在这里插入图片描述

特征是二维的

CNN

在这里插入图片描述

特征是三维的,直接输入原始数据

卷积神经网络的整体架构

  1. 输入层
  2. 卷积层
  3. 池化层
  4. 全连接层

在这里插入图片描述

输入层

图像数据,例如:28x28的数据

卷积层

提取特征

计算过程

将图像进行一个分割,分成多个小块,目的是在不同的区域,得到的特征不一样。
在这里插入图片描述
在这里插入图片描述

卷积特征值计算方法

图像颜色通道

一张图是三维的,分为R,G,B三个通道分别单独做,之后再加在一起。

在这里插入图片描述在这里插入图片描述

图中Filter(3 x 3 x 3)前两个参数表示的是卷积核的长和宽(规格),第3个表示层数,层数要和进行计算的数据层数相同,下面的 b 是一个偏置的值,最后得到后面绿色方格的值(特征图)

这里使用了两个卷积核(Filter),得到了两个特征图。
在这里插入图片描述

左边第一列数据,矩阵,移动2个单元格,然后重复上面的计算方法。
在这里插入图片描述

特征图个数

可以通过用多个Filter对一个地方进行特征提取,可以让我们的特征结果更加的丰富。

下图用不同的卷积核(f1,f2…)计算分别得到两个特征图、六个特征图。

在这里插入图片描述

在这里插入图片描述

步长与卷积核大小对计算结果的影响

只做一次卷积是不够的,需要多次卷积,如下图,从左到右依次做了多次卷积,每一次的质量是不断增加的。

在这里插入图片描述

如下图,第一次用了6个卷积核,下一层则得到6张特征值,对这6张特征值再卷积…直到循环多次结束。

在这里插入图片描述

卷积层涉及参数

  1. 滑动窗口步长

    步长为1的卷积

在这里插入图片描述

步长为2的卷积

在这里插入图片描述

  1. 卷积核尺寸

    步长越小得到的特征值越多,越丰富。

  2. 边缘填充

    前面可以发现,输入图像与卷积核进行卷积后的结果中损失了部分值,输入图像的边缘被“修剪”掉了(边缘处只检测了部分像素点,丢失了图片边界处的众多信息)。这是因为边缘上的像素永远不会位于卷积核中心,而卷积核也没法扩展到边缘区域以外。

    有时我们还希望输入和输出的大小应该保持一致。为解决这个问题,可以在进行卷积操作前,对原矩阵进行边界填充(Padding),也就是在矩阵的边界上填充一些值,以增加矩阵的大小,通常都用“0”来进行填充的。

  3. 卷积核个数

    最后计算中要用到几个特征值就用几个卷积核。

卷积结果计算公式

在这里插入图片描述

例如:

在这里插入图片描述

卷积参数共享

在这里插入图片描述

例如:

在这里插入图片描述

池化层

只是筛选,过滤,没有计算,只能做缩减,不会改个数。

这种机制能够有效地原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合

  1. 特征值不变:池化操作是模型更加关注是否存在某些特征而不是特征具体的位置。其中不变形性包括,平移不变性、旋转不变性和尺度不变性。
  2. 特征降维(下采样):池化相当于在空间范围内做了维度约减,从而使模型可以抽取更加广范围的特征。同时减小了下一层的输入大小,进而减少计算量和参数个数。
  3. 在一定程度上防止过拟合,更方便优化。

在这里插入图片描述

在这里插入图片描述

最大池化

选择不同的区域,取出最大的值。(只选大的,选最重要的)

在这里插入图片描述

如何运作的

两次卷积一次池化,每个卷积后,都有一个激活函数。

经过卷积、池化的计算和特征提取后,在全连接层实现特征分类。

将生成的三维图,变成特征向量,放入全连接层,下图中被分为5类,后面参数就是5。

在这里插入图片描述

带参数计算的才能称为一层神经网络,卷积层带,激活函数不带,池化层不带,全连接层带。

上图有7层神经网络。

特征图变化

转换:将一个三维的物体转换为向量,才能实现分类。
在这里插入图片描述

参考:【计算机博士唐宇迪居然半天教会了我4年没学会的计算机视觉】

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值