// Нейронные сети

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

Содержание

#1. Что такое нейронные сети
#2. Как работает нейронная сеть
#3. Основные типы нейронных сетей
#4. Преимущества нейронных сетей
#5. Недостатки нейронных сетей
#6. Краткое заключение

Появились вопросы?
Олег Колесников
Автор статьи
Merehead занимается разработкой веб проектов

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

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

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

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

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

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

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

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

Neural network architecture (left) and deep learning neural network (right). The circles represent artificial neurons, the lines represent the network of connections between them.

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

Благодаря глубокому обучению  (и большим данным) 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 является их природа «черного ящика». Проще говоря, вы не знаете, как и почему ваша нейронная сеть приходит к тому или иному результату. Например, когда вы помещаете в нейронную сеть фото кота и она вам говорит, что это самолет, очень сложно понять, что заставило ее прийти к такому выводу. Вы просто не знаете, что происходит внутри «мозга» нейросети.

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

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

Это огромная проблема для изучения принципов работы нейронной сети. И также это большая проблема для интеграции этой технологии в некоторые сферы бизнеса. К примеру, именно по этой причине многие банки не используют NN для прогнозирования кредитоспособности — им нужно объяснить клиентам, почему они не получили кредит, иначе человек может почувствовать себя несправедливо обиженным или даже дискриминируемым по расовому, половому и / или национальному признаку (такие случаи с ИИ уже случались, и не раз).

То же самое относится и к таким сайтам, как YouTube, Facebook, TikTok или Quora. Если алгоритм машинного обучения удалит учетную запись пользователя, платформа должна будет объяснить почему. Вряд ли он будет удовлетворен фразой: «Нам так сказал компьютер». Это чревато судебными исками.

Вероятностный характер ответов. Но и это еще не все. Если вы введете изображение в нейронную сеть, а затем спросите ее: «Это кошка, собака или что-то иное?», вы, вероятно, захотите получить ответ: это либо кошка, либо собака, либо что-то иное. Но в действительности даже очень хорошо обученная нейронная сеть не даст таких чистых результатов. Скорее всего, это будет что-то вроде: кошка — 0,97, собака — 0,01, что-то другое — 0,02. Эти результаты можно интерпретировать как вероятности. В нашем случае это означает, что вероятность того, что на фотографии изображена кошка, равна 97%, для собаки эта вероятность равна 1%, для чего-то еще — 2%.

Пример ответа «черного ящика» искусственной нейронной сети

Пример ответа «черного ящика» искусственной нейронной сети

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

Продолжительность разработки. Хотя есть множество таких библиотек, как NeuroLab, ffnet, SciPy, TensorFlow, Scikit-Neural Network, Lasagne, pyrenn, NumPy, Spark MLlib, Scikit-Learn, Theano, PyTorch, Keras, которые помогают сэкономить время и усилия при разработке искусственных нейронных сетей, они не всегда применимы. Например, если вам нужно создать какое-то новое или довольно сложное решение, требующее больше контроля над деталями алгоритма.

Алгоритм разработки искусственных нейронных сетей.

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

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

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

Именно поэтому сейчас новые искусственные нейронные сети (ИИ-решения) разрабатывают в основном крупные компании (Google, Microsoft, IBM), которые имеют не только много денег и доступ к высококлассным программистам, но и к большим данным. Малый и средний бизнес здесь им не конкурент.

Вычислительно дорого. Современные алгоритмы глубокого обучения на базе искусственных нейронных сетей требуют нескольких недель, а иногда и лет для обучения с нуля. Тогда как для обучения большинства традиционных алгоритмов машинного обучения требуется гораздо меньше времени: от нескольких минут до нескольких часов. К примеру, нейронная сеть с 50 слоями будет намного медленнее, чем Random Forest Algorithm (это ансамблевый метод обучения для классификации, регрессии и других задач) всего с 10 деревьями.

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

Краткое заключение

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

Есть вопросы? Задайте их здесь

Имя *
Email *
Телефон
Ваш бюджет
Сообщение
TorMarket - маркетплейс с гибкой системой фильтрации и удобным кабинетом для поставщиков.

  Category: Нейронные сети 09/21/2022
Нейронные Сети в Сфере Здравоохранения: 10 Вариантов Использования
Рынок искусственного интеллекта в здравоохранении был оценен в 8,23 миллиарда долларов в 2020 году и, по прогнозам, достигнет 194,4 миллиарда долларов к 2030 году, увеличившись в среднем на 38,1% с 2021 по 2030 год. При этом главным драйвером роста рынка станут искусственные нейронные сети, поскольку именно благодаря им цифровой  «разум» может настолько быстро и эффективно обучаться. В этой статье мы расскажем, как именно искусственные нейронные сети сегодня используются в медицине.
  Category: Нейронные сети 09/21/2022
Как Внедрить Нейронные Сети в Бизнес?
За последние пятнадцать лет нейронные сети (они же искусственные нейронные сети, или ANNs) прошли путь от «сырой» технологии до самого многообещающего инструмента, способного улучшить почти все процессы человеческой деятельности — от оптимизации логистики и прогнозирования спроса до создания картин и игры в шахматы. Поэтому не удивительно, что эксперты прогнозируют рост мирового рынка нейронных сетей с $14,35 млрд в 2020 году до $152,61 млрд к 2030 году с CAGR на уровне 26,7% в год, — государства и бизнес увидели преимущества ANNs и спешат использовать их, чтобы оптимизировать свои процессы и обойти конкурентов.