Координатний спуск
Шаблон:Проблеми Шаблон:Перекласти
Координатний спуск — це алгоритм оптимізації, який послідовно мінімізує уздовж координатних напрямків, щоб знайти мінімум функції. При кожній ітерації алгоритм визначає координату або координатний блок за допомогою правила вибору координат, а потім точно або приблизно мінімізує відповідну координатну гіперплощину, фіксуючи всі інші координати або блоки координат. Лінійний пошук по напрямку координат може бути здійснений на поточній ітерації для визначення відповідного розміру кроку. Координатний спуск може застосовуватися як у диференційованому, так і в похідному контексті.
Опис
Координатний спуск заснований на ідеї, що мінімізація багатоваріантної функції може бути досягнута шляхом мінімізації її по одному напрямку за один раз, тобто, вирішення одноманітної (або, принаймні, набагато простішої) проблеми оптимізації в циклі.[1] У найпростішому випадку циклічного координатного спуску, він циклічно повторюється через напрямки, по одному, мінімізуючи цільову функцію щодо кожного напрямку координат одночасно. Тобто, починаючи з початкових значень змінних
крок задає з ітеративно розв'язує проблеми оптимізації єдиної змінної
для кожної змінної з для від 1 до .
Таким чином, починаючи з початкової догадки для локального мінімуму функції , і отримуючи ітеративно послідовність
Використовуючи лінійний пошук кожної ітерації, ми автоматично отримуємо, що
Тут можна побачити що ця послідовність має схожі збіжні властивості як і метод найбільш крутого спуску. Відсутність вдосконалення після одного циклу лінійного пошуку вздовж координатних напрямків вказує на те, що стаціонарна точка досягнута. Цей процес ілюстрований нижче.

Диференційований випадок
У випадку неперервно диференційованої функції , алгоритм координатного спуску може бути представлений як:[1]
- Виберіть початковий параметричний вектор .
- До тих пір, поки не буде досягнута збіжність або для певної кількості ітерацій:
- Виберіть індекс від 1 до .
- Виберіть розмір кроку .
- Оновлюйте до
Розмір кроку може бути вибраний різними способами, наприклад, шляхом вирішення точного мінімізатора (тобто, зі всіма змінними, але фіксованими ), або за традиційними критеріями пошуку рядків.[1]
Обмеження
Координатний спуск має дві проблеми. Одна з них — це відсутність гладкої функції багатьох змінних. На наступному малюнку видно, що ітеративний спуск координатами може застрягнути в нестаціонарній точці, якщо криві рівня функції не є гладкими. Припустимо, що алгоритм знаходиться в точці (-2, -2); Тоді є два напрями, орієнтовані на осі, які можна розглянути для кроку, позначені червоними стрілками. Однак кожен крок уздовж цих двох напрямків збільшуватиме значення цільової функції (припускаючи проблему мінімізації), тому алгоритм не зробить жодного кроку, навіть якщо обидва кроки разом наблизили б алгоритм до оптимального. Хоча цей приклад показує, що спуск координатами не обов'язково збігається з оптимальним, можливо виявити формальне зближення при розумних умовах.[2]

Інша проблема — це складність розпаралелювання даного алгоритму. Оскільки суть координатного спуску полягає у проходженні напрямків та мінімізації цільової функції стосовно кожного координатного напрямку, спуск координат не є тривіальною задачею для паралелізму. Останні дослідницькі роботи показали, що паралелізм застосовується для координатного спуску шляхом послаблення зміни цільової функції стосовно кожного координатного напрямку.[3][4][5]
Застосування
Алгоритми координатного спуску користуються популярністю у практикантів завдяки своїй простоті, але та сама властивість змусила дослідників оптимізації значною мірою ігнорувати їх на користь більш цікавих (складних) методів. Раннє застосування оптимізації методом спуску координат було в області комп'ютерної томографії[6], де було виявлено швидку збіжність[7], а згодом було використано для клінічної реконструкції багатоклітинної спіральної томографії[8]. Крім того, виявився підвищений інтерес до використання координатного спуску з появою масштабних проблем у машинному навчанні, коли спуск координат виявився конкурентоспроможним для інших методів при застосуванні до таких проблем, як навчання лінійних методу опорних векторів[9] і розкладу невід'ємних матриць[10]. Вони привабливі для проблем, коли обчислення градієнтів недосяжно, можливо, тому, що дані, необхідні для цього, поширюються по комп'ютерних мережах.[11]