Soft-Max и Soft-Arg-Max — различия между версиями
Betson (обсуждение | вклад)  (Отмена правки 82615, сделанной Betson (обсуждение))  | 
				Betson (обсуждение | вклад)   | 
				||
| Строка 21: | Строка 21: | ||
*<tex>L_{i} \leqslant L_{j} \implies p_{i} \leqslant p_{j}</tex>  | *<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>a</tex>, возвращающая <tex>L_{i}</tex>, после преобразования будет возвращать <tex>p_{i}</tex> и останется дифференцируемой  | ||
| − | *<tex>p =  | + | *<tex>p =\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}\left ( L \right )</tex>  | 
| − | Пусть <tex>y =   | + | Пусть <tex>y = \boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}\left ( x \right )</tex>, тогда:  | 
<tex>\frac{\partial y_{i}}{\partial x_{j}} = \begin{cases}  | <tex>\frac{\partial y_{i}}{\partial x_{j}} = \begin{cases}  | ||
| Строка 35: | Строка 35: | ||
*Вычисляет по вектору чисел вектор с распределением вероятностей  | *Вычисляет по вектору чисел вектор с распределением вероятностей  | ||
*Можно интерпретировать как вероятность нахождения максимума в <tex>i</tex>-й координате  | *Можно интерпретировать как вероятность нахождения максимума в <tex>i</tex>-й координате  | ||
| − | *  | + | *<tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}\left ( x - c,y-c,z-c\right )=\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}\left ( x,y,z\right )</tex>  | 
*Предыдущее свойство используют для устойчивости вычислений при <tex>c=max\left ( x,y,z \right )</tex>  | *Предыдущее свойство используют для устойчивости вычислений при <tex>c=max\left ( x,y,z \right )</tex>  | ||
===Модификация soft-arg-max===  | ===Модификация soft-arg-max===  | ||
| − | + | <tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}_{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-arg-max'''. Чем больше параметр <tex>t</tex>, тем больше получаемые вероятности будут похожи на равномерное распределение.  | ||
| Строка 49: | Строка 49: | ||
Зададим функцию '''soft-max''' таким образом:  | Зададим функцию '''soft-max''' таким образом:  | ||
| − | + | <tex>\boldsymbol{\mathbf{soft{\text -}max}}\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 .\boldsymbol{\mathbf{soft{\text -}max}}\left . \left (x_{1},\ldots,x_{n} \right )  \right \rangle</tex>  | |
Гладкая аппроксимация максимума. Математическое ожидание или средневзвешенное, где веса {{---}} экспоненты значений соответствующих элементов. Сохраняет некоторые свойства максимума:  | Гладкая аппроксимация максимума. Математическое ожидание или средневзвешенное, где веса {{---}} экспоненты значений соответствующих элементов. Сохраняет некоторые свойства максимума:  | ||
| − | *  | + | *<tex>\boldsymbol{\mathbf{soft{\text -}max}}\left ( a,a,a\right ) = a</tex>  | 
| − | *  | + | *<tex>\boldsymbol{\mathbf{soft{\text -}max}}\left ( x+a,y+a,z+a\right ) =\boldsymbol{\mathbf{soft{\text -}max}}\left ( x,y,z\right ) + a</tex>  | 
Заданный выше '''soft-max''' {{---}} "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума.  | Заданный выше '''soft-max''' {{---}} "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума.  | ||
===Хороший Soft-Max===  | ===Хороший Soft-Max===  | ||
| − | + | <tex>\boldsymbol{\mathbf{soft{\text -}max}}\left ( x_{1},\ldots,x_{n}\right ) = \log\left(\sum_{i}\exp\left(x_{i}\right)\right)</tex>  | |
| − | *Не сохраняется свойство   | + | *Не сохраняется свойство <tex>\boldsymbol{\mathbf{soft{\text -}max}}\left(a,a,a\right)=a</tex>  | 
*Производная равна '''soft-arg-max'''  | *Производная равна '''soft-arg-max'''  | ||
Версия 19:42, 1 июля 2022
Содержание
Soft-Arg-Max
Постановка задачи
Пусть есть задача мягкой классификации:
Алгоритм выдает значения , где — число классов.
— уверенность алгоритма в том, что объект принадлежит классу ,
Для этих значений необходимо найти такие , что:
То есть — распределение вероятностей
Для этого выполним преобразование:
Тогда выполняется следующее:
- Модель , возвращающая , после преобразования будет возвращать и останется дифференцируемой
 
Пусть , тогда:
У soft-arg-max такое название, так как это, по сути, гладкая аппроксимация модифицированного arg-max.
Свойства soft-arg-max
- Вычисляет по вектору чисел вектор с распределением вероятностей
 - Можно интерпретировать как вероятность нахождения максимума в -й координате
 - Предыдущее свойство используют для устойчивости вычислений при
 
Модификация soft-arg-max
Данная модификация полезна, когда необходимо контролировать распределение вероятностей, получаемое soft-arg-max. Чем больше параметр , тем больше получаемые вероятности будут похожи на равномерное распределение.
Soft-Max
Плохой Soft-Max
Зададим функцию soft-max таким образом:
Гладкая аппроксимация максимума. Математическое ожидание или средневзвешенное, где веса — экспоненты значений соответствующих элементов. Сохраняет некоторые свойства максимума:
Заданный выше soft-max — "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума.
Хороший Soft-Max
- Не сохраняется свойство
 - Производная равна soft-arg-max
 
В этом случае сохраняется монотонность, значит, не возникнет проблем с поиском минимума и максимума.
Связь между вариациями Soft-Max
Обозначим "плохой" soft-max как bad-soft-max. Тогда:
- bad-soft-maxsoft-arg-max
 - soft-max soft-arg-max
 - soft-arg-maxsoft-max
 
Примечания
- В большинстве статей пишется soft-max, хотя вместо этого подразумевается soft-arg-max
 - soft-arg-max можно называть также как обобщённая (многомерная) сигмоида
 - soft-arg-max является алгоритмом подсчёта весов для soft-max
 
Источники
- Лекция 7. Байесовские методы А. Забашта
 - Лекция 7. Автоматическое дифференцирование и нейронные сети С. Муравьёв