CS231n笔记-CNN网络结构

本文详细探讨了卷积神经网络(CNN)的结构,包括全连接层的问题、卷积层的优势、卷积核的作用、超参数设置、1×1卷积层的应用、池化层的功能、Batch Normalization的原理和计算方式,以及各种激活函数的优缺点。重点讨论了Batch Normalization如何加速训练并提高模型稳定性,并提出了在训练中使用激活函数的建议。
摘要由CSDN通过智能技术生成

所有图片来自PPT官网Index of /slides/2022

代码:Batch Normalization和Dropout_iwill323的博客-CSDN博客

目录

全连接层存在的问题

卷积层

 卷积核学到了什么

 超参数

1×1卷积层

pytorch

 池化层

全连接层

Batch Normalization

为什么使用Batch Normalization

计算方式

全连接层的batch norm

卷积层的batch norm——spatial batchnorm

全连接层的Layer Normalization

Spatial Group Normalization

作用和问题

激活函数

Sigmoid

tanh(x)​

 Relu

 Leaky ReLU

ELU

 SELU​

 Maxout

 使用建议

总结


全连接层存在的问题

在全连接层中,相邻层的神经元全部连接在一起,输出的数量可以任意决定。

全连接层存在什么问题呢?那就是数据的形状被“忽视”了。比如,输入数据是图像时,图像通常是高、长、通道方向上的 3 维形状。但是,向全连接层输入时,需要将 3 维数据拉平为 1 维数据。
图像是 3 维形状,这个形状中应该含有重要的空间信息。比如,空间上邻近的像素为相似的值、RBG 的各个通道之间分别有密切的关联性、相距较远的像素之间没有什么关联等,3 维形状中可能隐藏有值得提取的本质模式。但是,因为全连接层会忽视形状,将全部的输入数据作为相同的神经元(同一维度的神经元)处理,所以无法利用与形状相关的信息。
而卷积层可以保持形状不变。当输入数据是图像时,卷积层会以 3 维数据的形式接收输入数据,并同样以 3 维数据的形式输出至下一层。因此,在 CNN 中,可以(有可能)正确理解图像等具有形状的数据。

卷积层

卷积层使用卷积核与数据中与之相同大小(包括长、宽、深)的一组数据做内积,将其映射为一个数据(神经元neuron)。这块区域就是这个neuron的感受野receptive field。这与全连接层是显然不同的,在全连接层中,每个neuron和输入都是连接的。CNN 中,有时将卷积层的输入输出数据称为特征图(feature map)。其中,卷积层的输入数据称为输入特征图(input feature map),输出数据称为输出特征图(output feature map)

卷积神经网络中卷积核的高度和宽度通常为奇数,例如1、3、5或7。 选择奇数的好处是,保持空间维度的同时,我们可以在顶部和底部填充相同数量的行,在左侧和右侧填充相同数量的列。

此外,使用奇数的核大小和填充大小也提供了书写上的便利。对于任何二维张量X,当满足:

  1. 卷积核的大小是奇数;
  2. 所有边的填充行数和列数相同;
  3. 输出与输入具有相同高度和宽度

则可以得出:输出Y[i, j]是通过以输入X[i, j]为中心,与卷积核进行互相关计算得到的。

同一层的neuron共享一个卷积核,这样就大大减少了参数的数量。有时候共享参数是不合适的,具体参考官方笔记CS231n Convolutional Neural Networks for Visual Recognition

假设卷积核的尺寸保持为K×K,那么每经过一层卷积,一个neuron看到的感受野要加K-1,图片的信息就被不断压缩(提取)

可以使用多个卷积核,这样就能在一个卷积层上提取多个特征。注意每个卷积核的深度永远和数据深度相同;每个卷积核共享一个bias

 卷积核学到了什么

线性分类器对每一个分类学到了一个template,神经网络学到的template更为丰富

 第一层卷积核学到的是最基本的特征,比如图像边缘。随着深度增加,每一层卷积层对上一层做综合,学习到更为复杂的特征(这一段是看图说话)

 超参数

卷积核尺寸、滑动步长、padding、卷积核数量

 

 

 

1×1卷积层

1×1卷积层是有用的,主要用于降低通道数量,进而降低参数数量

pytorch

pytorch的Conv2d函数,常数输入参数是这四个超参数(外加一个输入参数的通道)。输入输出如下:

 池化层

当图片尺寸较大时,每一个输出要经过很多很多的卷积层才能学习到整个图片的特征,这时候需要池化层做降维(下采样)。不改变数据的通道数量,没有引入新参数

 

常用的是max pooling

 

 

全连接层

在卷积神经网络的最后往往跟一个全连接层,用于将学习到的特征映射到不同的分类

 

 演示网站http://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html

Batch Normalization

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值