2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Оптимизация, зазор двойстенности для лог регрессии
Сообщение26.05.2024, 18:51 
Аватара пользователя


20/02/12
165
Здравствуйте! Решил разобраться с темой двойственности в математической оптимизации и построить зазор двойственности для функции логистической регрессии, вот так она описывается:
$$\min_{w\in \mathbb{R}^n} \frac{1}{m} \sum\limits_{i=1}^m \log \left(1+\exp(-y_i \langle w, x_i \rangle)\right) + \frac{\alpha}{2}\|w\|_2^2,$$
, тут $x_i$ - это строка из матрицы $X$ (не квадратная!), $\alpha$ - константа

Чтобы построить двойственную функцию, добавим искусственное ограничение:
$u_i=y_i \langle w, x_i\rangle, \forall i=\overline{1,m}$, а сама функция станет такой $\frac{1}{m} \sum\limits_{i=1}^m \log \left(1+\exp(-u_i)\right) + \frac{\alpha}{2}\|w\|_2^2$

Теперь сама двойственная функция:
$$g(\nu) = \min_{u, \omega} \frac{1}{m} \sum\limits_{i=1}^m \log \left(1+\exp(-u_i)\right) + \frac{\alpha}{2}\|w\|_2^2 - \nu^\top(u - y \ \circ \ X \omega)$$
Теперь через производную нашёл такую точку минимума (несколько раз перепроверил):
$$\begin{equation}
\left\{\begin{split}
\omega_{\min} = -\frac{1}{\alpha}(\nu \ \circ \ y)^\top X \\
u_{i \ \min} = - \ln{\frac{\nu_i}{1 - \nu_i m}} \\
\end{split}\right.\end{equation}$$

Дальше мне надо выразить $\nu$ через $\omega$ для того, чтобы образовать функцию $g(\nu(\omega))$ и тогда я смогу получить критерий приближения к минимуму вот так $f(\omega) - g(\nu(\omega))$.

Теперь сам вопрос. Как мне выразить $\nu$ через $\omega$ в (1)? Я не понимаю как это сделать, так как $X$ может быть не квадратной и нельзя эту матрицу просто перебросить в правую часть уравнения

Так же я ещё не решил как обойти проблему отрицательного значения под логарифмом в $u_{\min}$, но это уже дальше...

 Профиль  
                  
 
 Re: Оптимизация, зазор двойстенности для лог регрессии
Сообщение30.05.2024, 15:12 
Аватара пользователя


20/02/12
165
Никто не знает? Нашёл вот такую штуку https://en.wikipedia.org/wiki/Moore%E2% ... se_inverse. Если её использовать, то можно записать:

$$\nu = - (\frac{\alpha}{y} \circ \omega) X^{-1}$$

Просто основное затруднения были в том, что матрица не квадратная. Но если это преобразование по ссылке применить, то вроде бы всё получается

 Профиль  
                  
 
 Re: Оптимизация, зазор двойстенности для лог регрессии
Сообщение01.06.2024, 04:23 


14/11/21
141
Эта оптимизационная задача выпуклая или нет?

 Профиль  
                  
 
 Re: Оптимизация, зазор двойстенности для лог регрессии
Сообщение04.06.2024, 18:53 
Аватара пользователя


20/02/12
165
Alex Krylov в сообщении #1640912 писал(а):
Эта оптимизационная задача выпуклая или нет?


Она вогнутая. Значит со знаком "-" будет выпуклой

 Профиль  
                  
 
 Re: Оптимизация, зазор двойстенности для лог регрессии
Сообщение05.06.2024, 09:17 


14/11/21
141
Я имею в виду, что в вашем заглавном сообщении в самом верху целевая функция - выпуклая (если $\alpha$ положительная константа). Далее у вас возникают искусственные афинные ограничения. По определению это задача выпуклого программирования (convex optimization problem). Теперь надо обратиться к понятию сильной двойтсвенности и условию Слейтера.

 Профиль  
                  
 
 Re: Оптимизация, зазор двойстенности для лог регрессии
Сообщение08.06.2024, 17:52 
Аватара пользователя


20/02/12
165
Alex Krylov в сообщении #1641477 писал(а):
Я имею в виду, что в вашем заглавном сообщении в самом верху целевая функция - выпуклая (если $\alpha$ положительная константа). Далее у вас возникают искусственные афинные ограничения. По определению это задача выпуклого программирования (convex optimization problem). Теперь надо обратиться к понятию сильной двойтсвенности и условию Слейтера.


Я хотел минимизировать функцию из заглавного сообщения с помощью кода на Python. Для этого в моём алгоритме градиентного спуска в качестве критерия приближения к минимуму я хотел использовать зазор двойственности: $f(\omega) - g(\nu(\omega))$. $\omega$ мне известна на каждой итерации алгоритма. Вопрос тут был в том как мне получить $\nu(\omega)$ отсюда:
Verbery в сообщении #1640356 писал(а):
Теперь через производную нашёл такую точку минимума (несколько раз перепроверил):
$$\begin{equation}
\left\{\begin{split}
\omega_{\min} = -\frac{1}{\alpha}(\nu \ \circ \ y)^\top X \\
u_{i \ \min} = - \ln{\frac{\nu_i}{1 - \nu_i m}} \\
\end{split}\right.\end{equation}$$

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group