форкнуто от main/is_dnn
				
			
							Родитель
							
								
									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> | ||||
					Загрузка…
					
					
				
		Ссылка в новой задаче
	
	 Sergey Kolpinskiy
						Sergey Kolpinskiy