Нейронные сети для начинающих zhitsoboy.ru

Нейронные сети для начинающих

Простыми словами о сложном: что такое нейронные сети?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Итог

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

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

Подписывайтесь на наш нескучный канал в Telegram, чтобы ничего не пропустить.

Нейронные сети: какие бывают и как их используют бренды

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

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

С чего всё началось

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

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

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

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

Какими бывают нейронные сети и что они умеют

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

Свёрточные нейросети

Нейроны делятся на группы, каждая группа вычисляет заданную ей характеристику. В 1993 году французский учёный Ян Лекун показал миру LeNet 1 — первую свёрточную нейронную сеть, которая быстро и точно могла распознавать цифры, написанные на бумаге от руки. Смотрите сами:

Читать еще:  Как через БИОС восстановить систему Windows 10?[В[ОС]становление данных]

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

Рекуррентные нейросети

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

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

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

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

Комбинированные нейросети (свёрточные + рекуррентные)

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

Нейросети постоянно самообучаются. Благодаря этому процессу:

1. Skype внедрил возможность синхронного перевода уже для 10 языков. Среди которых, на минуточку, есть русский и японский — одни из самых сложных в мире. Конечно, качество перевода требует серьёзной доработки, но сам факт того, что уже сейчас вы можете общаться с коллегами из Японии по-русски и быть уверенными, что вас поймут, вдохновляет.

2. Яндекс на базе нейронных сетей создал два поисковых алгоритма: «Палех» и «Королёв». Первый помогал найти максимально релевантные сайты для низкочастотных запросов. «Палех» изучал заголовки страниц и сопоставлял их смысл со смыслом запросов. На основе «Палеха» появился «Королёв». Этот алгоритм оценивает не только заголовок, но и весь текстовый контент страницы. Поиск становится всё точнее, а владельцы сайтов разумнее начинают подходить к наполнению страниц.

3. Коллеги сеошников из Яндекса создали музыкальную нейросеть: она сочиняет стихи и пишет музыку. Нейрогруппа символично называется Neurona, и у неё уже есть первый альбом:

4. У Google Inbox с помощью нейросетей осуществляется ответ на сообщение. Развитие технологий идет полный ходом, и сегодня сеть уже изучает переписку и генерирует возможные варианты ответа. Можно не тратить время на печать и не бояться забыть какую-нибудь важную договорённость.

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

6. Facebook активно работает над DeepText AI — программой для коммуникаций, которая понимает жаргон и чистит чатики от обсценной лексики.

7. Приложения вроде Prisma и Fabby, созданные на нейросетях, создают изображения и видео:

Colorize восстанавливает цвета на чёрно-белых фото (удивите бабушку!).

MakeUp Plus подбирает для девушек идеальную помаду из реального ассортимента реальных брендов: Bobbi Brown, Clinique, Lancome и YSL уже в деле.


8.
Apple и Microsoft постоянно апгрейдят свои нейронные Siri и Contana. Пока они только исполняют наши приказы, но уже в ближайшем будущем начнут проявлять инициативу: давать рекомендации и предугадывать наши желания.

А что ещё нас ждет в будущем?

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

Аграрный сектор

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

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

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

Ecommerce будет внедрён повсеместно. Уже не потребуется переходить в интернет-магазин по ссылке: вы сможете купить всё там, где видите, в один клик. Например, читаете вы эту статью через несколько лет. Очень вам нравится помада на скрине из приложения MakeUp Plus (см. выше). Вы кликаете на неё и попадаете сразу в корзину. Или смотрите видео про последнюю модель Hololens (очки смешанной реальности) и тут же оформляете заказ прямо из YouTube.

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

P. S. Зинаида Фолс — нейронная сеть Яндекса, пишущая стихи. Оцените произведение, которое машина написала, обучившись на Маяковском (орфография и пунктуация сохранены):

это
всего навсего
что-то
в будущем
и мощь
у того человека
есть на свете все или нет
это кровьа вокруг
по рукам
жиреет
слава у
земли
с треском в клюве

Глава 3. Основы ИНС

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

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

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

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

Биологическая структура → схема

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

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

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

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

Электрические сигналы → числа

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

Электрический сигнал всегда будет электрическим сигналом. Концептуально ничего не изменяется. Но что же тогда меняется? Меняется величина этого электрического сигнала (сильнее/слабее). А любую величину всегда можно выразить числом (больше/меньше).

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

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

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

Синапсы → веса связей

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

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

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

На приведенном выше рисунке вес стоит не у каждой связи лишь потому, что там нет места для обозначений. В реальности у каждой ​ ( i ) ​-ой связи свой собственный ​ ( w_i ) ​-ый вес.

Читать еще:  Шифрованный efi системный что это?

Искусственный нейрон

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

На рисунке ниже представлена полная модель искусственного нейрона.

Не пугайтесь, ничего сложного здесь нет. Давайте рассмотрим все подробно слева направо.

Входы, веса и сумматор

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

Поступившие на входы сигналы умножаются на свои веса. Сигнал первого входа ​ ( x_1 ) ​ умножается на соответствующий этому входу вес ​ ( w_1 ) ​. В итоге получаем ​ ( x_1w_1 ) ​. И так до ​ ( n ) ​-ого входа. В итоге на последнем входе получаем ​ ( x_nw_n ) ​.

Теперь все произведения передаются в сумматор. Уже исходя из его названия можно понять, что он делает. Он просто суммирует все входные сигналы, умноженные на соответствующие веса:

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

Рассмотрим простейший вариант записи:

Таким образом снизу сигмы мы присваиваем переменной-счетчику ​ ( i ) ​ стартовое значение, которое будет увеличиваться, пока не дойдет до верхней границы (в примере выше это 5).

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

Пусть у нас есть ​ ( n ) магазинов. У каждого магазина есть свой номер: от 1 до ​ ( n ) ​. Каждый магазин приносит прибыль. Возьмем какой-то (неважно, какой) ​ ( i ) ​-ый магазин. Прибыль от него равна ​ ( p_i ) ​.

Если мы хотим посчитать общую прибыль от всех магазинов (обозначим ее за ​ ( P ) ​), то нам пришлось бы писать длинную сумму:

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

Словами: «Просуммируй прибыли всех магазинов, начиная с первого и заканчивая ​ ( n ) ​-ым». В виде формулы это гораздо проще, удобнее и красивее.

Результатом работы сумматора является число, называемое взвешенной суммой.

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

Для понимания роли последнего компонента искусственного нейрона – функции активации – я приведу аналогию.

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

  1. Стоимость поездки
  2. Какая на море погода
  3. Текущая обстановка с работой
  4. Будет ли на пляже закусочная

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

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

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

Пусть на входы нашего нейрона мы подаем следующие сигналы:

Умножаем веса входов на сигналы соответствующих входов:

Взвешенная сумма для такого набора входных сигналов равна 6:

[ net=sumlimits^4_x_iw_i = 5 + 0 + 0 + 1 =6 ]

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

Вот на сцену выходит функция активации.

Функция активации

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

Она преобразует взвешенную сумму в какое-то число, которое и является выходом нейрона (выход нейрона обозначим переменной ​ ( out ) ​).

Для разных типов искусственных нейронов используют самые разные функции активации. В общем случае их обозначают символом ​ ( phi(net) ) ​. Указание взвешенного сигнала в скобках означает, что функция активации принимает взвешенную сумму как параметр.

Далее мы подробно рассмотрим самые известные функции активации.

Функция единичного скачка

Самый простой вид функции активации. Выход нейрона может быть равен только 0 или 1. Если взвешенная сумма больше определенного порога ​ ( b ) ​, то выход нейрона равен 1. Если ниже, то 0.

Как ее можно использовать? Предположим, что мы поедем на море только тогда, когда взвешенная сумма больше или равна 5. Значит наш порог равен 5:

В нашем примере взвешенная сумма равнялась 6, а значит выходной сигнал нашего нейрона равен 1. Итак, мы едем на море.

Однако если бы погода на море была бы плохой, а также поездка была бы очень дорогой, но имелась бы закусочная и обстановка с работой нормальная (входы: 0011), то взвешенная сумма равнялась бы 2, а значит выход нейрона равнялся бы 0. Итак, мы никуда не едем.

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

Графически эту функцию активации можно изобразить следующим образом.

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

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

Чем «думают» нейронные сети — объяснение на пальцах

Они рисуют картины, пишут стихи, водят автомобили и обыгрывают человека в Го. Их внедряют в свои сервисы ведущие компании мира. Google посвятила целый блок нейросетям и ИИ на I/O 2017, Apple на WWDC 2017 рассказала о планах их применения, Qualcomm и Facebook объявили о совместной работе над машинным обучением — главным инструментом их развития. Того и гляди, через несколько лет какая-нибудь особенно умная сеть самообучится до уровня полноценного ИИ, и всем настанет полный «Скайнет». О том, возможно ли это, что вообще такое нейросети и как они работают — в этой статье.

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

Краткая история

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

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

1960 год. Более пятнадцати лет ушло на создание первого нейрокомпьютера, или персептрона «Марк-1», который был разработан психологом и нейрофизиологом Фрэнком Розенблаттом. Устройство с помощью фотоэлементов могло распознавать отпечатанные на карточках буквы.

Первый нейрокомпьютер «Марк-1»

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

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

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

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

Читать еще:  Как форматировать системный диск с Windows 10?

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

Принцип работы — на пальцах

На сегодняшний день считается, что человеческий мозг состоит примерно из 86 миллиардов нейронов, между которыми существует синаптическая (говоря грубо — электрическая) связь. Искусственные нейросети, даже самые мощные и масштабные, намного «беднее» и, следовательно, намного менее производительны — они по-прежнему претендуют в лучшем случае на модель мозга, но никак не на полноценный искусственный мозг.

Схематичное изображение нейронной связи в мозге человека

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

Схема строения персептрона

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

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

Суть обучаемости ИНС

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

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

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

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

Упрощённая схема многослойной нейросети с обратной нейронной связью

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

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

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

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

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

Области применения

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

«В Яндексе нейросети используются, чтобы делать самые разные сервисы лучше. Например, в поиске (чтобы лучше понимать смысл пользовательских запросов), при модерации рекламы на соответствие картинок и текста, в поиске по картинкам (понимает, что изображено на картинке с помощью компьютерного зрения), при фильтрации взрослого контента, а также в комплексе речевых технологий SpeechKit. SpeechKit, в частности, работает в голосовом помощнике Яндекса, который недавно появился в бета-версии, а нейросети в компьютерном зрении помогают беспилотным автомобилям Яндекс.Такси», — руководитель службы компьютерного зрения «Яндекса» Александр Крайнов.

Автомобиль-беспилотник Яндекса

Для удобства объединим вышеперечисленное в категорию потребительского использования ИНС — чрезвычайно обширную, но не единственную. Учитывая, что человеческий мозг — по-прежнему загадка для человека, нейропсихологами, нейролингвистами и прочими нейроспециалистами ведётся активное изучение разума и интеллекта, в том числе с помощью ИНС. Так, компания IBM и Швейцарский федеральный технический институт Лозанны в 2005 году запустили Blue Brain Project, в рамках которого надеются создать максимально точную компьютерную модель человеческого мозга. Ещё один любопытный эксперимент, но попроще, IBM провела совместно с компанией «Двадцатый век фокс»: они «показали» суперкомпьютеру Watson фильм, тот довольно точно определил наиболее эмоциональные его фрагменты и смонтировал трейлер.

Разумеется, ИНС активно помогает осваивать новые технологии и развивать существующие. Взять хотя бы те же беспилотные автомобили, в которых нейросети в режиме реального времени анализируют окружающую обстановку. IBM Watson из года в год открывает для себя всё новые области, включая медицину. В Google существует целое подразделение, которое занимается непосредственно искусственным интеллектом… Стоп. Значит, нейросети всё-таки успели стать искусственным интеллектом или, по крайней мере, есть такая вероятность в будущем? Снова обращаемся к специалисту.

«Можно сказать, что ИИ — это глубокие (многослойные) нейронные сети, решающие сложные задачи на уровне, близком к уровню человека, и, в той или иной степени, «самообучающиеся». Причём «самообучение» в данном случае — способность самостоятельно извлекать полезный сигнал из «сырых» данных. Вообще же вопрос того, что можно назвать искусственным интеллектом, а что нет, — это скорее предмет договорённостей. Человечество, по большому счёту, так и не пришло к однозначной формулировке, что такое интеллект вообще, не говоря уже об искусственном», — руководитель службы компьютерного зрения «Яндекса» Александр Крайнов.

Искусственные нейронные сети прочно вошли во все IT-сферы: технология сколь проста по сути, столь и перспективна. Причём теоретический предел этой перспективы до сих пор неизвестен, а визуализация работы нейросети порой даёт весьма неожиданные результаты. Это немного пугает, особенно учитывая, что даже профильные специалисты аккуратно уходят от ответа на вопрос: станет ли когда-нибудь нейросеть искусственным интеллектом — таким, каким мы знаем его из книжек, например, Айзека Азимова? Впрочем, не все: один из пионеров в области Рэй Куртцвейл предсказывает, что ИИ сможет успешно проходить тест Тьюринга в 2029 году, а к 2045-му станет умнее человека. Но пока этого не произошло, почему бы в своё удовольствие не рисовать страшных котиков и не делать селфи в стиле Репина или Пикассо.

Ссылка на основную публикацию
Adblock
detector