Soft-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>, тогда: | ||
Строка 31: | Строка 31: | ||
===Свойства soft-arg-max=== | ===Свойства soft-arg-max=== | ||
− | *Вычисляет по вектору чисел вектор с распределением вероятностей | + | *Вычисляет по вектору чисел вектор с распределением вероятностей |
− | *Можно интерпретировать как вероятность нахождения максимума в <tex>i</tex>-й координате | + | *Можно интерпретировать как вероятность нахождения максимума в <tex>i</tex>-й координате |
− | *'''soft-arg-max'''<tex>\left ( x - c,y-c,z-c\right )=</tex> '''soft-arg-max'''<tex>\left ( x,y,z\right )</tex> | + | *'''soft-arg-max'''<tex>\left ( x - c,y-c,z-c\right )=</tex> '''soft-arg-max'''<tex>\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=== | ||
Строка 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:14, 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