Нейронная сеть Подгонка с собаками и кошками

Не обязательно вдаваясь в его код, но сосредоточившись больше на принципах, у меня возникает вопрос о том, что, как я полагаю, будет недостаточно.

Если я тренирую сеть, которая распознает истину или ложь относительно того, является ли изображение собаки, и у меня есть, возможно, 40 000 изображений, где все изображения собаки помечены как 1, а все другие изображения помечены как 0 - что я могу сделать чтобы обеспечить точность, чтобы, если только 5000 таких изображений были собаками, сеть не действовала "лениво" после обучения, а также помечать собак как ближе к 0, чем 1?

Например, основная цель этого вопроса состоит в том, чтобы иметь возможность с высокой точностью распознавать изображение действительно собаки, не слишком заботясь о других изображениях, за исключением того факта, что они не являются собаками. Кроме того, я хотел бы иметь возможность сохранить вероятность того, что предположение верно, потому что это очень важно для моих целей.

Мне удалось придумать только две вещи:

  1. Иметь больше узлов в сети, или
  2. Пусть половина изображений будет с собаками (поэтому используйте 10000 изображений, из которых 5000 - собаки).

Но я думаю, что этот 2-й вариант может дать собакам непропорционально большие шансы быть выводом данных тестирования, что разрушит точность и всю цель этой сети.

Я уверен, что к этому уже обращались, поэтому даже точка в правильном направлении будет высоко оценена!

1 ответ

Решение

Таким образом, у вас есть задача двоичной классификации, в которой оба класса появляются с различной частотой в вашем наборе данных. Около 1/8 "собака" и 7/8 "нет собаки".

  1. Чтобы избежать предвзятого обучения одному или другому классу, важно, чтобы вы стратифицировали данные обучения, валидации и тестирования, чтобы эти доли сохранялись в каждом подмножестве.

  2. Вы говорите, что хотите "сохранить вероятность", что догадка верна - я предполагаю, что вы имеете в виду, что хотите оценить "собачью" вероятность в качестве выходной переменной. Это простой выходной слой softmax с двумя выходами: 1-й - "собака", 2-й - "не собака". Это типичный способ решения проблем классификации, независимо от количества классов, которые необходимо различать.

Другие вопросы по тегам