自适应协方差矩阵调整演化策略(CMA-ES)进阶题
题目描述
考虑一个高维非凸优化问题:
\[\min_{\mathbf{x}in\mathbb{R}^n} f(\mathbf{x}) = \sum_{i=1}^{n-1} \left[ (1-x_i)^2 + 100(x_{i+1} - x_i^2)^2 \right], \quad n=20, \]
即高维扩展的Rosenbrock函数。该函数具有狭窄弯曲的谷底,梯度信息变化剧烈,传统梯度法易陷入局部最优或收敛缓慢。要求使用CMA-ES算法求解该问题,并分析其在高维空间中的适应性。
解题过程
1. CMA-ES算法核心思想
CMA-ES是一种基于种群的随机优化方法,通过自适应调整搜索分布的协方差矩阵来模拟自然进化过程。其关键特点包括:
- 均值向量 \(\mathbf{m}\):表示当前搜索分布的中心。
- 协方差矩阵 \(\mathbf{C}\):描述决策变量间的相关性及搜索方向。
- 步长 \(\sigma\):控制搜索范围。
算法通过迭代更新\(\mathbf{m}\)、\(\mathbf{C}\)和\(\sigma\),使搜索分布逐渐聚焦到全局最优附近。
2. 算法初始化
- 设置初始均值\(\mathbf{m}^{(0)}\)为随机点或先验猜测(如全零向量)。
- 初始协方差矩阵\(\mathbf{C}^{(0)} = \mathbf{I}\)(单位矩阵)。
- 初始步长\(\sigma^{(0)}\)根据问题尺度设定(例如\(\sigma^{(0)}=0.5\))。
- 种群大小\(\lambda\)通常取\(4 + \lfloor 3\ln n\rfloor\),本例中\(n=20\),则\(\lambda \approx 13\)。
3. 迭代步骤详解
第\(t\)次迭代过程如下:
步骤3.1 生成候选解
从当前多元正态分布中采样\(\lambda\)个个体:
\[\mathbf{x}_k^{(t+1)} = \mathbf{m}^{(t)} + \sigma^{(t)} \mathbf{B}^{(t)} \mathbf{z}_k, \quad \mathbf{z}_k \sim \mathcal{N}(0, \mathbf{I}), \]
其中\(\mathbf{B}^{(t)}\)是\(\mathbf{C}^{(t)}\)的特征向量矩阵,满足\(\mathbf{C}^{(t)} = \mathbf{B}^{(t)} (\mathbf{D}^{(t)})^2 (\mathbf{B}^{(t)})^\top\)。
步骤3.2 评估与排序
计算所有\(\mathbf{x}_k\)的函数值\(f(\mathbf{x}_k)\),按升序排序,选出最优的\(\mu\)个个体(通常\(\mu = \lfloor \lambda/2 \rfloor\))。
步骤3.3 更新均值向量
加权合并最优个体:
\[\mathbf{m}^{(t+1)} = \sum_{i=1}^{\mu} w_i \mathbf{x}_{i:\lambda}, \quad \sum w_i=1, \]
其中\(w_i\)为权重(通常\(w_1 \geq w_2 \geq \cdots \geq w_\mu > 0\))。
步骤3.4 更新协方差矩阵
协方差矩阵的更新结合了秩1更新(利用演化路径)和秩\(\mu\)更新(利用当前种群):
- 演化路径\(\mathbf{p}_c\)(跟踪均值移动方向):
\[ \mathbf{p}_c^{(t+1)} = (1-c_c)\mathbf{p}_c^{(t)} + \sqrt{c_c(2-c_c)\mu_{\text{eff}}} \frac{\mathbf{m}^{(t+1)} - \mathbf{m}^{(t)}}{\sigma^{(t)}}, \]
其中\(c_c \approx 4/n\)为学习率,\(\mu_{\text{eff}} = 1/\sum w_i^2\)。
- 协方差矩阵更新:
\[ \mathbf{C}^{(t+1)} = (1-c_1-c_\mu) \mathbf{C}^{(t)} + c_1 \mathbf{p}_c^{(t+1)} (\mathbf{p}_c^{(t+1)})^\top + c_\mu \sum_{i=1}^\mu w_i \mathbf{y}_{i:\lambda} \mathbf{y}_{i:\lambda}^\top, \]
其中\(\mathbf{y}_{i:\lambda} = (\mathbf{x}_{i:\lambda} - \mathbf{m}^{(t)}) / \sigma^{(t)}\),\(c_1 \approx 2/n^2\),\(c_\mu \approx \min(\mu_{\text{eff}}/n^2, 1-c_1)\)。
步骤3.5 更新步长\(\sigma\)
通过步长演化路径\(\mathbf{p}_\sigma\)控制:
\[\mathbf{p}_\sigma^{(t+1)} = (1-c_\sigma)\mathbf{p}_\sigma^{(t)} + \sqrt{c_\sigma(2-c_\sigma)\mu_{\text{eff}}} \mathbf{B}^{(t)} (\mathbf{D}^{(t)})^{-1} (\mathbf{B}^{(t)})^\top \frac{\mathbf{m}^{(t+1)} - \mathbf{m}^{(t)}}{\sigma^{(t)}}, \]
步长调整规则:
\[\sigma^{(t+1)} = \sigma^{(t)} \exp\left( \frac{c_\sigma}{d_\sigma} \left( \frac{\|\mathbf{p}_\sigma^{(t+1)}\|}{\mathbb{E}\|\mathcal{N}(0,\mathbf{I})\|} - 1 \right) \right), \]
其中\(c_\sigma \approx \mu_{\text{eff}}/n\),\(d_\sigma \approx 1\)为阻尼系数。
4. 针对高维Rosenbrock函数的适配
- 狭窄谷底问题:CMA-ES的协方差更新能捕捉变量间的依赖关系(如\(x_i\)与\(x_{i+1}\)),通过旋转搜索方向适应谷底弯曲。
- 避免早熟:步长控制机制在初始阶段保持较大探索范围,后期自适应收缩至精细搜索。
- 终止条件:当步长\(\sigma\)小于阈值(如\(10^{-15}\))或函数值变化率低于容差时停止。
5. 算法优势分析
- 无需梯度信息:适用于不可导或噪声问题。
- 自适应拓扑:协方差矩阵学习问题结构,比各向同性搜索更高效。
- 理论保障:基于信息几何理论,收敛性较稳定。
通过以上步骤,CMA-ES能有效求解高维非凸问题,尤其适合传统方法难以处理的复杂地形优化。