Изменения

Перейти к: навигация, поиск

Soft-Max и Soft-Arg-Max

265 байт добавлено, 19:42, 1 июля 2022
Нет описания правки
*<tex>L_{i} \leqslant L_{j} \implies p_{i} \leqslant p_{j}</tex>
*Модель <tex>a</tex>, возвращающая <tex>L_{i}</tex>, после преобразования будет возвращать <tex>p_{i}</tex> и останется дифференцируемой
*<tex>p =</tex> '''\boldsymbol{\mathbf{soft{\text -}arg{\text -}max'''<tex>}}\left ( L \right )</tex>
Пусть <tex>y = </tex> '''\boldsymbol{\mathbf{soft{\text -}arg{\text -}max'''<tex>}}\left ( x \right )</tex>, тогда:
<tex>\frac{\partial y_{i}}{\partial x_{j}} = \begin{cases}
*Вычисляет по вектору чисел вектор с распределением вероятностей
*Можно интерпретировать как вероятность нахождения максимума в <tex>i</tex>-й координате
*'''<tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max'''<tex>}}\left ( x - c,y-c,z-c\right )=</tex> '''\boldsymbol{\mathbf{soft{\text -}arg{\text -}max'''<tex>}}\left ( x,y,z\right )</tex>
*Предыдущее свойство используют для устойчивости вычислений при <tex>c=max\left ( x,y,z \right )</tex>
===Модификация soft-arg-max===
'''<tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max'''<tex>}}_{t}\left(x\right)=\frac{\exp\left(\frac{x_{i}}{t}\right)}{\sum\exp\left(\frac{x_{j}}{t}\right)}</tex>
Данная модификация полезна, когда необходимо контролировать распределение вероятностей, получаемое '''soft-arg-max'''. Чем больше параметр <tex>t</tex>, тем больше получаемые вероятности будут похожи на равномерное распределение.
Зададим функцию '''soft-max''' таким образом:
'''<tex>\boldsymbol{\mathbf{soft{\text -}max'''<tex>}}\left ( x_{1},\ldots,x_{n}\right ) = \frac{x_{i}~\cdot~\exp \left ( x_{i} \right )}{\sum_{j}\exp \left( x_{j} \right )} = \left \langle x, \right .</tex>'''\boldsymbol{\mathbf{soft{\text -arg-}max'''<tex>}}\left . \left (x_{1},\ldots,x_{n} \right ) \right \rangle</tex>
Гладкая аппроксимация максимума. Математическое ожидание или средневзвешенное, где веса {{---}} экспоненты значений соответствующих элементов. Сохраняет некоторые свойства максимума:
*'''<tex>\boldsymbol{\mathbf{soft{\text -}max'''<tex>}}\left ( a,a,a\right ) = a</tex>*'''<tex>\boldsymbol{\mathbf{soft{\text -}max'''<tex>}}\left ( x+a,y+a,z+a\right ) =</tex> '''\boldsymbol{\mathbf{soft{\text -}max'''<tex>}}\left ( x,y,z\right ) + a</tex>
Заданный выше '''soft-max''' {{---}} "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума.
===Хороший Soft-Max===
'''<tex>\boldsymbol{\mathbf{soft{\text -}max'''<tex>}}\left ( x_{1},\ldots,x_{n}\right ) = \log\left(\sum_{i}\exp\left(x_{i}\right)\right)</tex>
*Не сохраняется свойство '''<tex>\boldsymbol{\mathbf{soft{\text -}max'''<tex>}}\left(a,a,a\right)=a</tex>
*Производная равна '''soft-arg-max'''
46
правок

Навигация