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

#tensorflow #torch #cntk

#tensorflow #факел #cntk

Вопрос:

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

Комментарии:

1. Обучите его 3 классам вместо 2: «Лошадь», «Лев» и «Ничего из вышеперечисленного».

Ответ №1:

Вероятно, вы могли бы структурировать это двумя способами:

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

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

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

Комментарии:

1. Попробуйте ваше предложение: «добавьте любое количество изображений, на которых нет лошади или льва», я загружаю изображение без лошади и льва для тестирования, результат составил примерно 30% для лошади, 40% для Льва и 30% для других, я думаю, это было вызвано фоном изображениянапример, если изображение лошади / льва было сделано на фоне чего-либо, как только тестовое изображение (без лошади / льва) будет иметь аналогичный фон, после softmax будет высокий процент, любая мысль?

2. На скольких образцах лошади / льва / другого вы тренируетесь? имейте в виду, что такие конкурсы, как ImageNet, содержат много тысяч изображений и часто содержат 10, если не сотни слоев. для получения точных выходных данных потребуется много работы и данных для обучения (в отличие от mnist, который является действительно простым начальным примером)

3. В настоящее время у меня 15 в каждой категории с 3 слоями x (свертка, ReLU, Maxpool), тестовые данные с 5 в каждой категории показывают 3% ошибок, похоже, мне нужно намного больше, что бы вы предложили?

4. Я думаю, вы уже поняли это, но для других людей, которые могут просмотреть вопрос: 60 изображений так же хороши, как и вообще никаких изображений. Если вы, ребята, сталкиваетесь с подобной проблемой, попробуйте иметь хотя бы несколько сотен изображений. Например, в CIFAR-10 в каждом классе 6000 изображений. Модуль обработки изображений CNTK предоставляет инструменты для обрезки и изменения размера, поэтому достаточно просто найти в Google значительное количество львов, лошадей и других, чтобы продолжить.