深度学习卷积层
分类猫和狗的图片
使用一个相机采集图片(12M像素), RGB图片有36M元素, 使用100大小的单隐藏层MLP, 模型有3.6B元素, 远多于世界上所有猫和狗总数(900M狗, 600M猫), 所以如果采用原始的MLP解决需要16亿的参数, 那么卷积神经网络提供了一个新的解决办法
两个原则
- 平移不变性: 不论分类是在那个地方看应当都是差不多的
- 局部性: 只需要观察一部分数据, 不需要观察全局的数据
全联接层到卷积层
- 将输入和输出变形为矩阵(宽度, 高度)
- 将权重变形为4-D张量(h, w), 到(h’, w’)
hi,j=∑k,lwi,j,k,l=∑a,bvi,j,a,bxi+a,j+b h_{i,j} = \sum_{k,l}w_{i,j,k,l} = \sum_{a,b}v_{i,j,a,b}x_{i+a,j+b} hi,j=k,l∑wi,j,k,l=a,b∑vi,j,a,bxi+a,j+b
hi,jh_{i,j}hi,j是输出, V是W的重新索引Vi,j,a,b=Wi,j,i+a,j+bV_{i,j,a,b}=W_{i,j,i+a,j+b}Vi,j,a,b=Wi,j,i+a,j+b
平移不变性
X的平移导致h的平移hi,j=∑a,bVi,j,a,bXi+a,j+bh_{i,j}=\sum_{a,b}V_{i,j,a,b}X_{i+a,j+b}hi,j=∑a,bVi,j,a,bXi+a,j+b
V不应该依赖(i, j)
解决方案: Vi,j,a,b=Va,bV_{i,j,a,b}=V_{a,b}Vi,j,a,b=Va,b
hi,j=∑a,bVa,bXi+a,j+b
h_{i,j} = \sum_{a,b}V_{a,b}X_{i+a,j+b}
hi,j=a,b∑Va,bXi+a,j+b
这就是二维的交叉相关
局部性
hi,j=∑a,bVa,bXi+a,j+b
h_{i,j} = \sum_{a,b}V_{a,b}X_{i+a,j+b}
hi,j=a,b∑Va,bXi+a,j+b
当评估hi,jh_{i,j}hi,j时, 我们不应该用远离Xi,jX_{i,j}Xi,j的参数, 解决方案, 当∣a∣,∣b∣>Δ|a|, |b| > \Delta∣a∣,∣b∣>Δ时, 使得Va,b=0V_{a,b}=0Va,b=0
hi,j=∑a=−ΔΔ∑b=−ΔΔVa,bXi+a,j+b
h_{i,j}=\sum_{a=-\Delta}^{\Delta}\sum_{b=-\Delta}^{\Delta}V_{a,b}X_{i+a,j+b}
hi,j=a=−Δ∑Δb=−Δ∑ΔVa,bXi+a,j+b`