2016-02-18 8 views
0

Я как бы новичок в этой теме и создаю сверточную нейронную сеть, основанную на тензорном потоке Google. Я хотел классифицировать набор тестовых данных, относящихся к 10 категориям. Моя установка CNN выровнена с учебником tenorflow с некоторыми исправлениями, чтобы соответствовать размеру моих изображений. Я многократно выполнял шаг обучения в течение 20 раз над случайным образцом из 500 изображений, а затем повторил этот шаг 50 раз на разных образцах размером 500. Я использовал образец 200 в качестве набора данных проверки (сохранял это фиксированным для всех прогонов) , В результате я получил точность около 35%, что не так уж плохо в моих глазах, так как я не делал никаких оптимизаций, и изображения довольно сложно отнести к одной категории evan для людей.Интерпретация нейронной сети (CNN) Результат/Точность

Так вот мои вопросы:

  • ли это на самом деле имеет смысла запускать шаг в течение 20 раз по сравнению с той же самой партии? (Я сделал это потому, что это о том, что подходит в ОЗУ, и загрузка новой партии заняла довольно долгое время - так что я мог бы получить больше прогонов за меньшее время)
  • В диаграмме точности обучения (см. Ниже) есть скачок в какой-то момент вокруг шага 120-130. Оттуда точность повышается почти на 100% для каждого 20-раунда одной и той же случайной партии. Что означает этот прыжок в терминах сетевой структуры/обучения?

Test and Training Accuracy Diagram

ответ

0

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

+0

Спасибо за ваш ответ, и ваши баллы действительно имеют смысл для меня. Тем не менее мне показалось, что моя настройка (повторение 20) имеет смысл, и сеть улучшается, как ожидалось, до этапа 130 без переобучения. Я что-то неправильно истолковываю? И что случилось с сетью на шаге 130, так что это изменило поведение так резко? – Lucas

Смежные вопросы