Назад в библиотеку

Обзор существующей концепции и возможностей реализации нейронных сетей

Авторы: Азаров А.Б., Константинов В.С., Зинченко Ю.Е., Зинченко Т.А.
Источник: ИУСМКМ – 2018 http://iuskm.donntu.ru/electronic/

Аннотация

Азаров А.Б., Константинов В.С., Зинченко Ю.Е., Зинченко Т.А. Обзор существующей концепции и возможностей реализации нейронных сетей. Проведен анализ понятия и свойств нейронных сетей. Определена общая структура модели нейронной сети. Определены и рассмотрены основные направления использования машинного обучения. Проведено краткое сравнение нейронных сетей с линейными системами. Выделены преимущества работы с нейронными сетями при реализации сложных задач классификации и прогнозирования экономических, социальных и технических процессов. Рассмотрены основные способы создания нейронных сетей, их преимущества и недостатки

Annotation

Azarov A.B., Konstantinov V.S., Zinchenko J.E., Zinchenko Т.А. Review of the existing concept and the possibilities of implementation of neural networks. An analysis of the concept and properties of neural networks is carried out. The general structure of the neural network model is determined. The main directions of the use of machine learning are determined and examined. A short comparison of neural networks with linear systems is carried out. The advantages of working with neural networks in the implementation of complex problems of classification and forecasting of economic, social and technical processes are singled out.The main methods of creating neural networks, their advantages and disadvantages are considered

Введение

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

Практическое применение

На сегодняшний день существует множество направлений использующих нейронные сети для достижения поставленных целей [1]. Можно рассмотреть некоторые из них, к которым относятся:

  1. Распознавание почерка. Идея распознания почерка заключается в том, что пользователь предоставляет сети изображение с рукописным текстом, а в результате получает электронный вариант написанного текста. Однако, для такого распознания необходимо, чтобы пользователь обучил систему, предоставив различные рукописные шаблоны.
  2. Классификация. Главной задачей является фильтрация большой исходной выборки элементов по заданным критериям. При этом данные критерии могут отличаться по своей важности. Примером такой задачи может быть решение о выдаче кредита лицам, используя следующую информацию: возраст, платежеспособность, кредитная история и т.д.
  3. Нахождение кратчайшего пути. Нейронные сети также могут решить проблему коммивояжера. Этот алгоритм каждый раз выбирает случайный город, и находит ближайший к нему город, данный процесс повторяется несколько раз. После каждого повторения форма сети меняется, а после конечного числа повторения стабилизируется в форме кольца. Однако, это только приближение.
  4. Сжатие изображения. Огромное количество информации принимается и обрабатывается нейронными сетями. Это делает их полезными при сжатии изображений. Основная идея сжатия данных при помощи нейронных сетей - это хранение, шифрование и восстановление данных. При этом хранится только сжатое изображение, а при выводе оно восстанавливается до реальных размеров.
  5. Прогноз фондовой биржи - повседневный бизнес фондового рынка очень сложен. Многие факторы влияют на то, будет ли данный запас расти или снижаться в любой момент времени. Таким образом, нейронные идеально подходят быстрого анализаи сортировки большого количества данных. Поэтому мы можем использовать их для прогнозирования цен на фондовой бирже.
  6. Диагностика и моделирование параметров аналоговых устройств [2-5], в т.ч. на FPGA [6].

Структура модели нейронной сети

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

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

где Nсл – количество слоев, I – входной, О – выходной, H–скрытый.

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

Нейроны связаны между собой синапсами. Каждый синапс имеет параметр вес(w). Вес определяет важность нейрона, т.е. тот нейрон, у которого вес больше и будет в основном определять результат. В момент запуска нейронной сети веса устанавливаются случайным образом. Пример одного звена нейронной сети представлен на рис. 1. X1,X2 – это входные нейроны, Y – выходной нейрон, w1`,w2 – вес первого и второго входного нейрона соответственно. На вход Y приходит значение, рассчитывающееся по формуле. После чего входное значений обрабатывается функцией активации [7].

Рис. 1. Модель участка нейронной сети

Функций активаций достаточно много и в каждом случае необходимо подобрать наиболее оптимальную. Главным отличием функций активации является диапазон значений, в зависимости от этого параметра и подбирается нужная. Рассмотрим самые распространенные функции активации. Одна из самых известных и неиспользуемых функций – это линейная функция (2). Данная функция используется, если необходимо передать входное значение x на выход без преобразований.

Следующая функция активации – сигмоид, на формуле (3) видно, что функция захватывает и отрицательные значения. Это может быть необходимо, когда входные параметры могут иметь отрицательные значения, например при отслеживании какой-либо статистики. Область значений данной функции – [0,1].

Последняя функция, которая будет рассмотрена – гиперболический тангенс. Из анализа формулы (4) видно, что в область значений данной функции – [-1,1].

При обучении нейронной сети необходимо подготовить тренировочный набор для неё, т.е. набор входных и правильных выходных данных. Далее этот набор подается на входы I-раз (I–количество необходимых итераций), при этом каждый раз увеличивается счетчик итератора (i). После прохода набора тренировочных данных – увеличивается счетчик эпохи (c) и сбрасывается счетчик итератора, после чего цикл повторяется до тех пор, покасчетчик с не достигнет максимума (C). Также необходимо отметить, что по мере увеличения эпохи ошибка должна постепенно уменьшаться. Ошибка является процентной величиной, которую можно рассчитывать различными способами. Наиболее известные это: MeanSquaredError, RootMSE, Arctan. Невозможно сказать, какой из способов лучший, так как всё зависит от условий конкретной задачи.

Реализация нейронных сетей на базе ПЛИС

На сегодняшний день можно выделить два типа реализации нейронных сетей:

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

Несмотря на перечисленные преимущества, программно реализованные сети не всегда представляют собой самый продуктивный и быстрый способ решения поставленной задачи. Это связано с тем, что обработка данных нейронами проводится последовательно (псевдо-параллельно), что связано с особенностями обработки данных процессорами современных вычислительных систем. С учетом данной особенности, программно реализованные сети работают медленнее их аналогов реализованных аппаратно. Также следует отметить высокую зависимость времени работы от размеров сети и характеристик компьютерной системы, в которой она используется. При увеличении количества нейронов, программная реализация будет работать медленнее, следовательно вычисления будут выполняться дольше. Во избежание таких ситуаций можно увеличивать вычислительные возможности системы, что не всегда эффективно. Большой рост вычислительной мощности приводит к быстрому увеличению размеров вычислительной системы, что бывает разумно при многократном и удаленном использовании, однако не эффективно при решении частных задач. Создание мощной вычислительной машины больших размеров нерационально при создании сети для распознания лиц на отдельном пропускном пункте.

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

Также существует метод реализации, позволяющий использование преимуществ обоих типов нейронных сетей. Данный способ заключается в реализации сети при помощи программируемой логической интегральной схемы (ПЛИС) [8]. Принцип работы ПЛИС заключается в возможности программировать архитектуру системы, т. е. ее аппаратную составляющую. Иными словами, программно изменять аппаратную структуру системы. В плис возможно создание программное создание простых модулей и объединение их в большую сеть. С другой стороны ПЛИС поддерживает полностью параллельные вычисления, в отличии от псевдо-параллельных, которые используются в обычных компьютерах. Еще одним достоинством ПЛИС является развитая периферия, включающая широкий набор современных компьютерных интерфейсов (включая высокоскоростные), что позволяет проводить отладку нейронной сети, а также избавляет от проблемы интеграции сети в компьютерную систему.

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

Существует ряд задач, которые необходимо решить для реализации нейронной сени на базе ПЛИС:

Вывод

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

Литература

  1. Introductionto Artificial Neural Network Model [Электронный ресурс]. – Режим доступа: https://data-flair.training/blogs/artificial-neural-network-model/. – Заглавие с экрана. – (Дата обращения: 26.03.2018).
  2. Коваленко И.А., Ковалев А.М., Лобанов Е.В., Зинченко Ю.Е., Ханаев В.В. Диагностика аналоговых интегральных схем на базе нейронных сетей // Сучасні комп‘ютерні інформаційні технології. - Тернопіль: ТНЕУ, 2012. – С. 97-98.
  3. Коваленко И.А., Ковалев А.М., Лобанов Е.В., Зинченко Ю.Е. Идентификация и моделирование параметров аналоговых устройств на базе специально обученных нейронных сетей // «Информатика и компьютерные технологии», сборник трудов VIII международной научно-технической конференции студентов, аспирантов и молодых учёных – 18-19 сентября 2012 г., Донецк, ДонНТУ, 2012. - С. 90-95.
  4. Коваленко И.А., Ковалев А.М., Лобанов Е.В., Зинченко Ю.Е., Ханаев В.В. Диагностика и обнаружение неисправностей в аналоговых интегральных схемах с использованием искусственных нейронных сетей и метода псевдослучайного тестирования //«Информационные управляющие системы и компьютерный мониторинг», сборник трудов III Всеукраинской научно-технической конференции студентов, аспирантов и молодых учёных - 16-18 апреля 2012 г., Донецк, ДонНТУ. 2012. С. 631-637.
  5. Беловолова М.А., Зинченко Ю.Е., Применение искусственных нейронных сетей в системах диагностики аналоговых схем // Информатика и Компьютерные технологии (ИКТ-2013). - Донецк: ДонНТУ, 2012. – С. 295-298.
  6. Гонтаренко Б.В., Беловолова М.А., Зинченко Ю.Е. Реализация искусственного нейрона на FPGA // Інформаційні управляючі системи та комп’ютерний моніторинг (ІУС та КМ-2012). - Донецьк: ДонНТУ, 2012. - С. 586-590.
  7. Нейронные сети [Электронный ресурс]. – Режим доступа: https://habrahabr.ru/post/312450/. – Заглавие с экрана. – (Дата обращения: 26.03.2018).
  8. Nurvitadhi E. et al. Accelerating recurrent neural networks in analytics servers: Comparison of FPGA, CPU, GPU, and ASIC // Field Programmable Logic and Applications (FPL), 2016 26th International Conference on. – IEEE, 2016. – P. 1–4.