博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【简评】[CVPR2017]Loss Max-Pooling for Semantic Image Segmentation
阅读量:6937 次
发布时间:2019-06-27

本文共 1989 字,大约阅读时间需要 6 分钟。

现有方法

1.构建数据集时近似均匀地采样,保证每种类别分布较为均匀

  • 这种方法在image-level上还比较方便操作,在semantic segmentation上难以保证

2.对minority classes进行上采样或者对majority classes进行下采样缺点:

  • 会改变数据潜在分布
  • 对数据不是最优利用(suboptimal exploitation),比如可能会丢掉一些majority classes的数据
  • 增加计算成本和过拟合的风险,比如某些minority classes数据会被重复利用很多次

3.cost-sensitive learning

  • 现在semantic segmentation datasets增加了更多的minority classes,这使得权重的划分更复杂

所以这篇文章提出了一种新的解决方法:Loss Max-Pooling

主要思想

1.通过pixel weighting functions自适应地对每个像素的contribution(实际展现的loss)进行re-weighting

  • 引起更高loss的像素的权重更大,这直接对潜在的类内和类间不平衡进行了补偿
  • Focus on a family of weighting functions with bounded p-norm and donkey_081f6527-9680-4bca-b8d1-fdc2d2c2f-norm

2.通过普通的max-pooling在pixel-loss level上对pixel weighting function取最大

3.而这个最大值是传统loss(即每个像素损失的权重是相等的)的上界

数学分析

Standard setting

语义分割任务中损失公式定义如下:

donkey_f6b94f97-6d59-4538-8547-7624c9693

donkey_6fd8e423-4917-47a5-8653-f75579661是损失函数,donkey_ec5c2468-521f-49d6-bcb4-aa26e7ce6是正则项

在普通semantic segmentation中,损失又可继续写成:

donkey_776ce8c9-5e93-41b3-bbee-cf791a0b0

其中:

  • donkey_9f579bd2-27b5-4f38-b6ec-4168942c6是每个像素的损失,donkey_a0575f67-d2c0-470d-9829-8c3c3a755是定义的求和符号
  • 可见每个像素损失的权重是均匀的,这将使学习器偏向于图像中的主要部分

Loss Max-Pooling

文章设计了一个weighting function的convex, compact的空间,donkey_c3d58049-b9bd-41e3-889f-4fd7610f0,其中包括了均匀加权的情况,即donkey_9199a09d-fe93-4642-9a6c-20d047524

得到的损失函数如下:

donkey_b74bdf2a-7ae4-45cb-baf2-1cac20f57

之后,文章定义了一个新的损失,即对不同weighting functions下的损失取最大:

donkey_ecd73399-1216-433d-819a-9e6abb7d0

而这是文章中定义的所有损失函数的上界,包括传统的均匀加权的损失。文章提到这里的取最大值其实就是,max-pooling在pixel-loss level上的应用,所以这种方法才叫做 Loss Max-pooling。

Loss Max-Pooling的特性取决于空间donkey_0a46b40d-b223-4eab-a02e-fa5ceecf3的形状。所以,文章中对空间donkey_4550d779-59e9-4ffc-bf92-710db2294进行了一些限定。

The space donkey_1ca9ff7d-00cc-40dd-bb19-9bf874566 of weighting functions

文章中关注的是由
donkey_c9fa7bf5-e83b-4f7b-a2c0-f7b6644cf
范数和
donkey_b9e3b5d5-6522-4010-a8f4-62af6b053
范数限定的weighting functions,这里对
donkey_c9fa7bf5-e83b-4f7b-a2c0-f7b6644cf
范数和
donkey_b9e3b5d5-6522-4010-a8f4-62af6b053
范数也进行了限定。
donkey_3feaab61-bddb-4900-9e7d-93a58274b

其中,donkey_faab3add-d293-4c75-a772-e24e99320donkey_6df442f2-839a-4536-a9ec-64fee94a2的取值范围是donkey_baf26cc3-4791-4f32-bce3-6e321e5f5

Left:二维情况下donkey_56a4b2cf-f3d1-41c4-b3ef-c253cf3f5的图形,其中donkey_1a5c447f-1a42-43a6-b7b5-cc5aaba3f

Right:当donkey_c159c45a-9a48-4f99-816a-e55337c44时的donkey_0d904841-8e1d-43c1-9342-ddb0a9502

通过改变donkey_c312f6ed-eb60-47c6-be5f-407a0d887可以控制pixel selectivity degree of the pooling operation

一方面:

  • As donkey_a8074687-28b2-4cc6-9cd2-1b463e051 , the optimal weights will be in general concentrated around a single pixel
  • As donkey_75070933-7b8e-4ecb-86b5-2a634562a , the optimal weights will be uniformly spread across pixels

另一方面:

  • donkey_f7698261-ae1b-4ce4-a40e-720098d4c可以通过关系,donkey_5a2b2ab6-72bc-41c8-963d-86a39e2ba 控制被optimal weighting function support的最小像素数(我的理解是,其实就是保证至少多少像素被赋予权重)
可以由下面两幅图来理解:

图中选取了100个像素,同时为了可视化对像素进行了排序。

由左图可以看到,当donkey_9855d03d-6bfc-4e8f-a52f-d5f5230b7接近donkey_39f9353f-2b83-42f8-b999-746e68d67的时候,权重变成了均匀加权(蓝色虚线);当donkey_9855d03d-6bfc-4e8f-a52f-d5f5230b7接近1时,权重变得很陡峭,但是m的限制保证了至少需要support的像素数。

由右图可以看出,当donkey_d180371c-6c5a-4a51-9002-1589962f9时权重又变为了均匀加权(红色虚线),而每个值都对应了一段平均加权,也就说明donkey_6f919ef1-c5ee-4fc7-aa4a-c32bf77cb代表了像素共享权重的程度。

之后文章主要介绍了对donkey_43211c2e-a362-44c2-8b02-85573a71f的计算,计算时采用了对偶的方式来求解,最后转化为对donkey_0ca35777-d8fd-43d2-a292-37ae6bf62donkey_dbed1e5b-1963-4fb1-bbfb-527336ea4的计算,具体详细证明可以请看论文。最后算法流程如下:

文中还提到了一个辅助的取样策略,综合考虑了均匀采样和模型性能。因为文中并未细说,同时也不是本文重点,所以在此不赘述了。

实验结果

LMP是Loss Max-pooling+辅助取样策略的结果;Proposed loss only是不加辅助取样策略的结果;所有结果没有使用multi-scale input和CRF做进一步优化。

原文发布时间为: 2017-06-15

本文作者:ycszen

本文来自云栖社区合作伙伴极市网,了解相关信息可以关注极市网。

转载地址:http://vyznl.baihongyu.com/

你可能感兴趣的文章
通过变长数组(VLA)来看编译器的不同
查看>>
企业项目管理体系
查看>>
vim 初学简单设置
查看>>
RobotFrameWork(五)控制流之if语句——Run Keyword If
查看>>
javascript学习之基本概念
查看>>
超凡蜘蛛侠观后感
查看>>
关于android分辨率和使用iphone版切图
查看>>
快应用quickapp快速入门教程 by五个半柠檬2
查看>>
Web Services
查看>>
MFC中的几个常用类——CWnd
查看>>
理解Java中的hashCode 和 equals 方法
查看>>
ImportError: No module named pil
查看>>
mac 香港购买分享
查看>>
Spring JdbcTemplate方法详解
查看>>
AndroidStudio更换黑色主题方法
查看>>
实现entity、dao 、service 、serviceImpl自动生成
查看>>
Python开发环境Wing IDE如何设置Python路径
查看>>
如何面对大容量的数据存储
查看>>
shell基础2
查看>>
分析思维导图与绘制思维导图方法介绍
查看>>