Вопрос или проблема
У меня есть функция потерь с $\mu ,p, o, u, v$ в качестве переменных, а $\sigma$ является логистической функцией.
Мне нужно вывести эту функцию потерь. Из-за множества переменных в функции потерь мне нужно использовать функцию softmax, которая является обобщением логистической функции?
$L = -\frac{1}{N}\sum_{i,j \in S}^{2}{a_j\{y_{i,j}log[\sigma{(\mu + p_i + o_j + u^{T}_{i}v_{j})]} + (1 – y_{i,j})log[1 – \sigma{(\mu + p_i + o_j + u^{T}_{i}v_{j})]}\}}$
Насколько я понимаю, это задача градиентного спуска для многомерных переменных, поэтому мне нужно предоставить 4 различные правила обновления (выполняя частное производное для каждой из переменных, считая остальные постоянными), но как я “объединяю” их в одно правило обновления или, может быть, изначально есть только одно правило обновления, я немного запутался, когда это стало многомерной проблемой.
Каждый параметр будет использовать частное производное функции потерь относительно параметра т.е.
$\mu = \mu – {\partial L}/{\partial \mu}$
$p = p – {\partial L}/{\partial p}$
$o = o – {\partial L}/{\partial o}$
$u = u – {\partial L}/{\partial u}$
$v = v – {\partial L}/{\partial v}$
Если прямое производное невозможно, то возможно потребуется правило цепочки.
Ответ или решение
Для понимания процесса вычисления производных индивидуальных параметров функции потерь, основанной на логистической функции, сначала разберем вашу функцию потерь и ее составные части.
Функция потерь
Функция потерь задана следующим образом:
[
L = -\frac{1}{N} \sum_{i,j \in S}^{2} \Bigg( aj \left{ y{i,j} \log[\sigma(\mu + p_i + o_j + u^T_i vj)] + (1 – y{i,j}) \log[1 – \sigma(\mu + p_i + o_j + u^T_i v_j)] \right} \Bigg)
]
где:
- ( \sigma(z) ) — логистическая функция, определяемая как ( \sigma(z) = \frac{1}{1 + e^{-z}} ).
- ( \mu, p, o, u, v ) — параметры, которые мы хотим оптимизировать.
- ( y_{i,j} ) — истинное значение для соответствующей пары ( (i,j) ).
Производные функции потерь
Чтобы произвести оптимизацию через градиентный спуск, нам нужно вычислить частные производные функции потерь по каждому из параметров: ( \mu, p, o, u, v ).
- Частная производная по ( \mu )
Сначала вычислим ( \frac{\partial L}{\partial \mu} ). Вводим обозначение ( z = \mu + p_i + o_j + u^T_i v_j ), что позволяет нам просто записать:
[
\frac{\partial L}{\partial \mu} = -\frac{1}{N} \sum_{i,j \in S}^{2} aj \bigg( y{i,j} \frac{\partial}{\partial \mu} [\log(\sigma(z))] + (1 – y_{i,j}) \frac{\partial}{\partial \mu} [\log(1 – \sigma(z))] \bigg)
]
Применяя цепное правило, мы получим:
[
= -\frac{1}{N} \sum_{i,j \in S}^{2} aj \bigg( y{i,j} \frac{\sigma(z)(1 – \sigma(z))}{e^z} + (1 – y_{i,j}) \frac{-\sigma(z)(1 – \sigma(z))}{e^{-z}} \bigg) \frac{\partial z}{\partial \mu}
]
- Частная производная по ( p )
Аналогичным образом, получаем производную по ( p ):
[
\frac{\partial L}{\partial p} = -\frac{1}{N} \sum_{i,j \in S}^{2} aj \bigg( y{i,j} \sigma(z)(1 – \sigma(z)) + (1 – y_{i,j}) \sigma(z)(1 – \sigma(z)) \bigg) \frac{\partial z}{\partial p}
]
- Частная производная по ( o )
По аналогии производная по ( o ):
[
\frac{\partial L}{\partial o} = -\frac{1}{N} \sum_{i,j \in S}^{2} aj \bigg( y{i,j} \sigma(z)(1 – \sigma(z)) + (1 – y_{i,j}) \sigma(z)(1 – \sigma(z)) \bigg) \frac{\partial z}{\partial o}
]
- Частная производная по ( u ) и по ( v )
Для векторов ( u ) и ( v ):
[
\frac{\partial L}{\partial u} = -\frac{1}{N} \sum_{i,j \in S}^{2} aj \bigg( y{i,j} \sigma(z)(1 – \sigma(z)) + (1 – y_{i,j}) \sigma(z)(1 – \sigma(z)) \bigg) \frac{\partial z}{\partial u}
]
[
\frac{\partial L}{\partial v} = -\frac{1}{N} \sum_{i,j \in S}^{2} aj \bigg( y{i,j} \sigma(z)(1 – \sigma(z)) + (1 – y_{i,j}) \sigma(z)(1 – \sigma(z)) \bigg) \frac{\partial z}{\partial v}
]
Обновление параметров
Используя градиентный спуск, параметры обновляются следующим образом:
[
\mu \leftarrow \mu – \eta \frac{\partial L}{\partial \mu}
]
[
p \leftarrow p – \eta \frac{\partial L}{\partial p}
]
[
o \leftarrow o – \eta \frac{\partial L}{\partial o}
]
[
u \leftarrow u – \eta \frac{\partial L}{\partial u}
]
[
v \leftarrow v – \eta \frac{\partial L}{\partial v}
]
где ( \eta ) — это скорость обучения.
Заключение
Таким образом, производные по каждому из параметров могут быть рассчитаны с использованием цепного правила, и обновления производятся в соответствии с полученными частными производными. Объединение обновлений в одном правиле происходит путем применения обновления на каждый параметр по отдельности. Это связано с тем, что в контексте многомерной функции каждая переменная обновляется независимо от других, но при этом определяется общий подход к оптимизации.
Таким образом, у вас есть четкий путь к вычислению и применению градиентного спуска для оптимизации вашей функции потерь, основанной на логистической функции.