Задачи работы
Выполнение работы предполагает решение следующих задач:
- Проектирование и разработка программной реализации метода обратного распространения ошибки.
- Тестирование разработанной программной реализации.
- Разработка примера использования метода обратного распространения ошибки для классификации рукописных цифр из набора данных MNIST.
Метод обратного распространения ошибки разрабатывается, исходя из следующих предположений:
- На входе сети имеется
w x h
нейронов, что соответствует разрешению одноканального изображения (разрешение — параметр; для изображений в базе MNIST составляет 28x28). - На выходе сети имеется
k
нейронов, что соответствует количеству классов изображений (количество выходных нейронов — параметр; для задачи классификации рукописных цифр – 10 классов). - Скрытый слой содержит
s
нейронов (параметр). - Скорость обучения (learning rate), размер пачки данных (batch size), количество эпох являются параметрами метода обучения (параметры).
- В качестве функции активации на скрытом слое используется функция ReLU.
- В качестве функции активации на выходном слое используется функция softmax.
- В качестве функции ошибки используется кросс-энтропия.
требования к результатам
- Разработана корректная программная реализация метода обратного распространения ошибки для рассматриваемой архитектуры нейронной сети и приложение для решения задачи классификации рукописных цифр на примере базы MNIST на языке Python 3 (в Jupiter Notebook). В результате сформирован скрипт в формате
.ipynb
и преобразованный Jupiter Notebook в формат .html
с выдачей промежуточных результатов на контрольном наборе параметров (приведен ниже).
- Требования к структуре и содержимому Jupiter Notebook:
- Проведена проверка корректности загрузки данных (совпадение размерностей, визуальное отображение выборочных данных).
- По окончании каждой эпохи в процессе обучения модели выводится ошибка классификации на тренировочном наборе данных.
- По окончании эпохи в процессе обучения выводится время эпохи.
- После обучения выводится ошибка классификации на тестовом наборе данных.
- Для контрольных значений параметров достигнута точность классификации на тестовых данных, сравнимая с точностью, которую выдают стандартные инструменты глубокого обучения (например, библиотеки MXNet или PyTorch). Подсказка: Точность будет ~95% без правильной инициализации весов, ожидается результат лучше.
Контрольный набор параметров:
- Размер пачки может меняться от 8 до 64 изображений (в зависимости от доступного объема памяти).
- Скорость обучения - 0.1.
- Количество скрытых нейронов – 300.
- Количество эпох – 20.