3. 评价函数构建:如何设计合理的评价函数来引导优化方向,避免陷入局部极小值

好,咱们进入第三章。前两章我们聊了局部极小值到底长什么样,也聊了初始结构怎么选。但说实话,真正决定优化成败的,往往是今天要讲的这个环节——评价函数。

我见过太多人,一上来就把所有像差塞进评价函数,权重全给1,然后点优化。结果呢?跑了一晚上,系统卡在一个莫名其妙的局部坑里,怎么都出不来。嗯,这就是典型的“评价函数没设计好”。

评价函数说白了,就是告诉优化算法:“嘿,往这个方向走,那边更好。” 你指的方向不对,算法再聪明也没用。

3.1 评价函数的核心构成

一个完整的评价函数,通常包含三部分:

组成部分 作用 常见形式
像差项 控制成像质量 波前差、RMS光斑、MTF
边界约束 保证工艺可行性 中心厚、边缘厚、空气间隔
操作数 具体控制某个参数 EFL、F/#、畸变、远心度

我个人习惯,在构建评价函数时,会先把边界约束放进去。为什么?因为如果你不约束镜片厚度,优化器可能会给你一个厚度为0.01mm的镜片——加工厂直接骂娘。我曾经吃过这个亏,后来学乖了。

避坑指南: 边界约束的权重不要给太大,否则优化器会优先满足厚度,忽略像质。我一般把厚度约束的权重设在0.1~0.5之间,够用就行。

3.2 权重分配的艺术

权重怎么给?这是评价函数设计里最玄学的地方。但也不是完全没规律。

我总结了一个经验法则:先松后紧,逐步收紧。

  • 第一阶段(粗优化):只控制主要像差(球差、彗差、像散),权重给1~5。别管畸变,别管MTF,先把光路理顺。
  • 第二阶段(细优化):加入次要像差(场曲、色差),权重给5~10。这时候可以开始看MTF了。
  • 第三阶段(精优化):全面控制,权重按目标值动态调整。比如MTF在0.5以上时权重给10,低于0.5时给1。

你想想看,如果一开始就把MTF权重拉到100,优化器会拼命去提升MTF,结果可能把镜片形状搞得很奇怪,反而卡在局部极小值里出不来。

小技巧: 在Zemax里,可以用OPLT和OPGT操作数做“软约束”。比如让畸变小于2%,而不是精确等于0%。这样优化器有更多自由度,不容易卡死。

3.3 避免局部极小值的评价函数策略

这部分是今天的重点。我直接上干货——四种实战策略。

策略一:多目标加权法

不要只盯着一个指标优化。比如你只优化RMS光斑半径,优化器可能会把光斑压得很小,但MTF反而很差。为什么?因为RMS光斑小不代表MTF好,尤其是存在离焦时。

我建议同时控制3~5个指标:

MF = w1 * RMS + w2 * (1 - MTF) + w3 * Distortion + w4 * FieldCurvature

每个指标的权重根据系统要求动态调整。比如手机镜头,畸变权重可以给高一点;投影镜头,MTF权重优先。

策略二:渐进式约束法

这是我最喜欢的方法。别一次性把所有约束都加上,而是分阶段加入。

  1. 第一轮:只控制焦距和F/#,其他全放开。
  2. 第二轮:加入像差控制,权重给低。
  3. 第三轮:加入边界约束,防止镜片太薄或太厚。
  4. 第四轮:加入公差敏感度约束,保证可制造性。

这样做的好处是,优化器在每个阶段都有足够的自由度去探索全局空间,不容易掉进局部坑里。

策略三:惩罚函数法

有时候,某些参数必须严格限制,比如镜片中心厚不能小于1mm。这时候可以用惩罚函数:

Penalty = k * (CT - CT_min)^2  (当 CT < CT_min 时)

注意,惩罚系数k不能太大,否则优化器会“硬撞”边界,导致振荡。我一般取k=10~50,具体看系统敏感度。

策略四:随机扰动法

这个有点“暴力”,但很有效。在优化过程中,每隔一段时间,给评价函数加一个随机扰动项:

MF_new = MF_old + random(-0.1, 0.1) * MF_old

这样可以让优化器跳出当前的局部极小值,去探索其他区域。我在设计一个广角镜头时用过这招,效果出奇的好。

3.4 评价函数构建的完整流程

下面这张图,是我自己总结的评价函数构建流程,分享给你:

评价函数构建流程图 评价函数构建与优化流程 初始结构 设置边界约束 粗优化 细优化 精优化 达标? 否:调整权重/策略 是:输出 每轮优化后检查是否卡在局部极小值 是则随机扰动或调整权重

3.5 实战案例:一个手机镜头评价函数的设计

拿一个典型的手机镜头来说吧。目标:F/1.8,焦距4.5mm,总长6mm以内,畸变小于1%。

我当时的评价函数是这样设计的:

操作数 目标值 权重 说明
EFFL 4.5 10 焦距必须准
OPLT(CT, 0.3) 0 1 中心厚不小于0.3mm
OPLT(ET, 0.2) 0 1 边缘厚不小于0.2mm
RMS 0 5 粗优化时用
MTF@0.7field 0.5 20 精优化时重点控制
DIST 1 15 畸变严格

注意看,粗优化时我只用了前4个操作数,MTF和畸变都没加。等光路基本理顺了,再加入MTF和畸变进行精优化。这样一步步来,系统很少卡在局部极小值里。

核心要点: 评价函数不是一次建好的,而是随着优化进程不断调整的。我每次优化到瓶颈时,第一件事就是检查评价函数——是不是权重给错了?是不是约束太紧了?往往调整一下,瓶颈就突破了。

3.6 常见误区总结

最后,我列几个自己踩过的坑,你注意避开:

  • 误区一:权重越大越好 —— 权重太大,优化器会“死磕”这个指标,其他指标全崩了。
  • 误区二:一次性加满所有约束 —— 优化器会直接卡死,动都动不了。
  • 误区三:只用一种评价指标 —— 比如只看RMS,不看MTF,结果RMS很好,MTF很差。
  • 误区四:不检查边界约束 —— 优化完了才发现镜片厚度不满足工艺要求,白忙一场。

嗯,评价函数这块,说白了就是“平衡的艺术”。你既要让优化器有足够的自由度去探索,又要给它明确的方向指引。把握好这个度,局部极小值就没那么可怕了。