Случайный спуск по координатам
Рандомизированный (блочный) метод спуска координат — это алгоритм оптимизации, популяризированный Нестеровым (2010), Рихтариком и Такачем (2011). Первый анализ этого метода применительно к задаче минимизации гладкой выпуклой функции был выполнен Нестеровым (2010). [1] В анализе Нестерова метод необходимо применить к квадратичному возмущению исходной функции с неизвестным масштабным коэффициентом. Рихтарик и Такач (2011) дают оценки сложности итерации, которые этого не требуют, т. е. метод применяется непосредственно к целевой функции. Более того, они обобщают постановку задачи минимизации сложной функции, т. е. суммы гладкой выпуклой и (возможно, негладкой) выпуклой блочно-разделимой функции:
где разлагается на блоки переменных/координат: и являются (простыми) выпуклыми функциями.
Пример (разложение по блокам): Если и , можно выбрать и .
Пример (регуляризаторы с разделением блоков):
- , где и является стандартной евклидовой нормой.
Алгоритм
[ редактировать ]Рассмотрим задачу оптимизации
где — выпуклая и гладкая функция.
Гладкость. Под гладкостью мы подразумеваем следующее: мы предполагаем, чтоградиент является по координатам липшицевым с константами . То есть мы предполагаем, что
для всех и , где обозначает частную производную по переменной .
Нестеров, Рихтарик и Такач показали, что следующий алгоритм сходится к оптимальной точке:
Algorithm Random Coordinate Descent Method Input: //starting point Output: set x := x_0 for k := 1, ... do choose coordinate , uniformly at random update end for
- « ←» означает присвоение . Например, « самый большой ← элемент » означает, что значение самого большого изменяется на значение элемента .
- « return » завершает алгоритм и выводит следующее значение.
Скорость сходимости
[ редактировать ]Поскольку итерации этого алгоритма представляют собой случайные векторы, результат сложности даст ограничение на количество итераций, необходимых для того, чтобы метод выдал приближенное решение с высокой вероятностью. Это было показано в [2] что если , где , оптимальное решение ( ), это уровень доверия и точность цели,затем .
Пример конкретной функции
[ редактировать ]На следующем рисунке показанокак в принципе развивается в ходе итераций.Проблема в том,
Расширение для блокировки установки координат
[ редактировать ]Естественно, этот алгоритм можно распространить не только на координаты, но и на блоки координат. Предположим, что у нас есть пространство . Это пространство имеет 5 координатных направлений, а именно в котором может двигаться метод случайного координатного спуска. Однако можно сгруппировать некоторые координатные направления в блоки, и вместо этих 5 координатных направлений мы можем иметь 3 блочных координатных направления (см. изображение).
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Нестеров, Юрий (2010), «Эффективность методов координатного спуска в задачах крупномасштабной оптимизации», SIAM Journal on Optimization , 22 (2): 341–362, CiteSeerX 10.1.1.332.3336 , doi : 10.1137/100802001
- ^ Рихтарик, Питер; Такач, Мартин (2011), «Сложность итерации рандомизированных методов блочно-координатного спуска для минимизации сложной функции», Mathematical Programming, Series A , 144 (1–2): 1–38, arXiv : 1107.2848 , doi : 10.1007/s10107 -012-0614-з