神经网络与深度学习-屈桢深-学习笔记(第三周)

本文介绍了卷积神经网络的基础概念,包括全连接网络的局限与深度学习平台如PyTorch的使用。详细讲解了特征提取、卷积、池化等核心原理,并以LeNet-5、AlexNet、VGG-16和残差网络为例展示了不同网络结构。
摘要由CSDN通过智能技术生成

卷积神经网络基础

1、深度学习

1.1 全连接网络

        全连接网络本质上是把所有的输入与输出连接起来的单个交换机。具有吞吐量大、可靠性高、低延时的特点,但同时也由于链接权过多,算的慢,难收敛,同时可能进入局部极小值,也容易产生过拟合问题。

        为了解决全连接网络解决算的慢问题,可以通过减少权值连接,每一个节点只连到上一层的少数神经元,即出现了局部连接网络;而为了解决权值过多产生的过拟合问题,则可以通过信息分层处理,每一层在上层提取特征的基 础上获取进行再处理,得到更高级别的特征。

1.2 深度学习平台

1.2.1 深度学习平台简介

1.2.2 PyTorch基本使用

        PyTorch是一个Python的深度学习库。PyTorch相比于TensorFlow2 具有上手简单、学习速度快、函数简洁、运用灵活的优点。到目前,据统计已有80%的研究采用PyTorch,包括Google。

        PyTorch用“结点”(nodes)和“线”(edges)的有向图来描述数学计算的图像。“节点” 一般用来表示施加的数学操作,但也可以表示数据输入的起点 /输出的终点,或者是读取 /写入持久变量的终点。“线”表 示“节点”之间的输入/输出关系。这些数据“线” 可以输运“size可动态调整”的多维数据数组,即 “张量”(tensor )。张量是一个物理量,对高维 (维数 ≥ 2) 的物理量进行 “量纲分析” 的一种工具。简单的可以理解为:一 维数组称为矢量,二维数组为二阶张量,三维数组 为三阶张量 …

        PyTorch使用tensor表示数据,使用 Dataset、DataLoader 读取样本数据和标签,使用变量 (Variable) 存储神经网络权值等参数,使用计算图 (computational graph) 来表示计算任务,并在代码运行过程中同时执行计算图。

        PyTorch的简单示例如下:

2、卷积神经网络基础

2.1 基本概念

        特征提取:卷积,将卷积核作为一个滑动窗口在特征层上面进行滑动,每次滑动的的距离由步长决定,每滑动一次就将特征层的值与卷积核的值对应相乘再相加,最终得到卷积结果。注意,图像卷积时,根据定义,需要首先把卷积核上下左右转置。

        填充(Padding):在矩阵的边界上填充一些值,以增加矩阵的大小,通常用0或者复制边界像素来进行填充。

        步长(Stride):卷积核在图像上移动的像素数,如图步长为2。

        池化(Pooling):使用局部统计特征(如均值或最大值)解决特征过多问题。

2.2 卷积神经网络结构

        卷积神经网络由多个卷积层和下采样层构成,后面可连接全连接网络。其中卷积层是𝑘个滤波器,下采样层采用mean或max。其算法表示如下:

前向传播定义为:

z^{[n]}(x,y)=\sum_{u=0}^{p}\sum_{v=0}^{q}a^{[n-1]}(x+u,y+v)w^{[n],k}(u,v)

a^{[n]}(x,y)=f(z^{[n]}(x,y))

若第i层是卷积+池化,则:

a^{[n]}(x,y)=downsample(\sum_{u=0}^{p}\sum_{v=0}^{q}a^{[n-1]}(x+u,y+v)w_{s}(u,v))

3、误差反向传播

3.1 经典BP算法

 如果当前是输出层:

\delta^{[L]}_{i}=a_{i}(1-a_{i})e_{i}

如果当前是隐含层,按从后向前顺序更新:

\delta^{[n]}_{i}=[\sum_{j=1}^{m}w^{[n+1]}_{ji}\delta ^{[n+1]}_{j}](a^{[n]}_{i})'

\Delta w^{[n]}_{ji}(k)=\alpha \cdot \delta ^{[n]}_{i}\cdot a^{[n-1]}_{j}

 a^{[0]}_{j}=x_{j}

 3.2 卷积NN的BP算法

        如果当前是卷积层,下一层为下采样层,采用2*2核平均池,结果如下。

        如果当前是下采样层,下一层为卷积层,采用2*2核卷积,结果如下。

        卷积层+卷积层的BP算法如下。

  

        卷积层+全连接层的BP算法如下。

  

4、LeNet-5网络

        LeNet共分为7层,分别是:C1卷积层,S2池化层,C3卷积层,S4池化层,C5卷积层,F6全连接层,OUTPUT输出层。

卷积层C1层

输入32×32的特征图;

卷积核种类为6,大小为5×5;

输出特征图数量为6,大小为28×28

池化层S2

输入28×28的特征图;

采用区域为2×2;

输出特征图数量为6,大小为14×14

卷积层C3

输入14×14的特征图;

卷积核种类为16,大小为5×5;

输出特征图数量为16,大小为10×10

池化层S4

输入10×10的特征图;

采样区域为2×2;

输出特征图数量为16,大小为5×5

卷积层C5

输入5×5的特征图;

卷积核种类为120,大小为5×5;

输出120维的向量

全连接层F6

输入120维的向量;

输出84维的向量

输出层OUTPUT

输入84维的向量;

输出10维的向量

5、基本卷积神经网络

5.1 AlexNet

  • 池化层均采用最大池化
  • 选用ReLU作为非线性环节激活函数,网络规模扩大
  • 参数数量接近6000万
  • 出现“多个卷积层+一个池化层”的结构

5.2 VGG-16

  • 网络规模进一步增大,参数数量约为1.38亿
  • 由于各卷积层、池化层的超参数基本相同,整体结构呈现出规整的特点。

5.3 残差网络

        ResNet模型比VGG网络更少的过滤器和更低的复杂性,普通网络的基准模型受VGG网络的启发。ResNet具有34层的权重层,有36亿FLOPs,只是VGG-19(19.6亿FLOPs)的18%。

        卷积层主要有3×3的过滤器,并遵循两个简单的设计规则:

        ①对输出特征图的尺寸相同的 各层,都有相同数量的过滤器;

②如果特征图的大小减半,那么过滤器的数量就增加一 倍,以保证每一层的时间复杂度相同。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值