Soft-Max и Soft-Arg-Max — различия между версиями
| Betson (обсуждение | вклад)  (→Плохой Soft-Max) | Betson (обсуждение | вклад)  | ||
| Строка 30: | Строка 30: | ||
| \end{cases} = y_{i}\left ( I\left [ i = j \right ] - y_{j}\right )</tex> | \end{cases} = y_{i}\left ( I\left [ i = j \right ] - y_{j}\right )</tex> | ||
| − | У  | + | У <tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}</tex> такое название, так как это, по сути, гладкая аппроксимация модифицированного <tex>\boldsymbol{\mathbf{arg{\text -}max}}</tex>. | 
| ===Свойства soft-arg-max=== | ===Свойства soft-arg-max=== | ||
| Строка 41: | Строка 41: | ||
| <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> | <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> | ||
| − | Данная модификация полезна, когда необходимо контролировать распределение вероятностей, получаемое  | + | Данная модификация полезна, когда необходимо контролировать распределение вероятностей, получаемое <tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}</tex>. Чем больше параметр <tex>t</tex>, тем больше получаемые вероятности будут похожи на равномерное распределение. | 
| ==Soft-Max== | ==Soft-Max== | ||
| Строка 47: | Строка 47: | ||
| [[File:BadSoftMax.png|200px|thumb|рис.1 Плохой Soft-Max (помечен красным)]] | [[File:BadSoftMax.png|200px|thumb|рис.1 Плохой Soft-Max (помечен красным)]] | ||
| [[File:GoodSoftMax.png|200px|thumb|рис.2 Хороший Soft-Max (помечен оранжевым)]] | [[File:GoodSoftMax.png|200px|thumb|рис.2 Хороший Soft-Max (помечен оранжевым)]] | ||
| − | Зададим функцию  | + | Зададим функцию <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex> таким образом: | 
| <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 -}arg{\text -}max}}\left . \left (x_{1},\ldots,x_{n} \right )  \right \rangle</tex> | <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 -}arg{\text -}max}}\left . \left (x_{1},\ldots,x_{n} \right )  \right \rangle</tex> | ||
| Строка 56: | Строка 56: | ||
| *<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> | *<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> | ||
| − | Заданный выше  | + | Заданный выше <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex> {{---}} "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума. | 
| ===Хороший Soft-Max=== | ===Хороший Soft-Max=== | ||
| Строка 62: | Строка 62: | ||
| *Не сохраняется свойство <tex>\boldsymbol{\mathbf{soft{\text -}max}}\left(a,a,a\right)=a</tex> | *Не сохраняется свойство <tex>\boldsymbol{\mathbf{soft{\text -}max}}\left(a,a,a\right)=a</tex> | ||
| − | *Производная равна  | + | *Производная равна <tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}</tex> | 
| В этом случае сохраняется монотонность, значит, не возникнет проблем с поиском минимума и максимума. | В этом случае сохраняется монотонность, значит, не возникнет проблем с поиском минимума и максимума. | ||
| ==Связь между вариациями Soft-Max== | ==Связь между вариациями Soft-Max== | ||
| − | Обозначим "плохой"  | + | Обозначим "плохой" <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex> как <tex>\boldsymbol{\mathbf{bad{\text -}soft{\text -}max}}</tex>. Тогда: | 
| *<tex>\boldsymbol{\mathbf{bad{\text -}soft{\text -}max}}\left(x_{1},\ldots,x_{n}\right)=\left \langle x,  \right .\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}\left . \left (x_{1},\ldots,x_{n} \right )  \right \rangle</tex> | *<tex>\boldsymbol{\mathbf{bad{\text -}soft{\text -}max}}\left(x_{1},\ldots,x_{n}\right)=\left \langle x,  \right .\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}\left . \left (x_{1},\ldots,x_{n} \right )  \right \rangle</tex> | ||
| Строка 74: | Строка 74: | ||
| ==Примечания== | ==Примечания== | ||
| − | *В большинстве статей пишется  | + | *В большинстве статей пишется <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex>, хотя вместо этого подразумевается <tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}</tex> | 
| − | * | + | *<tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}</tex> можно называть также как обобщённая (многомерная) сигмоида | 
| − | * | + | *<tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}</tex> является алгоритмом подсчёта весов для <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex> | 
| ==Источники== | ==Источники== | ||
| # [https://www.youtube.com/watch?v=mlPNUbaphZA&ab_channel=MLLabITMO Лекция 7. Байесовские методы А. Забашта] | # [https://www.youtube.com/watch?v=mlPNUbaphZA&ab_channel=MLLabITMO Лекция 7. Байесовские методы А. Забашта] | ||
Версия 19:55, 1 июля 2022
Содержание
Soft-Arg-Max
Постановка задачи
Пусть есть задача мягкой классификации:
Алгоритм выдает значения , где — число классов.
— уверенность алгоритма в том, что объект принадлежит классу ,
Для этих значений необходимо найти такие , что:
То есть — распределение вероятностей
Для этого выполним преобразование:
Тогда выполняется следующее:
- Модель , возвращающая , после преобразования будет возвращать и останется дифференцируемой
Пусть , тогда:
У такое название, так как это, по сути, гладкая аппроксимация модифицированного .
Свойства soft-arg-max
- Вычисляет по вектору чисел вектор с распределением вероятностей
- Можно интерпретировать как вероятность нахождения максимума в -й координате
- Предыдущее свойство используют для устойчивости вычислений при
Модификация soft-arg-max
Данная модификация полезна, когда необходимо контролировать распределение вероятностей, получаемое . Чем больше параметр , тем больше получаемые вероятности будут похожи на равномерное распределение.
Soft-Max
Плохой Soft-Max
Зададим функцию таким образом:
Гладкая аппроксимация максимума. Математическое ожидание или средневзвешенное, где веса — экспоненты значений соответствующих элементов. Сохраняет некоторые свойства максимума:
Заданный выше — "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума.
Хороший Soft-Max
- Не сохраняется свойство
- Производная равна
В этом случае сохраняется монотонность, значит, не возникнет проблем с поиском минимума и максимума.
Связь между вариациями Soft-Max
Обозначим "плохой" как . Тогда:
Примечания
- В большинстве статей пишется , хотя вместо этого подразумевается
- можно называть также как обобщённая (многомерная) сигмоида
- является алгоритмом подсчёта весов для
Источники
- Лекция 7. Байесовские методы А. Забашта
- Лекция 7. Автоматическое дифференцирование и нейронные сети С. Муравьёв


