1.前言
这篇文章主要以几篇经典的分割论文为切入点,浅谈一下当Unet遇见ResNet会发生什么?
2. UNet
首先回顾一下UNet,UNet的结构如下图所示:

从UNet的网络结构我们会发现两个最主要的特点,一个是它的U型结构,一个是它的跳层连接。 其中UNet的编码器一共有4次下采样来获取高级语义信息,解码器自然对应了4次上采样来进行分辨率恢复,为了减少下采样过程带来的空间信息损失跳层连接被引入了,通过Concat的方式使得上采样恢复的特征图中包含更多low-level的语义信息,使得结果的精细程度更好。
使用转置卷积的UNet参数量是31M左右,如果对其channel进行缩小例如缩小两倍,参数量可以变为7.75M左右,缩小4倍变成2M左右,可以说是非常的轻量级了。UNet不仅仅在医学分割中被大量应用,也在工业界发挥了很大的作用。
3. ResNet
再来简单回顾一下ResNet。
在ResNet之前普遍认为网络的深度越深,模型的表现就更好,因为CNN越深越能提取到更高级的语义信息。但论文的实验发现,通过和浅层网络一样的方式来构建深层网络,结果性能反而下降了,这是因为网络越深越难训练。实验如Figure1所示:

因此网络的深度不能随意的加深,前面介绍的GoogLeNet和VGG16/19均在加深深度这件事情上动用了大量的技巧。那么到底什么是残差呢?
首先,浅层网络都是希望学习到一个恒等映射函数H(x)=xH(x)=xH(x)=x,其中===指的是用H(x)H(x)H(x)这个特征/函数来代表原始的xxx的信息,但随着网络的加深这个恒等映射变得越来越难以拟合。即是用BN这种技巧存在,在深度足够大的时候网络也会难以学习这个恒等映射关系。因此ResNet提出将网络设计为H(x)=F(x)+xH(x)=F(x)+xH(x)=F(x)+x,然后就可以转换为学习一个残差函数F(x)=H(x)−xF(x)=H(x)-xF(x)=H(x)−x,只要残差为000,就构成了一个恒等映射H(x)=xH(x)=xH(x)=x,并且相对于拟合恒等映射关系,拟合残差更容易。残差结构具体如Figure2所示,identity mapping表示的就是恒等映射,即是将浅层网络的特征复制来和残差构成新的特征。其中恒等映射后面也被叫作跳跃连接(skip connrection)或者短路连接(shortcut connection),这一说法一直保持到今天。同时我们可以看到一种极端的情

最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



