2023.5.7 《动手学深度学习》第7、8章

今天继续学习《动手学习深度学习》第7章:现代卷积神经网络、第8章:循环神经网络,今天学到的内容主要有这两章的概念。

一、理论部分:

1、LeNet和AlexNet的网络结构

从LeNet(左)到AlexNet(右)
LeNet的激活函数是Sigmoid,AlexNet的激活函数是ReLU。

2、AlexNet和VGG的网络结构

image

3、Inception组成和GoogLeNet的网络结构

image
Inception模块组成,相当于用各种滤波器尺寸探索图像,不同大小的滤波器可以有效地识别不同范围的图像细节。
image
GoogLeNet的网络结构,全局平均汇聚层(global average pooling)避免了在最后使用全连接层。

4、Batch Normalization 批归一化

BN的具体操作是对一批数据进行归一化,使得这批数据均值为0、方差为1。BN通常位于卷积层或者全连接层之后、激活函数之前。
BN是为了解决内部协变量偏移(internal covariate shift)提出的,该问题指神经网络中每层的输入的分布随训练的过程而改变,使得网络难以学习、收敛、性能恶化。此外,BN在训练过程中向网络注入了噪声,使得网络更加鲁棒,起到了类似正则化的作用。

5、ResNet 残差网络

思想:每个附加层都应该更容易地包含原始函数作为其元素之一。说人话:加了附加层之后,最次也就是不产生效用,模型能拟合的函数与不添加这层是一样的,但凡这个附加层起了点作用,模型的拟合能力就会变好。这样,神经网络就可以继续加深了。
正常块与残差块的结构对比如下图。
image
ResNet-18结构如下:
image

6、DenseNet 稠密网络

在跨层连接上,不同于ResNet中将输入与输出相加,稠密连接网络(DenseNet)在通道维上连结输入与输出。然后通过添加过渡层来控制网络的维数,从而再次减少通道的数量。
ResNet和DenseNet在跨层连接的区别,前者是相加,后者是在通道维度上连接。
image

7、RNN(Recurrent) 循环神经网络

相比于卷积神经网络可以有效地处理空间信息,循环神经网络可以更好地处理序列信息。RNN通过引入状态变量存储过去的信息和当前的输入,从而可以确定当前的输出。

二、模块和函数

1、pytorch 模块
  • nn.AdaptiveAvgPool2d
    自适应池化层,函数通过输入原始尺寸和目标尺寸,自适应地计算核的大小和每次移动的步长。示例:
点击查看代码
x = torch.randn(1, 64, 32, 32)
adaptive_avgpool = nn.AdaptiveAvgPool2d((7, 7))
y = adaptive_avgpool(x)
posted @ 2023-05-07 23:51  MoiSheldon  阅读(49)  评论(0)    收藏  举报