Як інтелігентно намагатися виключити опуклість?


9

Я хочу мінімізувати складну цільову функцію, і я не впевнений, чи вона опукла. Чи є приємний алгоритм, який намагається довести, що він не опуклий? Звичайно, алгоритм міг цього не довести, і в такому випадку я б не знав, випуклий він чи ні, і це нормально; Я просто хочу спробувати виключити опуклість, перш ніж витратити багато часу, намагаючись аналітично визначити, чи є об'єктивна функція опуклою, наприклад, намагаючись переписати проблему у стандартну форму, відому для опуклості. Одним із швидких випробувань було б спробувати мінімізувати з різних вихідних точок, і якщо таким чином виявлено декілька локальних мінімумів, воно не є опуклим. Але мені було цікаво, чи є кращий алгоритм, який був розроблений з цією метою на увазі.


Чи є цільова функція гладкою? Це одновимірне? Чи дорого оцінювати 2-й похідний (або гессенський)? Якщо можливо, я хотів би побачити формулу або, принаймні, краще зрозуміти, чому вона "складна".
hardmath

Відповіді:


10

Опуклу функцію потрібно задовольнити f(αx+(1α)y)αf(x)+(1α)f(y) для усіх α(0,1) і x,yв області визначення. Ви можете просто спробувати перевірити цю формулу для великої кількості парx,y і пара значень α, напр α={1/4,1/2,3/4}.


6

Про низку практично корисних тестів на перевірку опуклості / невипуклості див. (Самовідмова, я третій автор цієї статті):

Р. Фурер, К. Махешварі, А. Неймаєр, Д. Орбан та Х. Шихль, Виявлення конвекційності та увігнутості в обчислювальних графіках. Дерево прогулянки для оцінки опуклості, INFORMS J. Computing 22 (2010), 26-43.

Зауважте, що в області, що цікавить, є багато функцій, які опуклі, але вони не можуть бути легко "дисциплінованими", тобто написані в одній із форм, необхідних структурованим опуклим розв'язувачем, таким як CVX .


Це еволюція доктора Ампл, Арнольд?
Майкл Грант

1
@MichaelGrant: Так, це офіційна публікація матеріалів доктора AMPL.
Арнольд Ноймаєр

2

Функція може бути невипуклою, не маючи декількох мінімумів. Існує безліч методів оптимізації, що застосовують (лінійні або нелінійні) ітерації спряженого градієнта, усічені, коли обчислюється негативна норма оператора. Від’ємне значення вказує напрям від’ємної кривизни (що не може трапитися для опуклих функціоналів). Якщо негативна кривизна зустрічається рідко, ці методи сходяться в невеликій кількості ітерацій оптимізації. (Якщо є якісний попередній кондиціонер, внутрішні кроки також повинні швидко сходитися.)


2
Тільки для уточнення, на що Єд має на увазі, коли він говорить "негативно", це те, що матриця других похідних функції має негативні власні значення.
Вольфганг Бангерт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.