Файл: Министерство цифрового развития, связи и массовых коммуникаций российской федерации федеральное государственное бюджетное образовательное учреждение высшего образования.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 11.01.2024
Просмотров: 76
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»(СПбГУТ)Факультет Информационных Систем и ТехнологийКафедра Интеллектуальных Систем Автоматизации и Управления| Направление подготовки: | 15.03.04 - Автоматизация технологических процессов и производств |
| Направленность (профиль): | Программно-алгоритмическое обеспечение автоматизированных систем |
| Нейросетевые технологии |
| «Задание № 1: Аппроксимация функций» |
| | | Выполнил(и) студент(ы) группы | ИСТ-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