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

В 1981 г. профессор Стэнфорда Ричард Паттис представил учебный язык программирования под названием Karel the Robot[103]. Карел – в честь Карела Чапека, изобретателя слова «робот». Карел не был настоящий роботом, а представлял собой стрелку в разлинованном на клетки квадрате, все это было нарисовано на листе бумаги. Студенты представляли, что стрелка и есть робот, – так они изучали основы программирования. В квадрате был один или несколько выходов. Карел мог двигаться по клеточкам подобно пешке в шахматах. Задача состояла в том, чтобы помочь Карелу выбраться из коробки. Это вводное упражнение, выполняемое при помощи бумаги и ручки, годами было первым заданием на курсах программирования в МТИ, Гарварде, Стэнфорде и других технологических центрах. Профессор рисовал квадратик. В нем было несколько препятствий. Наша задача состояла в том, чтобы написать команды для Карела и вытащить его из заточения, миновав все препятствия. Не то чтобы это было весело, но не так скучно, как математика и другие дисциплины, на которые я ходила на первом курсе. Вот как выглядит типовое упражнение (рис. 8.1). А вот и инструкция к этой загадке: «Каждое утро Карел просыпается в своей кровати, когда газета оказывается на крыльце его дома. Запрограммируйте Карела так, чтобы он забрал газету и вернулся в постель. Газету кидают каждое утро на одно и то же место, а окружающий мир, в том числе кровать, расположены так, как показано на рисунке». Стрелка – это Карел; предполагается, что он находится в постели, отправной точке задачи. Чтобы добраться до газеты, ему нужно повернуть на 90° на север, пройти две клеточки в этом направлении, затем две клеточки на запад и так далее, до тех пор, пока он не достигнет цели.

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

Это превосходное решение, поскольку оно позволяет резко сократить количество переменных, которые Boss или Junior необходимо учитывать. «Малышу Бену» приходилось идентифицировать все объекты в поле зрения – дороги, пешеходов, здания и дорожные конусы – и затем прогнозировать, где объект окажется в ближайшем будущем. Таким образом, каждое предположение требовало решения сложных уравнений. Boss и Junior не нужно было этого делать, в них уже была загружена трехмерная карта местности и дорога, по которой следует проехать, а при помощи машинного обучения они определяли, по каким конкретно частям карты можно ехать, а по каким – нет. Подход, примененный при разработке Boss и Junior, – это слабый ИИ, опирающийся на технологии качественного картирования.

Машина самостоятельно двигалась согласно созданной ею же карте местности. По сути, у нее была своя сетка, как у Карела. Системе оставалось лишь объезжать препятствия. Если в изначальной карте не было дорожного конуса, он учитывался постфактум. Если же он был, то распознавался как статичный объект и вычислялся заранее – это избавляло процессор от идентификации объекта во время движения.

Перейти на страницу:

Похожие книги