神经网络与深度学习——第5章 卷积神经网络

本文讨论的内容参考自《神经网络与深度学习》https://nndl.github.io/ 第5章 卷积神经网络

卷积神经网络

卷积

卷积的定义

一维卷积


二维卷积


互相关


卷积的变种

卷积的数学性质

交换性
导数


卷积神经网络

用卷积来代替全连接



卷积层




汇聚层



卷积网络的整体结构

参数学习


卷积神经网络的反向传播算法



几种典型的卷积神经网络

LeNet-5



这里解释一下(2),平均汇聚是相加然后乘以一个可训练参数,再加上一个可训练偏置,因此可训练参数的数量是 6 ∗ ( 1 + 1 ) 6 * (1 + 1) 6∗(1+1),而连接数是 6 ∗ 14 ∗ 14 ∗ ( 2 ∗ 2 + 1 ) 6 * 14 * 14 * (2 * 2 + 1) 6∗14∗14∗(2∗2+1),这里包括了偏置在内。
(3)C3这里使用了60个卷积核,为什么只得到了16个特征图,而不是60个特征图,这是LeNet-5的特殊的连接,连接表如下:

(5)C5卷积层是使用了120*16个二维的 5 X 5 5X5 5X5的卷积核,实际上就是120个三维的 5 X 5 X 16 5X5X16 5X5X16的卷积核。

实际上,上面的卷积核都是二维的,所以算起来不太一样,卷积层输出的特征图数目等于卷积核数目,不论上一层的特征图有多少,卷积核都可以进行卷积,最终只输出一个特征图(见下图),因为卷积核的通道数和输入特征图的通道数相同,每个通道都和卷积核对应通道的部分卷积,最后再相加,变成一个特征图。

AlexNet



Inception网络



残差网络


其他卷积方式

转置卷积





空洞卷积


总结和深入阅读


习题



这里再解释一下窄卷积和宽卷积,以1维举例

比如说我有7个元素,卷积核长度是5,那么窄卷积出来的元素个数就是(7-5+1)= 3,而为了把边缘特征也提取出来,就需要进行0填充,在7个元素的左右各填充(5-1)=4个0,总共就有15个元素,那么宽卷积出来的元素个数就是(15-5+1)=11。接下来来证明宽卷积的可交换性:
首先给定一个二维图像 X ∈ R M X N X \in R^{MXN} X∈RMXN和一个二维卷积核 W ∈ R U X V W \in R^{UXV} W∈RUXV,由于要使用宽卷积,所以对图像进行填充,两端各补 U − 1 U-1 U−1和 V − 1 V-1 V−1个零,得到全填充图像 X ∈ R ( M + 2 U − 2 ) X ( N + 2 V − 2 ) X \in R^{(M+2U-2)X(N+2V-2)} X∈R(M+2U−2)X(N+2V−2)

结果是一样的,所以是可交换的。

1X1的卷积核可以用来升降维,因为卷积后的特征图通道数和卷积核个数是相同的,那么通过给定个数的1X1卷积核就可以实现升降维。
1X1卷积核的升维和降维就是通道之间的线性组合,实现跨通道的信息交互,比如说3X3,64channel的卷积核后面再加一个1X1,28channel的卷积核,就会变成3X3,28channel的卷积核,原来的64个channel可以理解为跨通道线性组合变成了28个channels。
1X1卷积核增加了网络深度,因为添加了一层卷积层,卷积过程会包含一个激活函数,所以在特征图从尺寸不改变的情况下,增加了网络深度,增加了非线性,所以会增加整个网络的表达能力。


(1)通道数为256到256,相当于使用了256个3X3的卷积核,所以时间复杂度是 100 ∗ 100 ∗ 256 ∗ 3 ∗ 3 ∗ 256 = 5898240000 100*100*256*3*3*256=5898240000 100∗100∗256∗3∗3∗256=5898240000
空间复杂度是 256 ∗ 100 ∗ 100 = 2560000 256*100*100=2560000 256∗100∗100=2560000
(2)通道数先从256到64再到256
时间复杂度是 100 ∗ 100 ∗ 256 ∗ 1 ∗ 1 ∗ 64 + 100 ∗ 100 ∗ 64 ∗ 3 ∗ 3 ∗ 256 = 1638400000 100*100*256*1*1*64+100*100*64*3*3*256=1638400000 100∗100∗256∗1∗1∗64+100∗100∗64∗3∗3∗256=1638400000
空间复杂度是 64 ∗ 100 ∗ 100 + 256 ∗ 100 ∗ 100 = 3200000 64*100*100+256*100*100=3200000 64∗100∗100+256∗100∗100=3200000
可以看到1X1的卷积核虽然多了些空间复杂度,但能大幅减少时间复杂度。


以习题5-5的例子来说,

比如前向计算的时候,第 l + 1 l+1 l+1层的净输入为 z ( l + 1 ) = W ( l + 1 ) z ( l ) z^{(l+1)}=W^{(l+1)}z^{(l)} z(l+1)=W(l+1)z(l),那么反向传播时,第 l l l层的误差项为 δ ( l ) = ( W ( l + 1 ) ) T δ ( l + 1 ) \delta^{(l)}=(W^{(l+1)})^T \delta^{(l+1)} δ(l)=(W(l+1))Tδ(l+1),是一种转置关系。

相关推荐
kakaZhui3 分钟前
【llm对话系统】大模型源码分析之 LLaMA 位置编码 RoPE
人工智能·深度学习·chatgpt·aigc·llama
struggle20251 小时前
一个开源 GenBI AI 本地代理(确保本地数据安全),使数据驱动型团队能够与其数据进行互动,生成文本到 SQL、图表、电子表格、报告和 BI
人工智能·深度学习·目标检测·语言模型·自然语言处理·数据挖掘·集成学习
davenian4 小时前
DeepSeek-R1 论文. Reinforcement Learning 通过强化学习激励大型语言模型的推理能力
人工智能·深度学习·语言模型·deepseek
CM莫问4 小时前
什么是门控循环单元?
人工智能·pytorch·python·rnn·深度学习·算法·gru
kakaZhui8 小时前
【llm对话系统】大模型 Llama 源码分析之 LoRA 微调
pytorch·深度学习·chatgpt·aigc·llama
eso19838 小时前
深度学习模型在汽车自动驾驶领域的应用
深度学习·自动驾驶·汽车
梦云澜9 小时前
论文阅读(九):通过概率图模型建立连锁不平衡模型和进行关联研究:最新进展访问之旅
论文阅读·人工智能·深度学习
prince_zxill10 小时前
机器学习优化算法:从梯度下降到Adam及其变种
人工智能·深度学习
paradoxjun11 小时前
YOLOv8源码修改(4)- 实现YOLOv8模型剪枝(任意YOLO模型的简单剪枝)
深度学习·yolo·目标检测·剪枝
视觉语言导航11 小时前
构建具身智能体的时空宇宙!GRUtopia:畅想城市规模下通用机器人的生活图景
人工智能·深度学习·具身智能