Разработка и обучение нейросетей | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №24 (419) июнь 2022 г.

Дата публикации: 18.06.2022

Статья просмотрена: 966 раз

Библиографическое описание:

Шмыгарева, В. С. Разработка и обучение нейросетей / В. С. Шмыгарева. — Текст : непосредственный // Молодой ученый. — 2022. — № 24 (419). — С. 79-87. — URL: https://moluch.ru/archive/419/93213/ (дата обращения: 16.12.2024).



Краткий обзор нейронных сетей, методов их активации и обучения.

Ключевые слова: машинное обучение, нейронные сети, искусственный интеллект.

Если 20–30 лет назад нейросети были чем-то на грани фантастики, то в современном мире они используются во многих сферах [1]: камеры, штрафующие за превышение скоростного режима на автостраде; подборка музыки, основывающаяся на ваших предпочтениях; анализ поисковых запросов, для контекстной рекламы; прогнозирование сворачивания белка; разработка видеоигр. Так что же представляют из себя нейронные сети и как они работают?

Модель нейросети основана на модели работы головного мозга. Мозг способен организовывать работу нейронов, так, чтобы они могли выполнять конкретные задачи (такие как распознавание образов, обработку сигналов органов чувств, моторные функции) во много раз быстрее, чем могут позволить самые быстродействующие современные компьютеры [2]. Нейронная сеть — это математическая модель, логическая структура, составленная из формальных нейронов. Благодаря «копированию» принципов работы головного мозга нейросети способны запоминать, анализировать входящую информацию, воспроизводить её, а также обучаться.

Нейрон — это основная вычислительная единица нейросети, получающая информацию и производящая над ней простые вычисления, после чего информация передаётся дальше. Нейроны в нейросети делятся на основные типы: входной, скрытый, выходной и нейрон смещения. Входные нейроны служат для ввода начальных значений данных. Скрытые нейроны нужны для обработки информации. Выходные — для вывода результата. Пример простейшей нейронной сети представлен на рис. 1а.

В случае, если сеть состоит из большего количества нейронов, то вводится понятие слоя. Входной и выходной слои всегда представлены в единственном экземпляре, скрытых слоёв может быть несколько, обычно два или три (рис. 1б).

а) Простейшая нейросеть; б) Многослойная нейросеть (многослойный персептрон)

Рис. 1. а) Простейшая нейросеть; б) Многослойная нейросеть (многослойный персептрон)

Нейрон смещения в отличии от вышеперечисленных типов, обладает особенностями: вход=выход=1 и отсутствие входных синапсов. Такие нейроны или присутствуют по одному на каждом слое нейросети, или отсутствуют полностью. Нейроны смещения связаны с нейронами следующего слоя, но не между собой. Также нейроны смещения не могут располагаться на выходном слое. Нейроны такого типа нужны для корректировки выходных данный, путём сдвига графика функции вправо или влево.

Независимо от типа, каждый нейрон имеет два основных параметра: входные данные (input data) и выходные данные (output data). Для входного нейрона input data = output data, для остальных нейронов в поле input попадают данные из предыдущего слоя, далее они нормализуются при помощи функции активации и отправляются в поле output. Нейроны способны хранить и обрабатывать значения только в пределах [0;1] или [-1;1]. Чтобы обработать значение n, не входящее в этот диапазон, используется нормализация 1/n.

Нейроны между собой связаны синапсами. Синапсы имеют один параметр — вес, который способствует изменению информации при её передаче от одного нейрона к другому. Чем больше вес нейрона, тем больше его влияние на информацию. Совокупность весов нейронов (матрица весов) представляет собой мозг всей системы, благодаря которому обрабатывается информация и получается результат. При инициализации нейронной сети веса расставляются в случайном порядке.

Например, есть 3 нейрона ( ), передающие информацию дальше, в данном случае передаётся цвет. У каждого нейрона есть вес ( ). На рисунке 2 видно, что информация нейрона с наибольшим весом является доминирующей.

Пример смешения цветов от нейронов с разным весом

Рис. 2. Пример смешения цветов от нейронов с разным весом

Рассмотрим часть нейронной сети: — входные нейроны;

H

скрытый нейрон; — веса. Входную информацию можно представить в виде:

Пусть , , , , тогда . Чтобы получить выходные данные

:

где — функция активации.

Функция активации — это способ нормализации входных данных. Функция активации определяет выходное значение нейрона в зависимости от результата взвешенной суммы входов и порогового значения, то есть проверяет произведённое нейроном значение на предмет того, должны ли внешние связи рассматривать этот нейрон как активированный, или его можно игнорировать. Существует множество функций активации [4].

Пороговая функция активации (рис. 3) описывается следующим математическим выражением:

где — главный параметр. Такая функция показывает в каком состоянии находится нейрон: «1» — нейрон возбуждён, «0» — не возбуждён.

Пороговая функция активации

Рис. 3. Пороговая функция активации

Пороговая функция активации является наипростейшей, но при её использовании можно получить только два варианта: 100 % и 0 %, поэтому данная функция не рекомендуется использовать для обучения нейросетей.

Линейная функция активации (рис. 4) — простейшая математическая кривая, задающаяся следующим выражением:

где — коэффициент пропорциональности. Линейная функция активации сложнее, чем пороговая, но также не имеет преимуществ при обучении нейросетей.

Линейная функция активации  при  = 2

Рис. 4. Линейная функция активации при = 2

ReLU (линейный выпрямитель) — нелинейная функция (рис. 5), которая может аппроксимировать любую другую функцию. ReLU задаётся выражением:

График функции ReLU

Рис. 5. График функции ReLU

Преимущества данной функции заключаются в её математическом виде, требующем небольшого количества вычислительных ресурсов, что положительно сказывается на времени обучения нейронной сети, а также использование ReLU позволяет инактивировать некоторые нейроны, а следовательно, ускорить время обучения. Из недостатков функции можно отметить, что отрицательные входные значения дадут на выходе нулевой градиент, что негативно скажется на процессе обучения нейронной сети из-за отсутствия обновления весовых коэффициентов.

Сигмоидная логистическая функция активации часто применяется в задачах классификации, так как является гладкой функцией, меняющейся в диапазоне (-1;1) (рис. 6).

Графики сигмоидной логистической функции  и ее производной

Рис. 6. Графики сигмоидной логистической функции и ее производной

Математически функцию можно описать следующим образом:

Одним из достоинств сигмоидной логистической функции активации является её производная:

Графики и представлены на рисунке 7.

Гиперболический тангенс (рис. 7) — функция активации, схожая с сигмоидной логистической функцией и является её модификацией:

Тогда производная

Преимущества и недостатки данной функции аналогичны функции сигмоиды. Её природа нелинейна, она хорошо подходит для комбинации слоёв, а диапазон значений функции (-1, 1). Поэтому активационная функция не перегрузится от больших значений.

Графики функции гиперболического тангенса  и его производной

Рис. 7. Графики функции гиперболического тангенса и его производной

Если сравнивать сигмоидную логистическую функцию и гиперболический тангенс, то можно заметить, что градиент второй функции больше (рис. 8).

Графики производной гиперболического тангенса  и производной сигмоидной логистической функции

Рис. 8. Графики производной гиперболического тангенса

и производной сигмоидной логистической функции

Кроме функций, описанных выше, существует ещё множество функций активации. Исследователи в области искусственного интеллекта и нейронных сетей постоянно улучшают существующие функции и оптимизируют способы обработки входных сигналов. Выбор активационной функции очень важен при построении нейронной сети. Поэтому необходимо отталкиваться от известных характеристик аппроксимируемой функции, чтобы подобрать наиболее подходящую функцию активации для получения высоких результатов скорости обучения нейросети [4].

Машинное обучение относится к компьютерным моделям, которые значительно улучшают свою производительность на основе входных данных. Методы машинного обучения обычно делятся на модели с учителем и без учителя [5], как показано на рисунке 9.

Процесс обучения нейросети а) с учителем; б) без учителя

Рис. 9. Процесс обучения нейросети а) с учителем; б) без учителя

При обучении с учителем учитель предоставляет дополнительные входные данные, которые позволяют оценить, насколько хорошо программа работает на этапе обучения. Наиболее распространённая форма обучения с учителем — это попытка воспроизвести поведение, заданное набором обучающих примеров, где каждый пример состоит из пары:

«входные данные» + «правильный ответ», то есть заранее задаётся множество пар векторов

где — вектор, задающий условие задачи, — известное решение задачи

для вектора . В процессе обучения нейронная сеть меняет свои параметры так, чтобы давать верное отображение для . Важно учитывать, что выборка должна быть достаточной, чтобы алгоритм обучения смог получить нужный ответ.

При обучении без учителя оценка эффективности недоступна. При такой модели обучения невозможно указать, что является правильным ответом, а что неправильным. Данный алгоритм возможно применять в случаях, когда известны только входные сигналы, на основе которых нейросеть учится давать наилучшие значения выходов, которые определяются алгоритмом обучения. В большинстве случаем алгоритм подстраивает параметры нейросети так, чтобы при близких значениях параметров результаты были схожи.

Одним из самых старых методов обучения является метод Хэбба [6]. Алгоритм обучения представлен на рисунке 10. При обучении данным методом связанные между собой нейроны активизируются одновременно. Изменение веса связи зависит только от активности соединённых нейронов.

Алгоритм обучения методом Хэбба

Рис. 10. Алгоритм обучения методом Хэбба

При соревновательном методе обучении нейроны наоборот «соревнуются» за возможность быть активизированными. Это значит, что из всего множества нейронов используется только один, у которого значение выхода наибольшее. Данный метод позволяет классифицировать входные данные. Сходные примеры группируются в один класс, за который отвечает один выходной нейрон. Общее число классов, с которыми может работать нейросеть равно количеству выходных нейронов. При обучении соревновательным методом изменяются веса только у активизированного «победившего» нейрона, что позволяет приблизить значение ответа к искомому результату.

Метод обратного распространения ошибки — самая фундаментальная составляющая нейронной сети. Данный метод используется для эффективного обучения нейронной сети с помощью правила дифференцирования сложной функции: после каждого прохода по сети обратное распространение выполняет проход в обратную сторону и регулирует параметры модели (веса и смещения). Метод обратного распространения ошибки направлен на минимизацию функции потерь путём корректировки весов и смещений сети. Степень корректировки определяется градиентами функции потерь по отношению к этим параметрам.

Рассмотрим применимость различных архитектур нейросетей для решения задачи классификации, например, распознавание рукописных цифр. Воспользуемся существующей базой рукописных чисел от 0 до 9 MNIST. База содержит 60 000 тренировочных изображений для обучения нейросети, а также 10 000 изображений для тестирования и проверки обучения. Цифры представлены в виде картинок размером пикселей в градациях серого (рис.11).

Пример изображения цифры 7 из базы данных MNIST

Рис. 11. Пример изображения цифры 7 из базы данных MNIST

Пусть каждый пиксель имеет значение от 0 до 255, где 0 — это чёрный цвет, а 255 — белый. Тогда на входе будет 784 нейрона со значениями от 0 до 255 и ещё один нейрон смещения (bias). Выходных нейронов у такой нейросети будет 10, по одному выходу на каждую цифру. Добавив ещё несколько скрытых слоёв для обработки информации получим, что наша нейросети состоит из более, чем тысячи нейронов и более ста тысяч параметров. Для обработки всех данных потребуется большое количество времени и вычислительных мощностей. Полносвязную нейронную сеть возможно использовать, когда речь идёт об обработке небольших изображений. Поэтому для распознавания изображений обычно используются свёрточные нейронные сети. Особенностью работы таких нейросетей является наличие операции свёртки и специальных свёрточных слоёв, которые необходимы для извлечения из изображения высокоуровневых признаков, таких как линии или края.

Свёрточный слой состоит из ядра, которая представляет собой матрицу весов, каждая ячейка которой имеет значение 0 или 1, в зависимости от искомого признака на изображении. Матрица проходит по всему изображению, поэлементно умножая данные, которые попали в её поле действия, далее суммирует все значения и записывает его в один выходной пиксель (рис. 12). Таким образом ядро проходит по всему изображению, формируя двумерную матрицу признаков. Например, для определения числа 7, надо обнаружить одну горизонтальную и одну вертикальную линию; для определения числа 8 — две окружности. Если такие признаки обнаружены на изображении, то нейронная сеть присвоит им большие значения весов.

Принцип работы матрицы весов

Рис. 12. Принцип работы матрицы весов

При свёртке изображения в итоге можно получить 2 типа результатов: при первом свёрнутый признак имеет меньшую размерность, чем исходный; при втором размерность увеличивается, дополняясь нулями или остаётся неизменной при помощи тех же нулей.

В начале значения каждого слоя свёрточного ядра равны 0. Значения весов ядер задаются случайным образом в диапазоне [-0,5; 0,5]. С математической точки свёртку можно описать следующим выражением:

где — исходная матрица изображения, — ядро свёртки,

Сравним скорость работы полносвязной нейронной сети и свёрточной нейросети LeNet 5. LeNet 5 состоит из пяти обучаемых слоёв: трёх свёрточных и двух полносвязных. Свёрточные слои имеют ядра размером

пикселей с шагом 1. Выход последней свёртки имеет размер (1,1,120), который дальше связан с полносвязными слоями.

Результаты сравнения работы полносвязной и свёрточной нейросетей представлены в таблице 1.

Таблица 1

Сравнение результатов работы полносвязной нейросети и L eNet 5

Название нейросети

Время обучения, с

Время вывода, с

Точность, %

Потери, %

Полносвязная

731,5

0,012

0,935

0,123

LeNet 5

159,54

0,008

0,985

0,043

Быстроту обучения свёрточной нейросети можно объяснить в два раза меньшим количеством параметров в сравнении с полносвязной нейросетью, что уменьшает количество операций, необходимых для обработки изображения.

Литература:

  1. There and Back Again: Revisiting Backpropagation Saliency Methods / S. A. Rebuffi, R. Fong, X. Ji, A. Vedaldi. — These CVPR 2020. —:, 2020. — С. 8839–8848.
  2. Нейронные сети для начинающих. Часть 1. — Хабр: [сайт]. — URL: https://habr.com/ru/post/312450/
  3. Милютин, И. Функции активации нейросети: сигмоида, линейная, ступенчатая, ReLu, tahn / И. Милютин. — Neurohive: [сайт]. — URL: https://neurohive.io/ru/osnovy-data-science/activation-functions
  4. Функции активации в искусственных нейронных сетях. — aisimple: [сайт]. — URL: https://aisimple.ru/8-funkcii-aktivacii-v-iskusstvennyh-nejronnyh-setjah.html
  5. Волчек, А. Алгоритмы обучения нейронной сети: наиболее распространенные варианты / А. Волчек. — GeekBrains: [сайт]. — URL: https://gb.ru/blog/algoritmy-obucheniya-nejronnoj-seti/ (дата обращения: 08.06.2022).
  6. Bogdan, M. W. Neural network architectures and learning algorithms / M. W. Bogdan. — IEEE Industrial Electronics Magazine. —:, 2009. — С. 56–63.
Основные термины (генерируются автоматически): нейронная сеть, нейрон, нейрон смещения, MNIST, гиперболический тангенс, данные, логистическая функция, нейросеть, функция, функция активации.


Похожие статьи

Автоматизация разработки программного обеспечения с помощью искусственного интеллекта: как нейросети могут изменить процессы разработки

В статье рассматриваются современные подходы к автоматизации процессов разработки программного обеспечения с использованием искусственного интеллекта и нейронных сетей. Проанализированы существующие решения и перспективы их развития.

Искусственные нейронные сети в военной сфере

В статье описаны разные архитектуры искусственных нейронных сетей, применение и общее введение в теорию искусственного интеллекта. Также в статье рассматривается применение в военной сфере.

Формализация требований для средств разработки и обучения нейронных сетей

Статья посвящена описанию требований для разработки программных средств проектирования нейронных сетей, рекомендуемые функциональные и общие системные решения, основанные на опыте использования различных библиотек моделирования для программ машинного...

Интеллектуальные информационные системы

В статье автор рассмотрел ключевые концепции интеллектуальных информационных систем, их компоненты и области применения в различных отраслях

Применение нейросетевого анализа в процессах управления персоналом

В статье рассматриваются возможности применения искусственных нейронных сетей как одного из методов интеллектуального анализа данных в целях упрощения и повышения эффективности некоторых процессов управления персоналом.

Использование искусственных нейронных сетей для решения задач информационной безопасности

В статье автор исследует возможности применения искусственных нейронных сетей в решении некоторых задач информационной безопасности. В статье рассматривается модель ИНС для обнаружения вредоносного ПО на Android и потенциал методов машинного обучения...

Использование машинного обучения при разработке информационной системы генеалогического древа математиков теории чисел

В статье автор рассказывает о том, как можно использовать машинное обучение при создании информационной системы.

Применение нейронных сетей в рабочих сферах

В статье рассматривается роль нейронных сетей в замене человека на рабочем месте, их применение в современном мире.

Формирование нейронной сети

В статье рассмотрены вопросы истории становления и развития нейроно-сетевых парадигм, формирование (создание) нейронной сети.

Применение искусственного интеллекта и нейронных сетей в бизнес-среде

В статье приводятся основные аспекты технологии искусственного интеллекта и нейронных сетей как инструмента развития бизнеса в сфере культуры. Статья рассматривает цели, планирование, организацию и целесообразность этого вида технологии.

Похожие статьи

Автоматизация разработки программного обеспечения с помощью искусственного интеллекта: как нейросети могут изменить процессы разработки

В статье рассматриваются современные подходы к автоматизации процессов разработки программного обеспечения с использованием искусственного интеллекта и нейронных сетей. Проанализированы существующие решения и перспективы их развития.

Искусственные нейронные сети в военной сфере

В статье описаны разные архитектуры искусственных нейронных сетей, применение и общее введение в теорию искусственного интеллекта. Также в статье рассматривается применение в военной сфере.

Формализация требований для средств разработки и обучения нейронных сетей

Статья посвящена описанию требований для разработки программных средств проектирования нейронных сетей, рекомендуемые функциональные и общие системные решения, основанные на опыте использования различных библиотек моделирования для программ машинного...

Интеллектуальные информационные системы

В статье автор рассмотрел ключевые концепции интеллектуальных информационных систем, их компоненты и области применения в различных отраслях

Применение нейросетевого анализа в процессах управления персоналом

В статье рассматриваются возможности применения искусственных нейронных сетей как одного из методов интеллектуального анализа данных в целях упрощения и повышения эффективности некоторых процессов управления персоналом.

Использование искусственных нейронных сетей для решения задач информационной безопасности

В статье автор исследует возможности применения искусственных нейронных сетей в решении некоторых задач информационной безопасности. В статье рассматривается модель ИНС для обнаружения вредоносного ПО на Android и потенциал методов машинного обучения...

Использование машинного обучения при разработке информационной системы генеалогического древа математиков теории чисел

В статье автор рассказывает о том, как можно использовать машинное обучение при создании информационной системы.

Применение нейронных сетей в рабочих сферах

В статье рассматривается роль нейронных сетей в замене человека на рабочем месте, их применение в современном мире.

Формирование нейронной сети

В статье рассмотрены вопросы истории становления и развития нейроно-сетевых парадигм, формирование (создание) нейронной сети.

Применение искусственного интеллекта и нейронных сетей в бизнес-среде

В статье приводятся основные аспекты технологии искусственного интеллекта и нейронных сетей как инструмента развития бизнеса в сфере культуры. Статья рассматривает цели, планирование, организацию и целесообразность этого вида технологии.

Задать вопрос