U-Net

(1)使用全卷积神经网络。(全卷积神经网络就是卷积取代了全连接层,全连接层必须固定图像大小而卷积不用,所以这个策略使得,你可以输入任意尺寸的图片,而且输出也是图片,所以这是一个端到端的网络。

 整个网络有23层卷积层。网络的左边是收缩网络,右边是扩张网络。

收缩网络由多组卷积神经网络组成,每组由两层3x3 unpadded卷积层组成,每个卷积层后使用ReLU。每组之间使用size=2,stride=2的maxpooling进行下采样。每组第一次卷积时,将特征图通道数增加一倍。

扩张网络的也是由多组卷积层组成,每组先使用2x2的up-convolution(转置卷积)将分辨率翻倍、通道数减半,然后与收缩网络中对应的层的输出特征图concatenation。但是因为U-net全部使用unpadded卷积的缘故,对应的收缩网络的特征图的分辨率更高,因为使用Overlap-tile策略,因此可以直接将收缩网络对应的特征图四周裁剪后再拼接到扩张网络特征图中。拼接后接两个unpadde的3x3卷积层,每个卷积后接ReLU。扩张网络的最后一层是1x1卷积层,将通道数由64转换为类别数。
 

ReLU函数

ReLU函数实际上就是神经元的一种激活函数,简单来说,激活函数,并不是去激活什么,而是指把“激活的神经元的特征”通过某个函数把特征保留并映射到对应的分类标签上,即负责将神经元的输入映射到输出端。

ReLU函数的表达式:

f(x) = max(0,x)

 从表达式可以看到ReLU函数实际上是一个取最大值的函数,从图像上则能看出该函数的作用是把大于0的数据都保留,而小于0的数据直接清零。这种“清零”实际上能够保证神经元的稀疏性,而这种“稀疏性”的好处则是能够降低计算量,并且能够防止过拟合,能够更好地挖掘图像特征。

选用ReLU函数作为激活函数的好处有以下几个:

①没有饱和区,不存在梯度消失问题。

②没有复杂的指数运算,计算简单、效率提高。

③实际收敛速度较快,比 Sigmoid/tanh 等激活函数快很多。

而缺点则是,当学习率过大的时候,可能造成大部分神经元清零死亡,即该神经元不会对任何数据有激活反应了。


2)图像的卷积和反卷积(上采样)

      图像的卷积实际上是利用卷积核来对图像进行特征提取的一个过程。卷积核是一个矩阵,通过设计这个矩阵(如矩阵的大小、矩阵中的数值),就可以把相对应的图像特征提取出来,如图像的边缘特征、纹理特征等等。

下图展示的是一个3×3卷积核对图片的卷积过程:

滑动卷积核

       图1中每一张图中间的3×3小正方形就是一个卷积核,左边是原始图像,而右边则是通过卷积后的结果,可以直观看到卷积的过程实际上就是把左边原图选定的3×3领域,与3×3的卷积核逐个数字对应相乘,最后把9个相乘后的结果相加,就是最终的卷积结果。

       从上图可以看到,原图经过卷积后,结果图像比原图小了一圈,这是因为卷积核本身也有大小,导致原图的边缘信息没法完全卷积到所造成的。为了避免这种现象,在对图像进行卷积时,一般会先对原图进行扩大(一般是在图像周围加一圈0),以保证在卷积后的图像大小和原始图像相同,如图2所示:

在这里插入图片描述

 从图2可以看到,在5×5原图(蓝色)的外面扩大一圈(白色)后,通过3×3卷积核卷积的结果图(绿色)能够同样保持5×5大小。

那如果把原图再往外扩大几圈呢?如图3所示:

在这里插入图片描述

从图3可以看出,把2×2原图扩大了两圈,再通过3×3的卷积核,卷积结果图像被增大为4×4的大小。 

①卷积后,结果图像比原图小:称之为valid卷积

②卷积后,结果图像与原图大小相同:称之为same卷积

③卷积后,结果图像比原图大:称之为full卷积

       其中,full卷积其实就是反卷积的过程。到这里应该可以意识到,反卷积实际上也是一种特殊的卷积方式,它可以通过full卷积将原图扩大,增大原图的分辨率,所以对图像进行反卷积也称为对图像进行“上采样”。因此,也可以很直接地理解到,图像的卷积和反卷积并不是一个简单的变换、还原过程,也就是先把图片进行卷积,再用同样的卷积核进行反卷积,是不能还原成原图的,因为反卷积后只是单纯地对图片进行扩大处。

 

      通过反卷积并不能还原卷积之前的矩阵,只能从大小上进行还原,因为反卷积的本质还是卷积。如果想要还原成原图像,只能通过专门设计不同的卷积核来实现。

选用了6个不同的卷积核,提取了图像中的6种特征,得到了右边的6个通道结果,每个特征通道的大小都为28×28×1。因此,需要提取多少个图像特征,就需要设计多少个不同的卷积核,这就是通常所说的卷积层。

损失函数

损失函数Loss Function是用来估量模型的预测值与真实值的不一致程度,它是一个非负实值函数,损失函数越小,模型的训练效果越好,鲁棒性越强。这是神经网络在通过梯度下降等方法调整参数,使得训练结果不断逼近真实值时必须使用到的一个函数。U-net中使用的损失函数为带权重的交叉熵损失函数

softmax回归模型

softmax回归跟线性回归一样将输入特征与权重做线性叠加。与线性回归的一个主要不同在于,softmax回归的输出值个数等于标签里的类别数。

由于每个输出o1,o2,o3o1,o2,o3的计算都要依赖于所有的输入x1,x2,x3,x4x1,x2,x3,x4,softmax回归的输出层也是一个全连接层。

 softmax运算

它通过下式将输出值变换成值为正且和为1的概率分布:

在这里插入图片描述

 

 

 

 归一化

交叉熵损失函数

衡量两个概率分布差异的测量函数 

softmax回归是一个多类分类模型

使用softmax操作得到每个类的置信度

使用交叉熵来衡量预测和标号的区别

二、U-net入门

 ①深蓝色箭头:利用3×3的卷积核对图片进行卷积后,通过ReLU激活函数输出特征通道;

②灰色箭头:对左边下采样过程中的图片进行裁剪复制;

③红色箭头:通过最大池化对图片进行下采样,池化核大小为2×2;

④绿色箭头:反卷积,对图像进行上采样,卷积核大小为2×2;

⑤青色箭头:使用1×1的卷积核对图片进行卷积。

U-net网络一共有四层,分别对图片进行了4次下采样和4次上采样。

从最左边开始,输入的是一张527×527×1的图片,然后经过64个3×3的卷积核进行卷积,再通过ReLU函数后得到64个570×570×1的特征通道。然后把这570×570×64的结果再经过64个3×3的卷积核进行卷积,同样通过ReLU函数后得到64个568×568×1的特征提取结果,这就是第一层的处理结果。

第一层的处理结果是568×568×64的特征图片,通过2×2的池化核,对图片下采样为原来大小的一半:284×284×64,然后通过128个卷积核进一步提取图片特征。后面的下采样过程也是以此类推,每一层都会经过两次卷积来提取图像特征每下采样一层,都会把图片减小一半卷积核数目增加一倍。最终下采样部分的结果是28×28×1024,也就是一共有1024个特征层,每一层的特征大小为28×28

右边部分从下往上则是4次上采样过程。从最右下角开始,把28×28×1024的特征矩阵经过512个2×2的卷积核进行反卷积,把矩阵扩大为56×56×512(注意不是1024个卷积核,结果仅仅是右半边蓝色部分的512个特征通道,不包含左边白色的),由于反卷积只能扩大图片而不能还原图片,为了减少数据丢失,采取把左边降采样时的图片裁剪成相同大小后直接拼过来的方法增加特征层(这里才是左半边白色部分的512个特征通道),再进行卷积来提取特征。由于每一次valid卷积都会使得结果变小一圈,因此每次拼接之前都需要先把左边下采样过程中的图片进行裁剪。矩阵进行拼接后,整个新的特征矩阵就变成56×56×1024,然后经过512个卷积核,进行两次卷积后得到52×52×512的特征矩阵,再一次进行上采样,重复上述过程。每一层都会进行两次卷积来提取特征,每上采样一层,都会把图片扩大一倍,卷积核数目减少一半。最后上采样的结果是388×388×64,也就是一共有64个特征层,每一层的特征大小为388×388。

在最后一步中,选择了2个1×1的卷积核把64个特征通道变成2个,也就是最后的388×388×2,其实这里就是一个二分类的操作,把图片分成背景和目标两个类别
 

U-net的输入是什么?

由于在不断valid卷积过程中,会使得图片越来越小,为了避免数据丢失,在图像输入前都需要进行镜像扩大,如图9所示:

 可以看到图像在输入前,四个边都进行了镜像扩大操作,以保证在通过一系列的valid卷积操作之后的结果能够与原图大小相一致。把大图进行分块输入的训练方式(如图9中的黄色框),最后将结果一块块拼起来。为了避免在拼接过程中边缘部分出现不连接等问题,在训练前,每一小块都会选择镜像扩大而不是直接补0扩大(如图9中的蓝色框),以保留更多边缘附近的信息。 

(3)数据增强

       当训练样本过少时,容易使得训练效果不佳。解决该问题的方法是数据增强,数据增强可以在训练样本较少时,也能够让神经网络学习到更多的数据特征,不同的训练任务,数据增强的方法也不尽相同。由于U-net文章中的任务是分割Hela细胞,作者选择了弹性变换的方式进行数据增强,如图10所示:

 图10的弹性变换其实就是把原图进行不同的弹性扭曲,形成新的图片,扩大样本量,由于这种弹性变化在细胞中是十分常见的,人为增加这种数据量能够让U-net学习到这种形变的不变性,当遇到新的图像时候可以进行更好地分割。 

  • 4
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值