diff --git a/labworks/LW1/README.md b/labworks/LW1/README.md new file mode 100644 index 0000000..6a2e915 --- /dev/null +++ b/labworks/LW1/README.md @@ -0,0 +1,53 @@ +# Лабораторная работа №1 + +# «Архитектура и обучение глубоких нейронных сетей» + +## Цель работы: + +Получить практические навыки создания, обучения и применения искусственных нейронных сетей на примере решения задачи распознавания рукописных цифр. Научиться загружать данные и проводить их предварительную обработку. Научиться оценивать качество работы обученной нейронной сети. Исследовать влияние архитектуры нейронной сети на качество решения задачи. + +## Подготовка к работе: + +Подготовить программную среду для выполнения лабораторной работы. Обеспечить возможность работы в среде Google Colaboratory. Ознакомиться с функционалом данной среды. + +## Задание: + +1. В среде Google Colab создать новый блокнот (notebook). Импортировать необходимые для работы библиотеки и модули. +2. Загрузить набор данных MNIST, содержащий размеченные изображения рукописных цифр. +3. Разбить набор данных на обучающие (train) и тестовые (test) данные в соотношении 60000:10000 элементов. При разбиении параметр random_state выбрать равным (4k – 1), где k – порядковый номер студента по журналу. Вывести размерности полученных обучающих и тестовых массивов данных. +4. Вывести первые 4 элемента обучающих данных (изображения и метки цифр). +5. Провести предобработку данных: привести обучающие и тестовые данные к формату, пригодному для обучения нейронной сети. Входные данные должны принимать значения от 0 до 1, метки цифр должны быть закодированы по принципу «one-hot encoding». Вывести размерности предобработанных обучающих и тестовых массивов данных. +6. Реализовать модель однослойной нейронной сети и обучить ее на обучающих данных с выделением части обучающих данных в качестве валидационных. Вывести информацию об архитектуре нейронной сети. Вывести график функции ошибки на обучающих и валидационных данных по эпохам. При реализации модели нейронной сети задать следующую архитектуру и параметры обучения: + + количество скрытых слоев: 0 + + функция активации выходного слоя: softmax + + функция ошибки: categorical_crossentropy + + алгоритм обучения: sgd + + метрика качества: accuracy + + количество эпох: 100 + + доля валидационных данных от обучающих: 0.1 + +7. Применить обученную модель к тестовым данным. Вывести значение функции ошибки и значение метрики качества классификации на тестовых данных. +8. Добавить в модель один скрытый и провести обучение и тестирование (повторить п. 6-7) при 100, 300, 500, 1000 нейронах в скрытом слое. По метрике качества классификации на тестовых данных выбрать наилучшее количество нейронов в скрытом слое. В качестве функции активации нейронов в скрытом слое использовать функцию sigmoid. +9. Добавить в наилучшую архитектуру, определенную в п. 8, второй скрытый слой и провести обучение и тестирование (повторить п. 6-7) при 50, 100, 300 нейронах во втором скрытом слое. В качестве функции активации нейронов в скрытом слое использовать функцию sigmoid. +10. Результаты исследования архитектуры нейронной сети занести в таблицу: + ++--------------------------+-----------------------+------------------------+------------------------+ +| Количество скрытых слоев | Количество нейронов | Количество нейронов | Значение метрики | +| | в первом скрытом слое | во втором скрытом слое | качества классификации | ++==========================+=======================+========================+========================+ +| 0 | - | - | | ++--------------------------+-----------------------+------------------------+------------------------+ +| | 100 | | | +| +-----------------------+------------------------+------------------------+ +| | 300 | | | +| 1 +-----------------------+------------------------+------------------------+ +| | 500 | | | +| +-----------------------+------------------------+------------------------+ +| | 1000 | | | ++--------------------------+-----------------------+------------------------+------------------------+ +| | | 50 | | +| | +------------------------+------------------------+ +| 2 | (наилучшее из п. 8) | 100 | | +| | +------------------------+------------------------+ +| | | 300 | | ++--------------------------+-----------------------+------------------------+------------------------+ \ No newline at end of file