2014 dxdy logo

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

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


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


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



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


20/02/12
161
Здравствуйте! Решил разобраться с темой двойственности в математической оптимизации и построить зазор двойственности для функции логистической регрессии, вот так она описывается:
$$\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
161
Никто не знает? Нашёл вот такую штуку 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
161
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
161
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 ] 

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



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

Сейчас этот форум просматривают: VanD


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

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