Нейронные сети. Искусственный интеллект

Искусственный интеллект создал нейросеть December 15th, 2017

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


Инженеры из подразделения Google Brain весной текущего года продемонстрировали AutoML. Этот искусственный интеллект умеет без участия человека производить собственные уникальнейшие ИИ. Как выяснилось совсем недавно, AutoML смог впервые создать NASNet, систему компьютерного зрения. Данная технология серьёзно превосходит все созданные ранее людьми аналоги. Эта основанная на искусственном интеллекте система может стать отличной помощницей в развитии, скажем, автономных автомобилей. Применима она и в робототехнике - роботы смогут выйти на абсолютно новый уровень.

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

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

При этом AutoML оценивает работу NASNеt и использует эту информацию для улучшения дочерней сети; этот процесс повторяется тысячи раз. Когда инженеры протестировали NASNet на наборах изображений ImageNet и COCO, она превзошла все существующие системы компьютерного зрения.

В Google официально заявили, что NASNet распознаёт с точностью равной 82,7%. Результат на 1.2 % превышает прошлый рекорд, который в начале осени нынешнего года установили исследователи из фирмы Momenta и специалисты Оксфорда. NASNet на 4% эффективнее своих аналогов со средней точностью в 43,1%.

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

При этом, конечно, возникают этические вопросы, связанные с опасениями по поводу ИИ: что, если AutoML будет создавать системы с такой скоростью, что общество просто за ними не поспеет? Впрочем, многие крупные компании стараются учитывать проблемы безопасности ИИ. Например, Amazon, Facebook, Apple и некоторые другие корпорации являются членами Партнерства по развитию ИИ (Partnership on AI to Benefit People and Society). Институт инженеров и электротехники (IEE) же предложил этические стандарты для ИИ, а DeepMind, например, анонсировал создание группы, которая будет заниматься моральными и этическими вопросами, связанными с применениями искусственного интеллекта.

Впрочем, многие крупные компании стараются учитывать проблемы безопасности ИИ. При этом, конечно, возникают этические вопросы, связанные с опасениями по поводу ИИ: что, если AutoML будет создавать системы с такой скоростью, что общество просто за ними не поспеет? Институт инженеров и электротехники (IEE) же предложил этические стандарты для ИИ, а DeepMind, например, анонсировал создание группы, которая будет заниматься моральными и этическими вопросами, связанными с применениями искусственного интеллекта. Например, Amazon, Facebook, Apple и некоторые другие корпорации являются членами Партнерства по развитию ИИ (Partnership on AI to Benefit People and Society).

Что такое искусственный интеллект?

Автором термина «искусственный интеллект» является Джон Маккарти, изобретатель языка Лисп, основоположник функционального программирования и лауреат премии Тьюринга за огромный вклад в области исследований искусственного интеллекта.
Искусственный интеллект — это способ сделать компьютер, компьютер-контролируемого робота или программу способную также разумно мыслить как человек.

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

Что такое нейронная сеть?

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

Работает перцептрон проще некуда: он получает несколько исходных чисел, умножает каждое на «ценность» этого числа (о ней чуть ниже), складывает и в зависимости от результата выдаёт 1 или -1. Например, мы фотографируем чистое поле и показываем нашему нейрону какую-нибудь точку на этой картинке — то есть посылаем ему в качестве двух сигналов случайные координаты. А затем спрашиваем: «Дорогой нейрон, здесь небо или земля?» — «Минус один, — отвечает болванчик, безмятежно разглядывая кучевое облако. — Ясно же, что земля».

«Тыкать пальцем в небо» — это и есть основное занятие перцептрона. Никакой точности от него ждать не приходится: с тем же успехом можно подбросить монетку. Магия начинается на следующей стадии, которая называется машинным обучением. Мы ведь знаем правильный ответ — а значит, можем записать его в свою программу. Вот и получается, что за каждую неверную догадку перцептрон в буквальном смысле получает штраф, а за верную — премию: «ценность» входящих сигналов вырастает или уменьшается. После этого программа прогоняется уже по новой формуле. Рано или поздно нейрон неизбежно «поймёт», что земля на фотографии снизу, а небо сверху, — то есть попросту начнёт игнорировать сигнал от того канала, по которому ему передают x-координаты. Если такому умудрённому опытом роботу подсунуть другую фотографию, то линию горизонта он, может, и не найдёт, но верх с низом уже точно не перепутает.

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

Нейронную сеть можно сделать с помощью спичечных коробков — тогда у вас в арсенале появится фокус, которым можно развлекать гостей на вечеринках. Редакция МирФ уже попробовала — и смиренно признаёт превосходство искусственного интеллекта. Давайте научим неразумную материю играть в игру «11 палочек». Правила просты: на столе лежит 11 спичек, и в каждый ход можно взять либо одну, либо две. Побеждает тот, кто взял последнюю. Как же играть в это против «компьютера»?

Очень просто.

Берём 10 коробков или стаканчиков. На каждом пишем номер от 2 до 11.

Кладём в каждый коробок два камешка — чёрный и белый. Можно использовать любые предметы — лишь бы они отличались друг от друга. Всё — у нас есть сеть из десяти нейронов!

Нейросеть всегда ходит первой. Для начала посмотрите, сколько осталось спичек, и возьмите коробок с таким номером. На первом ходу это будет коробок №11. Возьмите из нужного коробка любой камешек. Можно закрыть глаза или кинуть монетку, главное — действовать наугад.
Если камень белый — нейросеть решает взять две спички. Если чёрный — одну. Положите камешек рядом с коробком, чтобы не забыть, какой именно «нейрон» принимал решение. После этого ходит человек — и так до тех пор, пока спички не закончатся.

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

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

Источники:

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

По терминологии: ИИ - это программа, которая умеет учиться (самостоятельно в процессе своей работы получать знания и опыт) и эффективно использовать свой опыт в дальнейшем для более качественного выполнения некой задачи (задачи, для которой эта программа создана). Если это специализированная программа (например, для игры в шахматы) - её называют "слабым" ИИ, потому что её способность понимать (получать опыт) специально создана и адаптирована под шахматы. Уже создано много слабых ИИ. Например, Alpha Zero, основанная на нейронных сетях, и обучившаяся игре в шахматы самостоятельно с нуля, сейчас является претендентом на звание сильнейшего в мире шахматного игрока (она играет примерно на одном уровне и, возможно, даже превосходит лучшие шахматные программы, которые созданы классическим программированием на основе теории шахмат). Термин "сильный ИИ" (или же "ИИ общего назначения") зарезервирован для гипотетической программы, которая способна самостоятельно учиться разным задачам (то есть, в ней нет специального программирования под конкретную задачу). На данный момент ни одной такой программы нет и скорое появление (в ближайшие 5 лет) не предвидится. Разработки в этом направлении ведутся (в том числе, авторами упомянутой здесь Alpha Zero).

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

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

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

Меньше года назад я читал интервью с главой Deep Mind (считается ведущей (или, как минимум, одной из ведущих) компанией в этой области). Он упомянул, что ИИ уровня человека, по его мнению, будет создан "через десятки лет" (цитата). Точнее сейчас сказать невозможно.

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

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

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

Так что складывается впечатление, что направление выбрано верно: рекуррентные нейросети. Чтобы получился человекоподобный ИИ, скорее всего, потребуется разработать сразу несколько новых типов сетей и удачно их скомбинировать вместе. Для этого нужно огромное количество расчётов, экспериментирования, проб и ошибок. А также огромное количество вычислительной мощности. Процесс тренировки такой колоссальной по размаху нейросети потребует много компьютеров. Очень много. Даже обучение такой относительно простой сети, как Alpha Zero, потребовала ресурсов, эквивалентных десяткам лет работы персонального компьютера. Нейросеть, способная думать, как человек, для своего обучения потребует в сотни (вряд ли так мало), тысячи или даже миллионы раз больше вычислений. Тем не менее, такие вычислительные мощности не являются непреодолимой преградой. Главное, энергия есть, её хватает, процессоров и памяти можно наделать сколько угодно, тут проблемы нет.

Ответить

Прокомментировать

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

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

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

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

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

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

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

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

Искусственный интеллект в управлении непрерывным производством

Видеозаписи выступлений и дискуссий с совместной конференции Yandex Data Factory и «Газпром нефти» по применению искусственного интеллекта для задач непрерывного производства. Конференция прошла 13 сентября 2017 года в Санкт-Петербурге.

Искусственный интеллект в управлении непрерывным производством

В рамках выступлений рассматриваются следующие темы:

Как выгодно «принять на работу» искусственный интеллект
Бизнес-задачи для искусственного интеллекта в непрерывном производстве
Машинное обучение в разведке и добыче
Моделирование и анализ данных в управлении непрерывным производством
Панельная дискуссия «Непрерывное производство 2050»
Как внедрять науку в бизнес и на какие грабли не стоит наступать
Дискуссия «Прикладные решения с применением искусственного интеллекта в непрерывном производстве»

Педро Домингос. Верховный алгоритм: как машинное обучение изменит наш мир

Педро Домингос. Верховный алгоритм: как машинное обучение изменит наш мир

Описание

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

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

Отзывы

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

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

Ну, а Домингос, конечно, оптимист до мозга костей, молодец! Он понимает, что если бы научный мир смог отыскать такой "верховный алгоритм", то наш бы научный прогресс семимильными шагами смог бы продвинуться вперед, как будто как раз в ефремовскую ЭМВ - Эру Мирового Воссоединения. Он предполагает, что это супер-алгоритм должен сочетать элементы всех уже встречающихся в тех или иных областях умных алгоритмов, применяющихся в современных системах. Для этого нужно объединить приверженцев символических, генетических, эволюционных , байесовских, коннекционных алгоритмов. Что же, в этих мыслях есть неплохое зерно. Осталось разобраться с вопросом, сколько лет нам еще понадобится, чтобы "научить" наши компьютеры с помощью такой гипотетической композиции.

В любом случае, книга очень интересна, так как автор не остается на уровне рассуждений, а готов полностью окунуться в проблему и пытается "захватить в свои сети" все новых и новых оптимистов. Такие книги реально нужны для научного мира с одной стороны и могут воспитываться любопытное подрастающее поколение с другой. Автор (как и издательство МИФ) смогли преподнести мне неожиданный сюрприз. Книга действительно стоящая, заставляющая поразмышлять, порассуждать и помечтать о нашем ближайшем будущем.

Скачать книгу

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

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

Тема машинного обучения, интеллектуальных алгоритмов и искусственного интеллекта чрезвычайно популярна в наше время. Это легко можно увидеть, наблюдая за новостями на различных 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

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

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

Выводы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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