Нейронная сеть Подгонка собак и кошек - PullRequest
0 голосов
/ 29 июня 2018

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 29 июня 2018

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

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

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

...