P29 · 架构
卷积神经网络
1这节解决什么问题
一张普通的彩色图,直接摊平接到输出层,光这一层就要上千万个参数。参数多还不是最要命的,要命的是图像的两个常识完全没用上。
2一句话讲清
卷积把三条图像常识写进结构:有用的图案只占一小块、同样的图案可能出现在任何位置、物体缩小一点还是同一个东西。
3通俗解释
- 只看一小块:一个神经元不必连到整张图,只看一个小窗口。这样要学的数一下就少了。
- 同一组权重到处用(参数共享):同一个图案出现在左上角还是右下角,都用同一组权重去认。换个说法就是一个「滤镜」滑过整张图——两种说法是同一件事。
- 池化:把一小块里的结果汇总(比如取最大),没有参数。它带来的是「大致不变」——物体挪出这个小块,结果还是会变。
- 三件事合起来,参数量从几千万降到一千多,代价是把「图像大概长什么样」这个强假设写死了。讲义把它叫「更大的模型偏差」。
4一个例子
讲义例子
讲义用一张手写的小图和两个小滤镜走了一遍:滤镜在图上滑动,每停一处就把盖住的那一小块做一次加权求和,得到特征图上的一个数;换一个滤镜,同一位置得到另一个数。再用「取最大」做一次汇总,图就缩小一半。整个过程没有「学习」,只是把「看局部、到处用同一双眼睛」写进了结构。
5常见误区
- 以为卷积就是「平移不变」。更准确是「平移等变」:图往右挪,特征图也往右挪,数值不变,位置信息还在。真正把位置抹掉的是池化。
- 以为参数共享是「所有神经元权重一样」。只有同一个滤镜在图上各处共享;不同滤镜的参数不同,否则多个滤镜等于一个。
- 以为池化是必需品。讲义提到下围棋的程序就没用池化,因为棋子之间的全局关系重要;现在也常用「跨大步」的卷积代替。
6和相邻几节的关系
P36、P37 会把卷积说成「只在一个小窗口里做注意力」的特例;P38 的循环网络提供另一种看上下文的方式;P47、P48 的 Transformer 把「看哪里」交还给数据。
730 秒回顾
全连接参数爆炸;局部、共享、池化三条先验;共享等于滤镜滑窗;卷积是平移等变不是不变;池化可选;代价是图像专用的强假设。
8小自测
先自己答,再点开对答案。
1. 为什么说卷积是「平移等变」而不是「平移不变」?
输入平移,输出的特征图也跟着平移,数值不变——位置信息还在。真正把位置弄丢的是后面的池化。
2. 参数共享到底共享的是什么?
同一个滤镜在图像不同位置使用同一组权重;不同滤镜各有各的参数。若所有滤镜都一样,多个滤镜就等于一个。