雷锋网 AI 科技评论按:2017 年 7 月,美国二手汽车批发平台 Carvana 在知名机器学习竞赛平台 kaggle 上发布了名为 Carvana 图像掩模大应战赛(Carvana Image Masking Challenge)的竞赛项目,吸引了许多计算机视觉等相关范畴的研讨者参与。
输出图像(左)和理想的输入图像(右)
Carvana 希望为消费者提供片面、通明的购车信息,以提升购置体验。传统的二手车销售平台向消费者提供的车辆展现图片往往是模糊的,短少规范标准的汽车信息图片往往也不能片面地向消费者展现片面的信息。这严重降低了二手车的销售效率。为理解决这一成绩,Carvana 设计了一套用以展现 16 张可旋转的汽车图片的零碎。但是,反光以及车身颜色与背景过于类似等成绩会惹起一系列视觉错误,使得 Carvana 不得不延聘专业的图片编辑来修正汽车图片。这无疑是一件费时费力的任务。因而,Carvana 希望此次竞赛的参赛者设计出可以自动将图片中的汽车从背景中抽离的算法,以便日后将汽车交融到新的背景中去。
此次竞赛历时约 2 个月,共吸引了来自 735 支参赛队伍的 875 名选手。其中,来自 Lyft 公司的 Vladimir Iglovikov 和来自 MIT 的 Alexey Shvets 凭仗名为 TernausNet 的任务拔得头筹。获奖之后他们也撰写了一篇论文引见了本人的竞赛思绪和运用的模型,雷锋网 (大众号:雷锋网) AI 科技评论把论文次要内容引见如下。
背景
近年来,用于密集计算的计算机硬件获得了提高,并且随着这些硬件越来越平民化,研讨者们可以处置拥无数以百万计的参数的复杂模型。其中,卷积神经网络(CNN)是一种在图像分类、目的辨认、场景分类等义务中被普遍使用的模型,获得了宏大的成功。不例外地,此次竞赛取得第一名的任务 TernausNet 也用到了基于 CNN 的神经网络组件。TernausNet 是一个可用于密集图像联系的深度学习模型,可以依据运用者的要求,对原始图像停止划分,将原始图像分红有不赞同义的若干局部。防止传统的手动图像联系的耗时耗力的费事,到达高效、高质量、规范化的图像联系要求。
TernausNet 运用应用 ImageNet 数据预训练失掉的 VGG11 编码器到达了进步 U-Net 网络功能的目的,出色的完成图像联系的义务。
网络架构
U-Net 是一种编码器-解码器构造,在网络向前传达的进程中,编码器逐步膨胀,增加池化层的空间维度;而解码器逐步扩张,逐渐修复物体的细节和空间维度。编码器和解码器之间通常存在腾跃衔接(skip connection),腾跃衔接可以将低层次的特征图和高层次的特征图结合起来,能协助解码器更好地修复目的的细节,完成像素级的定位。在上采样局部,少量的特征通道能向更高分辨率的层传送上下文信息。
U-Net 的编码器是一个基于全卷积神经网络(FCN)的网络构造,行将卷积神经网络(CNN)中的全衔接层交换为卷积层。FCN 可以承受恣意尺寸的输出图像,采用反卷积层对最初一个卷积层的特征图停止上采样, 使它恢复到输出图像相反的尺寸,从而可以对每个像素都发生了一个预测, 同时保存了原始输出图像中的空间信息, 最初在上采样的特征图上停止逐像素分类。
详细而言,TernausNet 的模型构造如图 1 所示。编码器是一个特征图尺寸逐步膨胀、通道数逐步添加的 FCN 网络构造,卷积层和池化层交替任务,用来捕获上下文的信息,逐渐对特征图停止下采样;解码器是一个与编码器对称的构造,其特征图尺寸逐步扩张,通道数逐步增加,对特征图停止上采样,逐渐恢复高分辨率的图片细节。依据 U-Net 的思想,解码器可以经过腾跃衔接将对应的编码器的高分辨率特征和解码器上采样失掉的特征图结合起来,最终输入一个逐像素的掩码。
图1. U-NET 编码器-解码器神经网络架构,编码器为用单一卷积层交换全衔接层的 VGG11 网络。蓝色的矩形代表经过上一阶段变换的多通道特征图。矩形的高度与特征图的尺寸成反比、宽度和通道数成反比。左侧编码器的通道数逐步添加,右侧解码器的通道数逐步增加。顶部衔接左侧和右侧的箭头表示从编码层向相应的解码层的信息迁移。
TernausNet 采用 VGG11 作为 U-Net 网络的编码器。如图 2 所示,VGG11 由 11 个向前传达的网络层组成。其中有 8 个卷积层,每个卷积层采用了 3*3 的卷积核,每个卷积层后都紧跟一个 ReLU 鼓励函数层,第 1、2、4、6、8 个卷积层后都紧跟一个 2*2 的最大池化操作,每次操作后特征图尺寸减半。第一个卷积层通道数为 64,第二层通道数为 128,第三层第四层通道数为 256,第五层到第八层通道数为 512。为了到达语义联系的目的,编码器采用了相似 FCN 的设计思绪,将 VGG11 的最初 3 层交换为了一个 512 通道的卷积层,它同时也是编码器与解码器的「瓶颈」,将 U-Net 的左右两个局部分开。
图2. VGG11网络架构。图中每个卷积层之后是ReLU激活函数。每个框中的数字表示对应特征图的通道数量
为了构建解码器,TernausNet 用两倍于特征图大小的转置卷积层同时将通道数减半。转置卷积的输入接着被衔接到相应的编码器输入。失掉的特征图经过卷积运算处置,坚持通道数量与对应的编码器相反。上采样步骤反复了 5 次用来与 5 个最大池化层配对。如图 1 所示,由于 TernausNet 有 5 个最大池化层,每层下采样图像两次,因而,只要边可以被 32,即 2 的 5 次方,整除的图像可以用作此模型的输出。
通常 U-Net 的权重是随机初始化的。而 TernausNet 绝对于传统的 U-Net 网络最大的改良在于:TernausNet 先用 ImageNet 预训练的权重初始化了 U-Net 的前几层,并使用了微调(fine tuning)。现实上,关于图像联系义务而言,手动标注的图像联系数据集往往至少也只要几千张图像,这样的数据规模绝对于 ImageNet 等包括数百万张图像的数据集来说是很小的。为了防止过拟合成绩,数据集合应该要足够大,但是这会带来很高的工夫开支。为了减小工夫开支并避免过拟合,TernausNet 运用了 ImageNet 数据集上训练的网络权重作为预训练的参数。
模型训练及实验后果
作者在 Inria 航空图像标注数据集上测试了 TernausNet 的功能。作者采用了 Jaccard 类似系数作为评价模型的规范。Jaccar 类似系数是两个无限集合之间的类似度度量。给定两个集合 A 和 B,Jaccard 类似系数定义为 A 与 B 交集的大小与 A 与 B 并集的大小的比值,定义如下:
在图像联系义务中,由于图像由像素点组成,在团圆成绩中,我们可以将jaccard类似系数改写为:
其中,
是像素点i的二值类别属性,
是经过模型预测得出的像素点的概率。
此时,可以将图像联系成绩看作一个像素的二分类成绩,其穿插熵损失函数可以表示为:
换句话说,整个 TernausNet 的损失函数可以表示为:
在测试集上失掉的实验后果如图3所示:
图3. 三种不同权重初始化条件下的 U-Net 模型的 Jaccard 类似系数随着训练次数的变化状况。蓝线表示随机初始化权重的模型,橙色的线表示编码器用 ImageNet 上预训练的 VGG11 网络权重初始化的模型,绿线表示网络在 Carvana 数据集上预训练的模型。
TernausNet 在 Inria 航拍图片数据集上的图像联系效果如图 4 所示:
图4. 绿色像素的二进制掩模表示分类簇(修建物)。图 A 表示初始图像和叠加的真实掩模。图 B 到图 D 表示经过不同的方式初始化并且训练 100 次之后失掉的预测后果。图 B 中的网络具有随机的初始化权重。图 C 中的模型解码器的权重是随机初始化的,编码器的权重以是在 ImageNet 上预训练的 VGG11 的网络权重停止初始化。图 D 的模型运用在 Carvana 数据集上预训练失掉的权重。
TernausNet 的作者以为,将来可以思索更多先进的预训练编码器,例如:VGG16或许ResNet,用来结构编码器-解码器模型。
原论文地址: https://arxiv.org/pdf/1801.05746.pdf ,雷锋网 AI 科技评论编译
相关文章:
Kaggle竞赛冠军经历分享:如何用 RNN 预测维基百科网络流量
Kaggle16000份问卷提醒数据迷信家均匀画像:30岁,硕士学位,年薪36万
。
