Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
Sergey Kolpinskiy e66663256f
edit table
2 лет назад
..
IS_Lab01_2023.pdf changed personal task to a task for teams 2 лет назад
IS_Lab01_Metod_2023.pdf before 1st LW 2023 2 лет назад
README.md edit table 2 лет назад

README.md

Лабораторная работа №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 - -
1 100
300
500
2 наилучшее из п.8 50
наилучшее из п.8 100