神经网络与深度学习课程总结(二)——卷积神经网络

本文详细介绍了PyTorch的基本使用,包括张量、数据加载、变量和计算图。然后深入讲解卷积神经网络的概念、结构、典型模型如LeNet-5和AlexNet,以及卷积操作、池化层和全连接层的原理。

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

目录

一、PyTorch的基本使用

二、卷积神经网络

1.基本概念

2.CNN的结构

3.典型的卷积神经网络:

4.卷积神经网络的计算

1)向前传播过程

2)误差反向传播阶段

三、卷积模型的实现                 

1.手写数字识别模型LeNet-5:

2. AlexNet

一、PyTorch的基本使用

PyTorch官方教程中文版 (pytorch123.com)

1.使用tensor张量表示数据:tensor是一个物理量,对高维 (维数 ≥ 2) 的物理量进行“量纲分析” 的一种工具。简单的可以理解为:一维数组称为矢量,二维数组为二阶张量,三维数组为三阶张量

2.利用Dataset,Dataloader读取数据;

3.   使用变量 (Variable) 存储神经网络权值等参数

4.使用计算图 (computational graph) 来表示计算任务
深度之眼Pytorch打卡(五):Pytorch计算图(动态图与静态图)与自动求导tensor.backgrad()-CSDN博客

5.在代码运行过程中同时执行计算图

二、卷积神经网络

1.基本概念

传统的全连接网络收敛较慢计算量大(每一层的神经元之间都是全连接的,连接数数目=参数个数),通过卷积的局部链接,权值共享可以实现参数的减少,大大提高了特征提取的效率。卷积操作本质是一个固定大小的模板对选中区域的数据进行加权求和后的结果,是一种信号的滤波。此外,卷积网络感视野同人眼睛对于局部信息捕捉的特点相符合。在卷积神经网络中,卷积层的神经元只与前一层的部分神经元节点相连,即它的神经元间的连接是非全连接的,且同一层中某些神经元之间的连接的权重和偏移是相同的,这样大量地减少了需要训练参数的数量。卷积操作如图所示:卷积神经网络一开始兴起于图像处理领域,左图的各个小块可以看作是像素点,其上的右下角的红色数值为卷积视野上的卷积核权重,右侧图第一个子块为左图中橙色区域各子块的加权求和即:1+0+1+0+1+0+0+0+1=4,将卷积核依次从左向右从上大小平移得到结果为特征图原图5x5卷积操作后→3x3,存在边缘效应。

因此如果要实现尺度的不变需要对原图进行边缘填充,即padding,填充后的输出可以实现原输入的尺寸,如下图:

2.CNN的结构

1)输入层:用于数据的输入;(CNN的输入层的输入格式保留了图片本身的结构。)

2)卷积层:使用卷积核进行特征提取和特征映射;

    隐藏层中的神经元的感受视野比较小,隐藏层中的神经元具有一个固定大小的感受视野去感受上一层的部分特征,只能看到上一次的部分特征上一层的其他特征可以通过平移感受视野来得到同一层的其他神经元。

 一个感受视野带有一个卷积核,我们将感受视野中的权重w矩阵称为卷积核(权值共享),将感受视野对输入的扫描间隔称为步长(stride);当步长比较大时(stride>1),为了扫描到边缘的一些特征,感受视野可能会“出界”,这时需要对边界扩充(pad),边界扩充可以设为0或其他值。卷积核、步长和边界扩充值的大小由用户来定义。感受视野扫描时可以计算出下一层神经元的值为:

一个带有卷积核感受视野扫描生成的下一层神经元矩阵称为 一个feature map (特征映射图)一个feature map对应一个卷积核,若我们使用3个不同的卷积核,可以输出3个feature map。即一个卷积核可提取一个关键特征,为了不遗漏关键特征可以采用多个卷积核。假如感受视野为5×5步长为1,则在卷积层需要训练的参数为5×5×1×3=75个。对于有深度的二维输入数据,感受视野增加一个深度的参数。

3)激励层:由于卷积也是一种线性运算,因此需要增加非线性映射;

激励层主要对卷积层的输出进行一个非线性映射,因为卷积层的计算还是一种线性计算。使用的激励函数一般为ReLu函数:

f(x)=max(x,0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值