Я играю с Neural Networks, пытаясь понять лучшие методы проектирования своей архитектуры, основанные на той проблеме, которую вам нужно решить.
Я создал очень простой набор данных, состоящий из одной выпуклой области, как вы можете видеть ниже:
Все работает отлично, когда я использую архитектуру с L = 1 или L = 2 скрытых слоев (плюс выходной слой), но как только я добавляю третий скрытый слой (L = 3), моя производительность падает до слегка лучше шансов.
Я знаю, что чем больше сложностей, которые вы добавляете в сеть (количество весов и параметров для изучения), тем больше вы склонны к перенасыщению ваших данных, но я считаю, что это не характер моей проблемы по двум причинам:
- моя производительность в наборе обучения также составляет около 60% (тогда как переустановка обычно означает, что у вас очень низкая ошибка обучения и высокая ошибка теста),
- и у меня очень много примеров данных (не смотрите на фигуру, что только игрушечная фигура, которую я uplaoded).
Может кто-нибудь помочь мне понять, почему добавление лишнего скрытого слоя дает мне это падение в исполнении по такой простой задаче?
Вот изображение моего исполнения в зависимости от количества используемых слоев:
ДОБАВЛЕННАЯ ЧАСТЬ ИЗ КОММЕНТАРИЙ:
- Я использую сигмоидные функции, принимающие значения от 0 до 1,
L(s) = 1 / 1 + exp(-s)
- Я использую раннюю остановку (после 40000 итераций backprop) как критерий, чтобы остановить обучение. Я знаю, что это не лучший способ остановиться, но я подумал, что это будет нормально для такой простой задачи классификации, если вы считаете, что это основная причина, по которой я не сходился. Я бы мог применить некоторые более качественные критерии.