Написать нам
Категория: Нейронные сети
30.09.2022

Плюсы и Минусы Архитектуры Нейронной Сети

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

Что такое нейронные сети



Нейронные сети (NNs), или искусственные нейронные сети (ANNs) — это обобщенное название для математических моделей и программ, построенных по принципу организации и функционирования биологических нейронных сетей — сетей нейронов человеческого мозга. Главная особенность искусственных нейросетей, из-за которой они стали настолько популярны, — способность обучаться и действовать на основе прошлого опыта, а не только по заранее прописанным алгоритмам.



Нейронные сети часто воспринимают как что-то новое и революционное. Однако разработки в этой области начались еще в первой половине прошлого века, после того как Уоррен МакКаллох и Уолтер Питтс в 1943 году сумели создать первую математическую модель принципов работы нейрона. В свой работе «Representation of Events in Nerve Nets and Finite Automata» ученые описали в виде функций простую математическую модель, которая работает как биологический нейрон: принимает входные данные, обрабатывает их и возвращает результат.





Модель нейрона МакКаллоха —  Питтса


В 1957 году Фрэнк Розенблатт, используя работы Уоррена МакКаллоха и Уолтера Питтса, а также Дональда Хебба (предложил первый алгоритм обучения), изобрел перцептрон — воспринимающий и распознающий автомат. И хотя этот автомат был задуман как машина, а не программа, но считается, что именно он является первой искусственной нейронной сетью. При этом сам термин «перцептрон» впоследствии стал использоваться как синоним простейшей искусственной нейронной сети.



Следующий существенный прорыв в области ANNs произошел лишь спустя 60 лет: в 2006 году Джеффри Хинтон описал алгоритмы глубокого обучения многослойных ANNs на базе restricted Boltzmann machine, или RBM (ограниченной машины Больцмана). При этом Хинтон также сформулировал основную концепцию обучения алгоритмов нейронных сетей:  чтобы получить готовое быстро работающее решение для решения конкретной задачи, NN нужно обучать на множестве реальных примеров (например, фотографий различных кошек в разных позах и на разных фонах).





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


Благодаря глубокому обучению  (и большим данным) ANNs стали по-настоящему обучаемы. Так, уже в 2012 году нейронная сеть смогла превзойти человека в распознавании изображений в рамках конкурса ImageNet. А в 2015 году AlphaGo стала первой в мире программой, которая сумела выиграть в шахматы у профессионального игрока без гандикапа (безоговорочно).

Как работает нейронная сеть



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



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



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





Упрощенная модель работы искусственной нейронной сети


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

Основные типы нейронных сетей



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



Перцептрон. Старейшая нейронная сеть, созданная Фрэнком Розенблаттом в далеком 1957 году. Она состоит всего из одного нейрона и представляет собой простейшую форму искусственной нейронной сети.





Перцептрон Фрэнка Розенблатта


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





Архитектура нейронной сети с прямой связью


Рекуррентные нейронные сети (RNN). Идентифицируются по петлям обратной связи. Такого рода нейронные сети используются для порядковых или временных задач, например для прогнозирования будущих результатов: прогнозы фондового рынка или прогнозирование продаж сети магазинов. Кроме этого, они также хорошо справляются с языковым переводом, обработкой естественного языка (NLP) или распознаванием речи, поэтому они включены в Siri и Google Translate.





Архитектура рекуррентных нейронных сетей


Сверточные нейронные сети (ConvNets, или CNN). Состоят из сверточного слоя, объединенного слоя и полносвязного (FC) уровня. Эти нейронные сети используют принципы линейной алгебры (например, матричное умножение) для поиска скрытых закономерностей в изображении, видео или аудио. Причем работают CNN с такими данными с невероятной скоростью, поэтому их часто используют для задач, где нужно в режиме реального времени распознавать изображения и образы.

Преимущества нейронных сетей



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



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



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



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



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



Отказоустойчивость. Решения на базе нейронных сетей остаются работоспособными даже после выхода из строя части нейронов. Да, это может повлиять на точность и/или скорость работы алгоритма, но ее ответы будут по-прежнему логичны, рациональны и правильны. Это очень полезное свойство, если устройство с нейронной сетью на борту должно работать в агрессивной среде (радиоактивных зонах, на войне, в разрушенных зданиях или космосе).



Большие возможности. Еще одно ключевое преимущество ANNs — широкие возможности применения. Нейронные сети работают как человеческий мозг, то есть после обучения они могут выполнять самые разные задачи в самых разных областях — от повышения конверсии в онлайн-магазине до поиска планет, похожих на Землю, в космосе. Главное, чтобы было достаточно наборов реальных или синтетических данных для обучения.



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

Недостатки нейронных сетей



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