2

Я пытаюсь построить бинарный классификатор с нейронной сетью на некоторых изображениях с использованием лазанья. Уроки обучения и валидации колеблются дико (и не согласуются), и точность проверки всегда равна 0%. Кроме того, сеть всегда прогнозирует цель как 1 для тестового набора.нейронная сеть с точностью лазаньи

Сеть Я использую в основном только копия примера лазанью в для mnist набора данных нашли here, но адаптированный для моих изображений, которые совсем немного больше (509 x 115) с около 400 изображений в обучающем наборе. Мне интересно, если это проблема, и может ли сеть быть более глубокой/иметь больше нейронов?

Нужен ли мне более крупный набор для этого размера изображения? Или я должен видеть некоторые, хотя и неточные, предсказания для моего тестового набора?

+0

Нам нужно гораздо больше данных, чтобы иметь возможность ответить на это: какова ваша задача, какие у вас есть метки, сколько из них, ваш полный код. В его нынешнем виде это слишком широкое, непонятное и не относящееся к теме. – IVlad

+0

Если ваша сеть всегда предсказывает один и тот же класс, и вы получаете точность 0% от набора валидаций, похоже, что ваш набор проверки содержит только примеры одного класса, что было бы плохим выбором. (Может быть, ваш учебный набор также содержит только один класс?) Для задания бинарной классификации вы должны получить не менее 50% точности в наборе валидации. – aleju

+0

Привет, пользователь3760780, спасибо за помощь. это действительно проблема, мой набор проверки был тем же классом. Я сейчас разобрал это, и тренировочные/вали/тестовые наборы все рандомизированы. однако моя сеть все еще прогнозирует все как 1 и с постоянной 82% -ной точностью (я полагаю, 82% данных должны быть класса 1). Как вы думаете, должно быть больше данных класса 0? наверняка сеть должна прогнозировать хотя бы некоторый класс «0» даже при этой настройке? заранее спасибо. – mjacuse

ответ

4

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

Следующие приемы могут быть также полезны для вас:

  • проверить ли ваши изображения вычитаются некоторое среднее значение. Если ваши входные значения являются необработанными пикселями между [0,255], это будет слишком большим.

  • попробуйте различные курсы обучения. Если ваш результат колеблется, возможно, ваш уровень обучения слишком высок.

  • использование данные дополнение. Вы можете переворачивать изображения или перемещать их вверх/вниз/влево/вправо на несколько пикселей. Затем вы можете получить больше примеров обучения.

  • посмотреть на набор обучения. Смотрите, где ваша модель делает ошибки. Если ваша ошибка обучения плоха, должно быть что-то не так.

+0

Привет, спасибо за ответ. Я собираюсь изменить размеры изображений на более мелкие и более мелкие. Изображения имеют нулевое значение и нормализуются между [0 1]. Я менее обеспокоен ошибкой обучения и больше обеспокоен тем, что точность проверки всегда равна нулю и что классификатор прогнозирует один и тот же класс для всех тестовых входов. Является ли это распространенным явлением при обучении мелкой сети на больших изображениях? – mjacuse

+0

@mjacuse Я понимаю, что ошибка обучения не связана с ур. Но в этом случае ошибка обучения может предоставить полезную информацию для отладки. Если все прогнозы обучения ура одного класса, это говорит о том, что ваша проблема существует в оптимизации - попадание в плохой локальный минимум. Если ошибка обучения низкая, но ошибка проверки высока, это говорит о том, что ваша оптимизация хороша, но модель страдает от переобучения или существует несогласованность маркировки. – llcao

+0

hi llcao, спасибо за вашу помощь. С тех пор я изменил размеры изображений на гораздо меньшие. Я также определил согласованность маркировки, которую я исправил, однако сеть все еще предсказывает все как класс 1. Не могли бы вы предложить, как я мог бы избежать попадания в плохой локальный минимум, если это проблема? – mjacuse