Из-за характера функции softmax и способа обучения сети вам необходим четвертый класс.
Давайте рассмотрим конкретный пример: вы обучаете свою сеть различать guish между яблоками, апельсинами и бананами. Тем не менее, вы каким-то образом получаете фотографию сливы.
Вы можете удивиться с первого взгляда, но вам нужен другой класс в вашем наборе данных. Нет гарантии, что использование порогового значения поможет вам исключить другой класс.
Вы можете ожидать следующие два случая:
- Вероятность выхода гарантированно будет равна 1 / N для неизвестного класса, учитывая, что вы тестируете в неизвестном классе N + 1 .
- Определенный порог, после которого (как вы и предполагали) <90%, это не класс. </li>
Допустим следующие случаи:
- Что если у вас есть случай, когда яблоко действительно выглядит как апельсин, и ваша модель правильно предсказывает 40% яблока, 30% апельсина, 30% банана, но поскольку вы применили свой порог, правильно идентифицированное яблоко (True Positive) исключается? Простой случай, когда вы исключаете хороший результат работы вашей сети
- У вас все еще может быть присвоение классу 91%, хотя новое прибытие 'fruit' не является частью вашего набора данных; это связано с внутренними вычислениями и тем, как работает softmax.
Личный опыт: однажды я обучил сеть различать guish между многими типами знаков трафика c , Из чистого любопытства я привел в пример один стул для гостиной. Я ожидал того же, что и вы (порог), но, к моему большому удивлению, это был 85% «Путь доходности».