Algorithms for Optimization
第十二章 多目标优化
第12章详细介绍了多目标优化(Multiobjective Optimization)的概念、方法和应用。多目标优化问题与单目标优化问题不同,它涉及多个目标函数的同时优化,通常这些目标之间是相互冲突的,无法通过单一的优化过程找到全局最优解。因此,多目标优化的核心在于找到一组Pareto最优解,这些解代表了不同目标之间的最佳权衡。以下是本章的详细讲解:
1. Pareto最优性(Pareto Optimality)
Pareto最优性是多目标优化的核心概念。它描述了一种状态,即在不损害其他目标的情况下,无法进一步优化任何一个目标。
1.1 支配关系(Dominance)
- 在单目标优化中,两个设计点可以通过目标函数值直接比较优劣。例如,若 f(x′)<f(x),则 x′ 优于 x。
- 在多目标优化中,目标函数返回的是一个向量 f(x)=[f1(x),f2(x),…,fm(x)],每个维度对应一个目标。
- 定义支配关系:设计点 x 支配设计点 x′,当且仅当:
- 在所有目标上,fi(x)≤fi(x′)(即 x 在所有目标上不劣于 x′);
- 至少在一个目标上,fi(x)<fi(x′)(即 x 至少在一个目标上优于 x′)。
- 如果两个设计点在部分目标上互相优于对方,则它们之间存在支配模糊性(Dominance Ambiguity),无法直接比较优劣。
1.2 Pareto前沿(Pareto Frontier)
- Pareto前沿是所有Pareto最优解在目标空间中的集合。它代表了不同目标之间的最佳权衡。
- 在目标空间中,Pareto前沿通常位于边界上。对于二维目标空间,Pareto前沿是一条曲线;对于更高维空间,它是一个超曲面。
- 弱Pareto最优点:如果一个设计点无法在所有目标上同时被改进,则称其为弱Pareto最优点。弱Pareto最优点不一定是Pareto最优点。
1.3 Pareto前沿生成
- 生成Pareto前沿的简单方法是随机采样设计点,然后筛选出非支配点。然而,这种方法效率低下且无法保证Pareto前沿的平滑性。
- 更有效的方法包括约束法、权重法和群体方法。
2. 约束方法(Constraint Methods)
约束方法通过将多目标优化问题转化为单目标优化问题来生成Pareto前沿。
2.1 约束法(Constraint Method)
2.2 词典序法(Lexicographic Method)
- 词典序法根据目标的重要性顺序依次进行优化。每次优化时,保留之前优化目标的最优值作为约束条件。
- 例如,假设有三个目标 f1(x), f2(x), f3(x),按重要性顺序依次优化:
- 首先优化 f1(x),得到最优值 y1∗;
- 然后优化 f2(x),约束 f1(x)≤y1∗;
- 最后优化 f3(x),约束 f1(x)≤y1∗ 且 f2(x)≤y2∗。
3. 权重方法(Weight Methods)
权重方法通过为每个目标分配权重,将多目标优化问题转化为单目标优化问题。这是本章的重点内容。
3.1 加权求和法(Weighted Sum Method)
例子:
假设我们选择权重 w1=0.5 和 w2=0.5,则单目标函数为:
f(x)=0.5x2+0.5(x−2)2
通过求解这个单目标优化问题,可以得到一个Pareto最优解。例如,对 f(x) 求导并令导数为零:
dxdf=x+(x−2)=2x−2=0⟹x=1
因此,x=1 是一个Pareto最优解。
3.2 目标规划(Goal Programming)
例子:
假设目标点为 ygoal=[0,0],选择 p=2,则目标规划问题为:
minimizex2+(x−2)2
通过求解这个优化问题,可以得到一个Pareto最优解。
3.3 加权指数求和法(Weighted Exponential Sum)
例子:
假设目标点为 ygoal=[0,0],选择 p=2,权重 w1=0.5 和 w2=0.5,则加权指数求和法为:
f(x)=0.5(x2−0)2+0.5((x−2)2−0)2
简化后:
f(x)=0.5x4+0.5(x−2)4
3.4 加权最小最大法(Weighted Min-Max Method)
例子:
假设目标点为 ygoal=[0,0],选择 w1=0.5 和 w2=0.5,则加权最小最大法为:
f(x)=max[0.5x2,0.5(x−2)2]
通过求解这个优化问题,可以得到一个Pareto最优解。
4. 多目标群体方法(Multiobjective Population Methods)
群体方法(如遗传算法)也可以用于多目标优化。通过调整群体方法,可以生成覆盖Pareto前沿的解集。
4.1 子群体(Subpopulations)
- 群体方法可以将群体划分为多个子群体,每个子群体针对不同的目标进行优化。通过子群体之间的交叉和变异,可以生成多样化的解集。
4.2 非支配排序(Nondomination Ranking)
- 非支配排序通过将群体中的个体按照非支配关系进行排序,生成Pareto前沿的近似解。
4.3 Pareto过滤器(Pareto Filters)
- Pareto过滤器用于在群体方法中维护一个近似Pareto前沿的解集。通过不断更新过滤器,可以确保群体方法生成的解集覆盖Pareto前沿。
4.4 小生境技术(Niche Techniques)
- 小生境技术通过惩罚目标空间中过于集中的个体,鼓励群体方法生成均匀分布的Pareto前沿解集。
5. 偏好引导(Preference Elicitation)
偏好引导通过专家的偏好信息,推断出合适的权重向量,从而将多目标优化问题转化为单目标优化问题。
5.1 模型识别(Model Identification)
- 通过专家的偏好信息,可以识别出合适的权重向量。常见的偏好引导方法包括二元偏好查询和排序查询。
5.2 配对查询选择(Paired Query Selection)
- 配对查询选择通过选择信息量最大的查询对,快速缩小权重向量的可行域。
5.3 设计选择(Design Selection)
- 设计选择通过最小化最坏情况下的目标值或最小化最大遗憾值,选择最终的设计方案。
6. 总结
- 多目标优化涉及多个目标之间的权衡,通常没有唯一的最优解。
- Pareto前沿代表了不同目标之间的最佳权衡。
- 通过约束法或权重法,可以将多目标优化问题转化为单目标优化问题。
- 群体方法可以生成覆盖Pareto前沿的解集。
- 通过专家的偏好信息,可以推断出合适的权重向量,从而选择最优设计方案。
第十四章 代理模型
1. 代理模型的拟合
核心思想:代理模型 f^ 通过参数 θ 来模拟真实的目标函数 f。我们通过调整参数 θ 来最小化模型预测值 y^ 和真实值 y 之间的差异,通常使用 Lp 范数(如 L2 范数,即最小化均方误差)。
例子:
假设我们有 3 个设计点 X={x(1),x(2),x(3)},对应的函数评估值为 y={y(1),y(2),y(3)}。代理模型的目标是通过调整参数 θ,使得模型的预测值 y^={f^θ(x(1)),f^θ(x(2)),f^θ(x(3))} 尽可能接近真实值 y。
2. 线性模型
核心思想:线性模型是最简单的代理模型,形式为 f^=w0+w⊤x。对于 n 维设计空间,线性模型有 n+1 个参数,因此至少需要 n+1 个样本来拟合。
例子:
假设我们有一个二维设计空间,设计点为 X={(1,2),(2,3),(3,4)},对应的函数评估值为 y={3,5,7}。我们可以构建设计矩阵 X 并求解线性回归问题来找到最优参数 θ。
设计矩阵:
X=⎣⎢⎡111123234⎦⎥⎤
通过最小二乘法,我们可以求解 θ=(X⊤X)−1X⊤y,得到最优参数。
3. 基函数
核心思想:线性模型是基函数的一种特例。更一般的形式是线性组合基函数:
f^(x)=i=1∑qθibi(x)
其中 bi(x) 是基函数。常见的基函数包括多项式基函数、正弦基函数和径向基函数。
3.1 多项式基函数
核心思想:多项式基函数由设计向量的各分量幂次组成。通过泰勒级数展开,任何无限可微函数都可以用足够高阶的多项式近似。
例子:
在一维情况下,一个 k 次多项式模型的形式为:
f^(x)=θ0+θ1x+θ2x2+⋯+θkxk
假设我们有 4 个设计点 X={1,2,3,4},对应的函数评估值为 y={0,5,4,6}。我们可以通过多项式基函数拟合这些数据。
3.2 正弦基函数
核心思想:任何有限域上的连续函数都可以用无限的正弦基函数表示。傅里叶级数可以用于构造这些基函数。
例子:
在一维情况下,傅里叶级数的基函数为:
b0(x)=1/2,bi(sin)(x)=sin(b−a2πix),bi(cos)(x)=cos(b−a2πix)
假设我们有一个函数 f(x)=sin(2x)cos(10x),我们可以使用正弦基函数来拟合这个函数。
3.3 径向基函数
核心思想:径向基函数仅依赖于点与中心点的距离。常见的径向基函数包括线性、立方、薄板样条、高斯、多二次和逆多二次函数。
例子:
假设我们有设计点 X={(1,2),(2,3),(3,4)},我们可以使用这些点作为中心点构建径向基函数 bi(x)=ψ(∥x−x(i)∥),其中 ψ 是径向基函数(如高斯函数 ψ(r)=e−r2/2σ2)。
4. 拟合噪声目标函数
核心思想:当目标函数评估存在噪声时,复杂的模型可能会过度拟合噪声数据。为了获得更平滑的拟合,可以在回归问题中加入正则化项,如 L2 正则化,以偏好权重较低的解决方案。
例子:
假设我们有带噪声的目标函数评估值 y,我们可以通过加入正则化项 λ∥θ∥22 来获得更平滑的拟合。最优参数向量可以通过 θ=(B⊤B+λI)−1B⊤y 计算。
5. 模型选择
核心思想:模型选择的目标是最小化泛化误差,即模型在整个设计空间上的预测误差。常见的估计泛化误差的方法包括留出法、交叉验证和自助法。
5.1 留出法
核心思想:将数据分为训练集和测试集,训练集用于拟合模型,测试集用于估计泛化误差。
例子:
假设我们有 10 个数据点,我们可以将其中 8 个点作为训练集,2 个点作为测试集。通过多次随机划分,我们可以获得泛化误差的估计。
5.2 交叉验证
核心思想:将数据分为 k 个子集,每次使用 k−1 个子集训练模型,剩下的子集用于估计泛化误差。
例子:
假设我们有 10 个数据点,我们可以进行 5 折交叉验证,每次使用 8 个点训练模型,2 个点测试模型。通过 5 次不同的划分,我们可以获得泛化误差的估计。
5.3 自助法
核心思想:通过有放回地采样生成多个训练集,每个训练集用于拟合模型,并在原始数据集上评估泛化误差。
例子:
假设我们有 10 个数据点,我们可以生成 10 个自助样本,每个样本包含 10 个点(可能有重复)。通过在这些样本上训练模型并在原始数据上测试,我们可以获得泛化误差的估计。
6. 总结
- 代理模型:是目标函数的近似,可以替代真实的目标函数进行优化。
- 基函数:许多代理模型可以用基函数的线性组合表示。
- 模型选择:涉及偏差-方差权衡,低复杂度模型可能无法捕捉重要趋势,而高复杂度模型可能过度拟合噪声。
- 泛化误差:可以通过留出法、交叉验证和自助法等方法进行估计。
练习 :
1:推导线性回归问题的正规方程
问题:推导线性回归问题的最优解,即正规方程。
解答:
线性回归问题的目标是最小化均方误差:
minimizeθ∥y−Xθ∥22
其中,X 是设计矩阵,y 是目标值向量,θ 是参数向量。
将目标函数展开:
∥y−Xθ∥22=(y−Xθ)⊤(y−Xθ)
对 θ 求梯度并设为零:
∇θ(y−Xθ)⊤(y−Xθ)=−2X⊤(y−Xθ)=0
整理得到正规方程:
X⊤Xθ=X⊤y
如果 X⊤X 可逆,则最优解为:
θ=(X⊤X)−1X⊤y
2:何时使用多项式模型与线性回归模型
问题:讨论何时使用多项式模型与线性回归模型。
解答:
- 线性回归模型:适用于目标函数与输入变量之间存在线性关系的情况。线性模型简单且计算成本低,但无法捕捉非线性关系。
- 多项式模型:适用于目标函数与输入变量之间存在非线性关系的情况。通过引入高阶项,多项式模型可以拟合更复杂的函数,但容易过拟合,尤其是在数据量较少时。
选择依据:
- 数据量:如果数据量较少,优先选择线性模型,避免过拟合。
- 问题复杂度:如果目标函数明显是非线性的,可以使用多项式模型。
- 计算资源:多项式模型的计算成本较高,尤其是在高维情况下。
3:为什么线性回归问题有时需要使用优化技术而不是解析解
问题:解释为什么线性回归问题有时需要使用优化技术而不是解析解。
解答:
线性回归问题的解析解为:
θ=(X⊤X)−1X⊤y
但在以下情况下,解析解可能不适用:
- 矩阵不可逆:当 X⊤X 不可逆时,解析解无法计算。这种情况可能发生在数据点线性相关或数据量少于特征数时。
- 计算复杂度高:当设计矩阵 X 非常大时,计算 (X⊤X)−1 的复杂度很高,甚至不可行。
- 数值稳定性:当 X⊤X 接近奇异矩阵时,解析解可能数值不稳定。
在这些情况下,可以使用优化技术(如梯度下降法)来求解线性回归问题,避免直接计算逆矩阵。
4:计算留一法交叉验证的均方误差
问题:假设我们在四个点 x={1,2,3,4} 上评估目标函数,得到 y={0,5,4,6}。我们拟合多项式模型 f^(x)=∑i=0kθixi,计算 k 从 0 到 4 时的留一法交叉验证均方误差,并选择最佳的 k 和 θ。
解答:
留一法交叉验证的步骤如下:
- 对于每个 k,依次将每个数据点作为测试集,其余数据点作为训练集。
- 在训练集上拟合多项式模型,计算测试集上的预测误差。
- 对所有测试集的误差取平均,得到均方误差(MSE)。
计算过程:
以 k=1 为例:
- 测试集为 x=1,训练集为 x={2,3,4}。
- 在训练集上拟合线性模型 f^(x)=θ0+θ1x。
- 计算测试集上的预测误差 (y−f^(x))2。
重复上述过程,计算 k=0,1,2,3,4 时的 MSE。
结果:
通过计算,可以得到不同 k 值下的 MSE。选择 MSE 最小的 k 值作为最佳模型。
最佳 k 和 θ:
假设 k=2 时 MSE 最小,则最佳模型为:
f^(x)=θ0+θ1x+θ2x2
通过最小二乘法拟合训练数据,得到最优参数 θ。
第十五章 概率代理模型
1. 高斯分布(Gaussian Distribution)
高斯分布是高斯过程的基础。多元高斯分布由均值向量 μ 和协方差矩阵 Σ 参数化,其概率密度函数为:
N(x∣μ,Σ)=(2π)−n/2∣Σ∣−1/2exp(−21(x−μ)⊤Σ−1(x−μ))
关键性质:
- 边际分布:多元高斯分布的边际分布仍然是高斯分布。
- 条件分布:给定部分变量的值,剩余变量的条件分布也是高斯分布。
例15.1:多元高斯的边际分布和条件分布
问题描述:
假设我们有一个二维高斯分布:
[x1x2]∼N([01],[3112])
计算:
- x1 和 x2 的边际分布。
- 在 x2=2 的条件下,x1 的条件分布。
解答:
-
边际分布:
- x1 的边际分布为:
x1∼N(0,3)
- x2 的边际分布为:
x2∼N(1,2)
-
条件分布:
- 条件分布的均值和协方差通过公式计算:
μx1∣x2=2=0+1⋅2−1⋅(2−1)=0.5
Σx1∣x2=2=3−1⋅2−1⋅1=2.5
- 因此,条件分布为:
x1∣(x2=2)∼N(0.5,2.5)
意义:
这个例子展示了如何从联合高斯分布中提取边际分布和条件分布,为后续高斯过程的预测奠定了基础。
2. 高斯过程(Gaussian Processes)
高斯过程是函数的概率分布。对于任何有限的设计点集合 {x(1),…,x(m)},其对应的函数值 {y1,…,ym} 服从多元高斯分布:
⎣⎢⎢⎡y1⋮ym⎦⎥⎥⎤∼N⎝⎜⎜⎛⎣⎢⎢⎡m(x(1))⋮m(x(m))⎦⎥⎥⎤,⎣⎢⎢⎡k(x(1),x(1))⋮k(x(m),x(1))⋯⋱⋯k(x(1),x(m))⋮k(x(m),x(m))⎦⎥⎥⎤⎠⎟⎟⎞
其中:
- m(x) 是均值函数,通常假设为零均值。
- k(x,x′) 是核函数(协方差函数),控制函数的平滑性。
常用核函数:
- 平方指数核(Squared Exponential Kernel):
k(x,x′)=exp(−2ℓ2(x−x′)2)
其中,ℓ 是长度尺度参数,控制函数的平滑程度。
- Matern核:适用于非平滑函数。
- 线性核、多项式核等。
例15.2:高斯过程的核函数推导
问题描述:
假设我们使用平方指数核:
kff(x,x′)=exp(−21∥x−x′∥2)
推导其他核函数 kf∇(x,x′)、k∇f(x,x′) 和 k∇∇(x,x′)。
解答:
- kf∇(x,x′) 是函数值与梯度的协方差:
kf∇(x,x′)=∂x′∂kff(x,x′)=−(x−x′)exp(−21∥x−x′∥2)
- k∇∇(x,x′) 是梯度与梯度的协方差:
k∇∇(x,x′)=∂x∂x′∂2kff(x,x′)=((x−x′)2−1)exp(−21∥x−x′∥2)
意义:
这个例子展示了如何从基本核函数推导出高阶核函数,为引入梯度信息奠定了基础。
3. 梯度信息(Gradient Measurements)
高斯过程可以扩展到包含梯度信息的情况。假设我们有函数值 y 和梯度 ∇y,联合分布为:
[y∇y]∼N([mfm∇],[KffK∇fKf∇K∇∇])
例15.3:构建包含梯度信息的协方差矩阵
问题描述:
假设我们在两个点 x(1) 和 x(2) 处评估了函数值和梯度,现在需要预测新点 x^ 处的函数值。
解答:
- 构建联合分布的协方差矩阵:
⎣⎢⎢⎡kff(x^,x^)kff(x(1),x^)⋮kff(x^,x(1))kff(x(1),x(1))⋮kff(x^,x(2))kff(x(1),x(2))⋮kf∇(x^,x(1))kf∇(x(1),x(1))⋮kf∇(x^,x(2))kf∇(x(1),x(2))⋮⎦⎥⎥⎤
- 使用条件分布公式计算预测值。
意义:
这个例子展示了如何利用梯度信息构建更精确的高斯过程模型。
4. 噪声测量(Noisy Measurements)
在实际应用中,函数评估可能包含噪声。我们可以将噪声建模为 y=f(x)+z,其中 z 是零均值的高斯噪声。通过引入噪声方差 v,我们可以调整预测的不确定性。
噪声情况下的联合分布:
[y^y]∼N([m(X∗)m(X)],[K(X∗,X∗)K(X,X∗)K(X∗,X)K(X,X)+vI])
5. 习题讲解
习题1:高斯过程的复杂性
问题:高斯过程在优化过程中如何随着样本的增加而增加复杂性?
解答:高斯过程的计算复杂度主要来自于协方差矩阵的求逆操作,其复杂度为 O(n3),其中 n 是样本数量。随着样本的增加,计算量会显著增加。
习题2:计算复杂度
问题:高斯过程预测的计算复杂度如何随数据点的增加而变化?
解答:预测的计算复杂度为 O(n2),其中 n 是数据点的数量。
习题3:高斯过程的预测
问题:考虑函数 f(x)=sin(x)/(x2+1),使用高斯过程预测其值,并计算95%置信区间。
解答:通过高斯过程的预测公式,可以计算出预测值和置信区间。
6. 总结
- 高斯过程是函数的概率分布,能够量化预测的不确定性。
- 核函数的选择影响函数的平滑性。
- 通过引入梯度信息和噪声测量,可以进一步提高模型的预测精度。
- 例15.1、15.2和15.3分别展示了边际分布、核函数推导和梯度信息的应用。