Файл: Министерство цифрового развития, связи и массовых коммуникаций российской федерации федеральное государственное бюджетное образовательное учреждение высшего образования.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 11.01.2024

Просмотров: 77

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»(СПбГУТ)Факультет Информационных Систем и ТехнологийКафедра Интеллектуальных Систем Автоматизации и Управления

Направление подготовки:

15.03.04 - Автоматизация технологических процессов и производств

Направленность (профиль):

Программно-алгоритмическое обеспечение автоматизированных систем
ЛАБОРАТОРНАЯ РАБОТА № 1по дисциплине:

Нейросетевые технологии
на тему:

«Задание № 1: Аппроксимация функций»

Вариант № 5







Выполнил(и) студент(ы) группы

ИСТ-142







Андреев Г.А., Борисов Н.В, Кардаков Ф.Д.







Фамилия И. О.







Руководитель

доцент

оценка







уч. степень, уч. звание







Бондаренко И. Б.

дата, подпись




Фамилия И. О.

Цель работы: Смоделировать заданную функцию на отрезке [0, 8] с использованием библиотеки neuralnet. Отчет должен содержать подготовку данных для обучения сети. Обоснование выбранной архитектуры. Структурную схему обученной сети с указанием весов. Графики моделируемой и смоделированной функций.Рис. 1 Таблица 1.Листинг программы на языке Python:from keras.models import Sequentialfrom keras.layers import Denseimport numpy as npimport matplotlib.pyplot as pltfrom ann_visualizer.visualize import ann_viz;# задаем исходную функциюdef f(x):    return np.sin(x) / (np.cos(2*x)+2)# генерируем обучающие данныеX_train = np.linspace(0, 8, 1000)y_train = f(X_train)# создаем модельmodel = Sequential()model.add(Dense(64, input_shape=(1,), activation='gelu'))model.add(Dense(64, activation='gelu'))model.add(Dense(64, activation='gelu'))model.add(Dense(1, activation='linear'))# компилируем модельmodel.compile(loss='mean_squared_error', optimizer='adam')# обучаем модельhistory = model.fit(X_train, y_train, epochs=1000, batch_size=32, verbose=0)# генерируем тестовые данныеX_test = np.linspace(0, 8, 100)y_test = f(X_test)ann_viz(model, title="Neural Network")y_pred = model.predict(X_test)plt.plot(X_test, y_test, label='original function')plt.plot(X_test, y_pred, label='approximation')plt.legend()plt.show()Полученные выходные данные:Топология сети:1, 64,64,64, 1Рис. 2 Топология нейросети.Вывод: В ходе выполнения лабораторной работы и исследования данной нейросети, было выявлено, что данная нейросеть довольно точно аппроксимирует заданную функцию. В реализации модели использовалась структура из 1 входного нейрона, 64 нейрона в трех скрытых слоях и 1 нейрона выходного слоя. Функция активации: GELu, алгоритм оптимизации: Adam. Используемые библиотеки для реализации задачи: Keras, TensorFlow, TensorBoard. Задача была выполнена успешно.

Санкт-Петербург
2023