В нашем примере мы поделили датасет на 2 части train и validation, но правильнее использовать деление на 3 части: train, validation, test.
Для чего нужно такое деление?
PS: если вопрос вам кажется непонятным, пересмотрите лекцию из второго урока
PPS: гиперпараметрами в ответах называется то, что не настраивается непосредсвенно градиентным спуском, а, напротив, выбирается человеком. Это архитектура нейронной сети, выбор loss-функции, метод градиентного спуска, learning rate, количество эпох в обучении и прочее.

  • Test нужен для финальной оценки качества работы сети
  • Train нужен для обучения
  • Validation нужна, чтобы подобрать гиперпараметры сети
  • Validation нужна, чтобы посмотреть качество работы сетки на данных, которых не было в обучении
  • В процессе экспериментов с сетью мы могли "подогнать" гиперпараметры под данные в validation. Значит, чтобы получить "честное" качество, нам нужен test
  • Если бы мы обучались на полном датасете и на нем же валидировались, то не заметили бы переобучения (когда сетка "запомнила" выборку)

К сожалению, у нас пока нет статистики ответов на данный вопрос, но мы работаем над этим.