当前位置: 首页 > news >正文

cnn卷积神经网络

cnn再影像图片方面是非常厉害,运用的非常多的

我们的label是一个one hot的向量,每一个label是一种需要分类的东西

我们的图片是有三个这个r, g, d颜色的图片叠加的,我们输入model的数据就是把每个channel拉直放在一起,每一个维度就是每一个pixel对应颜色的强度

我们输入的这个数据包含了很多dimension,100x100x3维, 假设我们一层有1000个神经元,那么我们就会有3x10e7个weight,有太多的这个参数了,虽然可以让我们的模型更有弹性,能力更强,但也增加了over fitting的风险,如果我们是要考虑影像本身的特性,那么我们是不是真的需要每一neuron对每一个dimension都有一个weight呢

我们可以让某些neuron负责某些pattern

所以我们可以简化,不同的neuron可以有不同大小或者深度的receptive field,可以互相重叠,可以一个receptive field对应多个neuron

一般我们的接受域一般会高度重叠,超出了会padding,一般是0

有时候,不同的守备范围也会出现相同的侦测,如下图的鸟嘴,一个在左上角,一个在右下角,那么我们有必要在每一个receptive field的neuron set中都具备那个探测鸟嘴的neuron吗

答案是不用的,我们可以共享参数,就算是两个neuron的参数一样,因为他们的输入是不一样的,所以输出也是不一样的(图中的neuron是同一个

我们在不同的接受域中的neuron可以有共享一样参数的neuron,比如说下图,kernel就是filter

cnn其实很大限制了模型弹性,有很大的model bias,但是他在特定领域,就是影像上,有很大的用处

每一个filter负责一个pattern,

在卷积神经网络(CNN)中,共享参数(也称为权重共享)主要是指在同一个卷积层内,每个用于检测特定特征的滤波器(或称核,kernel)在输入数据的不同位置(即不同的receptive field,感受野)上使用的权重是相同的。这意味着,无论该滤波器移动到输入数据的哪个位置,它都会使用同一组权重进行计算。

具体来说,在一个典型的卷积层中:

- **共享参数**:对于每一个卷积核而言,其在遍历整个输入数据(例如图像)时,都是用同一组权重来与输入数据的局部区域做卷积操作。这使得网络能够有效地学习输入数据中的平移不变特征,同时减少了模型参数的数量,降低了过拟合的风险。
  
- **没有共享参数的情况**:通常情况下,在标准的卷积层设计中,所有用于处理输入数据的neuron(准确地说,是每个卷积核对应的操作单元)都遵循这种权重共享的原则。然而,也有一些特殊情况不涉及参数共享,比如全连接层就不具备这种特性,因为每个神经元的输入权重是独立学习的;另外,一些特殊的网络架构或者层类型可能会打破这种模式,例如动态参数网络(Dynamic Parameter Networks),但这些并不常见。

综上所述,在传统的卷积层中,是每一个感受野中的“神经元”操作都共享同一组参数(即卷积核的权重)。而在网络的其他部分,如全连接层,则不存在这样的参数共享机制。

在一个卷积层中可以包含多个滤波器(filters),而不是只有一个。每个滤波器实际上都是在学习输入数据中的不同特征。例如,在处理图像数据时,一个滤波器可能学习识别边缘,另一个可能学习识别角点等。

关于这些滤波器是如何工作的,这里有几个关键点:

- **单独但并行操作**:不同的滤波器是独立地应用到输入数据上的,它们各自以自己的权重集对输入数据进行卷积操作。这意味着每个滤波器都会单独“扫描”整个输入空间(或根据设定的步长移动通过整个输入体积),以生成一个新的输出特征图(feature map)。然而,尽管这些操作概念上是独立的,但在实际实现中它们通常是并行计算的,以便提高效率。

- **产生多张特征图**:由于每个滤波器会产生一张对应的特征图,因此如果一个卷积层中有多个滤波器,那么该层将会输出多张特征图。每张特征图对应于其中一个滤波器检测到的特定类型的特征。

综上所述,当我们在一个卷积层中使用多个滤波器时,每个滤波器会独立地在输入数据上移动,覆盖整个输入空间,并分别生成各自的输出。这些过程通常被设计为并行执行,以充分利用现代硬件(如GPU)的并行计算能力。这样不仅允许网络在同一层内检测多种不同的特征,还能够有效地加速计算过程。

 我们filter实际作用中,其实是找出image中值最大的感受野,下图中的左上角和左下角就是要找的pattern

第二个filter也是一样,产生的这个图叫做feature map

第一个卷积层的输出也可以是第二个卷积层的输入,第一个卷积层有多少个filter,它的输出也就有多少个channels,导致第二个卷积层的filter的高度必须是这个channel的数量

我们可能会担心这个filter知识3x3,是不是有可能侦测不到大的pattern,其实是不会的,我们特征图上虽然是3x3,但是在卷积层中是一个5x5,只要layer叠的越深,就可以检测更大的pattern

我们这个感受野中的共享的参数其实就是filter,不同的filter负责不同的特征提取

这些neuron共享参数的过程就是filter扫过图片的过程,也就是convolution

总结

接下来是pooling,也就是池化,二次抽样

max pooling

pooling的作用即使把convolution完后的这个特征图在保持channel不变的情况下,把图片变小,任然保持着重要的特征

一般流程:

alpha go中也有运用cnn

其实cnn也可以用在文字处理和语音上,当然,不是跟图像一样处理

同时cnn也有限制

http://www.xdnf.cn/news/468505.html

相关文章:

  • 关于词向量的思考
  • mvc-service引入
  • 数据结构中链表的含义与link
  • uniapp-vue3项目中引入高德地图的天气展示
  • QMK键盘固件旋钮编码器(Encoder)配置详解(实操部分)
  • 盒带自编教材《软件工程》目录
  • 火山RTC 8 SDK集成进项目中
  • TLV格式
  • linux备份与同步工具rsync
  • [数据结构]8. 树-Tree
  • ES8.x基础知识学习提纲
  • 阿里开源通义万相Wan2.1-VACE-14B:用于视频创建和编辑的一体化模型
  • 【hot100-动态规划-139.单词拆分】
  • 第九讲 | 模板进阶
  • 每周靶点:TIGIT、ICAM1及文献分享
  • 2025ICPC陕西省赛题解一
  • 开机自启动python程序_ubuntu22.04
  • 图片爬虫通过模板及使用说明
  • 轻量级Web画板Paint Board如何本地部署与随时随地在线绘画分享
  • 开启智能未来:DeepSeek赋能行业变革之路
  • 软件测试之测试计划主要包涵哪些内容?
  • 什么是Agentic AI(代理型人工智能)?
  • [特殊字符]川翔云电脑:重新定义云端算力新纪元
  • 将b[索引]中元素按照a中元素的值进行排序
  • Linux软件安装的YUM与源码安装详解
  • React Native/Flutter 原生模块开发
  • KingBase问题篇
  • vue异步导入
  • 动态库静态加载与动态加载
  • PT100温度传感器应用场景