Нейронные сети и искусственный интеллект: Основы нейронных сетей на языке Python
Покупка
Новинка
Тематика:
Кибернетика
Издательство:
ЛГПУ имени П. П. Семёнова-Тян-Шанского
Год издания: 2023
Кол-во страниц: 79
Возрастное ограничение: 16+
Дополнительно
Вид издания:
Учебно-методическая литература
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-907792-40-1
Артикул: 845868.01.99
Учебно-методическое пособие «Нейронные сети и искусственный интеллект: основы нейронных сетей на языке Python» входит в состав УМК подготовки бакалавров по направлениям, связанным с IT, такими как: «Прикладная математика и информатика», «Информационные системы и технологии», «Информационная безопасность», «Профессиональное обучение», «Информатика и вычислительная техника», «Педагогическое образование (с двумя профилями подготовки)», «Педагогическое образование (с одним профилем подготовки)». Задачей пособия является формирование базовых знаний и навыков в области искусственных нейронных сетей, их архитектуры и применения в различных задачах машинного обучения. Методичка включает в себя как теоретический материал, так и практические задания в виде лабораторных работ. Рекомендовано также слушателям программ дополнительного профессионального образования соответствующего направления подготовки.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
А.С. Терлецкий, Е.С. Терлецкая НЕЙРОННЫЕ СЕТИ И ИСКУСТВЕННЫЙ ИНТЕЛЛЕКТ Основы нейронных сетей на языке Python УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ Липецк 2023
Министерство просвещения Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования «Липецкий государственный педагогический университет имени П.П. Семенова-Тян-Шанского» А.С. Терлецкий, Е.С. Терлецкая НЕЙРОННЫЕ СЕТИ И ИСКУСТВЕННЫЙ ИНТЕЛЛЕКТ Основы нейронных сетей на языке Python Учебно-методическое пособие Липецк 2023
УДК 004.8:004.032.6 Рекомендовано к печати кафедрой информатики, информационных технологий и защиты ББК 32.813 информации ФГБОУ ВО «Липецкий государственный педагогический университет Т 351 имени П.П. Семенова-Тян-Шанского». Протокол № 2 от 21.09.2023 г. Терлецкий, А.С. Нейронные сети и искусственный интеллект: Основы нейронных сетей на языке Python: учебно-методическое пособие / А.С. Терлецкий, Е.С. Терлецкая. – Липецк: ЛГПУ имени П.П. Семенова-Тян-Шанского, 2023. – 76 с. ISBN 978-5-907792-40-1 Учебно-методическое пособие «Нейронные сети и искусственный интеллект: основы нейронных сетей на языке Python» входит в состав УМК подготовки бакалавров по направлениям, связанным с IT, такими как: «Прикладная математика и информатика», «Информационные системы и технологии», «Информационная безопасность», «Профессиональное обучение», «Информатика и вычислительная техника», «Педагогическое образование (с двумя профилями подготовки)», «Педагогическое образование (с одним профилем подготовки)». Задачей пособия является формирование базовых знаний и навыков в области искусственных нейронных сетей, их архитектуры и применения в различных задачах машинного обучения. Методичка включает в себя как теоретический материал, так и практические задания в виде лабораторных работ. Рекомендовано также слушателям программ дополнительного профессионального образования соответствующего направления подготовки. УДК 004.8:004.032.6 ББК 32.813 Т 351 Рецензенты: В.С. Зияутдинов, кандидат пед. наук, доцент кафедры естественных и технических наук, Липецкий казачий институт технологий и управления (филиал) ФГБОУ ВО «Московский государственный университет технологий и управления имени К.Г. Разумовского (Первый казачий университет)» Д.М. Скуднев, кандидат тех. наук, заведующий кафедрой «Информатика, информационные технологии и защита информации» Липецкого государственного педагогического университета имени П.П. Семенова-Тян-Шанского ISBN 978-5-907792-40-1 © ФГБОУ ВО "Липецкий государственный педагогический университет имени П.П. Семенова-Тян-Шанского", 2023 © Терлецкий А.С., Терлецкая Е.С., 2023
ОГЛАВЛЕНИЕ ВВЕДЕНИЕ 4 ОСНОВЫ НЕЙРОННЫХ СЕТЕЙ 6 ОРГАНИЗАЦИЯ НЕЙРОНОВ В СЕТЬ 16 АРХИТЕКТУРА НЕЙРОННЫХ СЕТЕЙ 20 ПРОЦЕСС ОБУЧЕНИЯ НЕЙРОННЫХ СЕТЕЙ 24 ФУНКЦИЯ ПОТЕРЬ: КАК ИЗМЕРИТЬ ОШИБКУ СЕТИ? 26 АЛГОРИТМ ОБРАТНОГО РАСПРОСТРАНЕНИЯ ОШИБКИ 28 30 33 35 44 51 57 67 (BACKPROPAGATION) ПРОСТЫЕ ПРИМЕРЫ ПРИМЕНЕНИЯ ЗАКЛЮЧЕНИЕ Лабораторная работа №1 МНОГОСЛОЙНЫЙ ПЕРЦЕПТРОН ДЛЯ КЛАССИФИКАЦИИ РУКОПИСНЫХ ЦИФР Лабораторная работа №2 ПРИМЕНЕНИЕ СВЕРТОЧНЫХ НЕЙРОННЫХ СЕТЕЙ (CNN) ДЛЯ КЛАССИФИКАЦИИ ИЗОБРАЖЕНИЙ ИЗ НАБОРА ДАННЫХ CIFAR-10 Лабораторная работа №3 ГЕНЕРАЦИЯ ТЕКСТА С ИСПОЛЬЗОВАНИЕМ LSTM Лабораторная работа №4 GAN ДЛЯ ГЕНЕРАЦИИ ИЗОБРАЖЕНИЙ Список рекомендуемых источников Приложение 69 3
ВВЕДЕНИЕ Я предполагаю, что к концу XX века использование слов и общих утверждений, что машины думают, не будет необоснованным предвзятым мнением. Алан Тьюринг В настоящее время профессиональное владение навыками разработки и применения нейронных сетей и искусственного интеллекта (ИИ) становится всё более востребованным и актуальным в различных отраслях науки и промышленности. Нейронные сети – это инструменты, позволяющие машинам "учиться" на данных и выполнять задачи, которые раньше требовали человеческого вмешательства – от распознавания изображений до анализа сложных данных. Искусственный интеллект – это обширное поле науки, которое занимается созданием машин, способных выполнять задачи, требующие человеческого интеллекта. В то время как нейронные сети представляют собой один из ключевых компонентов искусственного интеллекта, позволяя системам обрабатывать огромные объемы данных и принимать решения на их основе [1, 2, 4]. Искусственные нейронные сети вдохновлены структурой и функционированием человеческого мозга и благодаря современным технологиям и алгоритмам их возможности продолжают расти. Сегодня нейронные сети используются в медицине, финансах, автомобильной промышленности, играх и многих других сферах, что делает их изучение весьма привлекательным направлением для специалистов в области IT и данных. Настоящее методическое пособие предназначено как для начинающих исследователей и разработчиков в области искусственного интеллекта, так и для тех, кто хочет погрузиться глубже в тему нейронных сетей. Через данное пособие читатель познакомится с базовыми концепциями, алгоритмами и инструментами для работы с нейронными сетями, а также с практическими примерами их применения. Рекомендации по использованию данного пособия: 1) начните с основ. Прежде чем переходить к более сложным темам искусственного интеллекта и глубокого обучения, убедитесь, что вы твердо освоили базовые концепции, такие как алгоритмы обучения, структуры данных и математические основы нейронных сетей; 2) практикуйтесь. Работа с искусственным интеллектом и нейронными сетями требует практики. Регулярно выполняйте упражнения из пособия и сталкивайтесь с реальными задачами; 3) работайте с кодом. Изучайте примеры кода, приведенные в пособии, чтобы понимать структуру и логику создания нейронных сетей. Это поможет вам понять, как оптимизировать свои модели. 4) используйте инструменты отладки. При работе с искусственным интеллектом важно быстро находить и исправлять ошибки. Инструменты отладки помогут вам в этом; 4
5) общайтесь с коллегами. Обмен опытом с другими специалистами в области искусственного интеллекта может предоставить вам новые идеи и решения для ваших задач; 6) пишите код с нуля. Научитесь создавать свои нейронные сети, не полагаясь на готовые решения. Это позволит вам лучше понять принципы работы ИИ; 7) не бойтесь ошибок. Ошибки в области ИИ – это возможность учиться. Анализируйте свои промахи и извлекайте из них уроки; 8) следуйте структуре пособия. Рекомендуется придерживаться последовательности материалов, представленных в пособии. Также уделяйте внимание практическим примерам и упражнениям, которые помогут вам закрепить знания; 9) ориентируйтесь на официальные источники. Для глубокого понимания ИИ и нейронных сетей обратитесь к академическим ресурсам и официальной документации по используемым инструментам и фреймворкам. Можно ориентироваться на следующие источники: • https://keras.io • https://scikit-learn.org/stable/ • https://pytorch.org • https://www.tensorflow.org/ В заключение отметим, что овладение навыками работы с искусственным интеллектом и нейронными сетями позволяет разработчикам создавать продвинутые, адаптивные и интуитивные приложения. Это дает возможность обеспечивать глубокий анализ данных, автоматизировать рутинные задачи и предоставлять пользователю уникальный опыт взаимодействия с системой. Помимо этого, знание методов искусственного интеллекта способствует использованию современных фреймворков и библиотек для создания масштабируемых и высокопроизводительных решений. 5
ОСНОВЫ НЕЙРОННЫХ СЕТЕЙ Нейронные сети – это концепт, зародившийся на стыке биологии и математики и призванный воссоздать основные принципы работы человеческого мозга в формате математических моделей. Сама идея моделирования мозга датируется ещё докомпьютерной эпохой, когда учёные пытались понять, как наш мозг производит различные вычисления и обрабатывает информацию. Название "нейронные сети" происходит от того, что мозг человека состоит из множества нейронов – базовых функциональных единиц нервной системы, которые соединяются в сложные сети и образуют нервную ткань. Биологический нейрон – это клетка, способная принимать сигналы от других нейронов, обрабатывать их и передавать далее. Эта передача информации происходит благодаря синапсам – специфическим структурам, позволяющим нейронам обмениваться электрохимическими сигналами. Когда речь идёт о математической модели, нейронные сети представляют собой систему, где отдельные "нейроны" или узлы соединены в определённой структуре и обмениваются данными. В таком контексте "нейрон" – это некая функция, которая принимает на вход вектор данных, производит вычисления и выдаёт результат на выходе. Стоит подчеркнуть, что, несмотря на некоторые аналогии, искусственные нейронные сети далеки от полной имитации биологических процессов. Например, моделирование аксонов, дендритов и их множественных свойств (рис. 1) в искусственных системах является чрезвычайно упрощенным. Тем не менее, идея, что сложные вычислительные задачи могут быть решены коллективным взаимодействием простых вычислительных узлов, остаётся основной в концепции нейронных сетей. Рисунок 1 – Строение биологического нейрона Таким образом, нейронные сети, будучи вдохновлены биологической структурой мозга, представляют собой попытку математически моделировать его работу. Этот подход позволяет создавать системы, способные обучаться, адаптироваться и обрабатывать информацию, имитируя, хотя и очень условно, работу человеческого мозга. 6
В центре принципа работы нейронных сетей лежит понимание того, как отдельные элементы, или искусственные нейроны, соединены и взаимодействуют друг с другом. Если биологический нейрон может быть активирован стимулом и передавать сигнал через синапсы к другим нейронам, то искусственный нейрон принимает входные данные, производит их обработку по определённой функции и передаёт результат следующему уровню или слою сети. Но что же заставляет искусственные нейронные сети "обучаться"? Как и в биологических системах, где усиление или ослабление синаптической связи (сила связи между двумя нейронами) определяется опытом, в искусственных системах важную роль играют веса связей. Эти веса меняются в процессе обучения сети на основе данных, что позволяет модели адаптироваться и улучшать свою производительность. Принцип обратного распространения ошибки стоит в основе многих алгоритмов обучения нейронных сетей. Идея заключается в том, чтобы сначала производить расчёты в прямом направлении от входного слоя к выходному, определяя ошибку на выходе, а затем распространять эту ошибку обратно, корректируя веса связей между нейронами, чтобы минимизировать ошибку в следующих расчётах. Подобное взаимодействие и постоянная адаптация делают нейронные сети выдающимися инструментами для различных задач, таких как распознавание образов, прогнозирование, рекомендательные системы и многие другие. Нейронные сети способны обнаруживать сложные зависимости в данных, которые могут остаться незамеченными для других методов анализа. Современные достижения в области нейронных сетей во многом обусловлены ростом вычислительных возможностей, а также доступом к огромным объёмам данных. Современные архитектуры, такие как глубокие нейронные сети (Deep Neural Networks), позволяют обрабатывать информацию на многих уровнях сложности, начиная от первичных признаков и заканчивая сложными абстракциями. Разговор о нейронных сетях неразрывно связан с пониманием структуры искусственного нейрона – базовой единицы, из которой состоит сеть. Погрузимся в анализ этой структуры. Искусственный нейрон представляет собой математическую модель, вдохновленную биологическим нейроном. В своем простейшем виде он состоит из ряда входов, каждый из которых ассоциируется с определенным весом. Веса представляют собой коэффициенты, которые определяют степень влияния каждого входного значения на выходное значение нейрона. Эти веса адаптируются и корректируются в процессе обучения сети. В мире машинного обучения и, в частности, нейронных сетей, существует множество понятий и терминов, которые образуют основу этой дисциплины. Рассматривая концепцию модели, можно представить её как математическое отображение от входных данных к выходным. Это может быть как простая линейная зависимость, так и сложная структура, как глубокая нейронная сеть. Чтобы "настроить" эту модель, необходимо использовать специальный набор данных, называемый обучающим датасетом. С его помощью корректируются 7