Majorization-Minimization优化框架

Majorization-Minimization优化框架在各类算法中是很常见的,而且这个思想其实也很容易理解,简单点说,只需文献【1】中的三页PPT即可:

  1. 目标函数 J ( x ) J(x) J(x) 比较难优化的时候,我们往往寻找另外一个更容易优化的目标函数 G ( x ) G(x) G(x),当 G ( x ) G(x) G(x) 满足一定条件时, G ( x ) G(x) G(x) 的最优解能够无限逼近 J ( x ) J(x) J(x) 的最优解,这就是 MM 思想。
  2. G ( x ) G(x) G(x) 应该满足的三个条件:
     - 易优化
     - G k ( x ) ≥ J ( x k ) G_k(x) \geq J(x_k) Gk(x)J(xk) for all x x x
     - G k ( x ) = J ( x k ) G_k(x) = J(x_k) Gk(x)=J(xk)
  3. 我们看看图解过程
    在这里插入图片描述

Majorization-Minimization 思想

  • 我们再来看看 MM 思想的流程:
  1. Set k=0. Initialize x 0 x_0 x0.
  2. Choose G k ( x ) G_k(x) Gk(x) such that (a) G k ( x ) ≥ J ( x k ) G_k(x) \geq J(x_k) Gk(x)J(xk) for all x x x; (b) G k ( x ) = J ( x k ) G_k(x) = J(x_k) Gk(x)=J(xk).
  3. Set x k + 1 x_{k+1} xk+1 as the minimizer of G k ( x ) G_k(x) Gk(x)
  4. Set k = k + 1 k = k+1 k=k+1 and go to step 2.
  • G k ( x ) G_k(x) Gk(x) 满足的两个条件我们可以推出如下不等式:

J ( x k + 1 ) ≤ G k ( x k + 1 ) ≤ G k ( x k ) = J ( x k ) J(x_{k+1}) \leq G_k(x_{k+1}) \leq G_k(x_k) = J(x_k) J(xk+1)Gk(xk+1)Gk(xk)=J(xk)

  • 上述不等式保证了我们在优化目标函数 G ( x ) G(x) G(x) 的过程中,也在不停的优化 J ( x ) J(x) J(x).

或者另一种说法:

  • 考虑到以下优化问题:
    minimize x f ( x ) , x ∈ X \textrm{minimize}_x f(x), x \in \mathcal{X} minimizexf(x),xX, 其中 X \mathcal{X} X 是一个闭凸集并且 f ( x ) f(x) f(x) 是连续的。

由于 f ( x ) f(x) f(x) 太复杂而无法操作,所以我们连续最小化一个逼近函数 u ( x , x k ) u(x, x^k) u(x,xk),我们希望最小化序列 { x k } \{x^k\} {xk} 将收敛到最优 x ∗ x^* x

现在的问题是如何构造 u ( x , x k ) u(x, x^k) u(x,xk)?
需要满足以下构造规则:

u ( x , y ) = f ( y ) , ∀ y ∈ X u(x, y) = f(y), \forall y \in \mathcal{X} u(x,y)=f(y),yX
u ( x , y ) ≥ f ( y ) , ∀ x , y ∈ X u(x, y) \geq f(y), \forall x,y \in \mathcal{X} u(x,y)f(y),x,yX
u ′ ( x , y ; d ) ∣ x = y = f ′ ( y ; d ) , ∀ d w i t h y + d ∈ X u'(x, y;d)|_{x=y} = f'(y;d), \forall d with y+d \in \mathcal{X} u(x,y;d)x=y=f(y;d),dwithy+dX
u ′ ( x , y ) 在 x 和 y 处 连 续 u'(x, y) 在 x 和 y 处连续 u(x,y)xy

图示为:
在这里插入图片描述

  • 专业化最小化(连续上界最小化):
  1. 找到一个可行点 x 0 ∈ X , 设 置 k = 0 x^0 \in \mathcal{X},设置 k=0 x0Xk=0
  2. 重复 x k + 1 = arg min ⁡ x ∈ X u ( x , x k ) , k = k + 1 x^{k+1} = \argmin_{x \in \mathcal{X}} u(x, x^k),k = k+1 xk+1=xXargminu(x,xk)k=k+1
  3. 直到满足一些收敛准则停止。

【注意】:在迭代过程中,新的目标函数是不断随着迭代点的变化而变化的。

可以看出,Majorization Minimization流程很简单,关键的问题是如何构建新的目标函数。有关这个问题在文献 [2,3,4] 中都有涉及。

另外,文献 [5] 将 Majorization Minimization 进行了推广,即 Generalized MM:
在这里插入图片描述

Algorithm 1: G-MM optimization

Input: w o , η , ϵ w_o, \eta, \epsilon wo,η,ϵ
1: v 0 : = F ( w 0 ) v_0 := F(w_0) v0:=F(w0)
2: for t : = 1 , 2 , … t := 1,2,\dots t:=1,2, do
3: select b t ∈ B t = B ( w t − 1 , v t − 1 ) b_t \in \mathcal{B}_t = \mathcal{B}(w_{t-1}, v_{t-1}) btBt=B(wt1,vt1) as in (4)
4: w t : = arg min ⁡ w b t ( w ) w_t := \argmin_wb_t(w) wt:=wargminbt(w)
5: d t : = b t ( w t ) − F ( w t ) d_t := b_t(w_t) - F(w_t) dt:=bt(wt)F(wt)
6: v t : = b t ( w t ) − η d t v_t := b_t(w_t) - \eta d_t vt:=bt(wt)ηdt
7: if d t < ϵ d_t \lt \epsilon dt<ϵ break
8: end for
Output: w t w_t wt


参考文献:

【1】谷鹄翔.IteratedSoft-ThresholdingAlgorithm[Report,slides]. http://www.sigvc.org/bbs/thread-41-1-2.html

【2】Ying Sun and Daniel P. Palomar. Majorization-Minimization Algorithm: Theory andApplications[slides]. 2015,HongKong. (Available at:http://www.ece.ust.hk/~palomar/ELEC5470_lectures/11/slides_MM_algorithms.pdf)

【3】Lange, K., Hunter, D.R., Yang, I…OptimizationTransfer Using Surrogate Objective Functions[J]. Journal ofComputational &Graphical Statistics, 2000, 9(1):1-20. (Available at:http://sites.stat.psu.edu/~dhunter/papers/ot.pdf)

【4】D. R. Hunter, and K. Lange, ”A Tutorial on MMAlgorithms”, Amer. Statistician, pp. 30-37, 2004. (Available at: http://sites.stat.psu.edu/~dhunter/papers/mmtutorial.pdf)

【5】Parizi S N, He K, Sclaroff S, et al.Generalized Majorization-Minimization[J]. Computer Science, 2015,121(2):95-108. (Available at:http://arxiv.org/pdf/1506.07613.pdf)

### 回答1: Majorization-minimization算法是一种常用的优化算法,用于解决最小化问题。它的核心思想是通过构造一个凸函数的上界替代原始目标函数,然后在每一次迭代中,求解上界函数的最小值来逼近目标函数的最小值。 Matlab中的majorization-minimization算法通常使用循环结构实现。首先,需要根据具体的优化问题,构造一个凸函数作为原始目标函数的上界。接下来,在每一次迭代中,通过求解上界函数的最小值,得到新的估计值。然后,将此估计值代入到上界函数中,得到新的上界函数,继续下一次迭代,直到满足停止准则。 在Matlab中,使用majorization-minimization算法的步骤大致如下: 1. 定义原始目标函数和初始估计值。 2. 进入循环结构,在每一次迭代中执行以下步骤: - 根据当前估计值构造上界函数。 - 求解上界函数的最小值,得到新的估计值。 - 判断是否满足停止准则,如果满足,跳出循环;否则,继续下一次迭代。 3. 返回最终的估计值作为优化问题的解。 需要注意的是,上界函数的构造和求解最小值的具体方法,以及停止准则的选择,都取决于具体的优化问题。在Matlab中,可以使用函数和工具箱来方便地实现这些操作。 总之,majorization-minimization算法是一种用于解决最小化问题的优化算法,通过构造凸函数的上界,迭代地求解上界函数的最小值,逼近目标函数的最小值。在Matlab中,可以使用循环结构和相应的函数和工具箱来实现该算法。 ### 回答2: Majorization-Minimization(MM)算法是一种优化算法,被广泛应用于数值计算、机器学习和数据分析中。MM算法的核心思想是通过一系列简单的步骤来构造一个“替代函数”,然后通过最小化这个替代函数来逐步逼近优化问题的解。 在Matlab中,MM算法通常用于求解最小化一个目标函数的优化问题。其基本步骤如下: 1. 初始化参数:首先,需要给定一个初始值作为优化问题的起点。 2. 重复迭代:在每一步迭代中,通过以下两个基本步骤来更新参数值,直到达到收敛条件。 2.1 Majorization步骤:在这一步中,通过构造一个“替代函数”来近似原始目标函数,并将其最小化。这个替代函数通常是原始目标函数的一个上界函数,在当前参数值处达到极小值。 2.2 Minimization步骤:在这一步中,通过最小化替代函数来得到参数的新估计值。这通常可以通过数值优化算法(如梯度下降法)来实现。 3. 收敛判断:在每次更新参数后,可以计算原始目标函数在新参数值处的变化,并与设定的收敛准则进行比较。如果满足收敛准则,则停止迭代,即得到最优解;否则继续进行迭代。 总体来说,MM算法是一种迭代的优化方法,通过构造替代函数和利用数值优化算法来逐步逼近目标函数的最小值。在Matlab中,可以使用MM算法来求解各种优化问题,包括参数估计、最小二乘法问题等。需要注意的是,MM算法对于不同的优化问题,替代函数和优化算法的选择可能是不同的,需要根据具体问题进行调整。 ### 回答3: matlab majorization-minimization算法是一种用于解决优化问题的算法。该算法的基本思想是通过构造一个上界函数来近似原始问题,然后通过最小化上界函数来逼近原始问题的最优解。 该算法的步骤如下: 1. 初始化待优化的变量,并给定收敛准则和最大迭代次数。 2. 进入迭代循环。 3. 在每一次迭代中,首先对原始问题进行上界构造。通过引入一个辅助函数,将原始问题转化为一个带有辅助变量的上界函数。 4. 接下来,通过最小化上界函数来近似原始问题的最优解。这一步通常需要进行数值计算和迭代求解。 5. 检查收敛准则是否满足,如果满足则停止迭代,返回最优解;如果不满足,则继续迭代。 6. 返回最优解或者迭代次数达到上限时结束算法。 matlab majorization-minimization算法优化问题中具有一定的优势。首先,它可以应用于多种类型的优化问题,包括凸优化和非凸优化。其次,由于构造的上界函数逼近了原始问题,因此算法在求解过程中能够有效地降低问题的复杂度。此外,该算法在matlab环境下实现较为简便,可利用matlab提供的优化工具箱进行数值计算。 总之,matlab majorization-minimization算法是一种有效的优化算法,通过构造上界函数来逼近原始问题的最优解。其在实际应用中能够有效地解决优化问题,具有一定的实用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值