Я написал CNN типа L eNet с нуля, чтобы изучить все концепции и способы их реализации. Сейчас я пытаюсь заставить его изучать MNIST с помощью градиентного спуска Stochasti c (один пример за раз), но обучение, кажется, колеблется вокруг среднего значения для одного класса (2.30-2.35). Очевидно, что отладка необходима. Проблема в том, что net самодельного производства, и я не могу быть уверен, что фон правильный, поэтому радиус потенциальных ошибок очень велик. Я удостоверился, что у меня есть следующее:
- Нормализация изображения
- Инициализация Ксавье
- Фиксированное случайное начальное число
- Введен график снижения скорости обучения
- Я протестировал net на одном примере в соответствии с этим контрольным списком отладки. Он переоснащен за пару десятков итераций. Я попытался использовать больше примеров (3 примера), и это заняло гораздо больше времени. Ниже приведена визуализация потерь для 3 примеров (может быть, это будет полезно).
Я понимаю, что, не видя реального кода, трудно сказать что-либо конкретное c, поэтому я постараюсь сформулировать свой вопрос следующим образом. Я хотел бы выделить некоторые потенциальные проблемы с ошибками. Например, может ли быть возможность надеть, что фон CNN правильный? Или нет гарантии? Если бы я знал, что мое распространение градиента правильно, я бы сделал отладку более направленной.
Я был бы рад услышать любое предложение, основанное на вашем интуитивном понимании и опыте. Спасибо.