Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Исследование возможностей практики применения искусственных нейронных сетей в экономике

Содержание:

Введение

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

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

К основным направлениям применения нейронных сетей относятся следующие: прогнозирование каких-либо событий на основе имеющихся данных; принятие решений; распознавание образов; анализ данных.

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

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

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

Целью данной работы является исследование возможностей практики применения искусственных нейронных сетей в экономике.

Для реализации поставленной цели необходимо выполнить ряд задач:

- Изучить теоретические основы использования нейронных сетей в экономике;

- Рассмотреть теоретические аспекты использования нейронных сетей предприятиями;

- Изучить применение нейронных сетей в экономике;

- Рассмотреть применением технологии компьютерного зрения;

- Изучить архитектуру глубинной нейронной сети;

- Рассмотреть классические задачи сверточных нейронных сетей и т.д.

При написании данной работы были использованы современные научные и учебные источники.

Глава 1 Теоретические основы и сущность применения нейронных сетей в экономике

1.1 Теоретические основы использования нейронных сетей в экономике

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

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

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

Входной слой организуется из входящих нейронов, которые получают на обработку данные и распространяют их на входы скрытых слоев сети. Скрытый нейрон — это нейрон, находящийся в скрытом слое нейронной сети. Выходные нейроны, из которых организуется выходной слой сети, и выдаются результаты работы всей нейронной сети. В полносвязных сетях организация следующая: каждый нейрон отправляет свой выходной сигнал другим нейронам, включая самого себя.[2]

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

Однако не все соединения нейронов будут работоспособными или вообще целесообразными. По архитектуре связей нейросети можно сгруппировать в два класса: – Сети прямого распространения, в которых связи не имеют петель, то есть не могут ссылаться на себя. – Сети рекуррентного типа, в которых возможны обратные связи. К сетям прямого распространения относятся однослойные и многослойные сети.

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

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

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

Среди рекуррентных сетей можно выделить сети Хопфилда и сети Кохонена. С помощью сетей Хопфилда можно обрабатывать неупорядоченные (рукописные буквы), упорядоченные во времени (временные ряды) или пространстве (графики) образцы. Рекуррентная нейросеть простейшего вида была введена Хопфилдом и построена она из N нейронов, связанных каждый с каждым кроме самого себя, причем все нейроны являются выходными. Нейросеть Хопфилда можно использовать в качестве ассоциативной памяти.[3]

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

Для обучения сети выбирается алгоритм из двух типов: управляемое, то есть «обучение с учителем» и неуправляемое соответственно — «обучение без учителя». Также необходимо помнить, что для разных типов сетей используются разные типы обучения. Чаще всего применяют обучение с учителем. Пользователь, который желает управлять обучением сети, должен подготовить некоторый обучающий набор данных. То есть для входных сигналов расписать соответствующие им выходные сигналы. Нейронная сеть начинает учиться создавать связь между входом и выходом, ищет соответствия и запоминает их. Данные для обучения берутся из каких-либо исторических сведений.[4]

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

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

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

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

Так как финансовые, социальные и экономические системы достаточно сложны и являются результатами действий или бездействий различных людей и событий, то получается очень сложно (а иногда даже невозможно) создать достаточную математическую модель, которая будет полностью отвечать всем требованиям. Также практически невозможно детально аппроксимировать модель, основанную на таких традиционных параметрах, как максимизация полезности или максимизация прибыли.[5]

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

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

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

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

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

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

Изучение нейросетевых технологий является актуальной темой в наше время. Необходимо изучать и исследовать их возможности.

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

1.2 Теоретические аспекты использования нейронных сетей предприятиями

Использование ИНС налагает существенные требования на вычислительные возможности компании – для адекватной работы такой модели необходимо большое количество статистических данных и проведение значительного объема вычислений как для начальной «тренировки» сети, так и для непосредственного решения задачи. К тому же, нейронные сети могут быть весьма сложными в разработке. Эти два обстоятельства предопределяют использование ИНС главным образом крупными корпорациями.[7]

Компания Google использует нейронную сеть в Переводчике для распознавания человеческой речи, что существенно ускоряет процесс ввода текста и соответственно упрощает процесс перевода текста для пользователя. Еще одним примером использования нейросети для предоставления услуг является Snapchat – мобильное приложение для обмена сообщениями с прикрепленными фото и видео, где сеть используется для распознавания образов, например, человеческого лица. Еще одним примером, иллюстрирующим успешное применение ИНС, является американская финансовая корпорация Citicorp, которая использует нейрокомпьютер для анализа и краткосрочного предсказания колебаний курсов валют.

В России разработка и внедрение нейронных сетей происходит в нескольких фирмах. Так, Mail.Ru Group и «Яндекс» применяют нейросети для обработки и классификации текстов в «Поиске», анализа изображений. Это позволяет повысить качество работы предоставляемых ими сервисов, и, как следствие – повысить интерес к ним. Нейронная сеть, как и другие алгоритмы машинного обучения, как полагают эксперты – следующий шаг в автоматизации любых процессов, поэтому ИНС в будущем будут не только применяться для замены человека в конкретных процессах и действиях, а смогут заменить целые профессии.

При этом следует отметить, что структура ИНС не позволяет «проследить» за ее работой на каждом этапе, как следствие – отсутствует возможность исследовать, почему нейронная сеть приняла то или иное решение, а значит, и проверить правильность ее выводов, не решая проблему самостоятельно, что может вызывать определенный скепсис в некоторых областях, например – в медицине. Ситуацию усугубляет предрасположенность сетей к ложной классификации объекта при «зашумленности» исходных данных, незаметной для человеческого глаза.

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

Таблица 1

Результат применения ИНС для прогнозирования

Наблюдаемое банкротство

Предсказанное банкротство

Процент корректных предсказаний

нет

да

нет

228

36

86,4

да

34

172

83,1

Общий процент

85,1

 В статье рассматривается использование ИНС для прогнозирования финансовых рынков, в частности – для предсказания индекса ММВБ. Самая оптимальная модель сети при этом сумела осуществить прогноз направления тренда, несмотря на непростую экономическую ситуацию в выбранное время, усложняющую решение задачи. Различные модели нейронных сетей применены для прогнозирования поведения экономических процессов предприятий.

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

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

Глава 2 Практика применения нейронных сетей в экономике

2.1 Применение нейронных сетей в экономике

В последние 10 лет deep learning и компьютерное зрение развивались неимоверными темпами. Все, что сделано значимого в этой области, произошло в последние лет 6.

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

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

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

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

В далекие 60-е годы прошлого века, когда только начиналось изучение зрительных зон мозга, первые эксперименты проводились на животных, потому что не было fMRI. Исследовали мозг с помощью электродов, вживлённых в различные зрительные зоны. Первая зрительная зона была исследована Дэвидом Хьюбелем и Торстеном Визелем в 1962 году. Они проводили эксперименты на кошках. Кошкам показывались различные движущиеся объекты. На что реагировали клетки мозга, то и было тем стимулом, которое распознавало животное. Даже сейчас многие эксперименты проводятся этими драконовскими способами. Но тем не менее это самый эффективный способ узнать, что делает каждая мельчайшая клеточка в нашем мозгу.

Таким же способом были открыты еще многие важные свойства зрительных зон, которые мы используем в deep learning сейчас. Одно из важнейших свойств — это увеличение рецептивных полей наших клеток по мере продвижения от первичных зрительных зон к височным долям, то есть более поздним зрительным зонам. Рецептивное поле — это та часть изображения, которую обрабатывает каждая клеточка нашего мозга. У каждой клетки своё рецептивное поле. Это же свойство сохраняется и в нейронных сетях, как вы, наверное, все знаете. Также с возрастанием рецептивных полей увеличиваются сложные стимулы, которые обычно распознают нейронные сети.

https://habrastorage.org/files/20b/261/2e1/20b2612e17694209bfabca37768e4b34.png
Рисунок 1


Здесь вы видите примеры сложности стимулов, различных двухмерных форм, которые распознаются в зонах V2, V4 и различных частях височных полей у макак. Также проводятся некоторое количество экспериментов на МРТ.

https://habrastorage.org/files/021/9dd/f52/0219ddf5205f403abd32ce0b14e1f392.png
Рисунок 2

Здесь вы видите, как проводятся такие эксперименты. Это 1 нанометровая часть зон IT cortex'a мартышки при распознавании различных объектов. Подсвечено то, где распознается. Просуммируем. Важное свойство, которое мы хотим перенять у зрительных зон — это то, что возрастают размеры рецептивных полей, и увеличивается сложность объектов, которые мы распознаем.

2.2 Применением технологии компьютерного зрения

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

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

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


https://habrastorage.org/files/195/f7c/fb9/195f7cfb9887458dbf8c7d808891246e.png

Рисунок 3

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

Итак, что происходит при распознавании изображения, я расскажу на примере лиц. Для нас посмотреть на эту картинку и сказать, что на ней изображено именно лицо статуи, достаточно просто.

Однако до 2010 года для компьютерного зрения это было невероятно сложной задачей. Те, кто занимался этим вопросом до этого времени, наверное, знают насколько тяжело было описать объект, который мы хотим найти на картинке без слов. Нам нужно это было сделать каким-то геометрическим способом, описать объект, описать взаимосвязи объекта, как могут эти части относиться к друг другу, потом найти это изображение на объекте, сравнить их и получить, что мы распознали плохо. Обычно это было чуть лучше, чем подбрасывание монетки. Чуть лучше, чем chance level.

Сейчас это происходит не так. Мы разбиваем наше изображение либо на пиксели, либо на некие патчи: 2х2, 3х3, 5х5, 11х11 пикселей — как удобно создателям системы, в которой они служат входным слоем в нейронную сеть.

Сигналы с этих входных слоёв передаются от слоя к слою с помощью синапсов, каждый из слоёв имеет свои определенные коэффициенты. Итак, мы передаём от слоя к слою, от слоя к слою, пока мы не получим, что мы распознали лицо. Условно все эти части можно разделить на три класса, мы их обозначим X, W и Y, где Х — это наше входное изображение, Y — это набор лейблов, и нам нужно получить наши веса. Как мы вычислим W?

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

https://habrastorage.org/files/a42/a3c/af5/a42a3caf5c47498d82162522bf3f6219.png

Рисунок 4

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

https://habrastorage.org/files/c08/c18/1fe/c08c181fe22d4b21a9bff765e25ca7b0.png

Рисунок 5

Перед вами первая сеть, которая победила на международном соревновании ImageNet в 2012 году. Это так называемый AlexNet. Это сеть, которая впервые заявила о себе, о том, что существует convolutional neural networks и с тех самых пор на всех международных состязаниях уже convolutional neural nets не сдавали своих позиций никогда. Несмотря на то, что эта сеть достаточно мелкая (в ней всего 7 скрытых слоёв), она содержит 650 тысяч нейронов с 60 миллионами параметров.

Для того, чтобы итеративно научиться находить нужные веса, нам нужно очень много примеров. Нейронная сеть учится на примере картинки и лейбла. Как нас в детстве учат «это кошка, а это собака», так же нейронные сети обучаются на большом количестве картинок. Но дело в том, что до 2010 не существовало достаточно большого data set’a, который способен был бы научить такое количество параметров распознавать изображения.

Самые большие базы данных, которые существовали до этого времени: PASCAL VOC, в который было всего 20 категорий объектов, и Caltech 101, который был разработан в California Institute of Technology. В последнем была 101 категория, и это было много. Тем же, кто не сумел найти свои объекты ни в одной из этих баз данных, приходилось стоить свои базы данных, что, я скажу, страшно мучительно.

Однако, в 2010 году появилась база ImageNet, в которой было 15 миллионов изображений, разделённые на 22 тысячи категорий. Это решило нашу проблему обучения нейронных сетей. Сейчас все желающие, у кого есть какой-либо академический адрес, могут спокойно зайти на сайт базы, запросить доступ и получить эту базу для тренировки своих нейронных сетей.

Они отвечают достаточно быстро, по-моему, на следующий день. По сравнению с предыдущими data set’ами, это очень большая база данных.


https://habrastorage.org/files/9cd/4f2/2ce/9cd4f22ceafd4d2f874cd387577b71b5.png

Рисунок 6

На примере видно, насколько было незначительно все то, что было до неё. Одновременно с базой ImageNet появилось соревнование ImageNet, международный challenge, в котором все команды, желающие посоревноваться, могут принять участие.

В этом году победила сеть, созданная в Китае, в ней было 269 слоёв. Не знаю, сколько параметров, подозреваю, тоже много.

2.3 Архитектура глубинной нейронной сети

Условно ее можно разделить на 2 части: те, которые учатся, и те, которые не учатся. Чёрным обозначены те части, которые не учатся, все остальные слои способны обучаться. Существует множество определений того, что находится внутри каждого сверточного слоя. Одно из принятых обозначений — один слой с тремя компонентами разделяют на convolution stage, detector stage и pooling stage.

Не буду вдаваться в детали, еще будет много докладов, в которых подробно рассмотрено, как это работает. Расскажу на примере. Поскольку организаторы просили меня не упоминать много формул, я их выкинула совсем.

https://habrastorage.org/files/223/8ad/beb/2238adbeba5d4bc68971438992e852e0.png

Рисунок 7

Итак, входное изображение попадает в сеть слоёв, которые можно назвать фильтрами разного размера и разной сложности элементов, которые они распознают. Эти фильтры составляют некий свой индекс или набор признаков, который потом попадает в классификатор. Обычно это либо SVM, либо MLP — многослойный перцептрон, кому что удобно.

По образу и подобию с биологической нейронной сетью объекты распознаются разной сложности. По мере увеличения количества слоёв это все потеряло связь с cortex’ом, поскольку там ограничено количество зон в нейронной сети. 269 или много-много зон абстракции, поэтому сохраняется только увеличение сложности, количества элементов и рецептивных полей.


https://habrastorage.org/files/454/932/e63/454932e63d134b879a854e454cef6b9b.png

Рисунок 8

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

https://habrastorage.org/files/dbc/c4a/225/dbcc4a225a234a24b42cc13232a8ef44.png

Рисунок 9

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

Есть люди, которые утверждают, что человек всегда распознаёт лучше, чем сеть. Так ли это? В 2014 году ученые решили проверить, насколько мы хорошо распознаем в сравнении с нейронными сетями. Они взяли 2 самые лучшие на данный момент сети — это AlexNet и сеть Мэттью Зиллера и Фергюса, и сравнили с откликом разных зон мозга макаки, которая тоже была научена распознавать какие-то объекты. Объекты были из животного мира, чтобы обезьяна не запуталась, и были проведены эксперименты, кто же распознаёт лучше. Так как получить отклик от мартышки внятно невозможно, ей вживили электроды и мерили непосредственно отклик каждого нейрона.

Оказалось, что в нормальных условиях клетки мозга реагировали так же хорошо, как и state of the art model на тот момент, то есть сеть Мэттью Зиллера.

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

2.4 Классические задачи сверточных нейронных сетей

Их на самом деле не так много, они относятся к трём классам. Среди них — такие задачи, как идентификация объекта, семантическая сегментация, распознавание лиц, распознавание частей тела человека, семантическое определение границ, выделение объектов внимания на изображении и выделение нормалей к поверхности. Их условно можно разделить на 3 уровня: от самых низкоуровневых задач до самых высокоуровневых задач.


https://habrastorage.org/files/fce/b04/d2d/fceb04d2d7e04f4b9cac4fd30108cc3e.png

Рисунок 10

На примере этого изображения рассмотрим, что делает каждая из задач.

  • Определение границ — это самая низкоуровневая задача, для которой уже классически применяются сверточные нейронные сети.
  • Определение вектора к нормали позволяет нам реконструировать трёхмерное изображение из двухмерного.
  • Saliency, определение объектов внимания — это то, на что обратил бы внимание человек при рассмотрении этой картинки.
  • Семантическая сегментация позволяет разделить объекты на классы по их структуре, ничего не зная об этих объектах, то есть еще до их распознавания.
  • Семантическое выделение границ — это выделение границ, разбитых на классы.
  • Выделение частей тела человека.
  • И самая высокоуровневая задача — распознавание самих объектов, которое мы сейчас рассмотрим на примере распознавания лиц.

Распознавание лиц

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

Затем мы можем этот вектор признаков сравнить со всеми векторами признаков, которые хранятся у нас в базе данных, и получить отсылку на конкретного человека, на его имя, на его профиль — всё, что у нас может храниться в базе данных. Именно таким образом работает наш продукт FindFace — это бесплатный сервис, который помогает искать профили людей в базе «ВКонтакте». Кроме того, у нас есть API для компаний, которые хотят попробовать наши продукты. Мы предоставляем сервис по детектированию лиц, по верификации и по идентификации пользователей.

Сейчас у нас разработаны 2 сценария. Первый — это идентификация, поиск лица по базе данных. Второе — это верификация, это сравнение двух изображений с некой вероятностью, что это один и тот же человек. Кроме того, у нас сейчас в разработке распознавание эмоций, распознавание изображений на видео и liveness detection — это понимание, живой ли человек перед камерой или фотография. Немного статистики. При идентификации, при поиске по 10 тысячам фото у нас точность около 95% в зависимости от качества базы, 99% точность верификации.

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

Очень быстрый поиск, затрачивается 0,5 секунд на обработку 1 миллиарда фотографий. Нами разработан уникальный индекс быстрого поиска. Также мы можем работать с изображениями низкого качества, полученных с CCTV-камер. Мы можем обрабатывать это все в режиме реального времени. Можно загружать фото через веб-интерфейс, через Android, iOS и производить поиск по 100 миллионам пользователей и их 250 миллионам фотографий.

Как я уже говорила мы заняли первое место на MegaFace competition — аналог для ImageNet, но для распознавания лиц. Он проводится уже несколько лет, в прошлом году мы были лучшими среди 100 команд со всего мира, включая Google.

Recurrent neural networks мы используем тогда, когда нам недостаточно распознавать только изображение. В тех случаях, когда нам важно соблюдать последовательность, нам нужен порядок того, что у нас происходит, мы используем обычные рекуррентные нейронные сети. Это применяется для распознавания естественного языка, для обработки видео, даже используется для распознавания изображений. 

Про распознавание естественного языка я рассказывать не буду — после моего доклада еще будут два, которые будут направлены на распознавание естественного языка. Поэтому я расскажу про работу рекуррентных сетей на примере распознавания эмоций. Что такое рекуррентные нейронные сети? Это примерно то же самое, что и обычные нейронные сети, но с обратной связью. Обратная связь нам нужна, чтобы передавать на вход нейронной сети или на какой-то из ее слоев предыдущее состояние системы.

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

https://habrastorage.org/files/2ef/5fd/649/2ef5fd64907e44f198ad0666cec3612e.png

Рисунок 11

В 2005 году на состязании Emotion Recognition in the Wild специально для распознавания эмоций команда из Монреаля представила рекуррентную систему, которая выглядела очень просто. У нее было всего несколько свёрточных слоев, и она работала исключительно с видео. В этом году они добавили также распознавание аудио и cагрегировали покадровые данные, которые получаются из convolutional neural networks, данные аудиосигнала с работой рекуррентной нейронной сети (с возвратом состояния) и получили первое место на состязании.

Заключение

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

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

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

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

Список использованной литературы

  1. Барский, А.Б. Логические нейронные сети: Учебное пособие / А.Б. Барский. - М.: БИНОМ. ЛЗ, ИНТУИТ.РУ, 2012. - 352 c.
  2. Барский, А.Б. Логические нейронные сети: Учебное пособие / А.Б. Барский. - М.: Бином, 2015. - 552 c.
  3. Барский Л.Б., Шилов В.В. SPMD-архитектура и параллельная обработка структур данных. - Приложение к журналу "Информационные технологии». 2016. - № 6.
  4. Барский Л.Б., Шилов В.В. SPMD-архитектура и параллельный логический вывод. - Приложение к журналу «Информационные технологии». - 2016. - № 12.
  5. Барский А.Б. Параллельные технологии решения оптимизационных задач. - Приложение к журналу "Информационные технологии». - 2015. - № 2.
  6. Барский А.Б. Обучение нейросети методом трассировки. Труды VIII Всеросс. конф. «Нейрокомпьютеры и их применение», 2015.
  7. Головкин Б.А. Параллельные вычислительные системы. - М.: Наука, 2016г.
  8. Галушкин, А.И. Нейронные сети: основы теории / А.И. Галушкин. - М.: ГЛТ, 2015. - 496 c.
  9. Галушкин, А.И. Нейронные сети: основы теории. / А.И. Галушкин. - М.: РиС, 2016. - 496 c.
  10. Галушкин, А.И. Нейронные сети: основы теории. / А.И. Галушкин. - М.: РиС, 2015. - 496 c.
  11. Галушкин, А.И. Нейронные сети: история развития теории: Учебное пособие для вузов. / А.И. Галушкин, Я.З. Цыпкин. - М.: Альянс, 2015. - 840 c.
  12. Редько, В.Г. Эволюция, нейронные сети, интеллект: Модели и концепции эволюционной кибернетики / В.Г. Редько. - М.: Ленанд, 2015. - 224 c.
  13. Рутковская, Д. Нейронные сети, генетические алгоритмы и нечеткие системы / Д. Рутковская, М. Пилиньский, Л. Рутковский. - М.: РиС, 2013. - 384 c.
  14. Ширяев, В.И. Финансовые рынки: Нейронные сети, хаос и нелинейная динамика: Учебное пособие / В.И. Ширяев. - М.: ЛИБРОКОМ, 2013. - 232 c.
  15. Ширяев, В.И. Финансовые рынки: Нейронные сети, хаос и нелинейная динамика: Учебное пособие / В.И. Ширяев. - М.: КД Либроком, 2015. - 232 c.
  16. Ширяев, В.И. Финансовые рынки: Нейронные сети, хаос и нелинейная динамика / В.И. Ширяев. - М.: КД Либроком, 2016. - 232 c.
  17. Яхъяева, Г.Э. Нечеткие множества и нейронные сети: Учебное пособие / Г.Э. Яхъяева. - М.: БИНОМ. ЛЗ, ИНТУИТ.РУ, 2015. - 316 c.
  1. Барский Л.Б., Шилов В.В. SPMD-архитектура и параллельная обработка структур данных. - Приложение к журналу "Информационные технологии». 2016. - № 6.

  2. Ширяев, В.И. Финансовые рынки: Нейронные сети, хаос и нелинейная динамика: Учебное пособие / В.И. Ширяев. - М.: КД Либроком, 2015. - 232 c.

  3. Барский, А.Б. Логические нейронные сети: Учебное пособие / А.Б. Барский. - М.: БИНОМ. ЛЗ, ИНТУИТ.РУ, 2012. - 352 c.

  4. Галушкин, А.И. Нейронные сети: основы теории. / А.И. Галушкин. - М.: РиС, 2016. - 496 c.

  5. Яхъяева, Г.Э. Нечеткие множества и нейронные сети: Учебное пособие / Г.Э. Яхъяева. - М.: БИНОМ. ЛЗ, ИНТУИТ.РУ, 2015. - 316 c.

  6. Редько, В.Г. Эволюция, нейронные сети, интеллект: Модели и концепции эволюционной кибернетики / В.Г. Редько. - М.: Ленанд, 2015. - 224 c.

  7. Галушкин, А.И. Нейронные сети: основы теории / А.И. Галушкин. - М.: ГЛТ, 2015. - 496 c.