Soft-Max и Soft-Arg-Max — различия между версиями
(→Свойства soft-arg-max) |
|||
Строка 9: | Строка 9: | ||
Для этих значений необходимо найти такие <tex>p_{1},\ldots,p_{n}</tex>, что: | Для этих значений необходимо найти такие <tex>p_{1},\ldots,p_{n}</tex>, что: | ||
− | *<tex>p_{i} \in \left [ 0, 1\right ]</tex> | + | *<tex>p_{i} \in \left [ 0, 1\right ]</tex>. |
− | *<tex>\sum_{i}p_{i}=1</tex> | + | *<tex>\sum_{i}p_{i}=1</tex>. |
То есть <tex>p_{1},\ldots,p_{n}</tex> {{---}} распределение вероятностей. | То есть <tex>p_{1},\ldots,p_{n}</tex> {{---}} распределение вероятностей. | ||
Строка 19: | Строка 19: | ||
Тогда выполняется следующее: | Тогда выполняется следующее: | ||
− | *<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> '''soft-arg-max'''<tex>\left ( L \right )</tex> | + | *<tex>p =</tex> '''soft-arg-max'''<tex>\left ( L \right )</tex>. |
Пусть <tex>y = </tex> '''soft-arg-max'''<tex>\left ( x \right )</tex>, тогда: | Пусть <tex>y = </tex> '''soft-arg-max'''<tex>\left ( x \right )</tex>, тогда: | ||
Строка 49: | Строка 49: | ||
Гладкая аппроксимация максимума. Математическое ожидание или средневзвешенное, где веса {{---}} экспоненты значений соответствующих элементов. Сохраняет некоторые свойства максимума: | Гладкая аппроксимация максимума. Математическое ожидание или средневзвешенное, где веса {{---}} экспоненты значений соответствующих элементов. Сохраняет некоторые свойства максимума: | ||
− | *'''soft-max'''<tex>\left ( a,a,a\right ) = a</tex> | + | *'''soft-max'''<tex>\left ( a,a,a\right ) = a</tex>. |
− | *'''soft-max'''<tex>\left ( x+a,y+a,z+a\right ) =</tex> '''soft-max'''<tex>\left ( x,y,z\right ) + a</tex> | + | *'''soft-max'''<tex>\left ( x+a,y+a,z+a\right ) =</tex> '''soft-max'''<tex>\left ( x,y,z\right ) + a</tex>. |
Заданный выше '''soft-max''' {{---}} "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума. | Заданный выше '''soft-max''' {{---}} "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума. | ||
Строка 65: | Строка 65: | ||
Обозначим "плохой" '''soft-max''' как '''bad-soft-max'''. Тогда: | Обозначим "плохой" '''soft-max''' как '''bad-soft-max'''. Тогда: | ||
− | *'''bad-soft-max'''<tex>\left(x_{1},\ldots,x_{n}\right)=\left \langle x, \right .</tex>'''soft-arg-max'''<tex>\left . \left (x_{1},\ldots,x_{n} \right ) \right \rangle</tex> | + | *'''bad-soft-max'''<tex>\left(x_{1},\ldots,x_{n}\right)=\left \langle x, \right .</tex>'''soft-arg-max'''<tex>\left . \left (x_{1},\ldots,x_{n} \right ) \right \rangle</tex>. |
− | *<tex>\nabla</tex>'''soft-max'''<tex>\left(x_{1},\ldots,x_{n}\right)=</tex>'''soft-arg-max'''<tex>\left(x_{1},\ldots,x_{n}\right)</tex> | + | *<tex>\nabla</tex>'''soft-max'''<tex>\left(x_{1},\ldots,x_{n}\right)=</tex>'''soft-arg-max'''<tex>\left(x_{1},\ldots,x_{n}\right)</tex>. |
− | *<tex>\log\left(\right.</tex>'''soft-arg-max'''<tex>_{i}\left(x_{1},\ldots,x_{n}\right)\left.\right) = x_{i} -</tex>'''soft-max'''<tex>\left(x_{1},\ldots,x_{n}\right)</tex> | + | *<tex>\log\left(\right.</tex>'''soft-arg-max'''<tex>_{i}\left(x_{1},\ldots,x_{n}\right)\left.\right) = x_{i} -</tex>'''soft-max'''<tex>\left(x_{1},\ldots,x_{n}\right)</tex>. |
==Примечания== | ==Примечания== | ||
*В большинстве статей пишется '''soft-max''', хотя вместо этого подразумевается '''soft-arg-max'''. | *В большинстве статей пишется '''soft-max''', хотя вместо этого подразумевается '''soft-arg-max'''. | ||
− | *'''soft-arg-max''' можно называть также как обобщённая (многомерная) сигмоида | + | *'''soft-arg-max''' можно называть также как обобщённая (многомерная) сигмоида. |
− | *'''soft-arg-max''' является алгоритмом подсчёта весов для '''soft-max''' | + | *'''soft-arg-max''' является алгоритмом подсчёта весов для '''soft-max'''. |
Версия 18:13, 1 июля 2022
Содержание
Soft-Arg-Max
Постановка задачи
Пусть есть задача мягкой классификации:
Алгоритм выдает значения
, где — число классов.— уверенность алгоритма в том, что объект принадлежит классу ,
Для этих значений необходимо найти такие
, что:- .
- .
То есть
— распределение вероятностей.Для этого выполним преобразование:
Тогда выполняется следующее:
- .
- Модель , возвращающая , после преобразования будет возвращать и останется дифференцируемой.
- soft-arg-max .
Пусть
soft-arg-max , тогда:
Свойства soft-arg-max
- Вычисляет по вектору чисел вектор с распределением вероятностей.
- Можно интерпретировать как вероятность нахождения максимума в -й координате.
- soft-arg-max soft-arg-max .
- Предыдущее свойство используют для устойчивости вычислений при .
Модификация soft-arg-max
soft-arg-max
Данная модификация полезна, когда необходимо контролировать распределение вероятностей, получаемое soft-arg-max. Чем больше параметр
, тем больше получаемые вероятности будут похожи на равномерное распределение.Soft-Max
Плохой Soft-Max
Зададим функцию soft-max таким образом:
soft-max
soft-arg-maxГладкая аппроксимация максимума. Математическое ожидание или средневзвешенное, где веса — экспоненты значений соответствующих элементов. Сохраняет некоторые свойства максимума:
- soft-max .
- soft-max soft-max .
Заданный выше soft-max — "плохой" в связи с тем, что мы считаем средневзвешенное значение, которое всегда будет меньше максимума, что приведёт к проблемам с поиском максимума.
Хороший Soft-Max
soft-max
- Не сохраняет свойство soft-max
- Производная равна soft-arg-max
В этом случае сохраняется монотонность, значит, не возникнет проблем с поиском минимума и максимума.
Связь между вариациями Soft-Max
Обозначим "плохой" soft-max как bad-soft-max. Тогда:
- bad-soft-max soft-arg-max .
- soft-max soft-arg-max .
- soft-arg-max soft-max .
Примечания
- В большинстве статей пишется soft-max, хотя вместо этого подразумевается soft-arg-max.
- soft-arg-max можно называть также как обобщённая (многомерная) сигмоида.
- soft-arg-max является алгоритмом подсчёта весов для soft-max.