Пример 9. Ковариационная адаптация (CMA-ES): двенадцать связанных осей
- Файл:
09_CovarianceAdaptation_CMA-ES.gma(Каталог:Sources/Files/Examples/Optimization/) - Модель: G10
- Переменных: 12
- Бюджет: 600
Связанные страницы:
Ниже показана геометрия модели:
Задача
Микрополосковый тейпер 50 → 100 Ом, разбитый на двенадцать секций равной длины. Варьируются только ширины; требуется получить наименьший уровень отражения в полосе 2–6 ГГц.
P1 ─[W1]─[W2]─[W3]─ ⋯ ─[W10]─[W11]─[W12]─ P2
50 Ом двенадцать секций по 5,26 мм 100 Ом
Задача той же семьи, что в примере 5 - согласование перехода 50 → 100 Ом, - но поставлена так, как её ставят для метода, выучивающего форму ландшафта: двенадцать непрерывных осей вместо пяти дискретных, и ответом является профиль, а не набор независимых значений.
Развёртка 1,5–6,5 ГГц, быстрый метод, шаг 0,001 ГГц; в полосу цели попадает 4001 выборка. Развёртка шире полосы цели: у тейпера отражение растёт к нижнему краю рабочей полосы, и полезно видеть весь этот подъём.
Почему длины фиксированы, а варьируются только ширины
Двенадцать секций имеют одинаковую длину 5,26 мм, и она не переменная. Это не упрощение постановки, а устранение почти плоских направлений.
У ступенчатого перехода длины секций проектной информации почти не несут: оптимальные согласующие трансформаторы четвертьволновые, и от секций разной длины возможно лишь минимальное улучшение. Измерение на модели G3 это подтверждает: фиксация всех пяти длин стоит 0,002 по наихудшему КСВН. То есть отпущенные длины дают методу оси, вдоль которых целевая функция практически не меняется.
Для Ковариационной адаптации это худший из возможных вариантов. Метод оценивает матрицу ковариации по ранжированию поколения, и плоская ось входит в оценку шумом: разброс вдоль неё не сжимается, потому что сжимать не за что. Двадцать четыре оси, половина из которых плоские, - это размытая ковариация при том же бюджете.
Что остаётся, когда длины фиксированы, - распределение волновых сопротивлений по длине перехода. Ответом является профиль: значение каждой ширины осмысленно только вместе с соседними. Это и есть та связанность переменных, ради которой метод выбирают.
Переменные
Двенадцать, все непрерывные, единый диапазон 0,50–4,00 мм.
| Обозн. | Секция, z от–до, мм | Старт W, мм | Старт Z, Ом | Найдено W, мм |
|---|---|---|---|---|
w1 | 8,00–13,26 | 2,937 | 51,5 | 2,480 |
w2 | 13,26–18,52 | 2,658 | 54,5 | 2,849 |
w3 | 18,52–23,78 | 2,397 | 57,8 | 2,033 |
w4 | 23,78–29,04 | 2,152 | 61,2 | 2,451 |
w5 | 29,04–34,30 | 1,923 | 64,8 | 1,775 |
w6 | 34,30–39,56 | 1,708 | 68,7 | 1,883 |
w7 | 39,56–44,82 | 1,523 | 72,8 | 1,608 |
w8 | 44,82–50,08 | 1,343 | 77,1 | 1,213 |
w9 | 50,08–55,34 | 1,178 | 81,7 | 1,344 |
w10 | 55,34–60,60 | 1,026 | 86,6 | 0,727 |
w11 | 60,60–65,86 | 0,888 | 91,7 | 1,054 |
w12 | 65,86–71,12 | 0,762 | 97,2 | 0,524 |
Фиксированные размеры: длины секций 5,26 мм, подводящие линии 8,00 мм при
W = 3,083 мм (50 Ом) на входе и 0,704 мм (100 Ом) на выходе, плата
79,12 × 18 мм. Порт 1 сосредоточенный с опорным импедансом 50 Ом, порт 2 -
100 Ом: рассогласованная нагрузка задана свойством порта, а не отрезком линии.
Старт - экспоненциальный профиль Zᵢ = 50·2^((i−0,5)/12), пересчитанный в
ширины. Он вводится формулой, а не подбором, и заведомо не является оптимумом:
экспоненциальный тейпер оптимален для другого критерия (монотонное отражение),
тогда как здесь минимизируется наихудшая точка полосы.
Единый диапазон на двенадцать осей - документированное исключение из правила
p. У тейпера ширины разные по построению: от 2,9 мм у первой секции до 0,76 мм
у последней. Единый диапазон не может дать всем двенадцати ширинам одинаковое
положение внутри диапазона, а раздельные диапазоны закодировали бы ответ в
постановку. Взят единый, и проверяется только то, что ни одна ширина не прижата к
границе.
Диапазон и sigma0 у этого метода надо согласовывать между собой. Начальный шаг
задаётся в долях размаха, поэтому избыточно широкий диапазон переменной ломает
масштаб шага. Диапазон 0,50–4,00 мм соответствует Z от 116 до 43 Ом и покрывает
переход 50 → 100 Ом с запасом в обе стороны.
Цели
| № | Величина | Порты | Условие | Значение | Полоса | Вес |
|---|---|---|---|---|---|---|
| 1 | S-параметр | 1, 1 | Минимизировать | - | 2,0–6,0 ГГц | 1 |
Агрегация по полосе - Худшая точка. Свёртка целей на исход не влияет: цель одна. Пара «Минимизировать» + «Худшая точка» и есть минимаксная постановка: минимум наихудшей точки полосы, единственное, что даёт равнопульсационное решение.
Подпись цели - min S([1] Сосредоточенный порт(1)) [2; 6] ГГц, без порога и знака
условия; иконка статуса в панели «Цели» нейтральная - полый ромб. Колонки
f, ГГц, M_g и A_g у экстремальной цели заполнены, причём при агрегации
«худшая точка» M_g и A_g совпадают по определению.
Почему цель экстремальная, а не пороговая. Достижимый уровень отражения этой конструкции неизвестен: аналитического ориентира у модели нет (разбор ниже), а значит любой порог был бы угадыванием. Мягкий порог остановил бы прогон на первой же допустимой точке - с немонотонным профилем и без выравнивания пульсаций; жёсткий сжёг бы бюджет впустую. Условие «Минимизировать» делает сам предел результатом измерения.
Следствия для останова: допуск достижения цели не действует, останова по достижению цели не происходит, поля стагнации у метода нет - прогон расходует весь бюджет. Полностью израсходованный бюджет здесь не признак неудачи, а нормальное окончание.
Почему «Худшая точка», а не «Сглаженный максимум». Режим агрегации применяется и
к экстремальной цели: агрегат есть наихудшая выборка знакового вклада, взятая точно
при «Худшей точке» и сглаженно при «Сглаженном максимуме». Степенное среднее при
p = 8 всё ещё вознаграждает опускание тех участков полосы, где отражение и без
того мало, поэтому решение выходит не равнопульсационным: часть полосы остаётся
заметно ниже связывающего уровня. «Худшая точка» берёт максимум точно, поэтому
опускать что-либо кроме связывающей точки поиску не выгодно, и пульсации
выравниваются сами.
Плата - негладкость целевой функции, из-за которой этот режим не годится Доверительной области. Ковариационной адаптации он безразличен: метод ранжирует пробы, а не строит по ним модель, поэтому изломы ландшафта на его работу не влияют.
Настройки метода
| Поле | Значение |
|---|---|
| Метод | Ковариационная адаптация (CMA-ES) |
| Бюджет расчётов | 600 |
Начальный шаг sigma0 | 0,03 (умолчание 0,30) |
| Размер поколения | 0 = авто, 4 + ⌊3·ln 12⌋ = 11 |
| Зерно ГСЧ | 1 |
| Рестарты (IPOP) | вкл (по умолчанию) |
Поля «Останов без улучшения» у метода нет: у него есть собственные критерии сходимости и рестарты.
Бюджет 600 - это 54 поколения по 11 проб, и это нижняя разумная граница. Матрица
ковариации при двенадцати переменных содержит n(n+1)/2 = 78 независимых
элементов, и на их оценку нужны десятки поколений. При бюджете 300 метод не
успевает выучить ландшафт и вырождается в случайный поиск - то есть показывает ровно
не то, ради чего выбран.
Стартовый рапорт молчит, и это признак постановки, а не её отсутствия. Двенадцать непрерывных осей, размерность внутри 10–40, бюджет много выше 50 - ни одно из проверяемых условий не выполняется. Это единственный глобальный метод набора, работающий строго внутри своей области.
Почему sigma0 = 0,03, а не умолчание 0,30
Это главная настройка примера и единственное место в наборе, где умолчание изменено на порядок.
Чувствительность измерена расчётом: сдвиг одной ширины на 0,1 мм меняет
max |S11| на 0,97 дБ (медиана по двенадцати осям). Начальный шаг задаётся в
долях размаха 3,5 мм, отсюда:
sigma0 | Шаг поиска | Ожидаемая просадка |S11| |
|---|---|---|
| 0,30 (умолчание) | 1,05 мм | ≈ 35 дБ |
| 0,10 | 0,35 мм | ≈ 12 дБ |
| 0,03 | 0,105 мм | ≈ 3,5 дБ |
| 0,02 | 0,070 мм | ≈ 2,4 дБ |
Механизм провала при крупном шаге. Перепад ширин между соседними секциями
составляет от 0,126 мм (w11 → w12) до 0,279 мм (w1 → w2). Шаг 0,35 мм
превышает любой из них, поэтому каждая проба перемешивает профиль целиком и ломает
пульсационную картину; ни одна не оказывается лучше старта, ковариации нечего
ранжировать, и прогон стоит на месте. Шаг 0,105 мм меньше даже наименьшего перепада -
метод двигает профиль, сохраняя его форму.
Отсюда правило, полезное далеко за пределами этого примера: sigma0 соотносят не
с диапазоном переменной, а с масштабом, на котором характеристика ещё сохраняет
форму. Умолчание 0,30 рассчитано на задачи, где старт далёк от решения и
осматривать надо широко. Здесь старт получен синтезом, отклик на нём уже почти
равнопульсационный, и задача метода - уточнять профиль, а не искать его заново.
Признак того, что sigma0 крупен, виден в мониторе рано и не требует ждать конца
бюджета: медиана проб просела относительно старта, а рекорд не двигается.
Пояснения
- Двенадцать осей - единственная в наборе размерность, попадающая в диапазон метода. У остальных примеров от двух до семи переменных, и на них Ковариационная адаптация работала бы вне своей области.
- Связанные переменные, у которых различаются знаки. Увеличение одних ширин ухудшает наихудшую точку, увеличение других - улучшает. Направление улучшения есть конкретная комбинация со знаками, то есть повёрнутый «овраг», а не набор независимых осей.
- Плохая обусловленность. Разброс чувствительностей по осям - 5,4 раза: от
0,40 дБ на 0,1 мм у
w2до 2,19 дБ уw12. Методы с единым шагом по всем осям тратят бюджет на компромисс между «слишком крупно» и «слишком мелко»; адаптация масштабов снимает этот компромисс. - Поколения и рестарты на графике сходимости. Флажок «Популяция» доступен трём методам набора - этому, Адаптивной эволюции и Эволюционной стратегии; полосы поколений группируют расчёты, а разброс виден по разлёту самих точек внутри полосы, и его сжатие от полосы к полосе есть прямой признак сходимости. Уникальны для этого метода границы рестартов: вертикальная линия с подписью «рестарт N» на каждом IPOP-рестарте, вдвое более широкие полосы поколений после неё и строка «Рестартов поиска: N» в итогах прогона.
Что должно получиться
| Показатель | Значение |
|---|---|
| Расчётов | 595 из 600 |
| Статус | бюджет исчерпан |
| Лучший шаг | 523, A_g = 0,35726 |
| Отказов | 0 |
| Наихудшая выборка | M_g = 0,35726 φ на 4,01 ГГц, |S11| = 0,04472 = −26,99 дБ |
| Рестартов IPOP | 0 - до собственного критерия сходимости поиск не дошёл |
Остаток в 5 расчётов меньше поколения, поэтому пятьдесят пятое поколение не начиналось.
| Старт | Лучшая точка | |
|---|---|---|
A_g | 1,000 | 0,357 |
| Наихудшая точка полосы 2–6 ГГц | −18,05 дБ на 6,000 ГГц | −26,99 дБ на 4,010 ГГц |
Выигрыш 8,94 дБ по наихудшей точке, и A_g читается прямо: 0,357 означает, что
наихудшая точка полосы составляет 35,7 % от стартовой по линейному |S11|.
Связывающая частота переключалась - это и есть работа минимакса. Каждое улучшение опускает тот максимум, который был наихудшим, после чего связывающим становится следующий; в последних поколениях наихудшая точка проб распределена между шестью частотами, то есть максимумы вышли на общий уровень.
Решение равнопульсационное, и это измерено по отклику лучшей точки.
| Максимумы |S11| в полосе | 2,984 ГГц | 4,010 ГГц | 4,925 ГГц | 5,666 ГГц |
|---|---|---|---|---|
| Уровень | −26,99 дБ | −26,99 дБ | −27,01 дБ | −28,23 дБ |
Три максимума сомкнуты в пределах 0,02 дБ - это и есть выровненная пульсация, а связывающим оказывается любой из них. Четвёртый на 1,24 дБ ниже, края полосы −27,91 и −29,04 дБ: у них ещё есть запас, поэтому в связывающий набор они не входят. На старте разброс тех же уровней составлял 3,5 дБ.
За полосой цели конструкция отдана целиком, и чем точнее работает минимакс, тем резче эта граница. Выше 6 ГГц отклик растёт монотонно: −29,04 дБ на 6,000 · −21,37 на 6,100 · −16,58 на 6,200 · −8,88 дБ на 6,500 ГГц. Уровень −20 дБ пересекается уже на 6,125 ГГц. Снизу запас есть: до 1,5 ГГц отклик остаётся не хуже −24,7 дБ. Полоса цели - это техническое требование, и записывать в неё надо то, что действительно требуется: решение ложится на неё вплотную.
Лестница сопротивлений подтверждает парную работу секций. Сырая: 56 · 52 · 63 · 57 · 68 · 66 · 71 · 81 · 77 · 99 · 86 · 111 Ом, пять немонотонных переходов. Сглаженная по парам: 54 · 58 · 60 · 62 · 67 · 68 · 76 · 79 · 88 · 92 · 98 Ом - монотонна строго и выходит на 98 Ом при нагрузке 100 Ом.
Аналитического ориентира у этого примера нет, и это отдельный результат. Каскадный расчёт двенадцати идеальных отрезков расходится с полноволновым до 39 дБ: −58,9 дБ против −19,9 дБ на 4 ГГц. Потери объясняют 0,2…0,5 дБ, остальное - неоднородности двенадцати ступенек, которых каскад идеальных отрезков не знает. У полноволновой модели пульсация ровная; у каскадной проваливается там, где отражения складываются в нуль. Из аналитического расчёта берите структуру задачи - обусловленность, направления, наличие плато, - а ориентиры и пороги берите из измерения.
Потери подложки в этой модели существенны. Сумма |S11|² + |S21|² равна
0,851 на 2 ГГц, 0,735 на 4 ГГц и 0,652 на 6 ГГц. FR-4 с tanδ = 0,02 на этих
частотах съедает больше, чем отражение, поэтому по |S21| качество согласования
здесь не оценивают.
Что проверять
Предела у этой постановки не обещано, поэтому итог проверяют по свойствам решения, а не по совпадению с числом.
- Связывающие максимумы сомкнулись. У равнопульсационного решения смыкается не всё подряд, а связывающий набор: часть максимумов и края полосы остаются ниже - у них есть запас, и опускать их поиску незачем. Требовать смыкания всех экстремумов до одного уровня неверно.
- Монотонность проверяют по сглаженной лестнице, а не по сырой. Секция длиной 5,26 мм - это λg/16 на 2 ГГц, то есть 22 электрических градуса, и соседние секции работают попарно: разбить одно сопротивление на две секции «выше - ниже» для отклика почти то же, что задать среднее. Поэтому сырая лестница закономерно выходит зубчатой, и это не дефект. Пересчитайте ширины в сопротивления, возьмите среднее по соседним парам и смотрите на него.
- Ни одна ширина не прижата к границе диапазона. Исключение - крайняя секция при
парной работе:
w12тянется к нижней границе, потому что она верхняя половина последней пары. Здесь она встала на 0,524 мм при границе 0,50 и границы не коснулась. Если упрётся - проверяйте прогоном с раздвинутой границей. - Бюджет израсходован полностью. Останова по достижению цели у экстремальной постановки нет. Остаток меньше одного поколения - норма. Заметный неизрасходованный остаток означает срабатывание собственного критерия сходимости метода.
- Разлёт точек внутри полос поколений сжимается. Если к концу бюджета он такой же, как в начале, поколений не хватило: поднимайте бюджет, а не размер поколения.
- Рекорд двигается хотя бы к третьему-четвёртому поколению. Если к 50-му
расчёту улучшений нет - дело в
sigma0, а не в бюджете; уменьшайте его до 0,02.
Когда этот метод - правильный выбор
- Переменных от десяти до сорока, все непрерывные, и есть основания считать их связанными: оптимум лежит в наклонном «овраге», а не вдоль осей.
- Чувствительности по осям различаются в разы: единый шаг по всем осям заведомо неудачен, а подбирать его по каждой оси вручную нечем.
- Есть осмысленная начальная точка - синтез, прежняя версия конструкции, - и от неё надо уточнять, а не искать заново. При этом начальный шаг обязательно согласуют с масштабом задачи.
- Бюджет позволяет десятки поколений.
Когда его брать не стоит
- Оси дискретные. Метод пробует непрерывные точки, движок округляет их к узлам, и когда разброс поколения падает ниже шага сетки, пробы перестают различаться и адаптация останавливается.
- Переменных меньше десяти. Выучивать почти нечего, а накладные расходы на оценку ковариации остаются.
- Есть плоские направления. Оси, вдоль которых функция почти не меняется, входят в оценку ковариации шумом. Их лучше зафиксировать по теории, как здесь сделано с длинами.
- Ландшафт без градиента. Ковариация выучивает склоны, и если склонов нет, связанность переменных не помогает. Для задач с узкой воронкой берите связку «глобальный → локальный» или локальный дожим от синтеза.
- Есть жёсткие ограничения - метод их не поддерживает.
- Бюджета хватает только на десятки проб.
Чем заменить
| Ситуация | Замена |
|---|---|
| оси стали дискретными | Управляемый случайный поиск или Систематический глобальный |
| переменных меньше десяти | Адаптивный глобальный (с начальной точкой) или Управляемый случайный поиск |
| появились жёсткие ограничения | Адаптивная эволюция (ISRES), пример 6 |
| нужен дожим найденной точки | Симплекс от лучшей точки прогона: при агрегации «худшая точка» Доверительная область неприменима |
| нужен и охват, и дожим | Глобальный → локальный: при агрегации «худшая точка» пресет «Авто» сам ставит вторым этапом Симплекс |
| бюджет мал, а проба дорога | Адаптивный глобальный (MaxLIPO), пример 8 |
Что попробовать дополнительно
Умолчание sigma0. Поставьте 0,30 и запустите. Прогон не даст ни одного
улучшения рекорда, а разброс проб составит около 1,4 мм при перепаде между соседними
секциями в 0,13…0,28 мм. Самая короткая демонстрация того, зачем начальный шаг
согласуют с задачей.
Сглаженный максимум вместо худшей точки. Переключите агрегацию и запустите
заново. Прогон уйдёт в другое решение: агрегат при p = 8 составляет около 0,77 от
истинного максимума, поэтому опускать глубокие участки полосы поиску выгодно, и
пульсации выходят неравными - часть полосы остаётся на 4…9 дБ ниже связывающего
уровня. Самая наглядная в наборе демонстрация того, что у минимаксного требования
агрегация решает исход, а не оттенок.
Монотонный профиль вместо найденного. Введите ширины, сглаженные по парам до монотонной лестницы, и посчитайте один раз. Проверка измеряет, сколько стоит зубчатость: она либо декоративна, либо несёт почти весь выигрыш.
Монотонность как требование постановки. Ограничений на связь переменных движок
не поддерживает, поэтому структурные требования кодируют параметризацией модели:
сделайте переменными убывания d_k ≥ 0 и считайте ширины формулой
w_k = w_{k−1} − d_k. Прогон при том же бюджете даст монотонное решение по
построению, а разница уровней с базовым прогоном и будет ценой технологичности.
Метод вне своей области. Откройте проект примера 5 (пять дискретных ширин) и
переключите метод на Ковариационную адаптацию, оставив бюджет. Стартовый рапорт
выдаст два примечания - о размерности ниже рекомендованной и о дискретных осях, - и
прогон проиграет Управляемому случайному поиску по всем трём признакам: A_g,
наихудший КСВН, монотонность лестницы. Полезно проделать один раз, чтобы примечания
рапорта перестали быть формальностью.
Отпущенные длины. Сделайте переменными и двенадцать длин - получится 24 оси, всё ещё внутри диапазона метода. Сравните с базовым прогоном при том же бюджете: выигрыш по наихудшей точке будет в пределах десятых долей децибела, а сходимость заметно медленнее. Это прямая демонстрация того, что почти плоские оси стоят бюджета и не приносят результата.
Сужение полосы цели. Поставьте полосу 2,0–5,0 ГГц и сравните отклик на всей развёртке. Внутри полосы результат станет глубже, а выше 5 ГГц провалится. Полоса цели - это и есть техническое требование; сужать её ради красивых чисел значит менять конструкцию.