Родитель
1d4effd216
Сommit
3d6f479cc7
@ -1 +0,0 @@
|
|||||||
README.md
|
|
@ -1,76 +0,0 @@
|
|||||||
# Лабораторная работа №1 <br> «Архитектура и обучение глубоких нейронных сетей»
|
|
||||||
|
|
||||||
## Цель работы:
|
|
||||||
|
|
||||||
Получить практические навыки создания, обучения и применения искусственных нейронных сетей на примере решения задачи распознавания рукописных цифр. Научиться загружать данные и проводить их предварительную обработку. Научиться оценивать качество работы обученной нейронной сети. Исследовать влияние архитектуры нейронной сети на качество решения задачи.
|
|
||||||
|
|
||||||
## Подготовка к работе:
|
|
||||||
|
|
||||||
Подготовить программную среду для выполнения лабораторной работы. Обеспечить возможность работы в среде 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. Результаты исследования архитектуры нейронной сети занести в таблицу:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Количество скрытых слоев</th>
|
|
||||||
<th>Количество нейронов в первом скрытом слое</th>
|
|
||||||
<th>Количество нейронов во втором скрытом слое</th>
|
|
||||||
<th>Значение метрики качества классификации</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>0</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td rowspan="3">1</td>
|
|
||||||
<td>100</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>300</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>500</td>
|
|
||||||
<td>-</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td rowspan="2">2</td>
|
|
||||||
<td>наилучшее из п.8</td>
|
|
||||||
<td>50</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>наилучшее из п.8</td>
|
|
||||||
<td>100</td>
|
|
||||||
<td></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
Загрузка…
Ссылка в новой задаче