A Minimum Volume Covering Approach with a Set of Ellipsoids
2014-12-23 17:47
316 查看
CSDN这渣排版……还是看这里吧……点击打开链接
最小椭圆覆盖问题
上凸优化的时候老师讲了一个问题:给定一堆样本点,如何用一个最小的椭圆把它们全部包括进来。其实就是解一个凸优化问题:minimizeA,bsubject to det(A) ||Axi+b||≤1 i=1,2,…,mA≥0
之所以写成这种形式,是因为椭圆的方程可以表达为:
(x−a)TW(x−a)≤1
其中W是一个描述椭圆形状的正定矩阵,a是椭圆的中心,而椭圆的面积与det(W)成正比。根据正定阵的性质,W一定可以分解为一个矩阵A及其转置的乘积,W=ATA,det(W)=det(A)2。因此最小化det(W)就是最小化det(A)。
相比第二种写法,第一种写法的好处在于将二次不等式变成了仿射的。在使用CVX工具箱的时候,向量的二次不等式约束是不被接受的。
用多个椭圆覆盖样本
上一节的问题可以推广到用多个椭圆覆盖所有样本。当样本本身具有比较明显的聚集情况时,这样显然能更好地刻画样本的分布情况。我读到的这篇文章A Minimum Volume Covering Approach with a Set of Ellipsoids就是在解决这个问题。如果引入E个椭圆,我们的优化问题就变成了下面的形式:
minimizeAe,be,ηsubject to ∑e=1Edet(Ae) ∑eηei||Aexi+be||≤1 i=1,2,…,m∑e=1Eηei=1Ae≥0 e=1,2,…,E
其中ηei的取值为{0,
1},当ηei=1表示第i个样本应当被第e个椭圆覆盖。
需要注意的是,由于我们引入了η这个离散变量,我们的优化问题不再是凸的了,无法直接用凸优化的方式求解。为了解决这个问题,文章作者采用了一种迭代算法,在每一步迭代中,需要做两件事:
1. 固定现有的η(i),求解A(i)和b(i);
2. 固定A(i)和b(i),对样本重新划分,得到η(i+1);如果新的划分跟上一轮迭代没有区别则中止迭代。
我觉得这个算法的巧妙之处在于将原来非凸的问题转化成了一些更小规模的凸优化问题,使得求解变得非常方便。不过缺点也是显而易见的:如果初始的样本划分η(1)没有做好,那么算法就可能收敛到一个较差的结果。这让我想起了k-means算法:同样简单实用,同样依赖于一个好的初值。
思考
第一眼看到这个问题我的想法是用GMM(混合高斯)来做,得到高斯分布之后拿个平面一切就是一个椭圆。不过后来我又想到两者的优化目标是不一样的:椭圆覆盖问题对于处在椭圆外的样本点惩罚是无穷大(即不允许有样本没被覆盖),而混合高斯则是一个有限值。因此混合高斯对于outlier的鲁棒性肯定更高。另外由于高斯函数的特性,每一个样本点都有一定可能性属于任意一个高斯分布,也就是说ηei是一个[0,1]区间内的连续值。这也是为什么混合高斯模型可以用EM算法直接求解而不用担心局部最优的问题。
原文作者也讨论了outlier的问题,做法是引入一个类似SVM里的松弛系数,然后把这个松弛系数也加进目标函数里,像下面这样
minimizeAe,be,η,ξsubject to ∑e=1Edet(Ae)+C∑i=1mξi ∑eηei||Aexi+be||≤1+ξi i=1,2,…,m∑e=1Eηei=1 i=1,2,…,mξi≥0 i=1,2,…,mAe≥0 e=1,2,…,E
吐槽
搞控制论这帮人为啥要用椭圆?k-means跟GMM多方便啊。想不通啊,这么一篇文章是如何发在PAMI上的!!!
相关文章推荐
- Partition a set of numbers into two so that difference between their sum is minimum with equal size
- [leetcode]31. Next Permutation -Find next greater number with same set of digits
- Error with Stsadm Command-Object reference not set to an instance of an object
- ORA-600 [KFDAUDEALLOC2] AND INSTANCE CRASH EVEN WITH THE FIX OF BUG 14467061 (文档 ID 1903273.1)
- Randow Id generator with array of probability
- [Exception]SEVERE: Failed to set the internal configuration of the OC4J JMS Server with: XMLJMSServerConfig
- [Graphics] UIColor created with component values far outside the expected range, Set a breakpoint on UIColorBreakForOutOfRangeColorComponents to debug. This message will only be logged once.
- Patterns in Java: A Catalog of Reusable Design Patterns Illustrated with UML, 2nd Edition, Volume 1
- Next Number with Same Set of Digits
- DataPump Import Of Object Types Fails With Errors ORA-39083 ORA-2304 Or ORA-39117 ORA-39779 (Doc ID
- OA Framework - How to Find the Correct Version of JDeveloper to Use with E-Business Suite 11i or Release 12.x (Doc ID 416708.1)
- The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain(转)
- [Exception]Failed to set the internal configuration of the OC4J JMS Server with: XMLJMSServerConfig
- [LeetCode] Next Permutation - Next bigger number with the same set of digits
- Find next greater number with same set of digits
- The name or security ID (SID) of the domain specified is inconsistent with the trust information for that domain
- 【LeetCode with Python】 Minimum Depth of Binary Tree
- [Leetcode]Substring with Concatenation of All Words & Minimum Window Substring
- Initializing 'Object' *__strong' with an expression of incompatible type 'id <Object> _Nullable
- How to get request_id of previous request in a request set?