第五讲卷积神经网络

本文深入探讨了卷积神经网络(CNN)的工作原理,包括卷积计算过程、感受野、全零填充、批标准化、池化和舍弃等核心概念,并通过TensorFlow库展示了如何构建和训练CNN模型。文章还介绍了LeNet、AlexNet、VGGNet、InceptionNet和ResNet等经典网络结构,以及CIFAR10数据集在图像分类任务中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本讲目标

用CNN实现离散数据的分类(以图像分类为例)

  1. 卷积计算过程
  2. 感受野
  3. 全零填充(Padding)
  4. TF描述卷积计算层
  5. 批标准化(Batch Normalization, BN)
  6. 池化(Pooling)
  7. 舍弃(Dropout)
  8. 卷积神经网络
  9. cifar10数据集
  10. 卷积神经网络搭建示例
  11. 实现LeNet、AlexNet、VGGNet、InceptionNet、ResNet五个经典神经网络

1、卷积计算过程

全连接神经网络:每个神经元与前后相邻层的每一个神经元都有连接关系,输入是特征,输出为预测的结果。

卷积:

  • 卷积计算可认为是一种有效提取图像特征的方法
  • 一般会用一个正方形的卷积核,按指定步长,在输入特征图上滑动,遍历输入特征图中的每个像素点。每一个步长,卷积核会与输入特征图出现重合区域,重合区域对应元素相乘、求和再加上偏置项的带输出特征的一个像素点。
  • 必须让卷积核的深度与输入特征图的深度一致,卷积核的通道数与输入特征图的通道数一致。

输入特征图的深度(channel数),决定了当前层卷积核的深度;每个卷积核在卷积计算后,会得到一张输出特征图,当前层用了几个卷积核,就会有几张输出特征图,所以,当前卷积核的个数,决定了当前输出特征图的深度。在这里插入图片描述
单通道输入特征图的卷积计算
在这里插入图片描述
三通道输入特征图的卷积计算过程
在这里插入图片描述

2、感受野

卷积神经网络各输出特征图中的每个像素点,在原始输入图片上映射区域的大小。

3、全零填充

有时会希望输出特征图的尺寸保持不变,这个时候可以使用全零填充。

卷积输出特征图维度的计算公式:

  • 使用全零填充时,输出特征图边长: 输 入 特 征 图 边 长 步 长 \frac{输入特征图边长}{步长} (向上取整)
    在TF中用padding = ‘SAME’ 表示使用全零填充
  • 不使用全零填充时,输出特征图边长: 输 入 特 征 图 边 长 − 核 长 + 1 步 长 \frac{输入特征图边长-核长+1}{步长} +1(向上取整)
    在TF中用padding = 'VALID’表示不使用全零填充

4、TF描述卷积计算层

tf.keras.layers.Conv2D(
	filters = 卷积核个数,
	kernel_size = 卷积核尺寸,  # 正方形写核长整数,或(核高h, 核宽w)
	strides = 滑动步长,  # 横纵向写相同步长整数,或(纵向步长h,横向步长w),默认1
	padding = "same" or "valid",  # 默认valid
	activation = "relu" or "sigmoid" or "tanh" or "sofmax",  # 如有BN此处不写
	input_shape = (,, 通道数)  # 输入特征图维度,可省略
)

5、批标准化

标准化:使数据符合0均值,1为标准差的分布
批标准化:对一小批数据(batch),做标准化处理。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通过上面的简单处理,会使数据完全符合标准正态分布,使激活函数丧失了非线性特性,因此为每个卷积核引入了两个可训练参数,缩放因子γ和偏移因子β。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值