Том 33. Разум, машины и математика. Искусственный интеллект и его задачи - Игнаси Белда
Шрифт:
Интервал:
Закладка:
В течение многих лет считалось, что создание сверхразумных компьютеров, подобных HAL 9000 из фильма «Космическая одиссея 2001 года», более чем реально. Увы, вскоре наступило разочарование.
* * *
ЛИНЕЙНАЯ НЕРАЗДЕЛИМОСТЬ
Рассмотрим ситуацию, когда выборки могут принадлежать к одной из двух категорий, каждая из которых описывается двумя дескрипторами (следовательно, двумя входными значениями).
Нарисуем график для восьми выборок.
На этом графике кругами белого цвета отмечены выборки категории А, черными — выборки категории В. Нетрудно провести линию, разделяющую категории, — именно эту операцию проводит перцептрон при корректировке порогового значения и весов входных значений. Но что произойдет, если мы рассмотрим синтетическую задачу, предметом которой является операция XOR? XOR — это логическая операция, соответствующая исключающему «или», которая описывается следующим соотношением:
Теперь график будет выглядеть так:
Теперь уже нельзя провести линию, отделяющую белые круги от черных, следовательно, эта задача является линейно неразделимой. Перцептрон нельзя корректно обучить для решения такой простой логической задачи, как задача XOR.
* * *
Решение проблемы линейной неразделимости было найдено в конце 80-х годов.
Оно было столь очевидным и естественным, что даже странно, почему никто не додумался до него раньше. Решение нашла сама природа еще несколько миллионов лет назад: достаточно связать между собой различные перцептроны, сформировав так называемую нейронную сеть.
На следующем рисунке изображена нейронная сеть, состоящая из трех слоев нейронов: первый слой — входной, второй — скрытый, третий и последний — выходной. Эта нейронная сеть называется сетью прямого распространения, так как поток данных в ней всегда направлен слева направо, а синапсы не образуют циклов.
Нейронная сеть может быть сколь угодно сложной, иметь произвольное число скрытых слоев и, кроме того, содержать связи, которые идут в обратном направлении и тем самым моделируют некую разновидность памяти. Ученые построили нейронные сети, содержащие до 300 тысяч нейронов — столько, сколько содержит нервная система земляного червя.
В нейронной сети процесс обучения усложняется, поэтому инженеры разработали множество методов обучения. Один из самых простых — метод обратного распространения ошибки, давший название отдельной разновидности нейронных сетей, в которой он используется. Суть этого метода состоит в снижении ошибки выходного значения нейронной сети путем корректировки весов входных значений синапсов в направлении справа налево по методу градиентного спуска. Иными словами, сначала весам всех синапсов нейронной сети присваиваются произвольные значения, после чего на вход сети подается выборка, выходное значение для которой известно (такая выборка называется обучающей). Как и следовало ожидать, в этом случае выходное значение будет случайным. Далее, начиная с нейронов, близких к выходу, и заканчивая нейронами входного слоя, начинается корректировка весов связей.
Цель этой корректировки — приблизить выходное значение нейронной сети к реальному известному значению.
Эта процедура повторяется несколько сотен или тысяч раз для всех обучающих выборок. Когда обучение для всех выборок завершено, говорят, что прошла эпоха обучения. Далее процесс обучения может быть повторен на протяжении еще одной эпохи для тех же обучающих выборок. Как правило, при обучении рассматривается несколько десятков выборок. Этот процесс подобен реальному обучению, когда человек вновь и вновь видит одни и те же данные.
* * *
ОПАСНОСТЬ ПЕРЕОБУЧЕНИЯ
Система прогнозирования, в которой применяется машинное обучение, формулирует прогнозы путем обобщения предшествующего опыта. Следовательно, система, неспособная совершать обобщения, становится бесполезной.
Если процесс обучения повторяется слишком много раз, наступает момент, когда веса подобраны столь точно и система настолько адаптировалась к обучающим выборкам, что прогнозы формулируются не путем обобщения, а на основе запомненных случаев. Система становится способной выдавать корректные прогнозы для обучающих выборок, но всякий раз, когда на вход будет подаваться иная выборка, полученный прогноз окажется некорректным. Такая ситуация называется переобучением.
Нечто похожее происходит с ребенком, который не учится умножать, а запоминает таблицу умножения. Если мы попросим его найти произведение двух чисел из таблицы, он ответит без запинки, но если мы попросим его перемножить два других числа, ребенок задумается.
Таблицы умножения — прекрасный пример обучения путем запоминания.
* * *
С годами архитектура нейронных сетей и методы обучения усложнялись. Постепенно возникло множество разновидностей нейронных сетей для решения самых разных задач реальной жизни. Сегодня наиболее часто используются нейронные сети Хопфилда, в которых реализован механизм запоминания под названием «ассоциативная память».
Схема нейронной сети Хопфилда.
В ассоциативной памяти информация упорядочена по содержанию. Следовательно, для доступа к ней необходимо указать содержание информации, а не ее физическое расположение, как при чтении с жесткого диска или из оперативной памяти компьютера.
Другой тип нейронных сетей, широко используемых сегодня, это самоорганизующиеся карты Кохонена. Нейронные сети этого типа содержат новаторское решение: их обучение происходит не под наблюдением. Напротив, сама сеть учится на своих ошибках.
…и мозг начинает работатьВ физике существует отдельная дисциплина, инверсная кинематика, которая занимается расчетом движений, необходимых для того, чтобы переместить предмет из точки А в точку В. По мере внесения в систему новых степеней свободы сложность расчетов (различных операций над матрицами) возрастает экспоненциально.
Рассмотрим в качестве примера роботизированную руку с выдвижным манипулятором, способную вращаться в четырех местах. Если мы будем решать матричные уравнения инверсной кинематики классическим способом, то даже суперкомпьютеру потребуется несколько часов на то, чтобы определить, как именно необходимо сместить руку в каждом направлении, чтобы переместить инструмент, закрепленный в манипуляторе, из точки А в точку В.
Таким образом, при реализации роботизированных систем, способных изменять траектории движения в реальном времени, классические методы решения матричных уравнений неприменимы. Если речь идет о роботах, систематически выполняющих одни и те же задачи (это могут быть роботы на сборочном конвейере автомобильного завода), то можно заранее рассчитать и последовательно запрограммировать работу моторов и выдвижного манипулятора. Но если мы хотим сконструировать роботизированную руку, способную действовать автономно и координировать движения в зависимости от ситуации (представьте себе роботов, которые используются на космических кораблях, в хирургии или первых экспериментальных домашних роботов), то нам потребуются более передовые системы, способные быстро вычислять, как именно должны двигаться детали робота, чтобы выполнить поставленную задачу.
На сегодняшний день при создании роботов такого типа эффективно используются нейронные сети с обратным распространением ошибки. В нашем примере нейронная сеть, обученная управлять движениями робота, будет иметь столько выходных нейронов, сколько роботу доступно степеней свободы. Каждый выходной нейрон указывает, на сколько нужно сместиться в каждом направлении, чтобы переместиться из начальной точки в конечную.
Значительное неудобство этого метода по сравнению с классическими подходами состоит в том, что нейронная сеть должна пройти длительное обучение, сравнимое с обучением человека, который в детстве учится ходить. Для человека, уже овладевшего этим навыком, не представляет трудности решать на каждом шаге сложные физические уравнения кинематики и переставлять ноги, не теряя равновесия.
При классическом обучении нейронных сетей с обратным распространением ошибки вновь и вновь рассматриваются десятки тысяч примеров и сотни тысяч возможных траекторий. И для каждой из рассматриваемых траекторий нейронная сеть обучается приводить в действие различные моторы, чтобы робот переместился из начальной точки в конечную.