Революция разума: на подступах к Сингулярности. Как технологии изменят общество и сознание (страница 5)

Страница 5

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

– Выходной сигнал нейросети может быть определен по-разному.

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

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

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

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

Со временем нейросеть самоорганизуется таким образом, чтобы показывать хороший результат в тех примерах, где ответ заранее не известен. Эксперименты подтвердили, что нейросети успешно обучаются и в том случае, когда учитель не вполне надежен. Даже если данные в обучающей выборке размечены корректно только в 60 % случаев, нейросеть в состоянии адаптироваться и давать верный ответ с 90 %-ной точностью. А иногда даже меньшее количество точно размеченных данных может помочь ей найти нужные закономерности26.

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

Несмотря на ряд сильных сторон, ранние нейросетевые системы сталкивались с принципиальными ограничениями. Однослойные нейронные сети в силу законов математики были не способны решать определенные виды задач27. Во время моего визита в Корнелл в 1964 году профессор Фрэнк Розенблатт показал мне код однослойной нейросети под названием «Перцептрон». Она умела распознавать печатные буквы. Я поработал с ней, пробуя немного видоизменять входной сигнал. Программа демонстрировала автоассоциативность, то есть могла узнать частично прикрытую букву, однако инвариантность к преобразованию достигнута не была: при изменении начертания или размера букв нейросеть переставала их узнавать.

В 1969 году Марвин Минский не разделял энтузиазма по поводу нейронных сетей, несмотря на рост интереса к этой области и то, что он сам был в числе первых исследователей этого феномена еще в 1953-м. Вместе с Сеймуром Пейпертом они основали Лабораторию искусственного интеллекта в МТИ. В своей книге «Перцептроны» они показали, почему сеть, подобная перцептрону, была принципиально неспособна определить, является ли представленный ей рисунок связным. На обложке книги были представлены два рисунка (они приведены ниже). На верхнем рисунке черные линии не образуют единую неразрывную фигуру, в отличие от нижнего. Человек способен различить их, если присмотрится, как и простая компьютерная программа. Перцептрон, такой как «Марк 1», построенный Розенблаттом, не может достоверно это определить, поскольку представляет собой нейронную сеть с прямой связью – это значит, что соединения между нейронами в ней не образуют циклов.

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

После того как Минский и Пейперт опубликовали свои результаты, финансирование исследований нейросетей почти прекратилось на несколько десятилетий. При том, что как мне объяснил Розенблатт еще в 1964 году, проблемы перцептрона в части инвариантности по отношению к входным данным происходили просто от недостаточного количества слоев. По его словам, если взять результат работы перцептрона и подать на вход еще одной нейросети такой же структуры, ее выводы будут более обобщенными. Повторив этот шаг достаточное количество раз, можно добиться инвариантности. Стоит создать нейросеть с достаточным количеством слоев и обзавестись большой обучающей выборкой, и та сможет решать невероятно сложные задачи. Я поинтересовался у Розенблатта, пробовал ли он свой подход на практике, и он сказал, что пока нет, но это одна из его приоритетных задач. Задумка была превосходной, но, к сожалению, Розенблатт скончался всего семь лет спустя, в 1971 году, так и не успев воплотить свои идеи. Пройдет еще 10 лет, прежде чем многослойные нейросети начнут активно использоваться, и даже в то время они требовали настолько больших вычислительных мощностей и объемов данных для обучения, что были непригодны для практического применения. Впечатляющий прогресс ИИ в последние годы случился как раз благодаря многослойным нейросетям – через 50 лет после того, как Розенблатт выдвинул идею их использования.

Таким образом, коннекционистский подход к ИИ не получал должного внимания вплоть до середины 2010-х годов, когда современные технологии наконец-то позволили реализовать его потенциал благодаря доступности вычислительных мощностей и больших объемов данных. За время, прошедшее с момента публикации «Перцептронов» в 1969 году и до смерти Минского в 2016-м соотношение цена / производительность вычислительной техники (с учетом инфляции) улучшилось в 2,8 миллиарда раз28. Это коренным образом изменило представление о том, какие методы можно применять на практике в области искусственного интеллекта. В разговоре со мной незадолго до своей смерти Минский выразил сожаление, что «Перцептроны» оказали такое влияние на состояние дел в области ИИ, ведь с тех пор именно нейросетевой подход позволил нам достичь невероятных успехов.

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

Мозжечок и его модульная структура

Чтобы разобраться в том, как связаны друг с другом компьютерные нейросети и интеллект человека, предлагаю сделать небольшое отступление и вернуться к моменту зарождения Вселенной. Поначалу процесс перехода материи к более организованным формам шел очень медленно, поскольку не было разума, который мог бы им управлять. (В разделе главы 3 под названием «Ваше существование – редчайшая удача» мы обсудим, насколько в принципе маловероятным было появление Вселенной, в которой может существовать информация.) На то, чтобы образовались новые структуры, ушли сотни миллионов, а то и миллиарды лет30.

По крайней мере, не меньше нескольких миллиардов лет понадобилось на то, чтобы появилась молекула, способная хранить закодированные инструкции по созданию живого организма. Есть некоторые разногласия относительно времени появления жизни на Земле, однако большинство ученых сходятся во мнении, что это произошло от 3,5 до 4 миллиардов лет назад31. Возраст Вселенной оценивается в 13,8 миллиарда лет (точнее сказать, столько времени прошло с момента Большого взрыва), а наша планета образовалась 4,5 миллиарда лет назад32. Таким образом, между формированием первых атомов и появлением (по крайней мере здесь, на Земле) первых молекул, способных самовоспроизводиться, прошло около 10 миллиардов лет. Такая задержка отчасти может объясняться случайностью этого процесса – мы не знаем, насколько маловероятным было столкновение нужных молекул в «первичном бульоне» на Земле. Возможно, жизнь могла зародиться немного раньше, а скорее всего, значительно позже, чем это произошло в действительности. В любом случае, прежде чем появилась такая возможность, многие звезды должны были завершить свой жизненный цикл, превратив водород в более тяжелые элементы, из которых и состоят живые организмы.

По оценкам ученых, с момента зарождения жизни на Земле до возникновения первых многоклеточных организмов прошло примерно 2,9 миллиарда лет33. Еще 500 миллионов лет понадобилось, чтобы животные вышли на сушу, а затем 200 миллионов – для появления первых млекопитающих34. Что касается эволюции мозга, промежуток времени от появления первых примитивных нервных путей до возникновения подобия централизованного трехчастного мозга составил около 100 миллионов лет35. Простые варианты новой коры стали формироваться спустя еще 350–400 миллионов лет, а результатом последующих 200 миллионов лет развития стало появление современного мозга человека36.