Сумма вероятностей классификатора больше и/или меньше 1
От: XOOIOOX  
Дата: 03.02.19 21:55
Оценка:
Возможно ли?

Скажем, есть нейронка, некий классификатор. Можно ли добиться, чтобы сумма вероятностей выходов была отлична от 1? Допустим, не распознала, не похоже ни на один из образцов и, грубо говоря, по всем классам в районе 0. Или наоборот – похоже на все образцы и, соответственно, близко к 1 по всем классам. Или несколько классов близко к 1. Эдакая сомневающаяся нейронка.

Дополнительный вопрос: возможна ли такая конфигурация в вышеприведенных рамках, чтобы выходной класс был единственный?


Просьба не пинать сильно, если невнятно изложил.
Re: Сумма вероятностей классификатора больше и/или меньше 1
От: Erop Россия  
Дата: 04.02.19 22:16
Оценка:
Здравствуйте, XOOIOOX, Вы писали:

XOO>Дополнительный вопрос: возможна ли такая конфигурация в вышеприведенных рамках, чтобы выходной класс был единственный?


Весь вопрос в нормировке. Обычно в конце классификатора ставят softmax, который гарантирует сумму в 1...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[2]: Сумма вероятностей классификатора больше и/или меньше 1
От: XOOIOOX  
Дата: 04.02.19 22:30
Оценка:
Здравствуйте, Erop, Вы писали:

E>Обычно в конце классификатора ставят softmax, который гарантирует сумму в 1...


Что ставить вместо него, чтобы удовлетворяло условиям задачи?

Каждый отдельный класс, конечно, не должен быть больше 1.
Re[3]: Сумма вероятностей классификатора больше и/или меньше 1
От: Erop Россия  
Дата: 04.02.19 23:13
Оценка:
Здравствуйте, XOOIOOX, Вы писали:

XOO>Каждый отдельный класс, конечно, не должен быть больше 1.


Ну сигмориду поставь, например.
Ещё вопрос с каким лосом тогда учить. Некоторые лосы в некоторых фрейморках содержат встроенный SoftMax или рассчитывают на него...


Но MSE по выходу из сигмоид должно работать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: Сумма вероятностей классификатора больше и/или меньше 1
От: XOOIOOX  
Дата: 04.02.19 23:39
Оценка:
Здравствуйте, Erop, Вы писали:

E>Ну сигмориду поставь, например.


Спасибо. Попробую.

E>Ещё вопрос с каким лосом тогда учить.


В данный момент BinaryCrossEntropy.

E>Некоторые лосы в некоторых фрейморках содержат встроенный SoftMax или рассчитывают на него...


CNTK. Там вполне гибко, можно всякого накрутить.
Re[4]: Сумма вероятностей классификатора больше и/или меньше 1
От: XOOIOOX  
Дата: 05.02.19 19:08
Оценка:
Здравствуйте, Erop, Вы писали:

E>Ну сигмориду поставь, например.


Не, не получается.

LSTM, три класса.
Например, известный класс (1):

0.954 0.051 0.030    Sum: 1.036
0.963 0.036 0.024    Sum: 1.023
0.970 0.027 0.019    Sum: 1.016
0.975 0.020 0.016    Sum: 1.012
0.978 0.016 0.014    Sum: 1.009
0.980 0.014 0.013    Sum: 1.007
0.981 0.012 0.012    Sum: 1.005
0.982 0.010 0.011    Sum: 1.004
0.983 0.009 0.011    Sum: 1.003
0.984 0.007 0.011    Sum: 1.002
0.986 0.006 0.010    Sum: 1.002
0.987 0.005 0.010    Sum: 1.002
0.988 0.004 0.009    Sum: 1.002
0.989 0.004 0.009    Sum: 1.002
0.990 0.004 0.008    Sum: 1.002
0.990 0.003 0.008    Sum: 1.001
0.990 0.003 0.007    Sum: 1.001


А это неизвестный класс:

0.193 0.065 0.792    Sum: 1.050
0.168 0.041 0.824    Sum: 1.033
0.146 0.028 0.848    Sum: 1.021
0.125 0.021 0.863    Sum: 1.009
0.108 0.017 0.872    Sum: 0.998
0.096 0.015 0.877    Sum: 0.989
0.087 0.014 0.879    Sum: 0.981
0.082 0.014 0.880    Sum: 0.975
0.079 0.014 0.878    Sum: 0.971
0.080 0.014 0.874    Sum: 0.968
0.085 0.014 0.867    Sum: 0.966
0.092 0.015 0.856    Sum: 0.963
0.105 0.016 0.839    Sum: 0.960
0.124 0.019 0.815    Sum: 0.957
0.152 0.022 0.783    Sum: 0.957
0.191 0.027 0.743    Sum: 0.961
0.237 0.035 0.698    Sum: 0.970
0.288 0.046 0.647    Sum: 0.981
0.338 0.061 0.591    Sum: 0.990


Считает, что (3).

Сумма, так или иначе, крутится вокруг единицы.
Re[5]: Сумма вероятностей классификатора больше и/или меньше 1
От: Erop Россия  
Дата: 06.02.19 18:54
Оценка:
Здравствуйте, XOOIOOX, Вы писали:

XOO>В данный момент BinaryCrossEntropy.


Эта функция потерь обычно либо ждёт нормировку на сумма входов равно 1, либо тупо имеет свой собственный SoftMax на входе
Лучше другой лосс взять, а то учиться может медленно
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[5]: Сумма вероятностей классификатора больше и/или меньше 1
От: Erop Россия  
Дата: 06.02.19 19:34
Оценка:
Здравствуйте, XOOIOOX, Вы писали:

XOO>Считает, что (3).


XOO>Сумма, так или иначе, крутится вокруг единицы.


Ну ты же учишь для похожих на (3) что ответы 0, 0, 1?

А зачем ты хочешь уйти от нормировки? Зачем тебе сумма неравная 1?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: Сумма вероятностей классификатора больше и/или меньше 1
От: XOOIOOX  
Дата: 06.02.19 20:20
Оценка:
Здравствуйте, Erop, Вы писали:

E>Эта функция потерь обычно либо ждёт нормировку на сумма входов равно 1, либо тупо имеет свой собственный SoftMax на входе


У нее точно софтмакса нет. С софтмаксом там другие.

Впрочем, с 8-ю, например, классами уже ближе к нужному результату. Но это не надежное решение, т.к. классов может сколько угодно и вариативности результата от количества классов быть не должно.

E>Лучше другой лосс взять, а то учиться может медленно


Учится вроде приемлемо по скорости. Сводится ОК, классифицирует известное тоже хорошо.

E>Ну ты же учишь для похожих на (3) что ответы 0, 0, 1?


Да, как обычно.

E>А зачем ты хочешь уйти от нормировки? Зачем тебе сумма неравная 1?


Есть такая задача, как Unknown Class Detection. Как выяснил, это целая Научная Проблема.
Подумал, что можно это объехать непохожестью в ответах вероятностей классов. Но, видимо, не получится.

Засада в том, что когда класс неизвестен заранее, то нечем учить непохожести. Нет образцов, что очевидно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.