1 ResNet和ResNeXt
1.1 什么是ResNet
ResNet是一种残差网络,咱们可以把它理解为一个子网络,这个子网络经过堆叠可以构成一个很深的网络。结构如下
1.2 引入ResNet的原因
随着网络的加深,获取的信息越多,特征越明显,但是优化效果反而变差,这是由于网络加深会造成梯度爆炸或者梯度消失。
为了解决此问题,于是提出了ResNet网络,主要思想来源于VLAD和Highway Network
1.3 ResNet结构
1.4 ResNeXt
ResNeXt相比于ResNet来说,更新了block。ResNeXt在计算量相同的情况下,错误率更低。
2 猫狗大战
2.1 使用LeNet
定义网络
2.2 使用ResNet
定义网络
3 思考题
3.1 Residual learning 的基本原理?
Residual learning的基本原理是通过引入残差连接,让神经网络可以学习残差(当前层输出与目标输出之间的差异),而不是直接学习映射函数。这样可以解决深层网络训练中的梯度消失和梯度爆炸问题,使得网络更易于训练和优化。
3.2 Batch Normailization 的原理,思考 BN、LN、IN 的主要区别。
Batch Normalization(批归一化)的原理是通过在网络的每个层输入前对其进行归一化,使得输入的均值接近于0,标准差接近于1。这有助于缓解梯度消失问题,加速训练过程,并且可以允许使用更高的学习率。区别如下:
- BN(Batch Normalization):在每个小批量样本上进行归一化,适用于深度学习中的卷积层和全连接层。
- LN(Layer Normalization):在每个层的所有单元上进行归一化,适用于循环神经网络(RNN)等不适合使用小批量样本的情况。
- IN(Instance Normalization):在每个样本的所有通道上进行归一化,适用于风格迁移等任务。
3.3 为什么分组卷积可以提升准确率?既然分组卷积可以提升准确率,同时还能降低计算量,分数数量尽量多不行吗?
分组卷积可以提升准确率的原因是它可以增加网络的非线性表示能力。将卷积层的输入通道分成多个组,每组内部进行卷积运算,可以让不同组之间学习不同的特征表示,提取更多的信息。同时,分组卷积也可以减少计算量,因为它减少了卷积层参数的数量,节省了存储和计算资源。
尽管增加分组的数量可能会提高准确率,但增加过多的分组也会带来一些问题。首先,分组卷积需要更多的内存来存储参数,因此过多的分组可能导致内存占用过大。其次,过多的分组会增加计算量,因为每个分组内部的卷积仍然需要计算,可能会抵消准确率的提升效果。因此,需要在分组数量和准确率之间找到一个平衡点,以确保在提升准确率的同时,计算量和内存占用能够保持在合理的范围内。