Метод проксимального градиента
Метод проксимального градиента[1] — это обобщение проецирования, используемое для решения недифференцируемых задач выпуклого программирования.
Много интересных задач можно сформулировать как задачи выпуклого программирования вида
где — выпуклые функции, определённые как отображения , где некоторые из функций недифференцируемы, что исключает обычные техники гладкой оптимизации, такие как метод наискорейшего спуска или метод сопряжённых градиентов и др., вместо них могут быть использованы проксимальные градиентные методы. Эти методы работают путём расщепления, так что функции используются индивидуально, что позволяет разработать более просто реализуемые алгоритмы. Они называются проксимальными (Шаблон:Lang-en, ближайший), поскольку каждая негладкая функция среди вовлекается в процесс через оператор близости. Итерационный алгоритм мягкой пороговой фильтрацииШаблон:Sfn, проекция Ландвебера, проекция градиента, попеременные проекции, Шаблон:Не переведено 5, метод чередующихся расщеплений Брэгмана являются частными случаями проксимальных алгоритмовШаблон:R. Для рассмотрения проксимальных градиентных методов со стороны статистической теории обучения и приложений к этой теории см. статью Шаблон:Не переведено 5.
Обозначения и терминология
Пусть , -мерное евклидово пространство, будет областью определения функции . Предположим, что является непустым выпуклым подмножеством множества . Тогда индикаторная функция множества определяется как
- -норма определяется как
Расстояние от до определяется как
Если замкнуто и выпукло, проекцией в множество является единственная точка , такая что .
Субдифференциал функции в точке задаётся выражением
Проецирование в выпуклые множества
Одним из широко используемых выпуклых алгоритмов оптимизации является проецирование в выпуклые множества. Этот алгоритм используется для обнаружения/синтезирования сигнала, удовлетворяющего одновременно нескольким выпуклым ограничениям. Пусть будет индикаторной функцией на непустом замкнутом выпуклом множестве , моделирующей ограничение. Это сводит задачу к задаче выпуклой осуществимости (достижимости), в которой нужно найти решение, содержащееся в пересечении всех выпуклых множеств . В методe проецирования в выпуклые множества каждое множество ассоциируется с его проектором . Таким образом, на каждой итерации пересчитывается по формуле
Однако за пределами таких задач проекторы не подходят и требуются операторы более общего вида. Среди различных существующих обобщений понятия выпуклого проектора операторы близости лучше всего подходят для таких целей.
Определение
Шаблон:Не переведено 5 выпуклой функции в точке определяется как единственное решение
и обозначается как .
Заметим, что в случае, когда является индикаторной функцией некоторого выпуклого множества
что показывает, что оператор близости действительно является обобщением проектора.
Оператор близости функции описывается включением
Если дифференцируема, то уравнение выше сводится к
Примеры
Частными случаями проксимальных градиентных методов являются
См. также
Примечания
Литература
Ссылки
- Stephen Boyd, Lieven Vandenberghe, Convex optimization
- EE364a: Convex Optimization I и EE364b: Convex Optimization II, Страницы стэнфордского курса
- EE227A: Lieven Vandenberghe Notes Лекция 18
- ProximalOperators.jl: Пакет на языке Julia, реализующий проксимальные операторы.
- ProximalAlgorithms.jl: Пакет на языке Julia, реализующий алгоритмы, основанные на операторах близости, включая проксимальный градиентный метод.
- Proximity Operator repository: набор операторов близости, реализованных в Matlab и на языке Python.
- ↑ Шаблон:Lang-en = ближайший