Что делать если нейронная сеть не учится?

Если вам выдает ошибку, то попробуйте ее "загуглить".

Если не падает функция потерь (англ. loss) вообще или не падает после 2-3 эпохи (рус. epoch), то попробуйте следующий рецепт:

  1. Убедиться что архитерктура нейронной сети соответствует задаче. Например, для задачи классификации функция активация на выходном слое - softmax, и используется функция потерь (англ. loss) - categorical cross-entropy или sparse categorical cross-entropy.

  2. Убедитесь что обучающая выборка для входа и выхода сети корректно нормирована (обычно от 0 до 1). Визуализируйте один элемент обучающей выборки с помощью matplotlib, выведите минимум и максимум от этого элемента, убедитесь что вывод соответствует вашим ожиданиям о строении данных.

  3. Попробуйте выставить batch-size в 2, 30, 1000, а коэффицент обучения (learning rate) в значения 0.01, 0.00001, 0.0000001. Тоесть попробуйте 9 вариантов, которые должны хорошо подходить под основные примеры на нейронные сети.

  4. Если ничего не помогает, обратитесь к старшему товарищу;)

Last updated