Soft-Max и Soft-Arg-Max — различия между версиями
Betson (обсуждение | вклад) (→Soft-Max) |
Betson (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | == | + | ==SoftArgMax== |
===Постановка задачи=== | ===Постановка задачи=== | ||
Пусть есть задача мягкой классификации: | Пусть есть задача мягкой классификации: | ||
Строка 32: | Строка 32: | ||
У <tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}</tex> такое название, так как это, по сути, гладкая аппроксимация модифицированного <tex>\boldsymbol{\mathbf{arg{\text -}max}}</tex>. | У <tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}</tex> такое название, так как это, по сути, гладкая аппроксимация модифицированного <tex>\boldsymbol{\mathbf{arg{\text -}max}}</tex>. | ||
− | ===Свойства | + | ===Свойства SoftArgMax=== |
*Вычисляет по вектору чисел вектор с распределением вероятностей | *Вычисляет по вектору чисел вектор с распределением вероятностей | ||
*Можно интерпретировать как вероятность нахождения максимума в <tex>i</tex>-й координате | *Можно интерпретировать как вероятность нахождения максимума в <tex>i</tex>-й координате | ||
Строка 38: | Строка 38: | ||
*Предыдущее свойство используют для устойчивости вычислений при <tex>c=max\left ( x,y,z \right )</tex> | *Предыдущее свойство используют для устойчивости вычислений при <tex>c=max\left ( x,y,z \right )</tex> | ||
− | ===Модификация | + | ===Модификация SoftArgMax=== |
<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>, тем больше получаемые вероятности будут похожи на равномерное распределение. | Данная модификация полезна, когда необходимо контролировать распределение вероятностей, получаемое <tex>\boldsymbol{\mathbf{soft{\text -}arg{\text -}max}}</tex>. Чем больше параметр <tex>t</tex>, тем больше получаемые вероятности будут похожи на равномерное распределение. | ||
− | == | + | ==SoftMax== |
− | ===Плохой | + | ===Плохой SoftMax=== |
− | [[File:BadSoftMax.png|200px|thumb|Плохой | + | [[File:BadSoftMax.png|200px|thumb|Плохой SoftMax (помечен красным)]] |
− | [[File:GoodSoftMax.png|200px|thumb|Хороший | + | [[File:GoodSoftMax.png|200px|thumb|Хороший SoftMax (помечен оранжевым)]] |
Зададим функцию <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex> таким образом: | Зададим функцию <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex> таким образом: | ||
Строка 58: | Строка 58: | ||
Заданный выше <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex> {{---}} "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума. | Заданный выше <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex> {{---}} "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума. | ||
− | ===Хороший | + | ===Хороший SoftMax=== |
<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 ( x_{1},\ldots,x_{n}\right ) = \log\left(\sum_{i}\exp\left(x_{i}\right)\right)</tex> | ||
Строка 66: | Строка 66: | ||
В этом случае сохраняется монотонность, значит, не возникнет проблем с поиском минимума и максимума. | В этом случае сохраняется монотонность, значит, не возникнет проблем с поиском минимума и максимума. | ||
− | ==Связь между вариациями | + | ==Связь между вариациями SoftMax== |
Обозначим "плохой" <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex> как <tex>\boldsymbol{\mathbf{bad{\text -}soft{\text -}max}}</tex>. Тогда: | Обозначим "плохой" <tex>\boldsymbol{\mathbf{soft{\text -}max}}</tex> как <tex>\boldsymbol{\mathbf{bad{\text -}soft{\text -}max}}</tex>. Тогда: | ||
Версия 21:23, 1 июля 2022
Содержание
SoftArgMax
Постановка задачи
Пусть есть задача мягкой классификации:
Алгоритм выдает значения
, где — число классов.— уверенность алгоритма в том, что объект принадлежит классу ,
Для этих значений необходимо найти такие
, что:То есть
— распределение вероятностейДля этого выполним преобразование:
Тогда выполняется следующее:
- Модель , возвращающая , после преобразования будет возвращать и останется дифференцируемой
Пусть
, тогда:
У
такое название, так как это, по сути, гладкая аппроксимация модифицированного .Свойства SoftArgMax
- Вычисляет по вектору чисел вектор с распределением вероятностей
- Можно интерпретировать как вероятность нахождения максимума в -й координате
- Предыдущее свойство используют для устойчивости вычислений при
Модификация SoftArgMax
Данная модификация полезна, когда необходимо контролировать распределение вероятностей, получаемое
. Чем больше параметр , тем больше получаемые вероятности будут похожи на равномерное распределение.SoftMax
Плохой SoftMax
Зададим функцию
таким образом:
Гладкая аппроксимация максимума. Математическое ожидание или средневзвешенное, где веса — экспоненты значений соответствующих элементов. Сохраняет некоторые свойства максимума:
Заданный выше
— "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума.Хороший SoftMax
- Не сохраняется свойство
- Производная равна
В этом случае сохраняется монотонность, значит, не возникнет проблем с поиском минимума и максимума.
Связь между вариациями SoftMax
Обозначим "плохой"
как . Тогда:Примечания
- В большинстве статей пишется , хотя вместо этого подразумевается
- можно называть также как обобщённая (многомерная) сигмоида
- является алгоритмом подсчёта весов для
Источники
- Лекция 7. Байесовские методы А. Забашта
- Лекция 7. Автоматическое дифференцирование и нейронные сети С. Муравьёв