Soft-Max и Soft-Arg-Max — различия между версиями
Строка 1: | Строка 1: | ||
− | + | Пусть есть задача мягкой классификации: | |
− | + | Алгоритм <tex>a</tex> выдает значения <tex>L_{1}, L_{2},\ldots, L_{n}</tex>, где <tex>n</tex> {{---}} число классов. | |
− | Пусть есть задача мягкой классификации: Алгоритм выдает значения | + | <tex>L_{i}</tex> {{---}} уверенность алгоритма в том, что объект принадлежит классу <tex>i</tex>, <tex>L_{i} \in \left [ -\infty, +\infty\right ]</tex> |
+ | |||
Нужно для этих значений найти такие p1,...pn, что pi из [0, 1], а сумма pi = 1, то есть p1..pn - распределение вероятностей. | Нужно для этих значений найти такие p1,...pn, что pi из [0, 1], а сумма pi = 1, то есть p1..pn - распределение вероятностей. | ||
Для этого возьмём экспоненту от L1..Ln; Получим числа от [0;+oo] и нормируем их: | Для этого возьмём экспоненту от L1..Ln; Получим числа от [0;+oo] и нормируем их: | ||
Строка 8: | Строка 9: | ||
Есть модель a, возвращающая Li. Необходимо сделать так, чтобы a возвращала pi, при этом оставаясь дифференциируемой. | Есть модель a, возвращающая Li. Необходимо сделать так, чтобы a возвращала pi, при этом оставаясь дифференциируемой. | ||
+ | ==Soft-Arg-Max== | ||
<tex>y = </tex> '''soft-arg-max'''<tex>\left ( x \right )</tex>, где <tex>y_{i} = \frac{\exp\left ( x_{i} \right )}{\sum_{j}\exp\left ( x_{i} \right )}</tex> | <tex>y = </tex> '''soft-arg-max'''<tex>\left ( x \right )</tex>, где <tex>y_{i} = \frac{\exp\left ( x_{i} \right )}{\sum_{j}\exp\left ( x_{i} \right )}</tex> | ||
<tex>\frac{\partial y_{i}}{\partial x_{j}} = \begin{cases} | <tex>\frac{\partial y_{i}}{\partial x_{j}} = \begin{cases} |
Версия 17:35, 1 июля 2022
Пусть есть задача мягкой классификации: Алгоритм
выдает значения , где — число классов. — уверенность алгоритма в том, что объект принадлежит классу ,Нужно для этих значений найти такие p1,...pn, что pi из [0, 1], а сумма pi = 1, то есть p1..pn - распределение вероятностей. Для этого возьмём экспоненту от L1..Ln; Получим числа от [0;+oo] и нормируем их: pi = exp(Li)/Sum(exp(Li)) Выполняется следующее: Li <= Lj => Pi <= Pj
Есть модель a, возвращающая Li. Необходимо сделать так, чтобы a возвращала pi, при этом оставаясь дифференциируемой.
Содержание
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