Классификация распознавания изображений в сверточной нейронной сети

Я использую нейронную сеть свертки для обучения моей модели с двумя классами Лошади и Льва, я хочу, чтобы оценка модели возвращала «ничего из вышеперечисленного», если я использую изображение собаки, есть идеи, как мне обучить мою модель для этого?


person Eddy Ma    schedule 04.10.2016    source источник
comment
Тренируйте его с 3 классами вместо 2: Лошадь, Лев и Ни один из вышеперечисленных.   -  person user2682877    schedule 04.10.2016


Ответы (1)


Есть два способа структурировать это:

  1. Создайте третью метку «Другое» и продолжайте использовать в своей сверточной сети нормализацию softmax для вывода вероятностей, таких как p (Лошадь), p (Лев) и и p (Другое) в сумме с 1,0. Затем просто добавьте любое количество изображений, на которых нет Лошади или Льва, и пометьте их как Другое.

  2. Перестройте свою систему как обнаружение, а не классификацию, т. е. она смотрит на любое данное изображение и «обнаруживает», есть ли на нем Лошадь или Лев, с возможностью того, что нет ни того, ни другого, ни обоих. В этой системе вы не будете использовать ограничение softmax, согласно которому p(Horse) + p(Lion) = 1.0, вы просто будете обучать обнаружение каждого класса независимо. Затем включите тренировочные данные ни с лошадьми, ни со львами и убедитесь, что они помечены как Horse=0 и Lion=0.

Надеюсь, это поможет!

person Dwight Crow    schedule 04.10.2016
comment
Попробуйте ваше предложение, добавьте любое количество изображений, на которых нет лошади или льва, я загружаю изображение без лошади и льва для проверки, результат был примерно 30% для лошади, 40% для льва и 30% для другого, я думаю это было вызвано фоном изображения, например. если изображение лошади/льва было сделано на фоне чего-либо, как только тестовое изображение (без лошади/льва) будет иметь аналогичный фон, оно будет иметь высокий процент после softmax, что вы думаете? - person Eddy Ma; 05.10.2016
comment
На скольких образцах лошади/льва/другого вы тренируетесь? имейте в виду, что такие соревнования, как imageNet, содержат многие тысячи изображений и часто сети с десятками, если не сотнями слоев. получение точного вывода потребует много работы и обучающих данных (в отличие от mnist, который является действительно простым начальным примером) - person Dwight Crow; 05.10.2016
comment
В настоящее время у меня есть 15 в каждой категории с 3 слоями (свертка, ReLu, Maxpool), тестовые данные с 5 в каждой категории показывают 3% частоты ошибок, похоже, мне нужно намного больше, что бы вы предложили? - person Eddy Ma; 05.10.2016
comment
Я думаю, вы уже поняли это, но для других людей, которые могут просмотреть вопрос: 60 изображений так же хороши, как и отсутствие изображений. Если вы, ребята, столкнулись с подобной проблемой, попробуйте иметь хотя бы несколько сотен изображений. Например, в CIFAR-10 в каждом классе по 6000 изображений. Модуль обработки изображений CNTK предоставляет инструменты для обрезки и изменения размера, поэтому для продолжения достаточно просто погуглить значительное количество львов, лошадей и других животных. - person Kolya Ivankov; 05.12.2016