Чему в россии обучают нейронные сети. Искусственный интеллект и нейронные сети Как работает нейронная сеть искусственный интеллект

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

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

“Мы перестаём брать на работу юристов, которые не знают, что делать с нейронной сетью. <...> Вы - студенты вчерашнего дня. Товарищи юристы, забудьте свою профессию. В прошлом году 450 юристов, которые у нас готовят иски, ушли в прошлое, были сокращены. У нас нейронная сетка готовит исковые заявления лучше, чем юристы, подготовленные Балтийским федеральным университетом. Их мы на работу точно не возьмем.”

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

Искусственный интеллект, машинное обучение и нейросети: в чем разница

Нейронная сеть – один из способов реализации искусственного интеллекта (ИИ) .

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

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

Чтобы не запутаться в понятиях «искусственный интеллект», «машинное обучение» и «глубокое обучение», предлагаем посмотреть на визуализацию их развития:

#интересное Существует два типа искусственного интеллекта (ИИ): слабый (узконаправленный) и сильный (общий). Слабый ИИ предназначен для выполнения узкого списка задач. Такими являются голосовые помощники Siri и Google Assistant и все остальные примеры, которые мы приводим в этой статье. Сильный ИИ, в свою очередь, способен выполнить любую человеческую задачу. На данный момент реализация сильного ИИ невозможна, он является утопической идеей.

Как устроена нейросеть

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

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

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

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


История нейросетей

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

А уже в 1958 году Фрэнк Розенблатт разработал первую нейронную сеть. Несмотря на свою простоту, она уже могла различать, например, объекты в двухмерном пространстве.

Mark I Perceptron - машина Розенблатта

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

Почему нейросети вновь популярны

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

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


Размер ImageNet в сравнении с другими существовавшими в 2010 году базами изображений

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

Результатов в решении этой проблемы в 2006 году добились три независимых группы ученых. Во-первых, Джеффри Хинтон реализовал предобучение сети при помощи машины Больцмана , обучая каждый слой отдельно. Во-вторых, Ян ЛеКан предложил использование сверточной нейронной сети для решения проблем распознавания изображений. Наконец, Иошуа Бенджио разработал каскадный автокодировщик, позволивший задействовать все слои в глубокой нейронной сети.

Примеры успешного применения нейросетей в бизнесе

Медицина

Команда исследователей из Ноттингемского университета разработала четыре алгоритма машинного обучения для оценки степени риска сердечно-сосудистых заболеваний пациентов. Для обучения использовались данные 378 тыс. британских пациентов. Обученный искусственный интеллект определял риск кардиологических заболеваний эффективнее реальных врачей. Точность алгоритма - между 74 и 76,4 процентами (стандартная система из восьми факторов, разработанная Американской коллегией кардиологии, обеспечивает точность лишь в 72,8%)

Финансы

Японская страховая компания Fukoku Mutual Life Insurance заключила контракт с IBM. Согласно нему, 34 сотрудников японской компании заменит система IBM Watson Explorer AI . Нейросеть будет просматривать десятки тысяч медицинских сертификатов и учитывать число посещений госпиталей, перенесенные операции и другие факторы для определения условий страхования клиентов. В Fukoku Mutual Life Insurance уверены, что использование IBM Watson повысит продуктивность на 30% и окупится за два года.

Машинное обучение помогает распознавать потенциальные случаи мошенничества в различных сферах жизни. Подобный инструмент использует, например, PayPal – в рамках борьбы с отмыванием денег компания сравнивает миллионы транзакций и обнаруживает среди них подозрительные. В результате, мошеннические транзакции в PayPal составляют рекордно низкие 0,32%, тогда как стандарт в финансовом секторе - 1,32%.

Продолжение аналитической записки доступно по ссылке:

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

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

Как все начиналось

Прошло много лет прежде чем в 50-е годы XX века Фрэнк Розенблатт изобрел персептрон - математическую модель связанных объектов, где входным сигналом для одного объекта служили выходные сигналы от других.

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

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

Дальнейшее развитие теории нейросетей переживало многочисленные взлеты и падения на протяжении десятилетий. Среди наиболее известных открытий были первая модель искусственного интеллекта - Logic Theorist (LT, «логический теоретик»), изобретенная в 1956 году Алленом Ньюуэлом и Гербертом Саймоном, и «Элиза» - программа, поддерживающая разговор на английском языке на любую тему, созданная в 1965 году Джозефом Вайзенбаумом. Однако оказалось, что компьютерные возможности того времени не позволяли применять нейронные сети для более практических целей. В частности, для распознавания техники вероятного противника, на что так надеялись военные.

На 1990-е годы пришелся новый расцвет нейросетей. Достижения исследователей в области Data Mining (извлечения данных), машинного понимания и перевода языка, компьютерного зрения и других областях снова сделали актуальными изучение возможностей искусственного интеллекта. Развитие скорости процессоров и снижение стоимости памяти дали ученым возможность обучать нейросети быстрее и на более или менее реальных задачах. Но оказалось, что данных и ресурсов для обучения было мало, нейросети были «недостаточно разумны» - выдавали большой процент ошибок. Поэтому они нашли применение в специализированных задачах, например, распознавании символов, а общий интерес к искусственному интеллекту снова упал.

Нейроны человека и нейросети

Имеют ли нейросети какое-то отношение к нейронам в голове человека и можно ли называть их интеллектом?

Современное представление о процессе мышления человека основывается на том, что нейроны в коре головного мозга могут связываться друг с другом своими отростками-аксонами, периодически получая от «соседей» сигналы и переходя из базового в возбужденное состояние. В головном мозге человека насчитывается около 85-86 млрд нейронов, и один нейрон может иметь связи со многими (до 20 тысяч) другими нейронами. Тот факт, что эта структура способна мыслить, всегда привлекал внимание ученых.

Термин «искусственный интеллект» («artificial intelligence») был изобретен и впервые озвучен в 1956 году американским ученым Джоном Маккарти. В описание модели персептрона, о которой было рассказано выше, уже в 50-х – 60-х были введены статистические понятия узлов, сети и весов, и эти узлы под влиянием работ того времени по изучению человеческого мозга назвали нейронами.

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

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

Наши дни

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

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

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

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


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


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

Немного истории

Впервые понятие искусственных нейронных сетей (ИНС) возникло при попытке смоделировать процессы головного мозга. Первым серьезным прорывом в этой сфере можно считать создание модели нейронных сетей МакКаллока-Питтса в 1943 году. Учеными впервые была разработана модель искусственного нейрона. Ими также была предложена конструкция сети из этих элементов для выполнения логических операций. Но самое главное, учеными было доказано, что подобная сеть способна обучаться.

Следующим важным шагом стала разработка Дональдом Хеббом первого алгоритма вычисления ИНС в 1949 году, который стал основополагающем на несколько последующих десятилетий. В 1958 году Фрэнком Розенблаттом был разработан парцептрон - система, имитирующая процессы головного мозга. В свое время технология не имела аналогов и до сих пор является основополагающей в нейронных сетях. В 1986 году практически одновременно, независимо друг от друга американскими и советскими учеными был существенно доработан основополагающий метод обучения многослойного перцептрона . В 2007 году нейронные сети перенесли второе рождение. Британский информатик Джеффри Хинтоном впервые разработал алгоритм глубокого обучения многослойных нейронных сетей, который сейчас, например, используется для работы беспилотных автомобилей.

Коротко о главном

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

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

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

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

Сегодняшнее положение

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

На сегодняшний день рынок нейронных сетей огромен - это миллиарды и миллиарды долларов. Как показывает практика, большинство технологий нейросетей по всему миру мало отличаются друг от друга. Однако применение нейросетей - это очень затратное занятие, которое в большинстве случаев могут позволить себе только крупные компании. Для разработки, обучения и тестирования нейронных сетей требуются большие вычислительные мощности, очевидно, что этого в достатке имеется у крупных игроков на рынке ИТ. Среди основных компаний, ведущих разработки в этой области можно отметить подразделение Google DeepMind, подразделение Microsoft Research, компании IBM, Facebook и Baidu.

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

Почему нейросети еще далеки до человеческого мозга?

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

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

Итог

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

Для тех, кто хочет знать больше

  • Большая нейронная война: что на самом деле затевает Google
  • Как когнитивные компьютеры могут изменить наше будущее

Ключ к успеху развития искусственного интеллекта– нейробиология. Как именно ученые пытаются воспроизвести работу человеческого мозга и в чем особенность работы нейронных сетей - в материале «Футуриста».

Нейробиология и искусственный интеллект

«Будущее искусственного интеллекта - в нейробиологии», - так утверждает основатель Google DeepMind, доктор нейробиологии Демис Хассабис (Demis Hassabis) в статье, опубликованной в журнале Neuron. Хасабис запустил свою лондонскую компанию DeepMind для создания технического аналога человеческого интеллекта , а в 2014 году Google купил его компанию за более чем $500 млн. В прошлом году AlphaGo, разработанная DeepMind программа, обыграла чемпионов мира в логическую игру го. В сотрудничестве с OpenAI, некоммерческим исследовательским институтом ИИ, поддерживаемым Илоном Маском , компания также работает над созданием машин с более развитыми интеллектуальными возможностями.

Все алгоритмы искусственного интеллекта компании DeepMind основаны на концепциях, впервые обнаруженных в нашем собственном мозге. Глубинное обучение и обучение с подкреплением - два столпа современного ИИ - являются результатом свободного переложения модели работы биологических нейронных связей человеческого мозга на язык формальной математики. Глубинное обучение на самом деле является лишь новым названием подхода к искусственному интеллекту, существующему уже более 70 лет и известному как нейронные сети. Нейронные сети были впервые предложены еще в 1944 году Уорреном Маккалоу (Warren McCullough) и Уолтером Питсом (Walter Pitts), двумя исследователями из Чикагского университета, которые в 1952 году основали, как его иногда называют, первый отдел когнитивной науки.

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

Схема устройства нейросети

Особенность работы нейронных сетей

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

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


Пример обучения сети

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

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

Будущее уже здесь

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

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


Модель нейрона, обработанная в приложении Prisma

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

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

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

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

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

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

Проблема обучения ИИ

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

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

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

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

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

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

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

Но лучшее еще впереди

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

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

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

Конечно, маловероятно, что ИИ и мозг всегда будут работать по одной схеме. Но мы можем воспринимать ИИ как прикладную вычислительную нейробиологию, говорит Хассабис. Сравнение алгоритмов ИИ с человеческим мозгом «может дать понимание некоторых самых глубоких тайн разума».

В этой главе я в общих чертах расскажу о предмете данного учебника (и сайта) - искусственных нейронных сетях. Что это такое, какими преимуществами они обладают и так далее.

Популярность

Тема машинного обучения, интеллектуальных алгоритмов и искусственного интеллекта чрезвычайно популярна в наше время. Это легко можно увидеть, наблюдая за новостями на различных IT порталах. Подтверждает это и статистика. На графиках ниже представлены данные сервиса Google Trends с 2005(9) по настоящее время.

Поиск в интернете по машинному обучению (мир):

Новости по той же теме (мир):

Новости по искусственному интеллекту (мир):

Новости по искусственному интеллекту (Россия):

Как видно, тема известная.

Терминология

Разберемся с терминологией. Что такое искусственный интеллект, машинное обучение и искусственные нейронные сети. Как они связаны?

Начнем с самого важного, с искусственного интеллекта.

Искусственный интеллект (ИИ) (Artificial intelligence, AI ):

1. наука о создании интеллектуальных (умных) машин (чаще всего - компьютерных программ).

2. свойство интеллектуальной системы выполнять творческие функции, которые считаются прерогативой человека.

В обоих определениях выше присутствует словосочетание «интеллектуальная машина (система)». Поясню его подробнее. Интеллектуальная машина - система (например, программа), способная выполнять задачи, считающиеся творческими.

Другими словами искусственный интеллект и наука о творческих системах, и сама способность «творить» этих систем.

Теперь настала очередь разобраться с термином «машинное обучение».

Машинное обучение (Machine learning ) - подраздел искусственного интеллекта, изучающий различные способы построения обучающихся алгоритмов.

Под обучающимися алгоритмами понимаются алгоритмы, которые меняются (обучаются) каким-то образом в зависимости от входных данных.

Машинное обучение - очень обширная область знаний. Можно ведь по-разному определять слово «обучение» и каждый раз получать интересные результаты. Однако среди множества парадигм и подходов в машинном обучении выделяется одна очень интересная область - искусственные нейронные сети.

Искусственные нейронные сети (ИНС) (Artificial neural networks, ANN ) - упрощенные модели биологических нейронных сетей.

Среди множества вариантов обучающихся алгоритмов особенно выделяют нейросети

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

В целом об ИНС

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

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

Зададимся вопросом. А что такое биологические нейронные сети? Если вы помните школьную программу по биологии, то ответ скорее всего сразу пришел вам в голову. Вообще-то «голова» и есть один из ответов на этот вопрос. Точнее не голова, а наши мозги. Мозги есть не только у нас, но и у многих других животных. У животных без мозгов (медузы, черви) все равно есть нервная система.

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

Теперь задумаемся. А из чего состоит нервная система или мозг? Ответ очевиден - из нейронов. Наш мозг, как и любая биологическая нейронная сеть, состоит из совокупности нейронов. Строение биологического нейрона показано на рисунке ниже.

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

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

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

Искусственный нейрон
(Artificial neuron ) - упрощенная модель биологического нейрона.

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

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

Таким образом логично приходим к другому определению ИНС.

Искусственная нейронная сеть (ИНС) - совокупность взаимодействующих между собой искусственных нейронов.

Почему нейросети работают?

Рассмотрим на ознакомительном уровне один важный вопрос. Почему нейросети работают (то есть могут решать задачи)? Ответ на этот вопрос не самый очевидный.

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

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

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

Синапс (Synapsis ) - место стыка выхода одного нейрона и входа другого, в котором происходит усиление/ослабление сигнала.

На рисунке ниже цветом выделены синапсы (в центре сверху на картинке можно увидеть один из синапсов в деталях). Красный цвет - главный нейрон на картинке. Желтый цвет - выходы соседних нейронов.

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

У каждого биологического нейрона тысячи входов. Каждый из них соединен с выходами других нейронов. Значит, имеем тысячи синапсов на каждый нейрон. Помножим это число на миллиарды нейронов в биологических нейросетях (в головном мозге 85 миллиардов нейронов!). Получаем огромное число синапсов.

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

Именно так и происходит преобразование множества входных сигналов в верное решение на выходе.

Уровень сложности нейросетей

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

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

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

Как видите, до человека еще достаточно далеко. Более того, здесь используется логарифмическая шкала. Не вдаваясь в подробности можно сказать, что даже очень маленькое перемещение по диагонали на данном графике означает увеличение в миллионы раз количества синапсов и скорости работы.

Где используются нейросети?

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

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

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

Проблемы малой/средней сложности, которые точно известно, как решать:

  • решить простое уравнение
  • вывести на экране окно программы
  • распечатать документ на принтере

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

Проблемы малой/средней сложности, которые частично известно, как решать:

  • простейшее прогнозирование
  • расчет погрешностей
  • приближенное решение уравнений

Такие задачи можно решать при помощи специальных статистических методов.

Проблемы высокой сложности, которые непонятно, как решать:

  • распознавание образов
  • распознавание речи
  • сложные прогнозы

На этом типе задач я остановлюсь подробнее.

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

А теперь вы поставили себе задачу - написать компьютерную программу, которая по данной картинке распознает лица. Можно даже проще. Попробуйте накидать приблизительный алгоритм распознавания лиц на бумаге. У вас ничего не выйдет. И все потому, что вы на бессознательном уровне распознаете лица, а бессознательное вы контролировать не можете. Делаете, но не знаете как.

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

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

Нейронные сети применяют для решения задач, алгоритм решения которых неизвестен .

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

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

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

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

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

Устойчивость к шумам входных данных

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

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

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

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

Адаптация к изменениям

Представьте, что вы математик. Вы решаете уравнения с помощью каких-то компьютерных программ.

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

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

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

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

Отказоустойчивость

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

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

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

Сверхвысокое быстродействие

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

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

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

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

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

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

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

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

Перечислим их.

Ответ всегда приблизительный

Начнем с человеческого мозга.

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

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

Вы этого не замечаете, но на самом деле вы строите что-то типо таблички вероятностей у себя в голове и говорите, что, скорее всего (бессознательно выбрали наиболее вероятный результат), во 2 прямоугольнике написано «но». В случае же первого прямоугольника вы говорите, что, непонятно, что там (вероятности почти равны), но, мне кажется (выбираете случайным образом), что там написана буква «о».

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

Нейронные сети не способны давать точные и однозначные ответы.

Принятие решений в несколько этапов

Связь с человеческим мозгом тут не сильно прослеживается в силу того, что мозг – супер сложная нейросеть и за счет свой сложности он может преодолеть этот недостаток.

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

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

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

Нейронные сети не могут решать задачу по шагам.

Вычислительные задачи

Этот недостаток искусственных нейронных сетей в какой-то степени является следствием двух предыдущих недостатков.

Обратите внимание на картинку ниже. Как заставить сеть провести эти преобразования?

Первая проблема – очередность. Надо каким-то образом, используя только входы сети, указать ей какая часть выражения находится под корнем, а какая часть находится слева от знака равенства. Да и как передать сам знак равенства?

Предположим, что вы каким-то образом смогли доставить эти данные в сеть

Вторая проблема – последовательные шаги. Уже описанный выше недостаток.

И вишенка на торте – невозможность выдачи точных результатов. Это можно представить себе следующим образом. Вы учите нейросеть:

– 2 + 3 = ?
= 983
– Неправильно! = 5.
2 + 3 = ?
= 5
– Правильно!
2 + 4 = ?
= 5
– Неправильно! = 6.
2 + 4 = ?
= 5.5

И так будет происходить всегда.

Нейронные сети не способны решать вычислительные задачи.

Выводы

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

Поделиться