Производная пользовательской функции потерь с логистической функцией

Вопрос или проблема

У меня есть функция потерь с $\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 ).

  1. Частная производная по ( \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}
]

  1. Частная производная по ( 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}
]

  1. Частная производная по ( 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}
]

  1. Частная производная по ( 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 ) — это скорость обучения.

Заключение

Таким образом, производные по каждому из параметров могут быть рассчитаны с использованием цепного правила, и обновления производятся в соответствии с полученными частными производными. Объединение обновлений в одном правиле происходит путем применения обновления на каждый параметр по отдельности. Это связано с тем, что в контексте многомерной функции каждая переменная обновляется независимо от других, но при этом определяется общий подход к оптимизации.

Таким образом, у вас есть четкий путь к вычислению и применению градиентного спуска для оптимизации вашей функции потерь, основанной на логистической функции.

Оцените материал
Добавить комментарий

Капча загружается...