Практические аспекты выпуклой оптимизации: от теории к «дикому» применению 9:19
Лекция Стивена Бойда посвящена завершению теоретического блока курса и переходу к прикладным задачам оптимизации. Ключевой посыл лекции: теория важна, но по-настоящему эффективными инженерами становятся те, кто умеет использовать идеи «в диких условиях» (in the wild), не ожидая готовых подсказок или формальных постановок задач.
💡 Важные организационные моменты 0:05
Перед началом теоретической части Бойд дал несколько практических рекомендаций:
- О решениях к домашним заданиям: Они сознательно делаются более сложными и подробными, чем того требуют от студентов. Не стоит пытаться имитировать все «угловые случаи» (corner cases), описанные в решениях.
- Работа с CVXPY: Бойд настоятельно предостерегает от подхода «мартышка за пишущей машинкой» — бездумного подбора синтаксиса, пока код не заработает. Код должен быть осмысленным.
- Проверка результатов: Студентам советуют всегда задумываться над физическим смыслом полученных ответов. Если вы, например, оптимизируете хранение энергии, но стоимость системы не снизилась — вы явно что-то сделали не так, даже если код выполнился без ошибок.
- ChatGPT и экзамены: Стивен Бойд с иронией отметил, что ChatGPT справился с промежуточным тестом «ужасно» (12 баллов из 43), хотя, по его словам, ответы были «красиво написаны».
🔗 Парадоксы двойственности и эквивалентные преобразования 10:12
Одной из центральных тем стало изучение того, как преобразования прямой задачи (primal problem) влияют на её двойственную форму (Lagrange dual).
- Лицензия на преобразования: При поиске двойственной задачи у вас есть право вносить небольшие эквивалентные изменения. Однако разные преобразования могут привести к радикально разным двойственным задачам.
- Бесполезные двойственные задачи: Бойд привел пример, когда для задачи без ограничений прямая двойственная задача является математически верной, но абсолютно бесполезной, так как она лишь возвращает нижнюю границу, равную оптимальному значению.
- Поиск закономерностей: В двойственных задачах стоит ожидать появления специфических структур:
- Если в исходной задаче есть функция, в двойственной почти всегда появится её сопряжённая функция (conjugate function).
- Наличие матрицы $A$ в исходной задаче часто влечёт появление $A^T$ в двойственной.
- L-бесконечность нормы (l-infinity norm) часто «превращается» в L1-норму в двойственном пространстве.
⚖️ Обобщённые неравенства и теоремы альтернатив 21:53
Лектор объяснил, что аппарат теории двойственности отлично работает и для задач с векторными неравенствами (generalized inequalities), включая линейные матричные неравенства (LMI) в задачах семидефинитного программирования (SDP).
Отдельно стоит выделить теоремы альтернатив, которые лежат в основе классической экономики и финансов. Бойд в шутливой манере отметил, что некоторые его знакомые из хедж-фондов с подозрением относятся к кандидатам с экономическим образованием, так как в их индустрии глубоко укоренена вера в «отсутствие арбитража» — концепцию, которую трейдеры каждый день пытаются опровергнуть на практике.
📉 Аппроксимация, штрафные функции и «антропоморфизм» 33:00
Бойд предложил «антропоморфизировать» штрафные функции — воспринимать их как меру того, насколько вас «раздражает» размер остатка (residual) в модели.
- Квадратичный штраф: Приводит к методу наименьших квадратов. «Chill»-подход: при малых ошибках штраф ничтожен.
- L1-норма (абсолютное значение): Обладает свойством разреженности — многие остатки в решении будут равны нулю, так как маржинальный выигрыш от уменьшения остатка не падает до нуля.
- Huber penalty: Комбинирует квадратичный штраф для малых ошибок (точность) и линейный для больших (устойчивость к выбросам). Бойд считает этот метод стандартом для регрессии, который «мощно справляется с выбросами».
🎯 Выбор весов и регуляризация
Обсуждая выбор параметров (например, $\gamma$ или $\delta$), Бойд выделил самый правильный способ: кросс-валидация (cross-validation). В инженерных же областях, таких как управление (control) или обработка изображений, часто приходится «крутить ручки», пока результат не станет визуально удовлетворять инженера.
В завершение лекции он продемонстрировал задачу проектирования оптимального ввода (optimal input design) для динамической системы, показав, как изменение весов между точностью слежения (tracking error) и плавностью ввода меняет итоговое поведение системы.