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

Note3: CNN(卷积神经网络)

目录

预备知识

一. 从神经网络的角度理解CNN 

Observation1:pattern

基于receptive field的优化

Observation2: 相同的pattern可能出现在不同位置

优化2:共享参数 

二. 从卷积的角度理解CNN

filter作用的过程 

filter不仅限于提取局部pattern

三. Pooling(池化) 

作用与副作用 

四. The whole CNN

五. CNN应用实例:AlphaGo 

​编辑 

 六. More Applications

七. 缺陷 


卷积神经网络(Convolutional Neural Network, CNN)广泛应用于图像识别和视觉任务,是深度学习中的核心模型之一。

预备知识

输入:所有影像辨识的模型的接受的所有图片大小(分辨率)相同,所以处理图片时,首先需要rescale。

输出:one-hot vector(分类的任务)

图片由RGB表示(即每个像素有红绿蓝三个数值),是三维的张量,channel = 3。

一. 从神经网络的角度理解CNN 

如果使用全连接神经网络,参数量巨大,模型弹性大,容易Overfitting。CNN根据图像的特性对神经网络做了优化与限制。

Observation1:pattern

识别物体的关键之一是找到特定的pattern,所以一个neuron并不需要看完整张图片,只需要关注receptive field(感受野)中的部分。

  

基于receptive field的优化

receptive field典型的设计是涵盖所有channel,所以一般只需要讨论长宽,即kernel size(一般设置很小,kernel:卷积核);stride(步长)是相邻卷积核的距离,必须有overlap,否则可能错过某些pattern;对于边缘的部分,需要用padding(填充)补成符合卷积核的大小,padding一般是补充0。

Observation2: 相同的pattern可能出现在不同位置

优化2:共享参数 

不同的receptive field的neuron共享参数。

常见的设置

 不同receptive field使用同一组neuron,每一个neuron称为filter(滤波器/卷积核)

二. 从卷积的角度理解CNN

现在换一个角度理解。每个卷积层中有一组filter,每个filter检测不同的pattern。

filter作用的过程 

首先filter中每个数值与左上角范围对应的九个数值相乘后求和。

接下来filter会滑动:将这个范围依次向左,然后向下移动stride的距离,作相同运算。最终filter会扫完整张图片

  可以看出filter1能检测对角线是否全为1

然后将每个filter如此操作,最后得到的结果叫feature map(特征图,表示CNN每层输出的结果)

可以把这个feature map看为一张channel为64新“图片”,下一个卷积层的filter深度需要设为64

filter不仅限于提取局部pattern

一个常见的误区,是认为既然kernel size这么小,filter只能提取很小范围内的pattern。实则不然,随着卷积层的增加,每个filter能看的范围对应到原图上越来越大。

三. Pooling(池化) 

pooling的想法来自于另一个观察:图片subsample(二次抽样)后,比如把偶数行、列全部抽掉,得到的小图片不影响辨识。pooling本身没有参数,不是一个layer,行为是固定好的

pooling有很多种,max pooling是分组(大小自己决定)后,取最大的值作为代表

 

作用与副作用 

pooling能减少运算量,不过是以部分精度作为代价(毕竟删除了一些信息),近年来随着算力的提升,许多影像辨识模型往往会舍弃pooling

四. The whole CNN

五. CNN应用实例:AlphaGo 

下棋可以视为分类问题,一个位置表示一个类别。整个棋盘可视为19*19的图片,每个落子的位置视为像素

有人会认为CNN必须使用pooling,所以不能用于下棋。实际上AlphaGo没有用pooling。 

 

 六. More Applications

CNN可以用于语音和文字处理,但注意不能直接套用上述介绍的针对图像CNN架构,必须根据具体任务做相应调整

七. 缺陷 

CNN无法处理影像放大缩小或旋转的情况,形状一样但是大小不同的物体对CNN来说是不同的东西。所以实际训练时,往往需要data argumentation。

http://www.lryc.cn/news/603522.html

相关文章:

  • 八股训练营 40 天心得:一场结束,也是一场新的开始
  • OpenCV 学习探秘之四:从角点检测,SIFT/SURF/ORB特征提取,目标检测与识别,Haar级联分类人脸检测,再到机器学习等接口的全面实战应用与解析
  • 【第四章:大模型(LLM)】01.神经网络中的 NLP-(3)文本情感分类实战
  • 嵌入式中间件-uorb解析
  • 基于深度学习的医学图像分析:使用Capsule Networks实现医学图像分类
  • vscode开发微信小程序
  • 01 基于sklearn的机械学习-机械学习的分类、sklearn的安装、sklearn数据集、数据集的划分、特征工程中特征提取与无量纲化
  • (四十三)深度解析领域特定语言(DSL)第七章——语法分析器组合子(Parser Combinators)
  • 传统数据库连接已OUT!飞算JavaAI开启Java开发智能新潮流
  • 【C++算法】78.BFS解决FloodFill算法_算法简介
  • 两数之和(每天刷力扣hot100系列)
  • ubuntu 25.04 自带JS引擎gjs运行GTK with JavaScript 应用
  • TensorFlow深度学习实战——基于卷积神经网络进行情感分析
  • vue请求golang后端CORS跨域问题深度踩坑
  • 从0到1学PHP(五):PHP 数组:高效存储与处理数据
  • Linux网络管理
  • 万字详解——OSI七层模型:网络通信的完整架构解析
  • 机器学习-十大算法之一线性回归算法
  • Nginx反向代理的网站服务,然后将http重定向到https
  • 无人机图传:让天空视角 “触手可及”
  • .NET 10 中的新增功能系列文章1——运行时中的新增功能
  • 【C#|C++】C#调用C++导出的dll之非托管的方式
  • 百度前端面试题目整理
  • 基于springboot/java/VUE的旅游管理系统/旅游网站的设计与实现
  • 算法提升之数论(矩阵+快速幂)
  • [2025CVPR-图象分类]ProAPO:视觉分类的渐进式自动提示优化
  • B 站搜一搜关键词优化:精准触达用户的流量密码
  • deepseek+飞书多维表格 打造小红书矩阵
  • 线程崩溃是否导致进程崩溃
  • 【CAN总线】STM32 的 CAN 总线通信开发笔记(基于 HAL)