История развития нейронных сетей кратко

Обновлено: 02.07.2024

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

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

ИНС умеет все то же самое, но работает намного медленнее и сравнивая нейросеть с живым существом, ее мощность пока находится на уровне мухи. Все же наш мозг добился отличной работоспособности спустя 50 000 лет эволюции (если мы говорим о Homo sapiens), а нейросети существуют не более 65 лет. Современные технологии сильно шагнули вперед и нет никаких сомнений, что через 10-15 лет нейрокомпьютеры вплотную приблизятся по своим возможностям к человеческому мозгу благодаря стремительному развитию нейросетей и искусственного интеллекта в целом.

Содержание:

  • История создания ИНС
  • Что такое нейросеть
  • Как работают нейронные сети
  • Где эффективны ИНС
  • Преимущества нейросети
  • Недостатки нейронной сети
  • Виды ИНС
  • Нейросети в реальной жизни

Искусственные нейронные сети - история создания

Впервые о нейронных сетях начали говорить в далеких 50-х годах прошлого века. В период с 1943 по 1950 год были представлены миру первые две основополагающие ученые работы. Одна из них - статья 1943 года от двух выдающихся ученых Уорена Маккалока и Уолтера Питтса освещала математическую модель нейронной сети, а в 1949 году канадский нейропсихолог Дональд Хебб выпустил книгу "Организация поведения" , в которой было подробное описание процесса самообучения ИНС.

Позднее, в 1957 году известный американский ученый Фрэнк Розенблатт изобрел перцептрон - математическую (компьютерную) модель обработки информации человеческим мозгом. Данная разработка уже в те годы умела прогнозировать погоду и распознавать образы, однако вскоре перцептрон жестко раскритиковали из-за скандальной работы Марвина Минского. В 1969 году он выпустил статью, в которой разъяснялось, какие задачи перцептроном не могут быть решены и при каких условиях его работа неэффективна. После этого интерес к нейросетям угас, но не на долго.

В 1974 году Пол Вербос разработал алгоритм обратного распространения ошибки, который используется и по сей день для обучения ИНС. Начиная с 1985 года Джон Хопфилд предлагает миру свое виденье устройства и работы нейросети, которая способна решать некоторые виды задач. Именно работы Джона Хопфилда вновь разогревают нешуточный интерес мировой общественности к искусственным нейронным сетям. В 90-е годы прошлого века алгоритм обратного распространения ошибки получил существенное развитие, за счет чего былая критика Минского касательно неработоспособности сетей была окончательно опровергнута. На сегодняшний день ИНС является главным подразделом машинного обучения.

Нейросеть - в целом об ИНС

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

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

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

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

А вот как выглядит наш с вами мозг, упрощенный до ИНС.

Нейронные сети - почему они работают?

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

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

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

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

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

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

  • пороговая функция;
  • гистерезис;
  • сигмоид.

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

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

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

Когда эффективны ИНС?

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

Простые и средние по сложности, принцип решения которых известен:

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

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

Биологические нейронные сети

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

биологическая нейронная сеть

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

составляющие нейрона

модель нейрона

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

модель естественной нейросети

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

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

Типы нейронных сетей

Распознание образов, принятие решений, прогнозирование, аппроксимация, анализ данных

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

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

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

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

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

Принцип работы нейронных сетей

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

Математическая формула для вычисления суммы

∑wixi + bias = w1x1 + w2x2 + w3x3 + bias

Математическая формула для вычисления выходных данных

output = f(x) = 1 if ∑w1x1 + b> = 0; 0 if ∑w1x1 + b

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

  1. Хорошие ли сегодня волны? (Да: 1, Нет: 0)
  2. Свободен ли лайнап? (Да: 1, Нет: 0)
  3. Были ли случаи нападения акул в последнее время? (Да: 0, Нет: 1)

Предположим, у нас имеются следующие входные данные:

  • X1 = 1, так как сегодня хорошие волны для серфинга
  • X2 = 0, так как уже собралось много серферов
  • X3 = 1, так как в последнее время не было нападений акул

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

  • W1 = 5, так как большие свеллы — редкость
  • W2 = 2, так как вы уже привыкли к скоплению серферов
  • W3 = 4, так как вы боитесь акул

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

Y-hat = (1*5) + (0*2) + (1*4) – 3 = 6

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

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

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

Математическая формула для вычисления функции стоимости

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

Линейная диаграмма с изображением точки сходимости

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

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

Виды нейронных сетей

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

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

Простая диаграмма персептрона в виде линий и кругов синего цвета

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

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

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

Сравнение нейронных сетей и глубокого обучения

История возникновения нейронных сетей

1974: первым ученым на территории США, описавшим в своей диссертации (внешняя ссылка, PDF, 8,1 МБ) использование алгоритма обратного распространения ошибки в нейронных сетях, стал Пол Вербос, хотя развитием этой идеи занимались многие исследователи.

1989: Янн Лекун опубликовал статью (внешняя ссылка, PDF, 5,7 МБ), в которой было описано практическое использование ограничений обратного распространения ошибки и интеграция в архитектуру нейронной сети для обучения алгоритмов. В данном исследовании нейронная сеть успешно обучилась распознавать рукописные символы почтового индекса, предоставленные Почтовой службой США.

Нейронные сети и IBM Cloud

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

Архитектура UIMA (Apache Unstructured Information Management Architecture) и программное обеспечение IBM DeepQA, лежащие в основе Watson, позволяют интегрировать в приложения мощные функции глубокого обучения. С помощью таких инструментов, как IBM Watson Studio, ваше предприятие сможет эффективно перенести ИИ-проекты с открытым исходным кодом в рабочую среду с возможностью развертывания и выполнения моделей в любой облачной среде.

Более подробная информация о том, как приступить к использованию технологии глубокого обучения, приведена на страницах IBM Watson Studio и Deep Learning service.


Краткая история нейросетей

Прежде всего, отметим, что нейронные сети – это не единственные методы машинного обучения и искусственного интеллекта. Помимо нейросетей в классе обучения с учителем выделяют методы коррекции и обратного распространения ошибки (backpropagation), а также машину опорных векторов (SVM, Support Vector Machine), применение которой в задаче одноклассовой классификации я описывал в здесь. Еще среди ML-методов различают обучение без учителя (альфа- и гамма-системы подкрепления, метод ближайших соседей), обучение с подкреплением (генетические алгоритмы), частичное, активное, трансиндуктивное, многозадачное и многовариантное обучение, а также бустинг и байесовские алгоритмы [1].

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

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

Здесь стоит упомянуть теоретическую базу нейросетей в виде теоремы Колмогорова-Арнольда о представимости непрерывных функций нескольких переменных суперпозицией непрерывных функций одной переменной. Эта теорема была доказана советскими учеными А.Н. Колмогоровым и В.В. Арнольдом в 1957 году, а в 1987 году переложена американским исследователем Хехт–Нильсеном для нейронных сетей. Она показывает, что любая функция многих переменных достаточно общего вида может быть представлена с помощью двухслойной нейронной сети с прямыми полными связями нейронов входного слоя с нейронами скрытого слоя с заранее известными ограниченными функциями активации (например, сигмоидальными) и нейронами выходного слоя с неизвестными функциями активации.

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

  • область значений сигмоидальных функций активации нейронов скрытого слоя;
  • наклон сигмоид нейронов этого слоя;
  • вид функций активации нейронов выходного слоя.

Еще одной ключевой вехой в истории нейросетей стало изобретение перцентрона Фрэнком Розенблаттом в 60-хх гг. XX века. Благодаря успешным результатам использования перцептронов в ограниченном круге задач (прогнозирование погоды, классификация, распознавание рукописного текста), нейросети стали весьма популярны среди ученых по всему миру. Например, в СССР нейросетями занимались в Институте проблем передачи информации ученые научной школы М. М. Бонгарда и А.П. Петрова (1963-1965 гг.). Однако, поскольку существовавшие на то время вычислительные мощности не могли эффективно реализовать теоретические алгоритмы на практике, исследовательский энтузиазм к этим ML-методам временно упал.

Следующая волна интереса к нейросетям началась спустя 20 лет, в 80-х годах прошлого века и, по сути, продолжается до сих пор. Здесь стоит отметить различные вариации сетей Кохонена и Хопфилда, развившиеся в модели глубокого обучения – тенденции, подробнее о которых мы поговорим далее [3].

победы ИИ над человеком в играх

Что такое нейросети и как они работают

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

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

  • массовый параллелизм;
  • распределённое представление информации и вычисления;
  • способность к обучению и обобщению;
  • адаптивность;
  • свойство контекстуальной обработки информации;
  • толерантность к ошибкам;
  • низкое энергопотребление.

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

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

Типовая нейросеть состоит из трех компонентов (рис. 1):

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

Строение нейросети

Рис. 1. Строение нейросети

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

  • 1- нейроны, выходные сигналы которых поступают на вход данному (xi);
  • 2- сумматор входных сигналов;
  • 3- вычислитель функции активации;
  • 4- нейроны, на входы которых подаётся выходной сигнал данного;
  • 5- wi— веса входных сигналов

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

Рис. 2. Схема искусственного нейрона

Математически нейрон – то сумматор, результат которого y=f(u) определяется через его входы и весовые коэффициенты [4]:


, где

  • xi– это возможные значения сигналов на входах нейрона, которые лежат в интервале [0,1] и могут быть дискретными или аналоговыми;
  • wi – весовые коэффициенты, на которые умножается значение входного сигнала нейрона xi для его инициализации – смещения активационной функции по горизонтальной оси, с целью формирования порога чувствительности.
  • x0 – это дополнительный вход нейрона, сигнал с которого умножается на вес w0.

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

  • область значений, например, от минус до плюс бесконечности или ограниченный промежуток типа [0,1], (-π/2; π/2) и т.д. – при ограниченном множестве значений функции активации градиентные методы обучения более стабильны, т.к. эталонные представления существенно влияют лишь на ограниченные связи (их весовые коэффициенты). Если область значений функции активации бесконечна, то обучение более эффективно, т.к. используется большинство весов, однако, в этом случае нейросеть обучается медленнее.
  • порядок гладкости, определяющий непрерывность ее производной, что позволяет использовать методы оптимизации на основе градиентного спуска и обеспечивает более высокую степень общности;
  • монотонность (самой функции и ее производной), что означает характер убывания или возрастания на всей области определения. Для монотонной функции активации поверхность ошибок, ассоциированная с одноуровневой моделью, гарантированно будет выпуклой, у которой локальный экстремум (минимум или максимум) совпадает с глобальным, что важно для задач оптимизации.
  • аппроксимация тождественной функции около начала координат – при наличии этого свойства нейронная сеть будет обучаться эффективно, если её веса инициализированы малыми случайными значениями.

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

Наиболее распространенные функции активации

Рис. 3. Наиболее распространенные функции активации

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

Популярные топологии нейросетей

Рис. 4. Популярные топологии нейросетей

Современные тренды развития нейросетевых технологий

Итак, особенно активно текущие нейросетевые технологии развиваются с 2000-х годов, когда мощность графических процессоров стала достаточной для быстрого и недорогого обучения нейросетей, а также в мире накопилось большое количество датасетов для тренировки. К примеру, до 2010 года не существовало базы данных, чтобы качественно обучить нейросети решать задачи по распознаванию и классификации изображений. Поэтому нейросети часто ошибались, путая кошку с собакой, или снимок здорового органа с больным. Однако, с появлением базы ImageNet в 2010 году, которая содержала 15 миллионов изображений в 22 тысячах категорий и была доступна для любого исследователя, качество результатов существенно улучшилось. Кроме того, к этому времени появились новые достижения ученых в области искусственного интеллекта: Джеффри Хинтон реализовал предобучение сети при помощи машины Больцмана, обучая каждый слой отдельно. Ян ЛеКан предложил использовать сверточные нейросети для распознавания изображений, а Иошуа Бенджио разработал каскадный автокодировщик, позволивший задействовать все слои в глубокой нейронной сети [6]. Именно эти исследования легли в основу современных тенденций развития нейросетевых технологий, наиболее значимыми среди которых можно назвать следующие:

  • глубокое обучение (DeepLearning,DL)– иерархическое сочетание нескольких алгоритмов обучения (с учителем, без учителя, с подкреплением), когда нейросеть сперва тренируется на большом количестве данных общего характера, а затем целенаправленно обучается на датасетах, специфичных для конкретной задачи.
  • гибридное обучение – сочетание DL-моделей с байесовскими подходами, которые хорошо подходят для вероятностного моделирования и вычисления причинно-следственных отношений в биоинформатике (генетические сети, структура белков), медицине, классификации документов, обработке изображений и системах поддержки принятия решений [7]. Байесовские алгоритмы значительно повышают качество обучения, способствуя генерации тренировочных данных, максимально близких к реальным, в генеративно-состязательных сетях (GAN, Generative adversarial network) [8].
  • автоматическое обучение (AutoML) – автоматизация всех ML-процессов, от предварительной подготовки данных до анализа результатов моделирования. Инструменты AutoML (Google AutoML, Auto Keras, RECIPE, TransmogrifAI, Auto-WEKA, H2O AutoML и другие фреймворки и библиотеки) существенно облегчают работу Data Scientist’a, экономя его время за счет автоматического конструирования признаков, оптимизации гиперпараметров, поиске наилучшей архитектуры, подборе каналов и оценочных метрик, определения ошибок и выполнения других ML-процедур [9]. Также AutoML можно рассматривать как способ демократизации AI, который позволяет создавать ML-модели без сложного программирования [10].

Далее мы рассмотрим более подробно методы глубокого и автоматического ML.

Глубокое обучение: принципы работы и результаты использования

К глубокому обучению относят класс ML-моделей, основанных на обучении представлениями (feature/representation learning), а не на специализированных алгоритмах под конкретные задачи. В DL многослойные нейронные сети играют роль многоуровневой системы нелинейных фильтров для извлечения признаков. Для DL-моделей характерно иерархическое сочетание нескольких алгоритмов обучения: с учителем, без учителя, с подкреплением. Архитектура нейросети и состав ее нелинейных слоёв зависит от решаемой задачи. При этом используются скрытые переменные, организованные послойно, например, узлы в глубокой сети доверия и глубокой ограниченной машине Больцмана. При этом, независимо от архитектурных особенностей и прикладного назначения, для всей DL-сетей характерно предварительное обучение на большом объеме общих данных с последующей подстройкой на датасетах, специфичных для конкретного применения [11].

Например, одна из наиболее известных реализаций DL-моделей, нейронная сеть BERT, о которой я рассказывал здесь, предварительно обучена на статьях из Википедии, чтобы затем использоваться в распознавании текстов. По аналогичному принципу работает нейросеть XLNet, также применяемая в задачах обработки естественного языка для анализа и генерации текстов, извлечения данных, информационного поиска, синтеза речи, машинного перевода, автоматического реферирования, аннотирования, упрощения текстовой информации и прочих NLP-проблем [12]. Другая глубокая нейросеть, CQM (Calibrated Quantum Mesh), также показывает отличные результаты (более 95%) в понимании естественного языка, извлекающая смысл слова на основе вероятностного анализа его окружения (контекста) без использования заранее заданных ключевых слов [13]. На рисунке 5 показано использование предварительно подготовленной модели в качестве объектов в отдельной нисходящей DL-сети при трансферном обучении в NLP-задачах [14].

Схема трансферного обучения в DL-сетях

Рис. 5. Схема трансферного обучения в DL-сетях

Среди других DL-моделей стоит упомянуть капсульные сети, которые, в отличие от сверточных сетей, обрабатывают визуальные образы с учетом пространственной иерархии между простыми и сложными объектами, что повышает точность классификации и снижает объем данных для обучения [15]. Также отметим глубокое обучение с подкреплением (DRL, Deep Reinforcement Learning), работающее по принципу взаимодействия нейросети с окружающей средой посредством наблюдений, действий, штрафов и вознаграждений [16]. DRL считается наиболее универсальным из всех ML-методов, поэтому его можно использовать в большинстве бизнес-приложений. В частности, именно к DRL-моделям относится нейросеть AlphaGo, которая в 2015 году впервые победила человека в соревнованиях по древней китайской игре го, а в 2017 – обыграла сильнейшего профессионального игрока в мире [6].

AutoML: инструментальные возможности

Вместо заключения

Подведем краткое резюме о положении нейросетей в современной Data Science:

  • нейронные сети – это не единственный, хотя, возможно, самый популярный и наиболее перспективный на сегодняшний день ML-метод;
  • несмотря на почти 80-летнюю историю существования, математический аппарат нейросетей стал активно использоваться на практике только в 21 веке, с появлением быстрых и относительно дешевых вычислительных мощностей, способных эффективно реализовать заложенные в него идеи;
  • наблюдается явная тенденция к демократизации ML вообще и нейросетей в частности, которые все больше применяются не только в научных исследованиях, но и в различных бизнес-задачах и приложениях развлекательного характера;
  • также стоит отметить тренд к упрощению работы Data Scientist’a в связи с появлением инструментов AutoML, позволяющих автоматизировать многие этапы моделирования, в т.ч. сложную настройку весовых коэффициентов, оптимизацию гиперпараметров и прочие трудозатратные процедуры.

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

Читайте также: