深度学习总结(三)ResNet
ResNet残差网络
1、核心组件:(加了直连)
Plain net: 可以拟合出任意目标映射H(x);
Residual net:
可以拟合出任意目标映射F(x),H(x) = F(x) + x
F(x)是残差映射,相对于identity来说;
当H(x)最优映射接近identity时,很容易捕捉到小的扰动;
解释:上图左边为普通结构,也就是H(x) = F(x); 右边为残差块,在原始卷积结果上,加了一个直连,使得映射 H(x) = F(x) + x;
为什么这样做:可避免梯度消失,如对H(x) = F(x) + x求导,H'(x) = F'(x) + 1 也就是无论F'(x) 有多小,H'(x)都会大于1;
也可表示为:
2、设计:
全是3*3卷积核;
卷积步长2取代池化;
用BN;
取消了:Max池化;全链接;Dropout;
上图分解后:
虚线的直连部分为尺寸降维(步长为2),通道升维(64 -> 128);
3、改进:
更深的网络:根据Bootleneck优化残差映射网络;
原始:3*3*256*256 -> 3*3*256*256
优化:1*1*256*64 -> 3*3*64*64 -> 1*1*64*256;