MM优化算法

原文地址:https://www.cnblogs.com/qiuhlee/p/9298877.html

MM算法思想

MM算法是一种迭代优化方法,它利用函数的凸性来找到它们的最大值或最小值。当目标函数 f ( θ ) f(\theta) f(θ)较难优化时,算法不直接对目标函数求最优化解,转而寻找一个易于优化的目标函数 g ( θ ) g(\theta) g(θ)替代,然后对这个替代函数求解, g ( θ ) g(\theta) g(θ)的最优解逼近于 f ( θ ) f(\theta) f(θ)的最优解。每迭代一次,根据所求解构造用于下一次迭代的新的替代函数,然后对新的替代函数最优化求解得到下一次迭代的求解。通过多次迭代,可以得到越来越接近目标函数最优解的解。

MM代表“Majorize-Minimization”或“Minorize-Maximization”,取决于所需的优化是最大化还是最小化。

  • Majorize-Minimization:每次迭代找到一个目标函数的上界函数,求上界函数的最小值。
  • Minorize-Maximization:每次迭代找到一个目标函数的下界函数,求下界函数的最大值。

期望最大化(EM)算法可以被视为MM算法的特殊情况,在机器学习中经常用到。MM算法与EM算法有联系但是又有区别,在EM算法中通常涉及条件期望,而在MM算法中,凸性和不等式是主要焦点。

以Minorize-Maximization为例, 使目标函数 f ( θ ) f(\theta) f(θ)最大化。

在算法的第 m ( m = 0 , 1... ) m(m=0,1...) m(m=0,1...)步,若满足以下条件,则目标函数 f ( θ m ) f(\theta_m) f(θm)可用构造函数 g m ( θ m ) g_m(\theta_m) gm(θm)代替。

g m ( θ ) ≤ f ( θ m )    ∀ θ g_m(\theta) \leq f(\theta_m) \ \ \forall \theta gm(θ)f(θm)  θ g m ( θ m ) = f ( θ m ) g_m(\theta_m) = f(\theta_m) gm(θm)=f(θm)

MM算法步骤

  1. 使 m = 1 m = 1 m=1,并初始化 θ 0 \theta_0 θ0
  2. 构造 g m ( θ ) g_m(\theta) gm(θ)满足条件 ( 1 ) (1) (1) ( 2 ) (2) (2)
  3. θ m + 1 = arg ⁡ min ⁡ θ   g m ( θ ) \theta_{m+1}=\arg\underset{\theta }{\mathop{\min }} \ g_m(\theta) θm+1=argθmin gm(θ)
  4. 使 m = m + 1 m=m+1 m=m+1,返回步骤2。

θ m \theta_m θm和目标函数的替代函数的迭代步骤如下图所示。

MM算法

由以上条件可的如下不等式:
f ( θ m + 1 ) ≥ g m ( θ m + 1 ) ≥ g ( θ m ∣ θ m ) = f ( θ m ) f(\theta_{m+1}) \geq g_m(\theta_{m+1}) \geq g(\theta_m|\theta_m) = f(\theta_m) f(θm+1)gm(θm+1)g(θmθm)=f(θm)

### MM算法概述 MM算法是一种优化方法,其核心思想是通过构建目标函数的一个代理函数(surrogate function),使得原问题的求解变得更加简单。该算法广泛应用于机器学习、统计学等领域中的非凸优化问题。在每次迭代过程中,MM算法会找到当前点处的目标函数上界,并最小化这个上界以逼近最优解。 #### MM算法的核心原理 MM算法基于两个主要原则:**Majorization** 和 **Minimization**。 - Majorization 是指构造一个辅助函数 \( G(x | x_k) \),它满足以下条件: - 对于任意 \( x \), \( f(x) \leq G(x | x_k) \)[^1]; - 当 \( x = x_k \) 时, \( f(x_k) = G(x_k | x_k) \)。 - Minimization 则是指,在每一步中,我们不是直接优化原始目标函数 \( f(x) \),而是优化它的替代函数 \( G(x | x_k) \)[^2]。 最终,通过不断重复上述过程,可以逐步收敛到局部极小值甚至全局极小值。 --- ### IT领域内的具体实现 以下是几种常见的MM算法的具体实现方式: #### 实现一:K均值聚类 (K-Means Clustering) 在 K 均值聚类中,虽然表面上看并没有显式提到 MM 算法的名字,但实际上它是 MM 方法的一种典型实例。这里的目标是最小化所有样本与其所属簇中心之间的距离平方和。为了简化计算复杂度高的欧氏距离项,引入了一个二次型作为 surrogate 函数来进行近似处理[^3]。 ```python import numpy as np def k_means_mm(data_points, num_clusters=3, max_iterations=100): centroids = data_points[np.random.choice(len(data_points), size=num_clusters)] for _ in range(max_iterations): distances = np.linalg.norm(data_points[:, None] - centroids, axis=-1) labels = np.argmin(distances, axis=1) new_centroids = np.array([data_points[labels == i].mean(axis=0) if sum(labels==i)>0 else c for i,c in enumerate(centroids)]) if np.allclose(new_centroids, centroids): break centroids = new_centroids return centroids, labels ``` 此代码片段展示了如何利用 MM 思想来更新质心位置直到收敛为止。 --- #### 应用场景分析 ##### 场景一:参数估计与模型拟合 当面对复杂的概率分布建模或者回归任务时,如果直接最大化似然难以操作,则可以通过设计合适的 majorizer 来间接完成这一工作。例如 EM 算法本质上也是一种特殊的 MM 技巧用于隐变量模型的学习当中[^4]。 ##### 场景二:稀疏编码(Sparse Coding) 对于信号处理里的压缩感知等问题来说,Lasso 或者其他形式正则化的线性方程组求解都可以借助 MM 架构得以解决。比如 FISTA(Fast Iterative Shrinkage Thresholding Algorithm) 就属于此类范畴之一[^5]。 ##### 场景三:深度神经网络训练加速 近年来也有研究尝试把 MM 的理念融入 DNN 训练框架之中,旨在缓解梯度消失现象并加快收敛速度。这类改进通常涉及重新定义损失表面以便更好地引导权重调整方向[^6]。 --- ### 数字经济背景下的意义延伸 随着数字化转型步伐加快,企业在追求高效能的同时也需要兼顾灵活性与创新能力。正如传统管理模式逐渐被现代化工具所取代那样[^7],传统的单一数值最优化策略同样面临挑战。而像 MM 这样的通用性强且易于扩展的方法论正好契合新时代需求——既能保持理论严谨又能灵活应对各种实际状况的变化。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值