社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

一文彻底搞懂深度学习 - 卷积和池化(Convolution And Pooling)

架构师带你玩转AI • 4 周前 • 40 次点击  
在深度学习中,CNN(卷积神经网络)最核心的两大操作就是卷积(Convolution)和池化(Pooling)。卷积用于特征提取,通过卷积核在输入数据上滑动计算加权和;池化用于特征降维 ,通过聚合统计池化窗口内的元素来减少数据空间大小

Convolution And Pooling

一、 卷积

什么是卷积(Convolution卷积是一种数学运算,在CNN中,它通过滑动窗口(也称为卷积核或滤波器在输入图像或特征图上滑动,并计算窗口内元素与对应卷积核元素的加权和(包括偏置项),从而生成输出特征图

什么是卷积核(Convolution Kernel)?卷积核是一个数学函数或二维矩阵,用于在图像处理和计算机视觉中进行特征提取。它是一个 可学习的权重矩阵,其大小通常远小于输入图像的大小,用于在输入图像上滑动并进行元素级的乘法累加操作。

什么是特征图(Feature Map)特征图是卷积操作的结果,每个特征图都代表了输入图像在 不同卷积核下的特征响应

卷积有哪些重要参数?卷积的重要参数主要包括卷积核大小(Kernel Size)、步长(Stride)以及填充(Padding),它们共同决定了卷积层的输出特征图的尺寸和特性

  • 卷积核大小(Kernel Size):决定了感受野的大小,即每次卷积操作能够覆盖的输入区域大小。

  • 步长(Stride):决定了卷积核在输入图像或特征图上滑动的距离。步长为1表示每次滑动一个像素,步长大于1则表示每次滑动多个像素。

  • 填充(Padding):在输入图像或特征图的边缘添加额外的零值,以控制输出特征图的尺寸。常见的填充方式有“valid”(无填充)和“same”(填充后输出尺寸与输入相同)。

  • 通道数(Channels):对于输入图像,通道数指的是颜色通道数(如RGB图像的通道数为3)。对于卷积层,输出特征图的通道数由卷积核的数量决定。

如何进行卷积计算?通过卷积核在输入数据上滑动,计算每个位置上的加权和(包括偏置项),并可能应用激活函数,以生成输出特征图。

  • 选择卷积核:卷积核是一个可学习的参数矩阵,其大小(如3x3、5x5等)和数量(即输出特征图的通道数)是超参数

  • 滑动窗口:将卷积核在输入图像或特征图上按指定步长(stride)滑动,每次滑动都计算窗口内元素与卷积核的加权和。

  • 计算加权和:对于每个滑动位置,将窗口内元素与卷积核对应位置的元素相乘后求和,并加上偏置项(如果有的话),得到输出特征图上对应位置的元素值。

  • 添加激活函数:通常,卷积操作后会接一个激活函数(如ReLU),以增加网络的非线性特性。

二、池化

什么是池化(Pooling)?池化是卷积神经网络中的一种下采样操作。它通过对输入特征图进行局部区域的统计汇总(如取最大值、平均值等),得到一个尺寸较小的输出特征图。

池化操作会丢弃一部分特征信息,但保留了最重要的特征,从而实现了数据的压缩和特征的提取。池化操作通常紧随卷积层之后。

池化的常见类型有哪些?池化操作有多种方式,其中最常见的是最大值池化(Max Pooling)平均池化(Average Pooling)它们分别通过选取局部区域内的最大值和平均值来减少特征图的尺寸

  • 最大值池化(Max Pooling)在定义的池化窗口内,选取所有元素中的最大值,并将该最大值作为池化结果输出到下一层特征图的对应位置。

  • 平均池化(Average Pooling)在定义的池化窗口(如2x2、3x3等)内,计算所有元素的平均值,并将该平均值作为池化结果输出到下一层特征图的对应位置。

池化有哪些重要参数?池化窗口大小和步长是决定池化层输出尺寸的关键参数,窗口大小定义了覆盖区域,步长决定了滑动距离

  • 池化窗口大小(Kernel Size)定义了池化操作的窗口大小,通常是一个正方形(如2x2、3x3等)。窗口大小决定了池化操作在输入数据上滑动时覆盖的区域大小。

  • 步长(Stride)步长定义了池化窗口在输入数据上滑动的距离。如果步长与窗口大小相同,则池化操作不会重叠。如果步长小于窗口大小,则池化操作会重叠。

为了帮助更多人(AI初学者、IT从业者)从零构建AI底层架构,培养Meta Learning能力;提升AI认知,拥抱智能时代。

建立了 架构师带你玩转AI 知识星球

【架构师带你玩转AI】:公众号@架构师带你玩转AI 作者,资深架构师。2022年底,ChatGPT横空出世,人工智能时代来临。身为公司技术总监、研发团队Leader,深感未来20年属于智能时代。

选择加入即可获得:
1、10个专栏技术干货
2、1v1技术指导
3、每周读书分享
4、每月4次技术培训,每月1次技术实战
答谢粉丝,特申请了100份星球优惠券。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/175671
 
40 次点击