...
...

Что замыслил IBM'овский Big Blue

Что замыслил IBM'овский Big Blue

Произошло ужасное! Инженеры "Голубого гиганта" создали новый компьютер для игры в шахматы и этот Big Blue выиграл у Гарри Каспарова! Человек, вершина творения природы, проиграл с разгромным счетом бездушной машине, которую сам же и создал. Это что, начало конца? Закат цивилизации? Или, может быть, мы стали свидетелями рождения искусственного интеллекта?

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

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

Сами посудите, индустрия развлечений каждый год выдает "на гора" сотни различных "развлекалок", снабженных определенным интеллектом. Сегодня эти программы уже расползлись по всему Internet'у, полностью игнорируя государственные границы и языковые барьеры. Казалось бы, конец света должен был наступить уже давно. Только коварный путч взбесившегося софта все не начинается и не начинается. С чего бы это? А все с того, уважаемые, что все существующее ПО способно функционировать с очень маленьким количеством факторов в маленьком множестве возможных ситуаций. Видите ли, все применяемые сегодня принципы программирования линейны. То есть разработчик играет за обе стороны, предсказывая все ходы человека и соответствующий набор ответных реакций программы. Сами понимаете, это процесс сложный и нудный. Поди предскажи все возможные варианты. Сие возможно только в теории. А на практике придумана классная отмазка с благородным названием "защита от дурака". Под этим чудным термином подразумевается принудительное отсечение всех возможных вариантов, кроме нескольких разрешенных заранее. Вот так вот.

А теперь поговорим о компьютерном интеллекте и его угрозе для окружающих... Вспомните, сколько раз вы удивлялись фантастической огневой мощи очередного Doom'овского "супермегасверхгана". Врагов кладет пачками. Всякие бочки, решетки, калитки и бронированные двери в добрый метр толщиной напрочь сносятся одним залпом. Красота!!! Одно странно. Слегка развеивается дым - и открывается тонюсенькая, почти картонная, секретная перегородочка и очередная порция монстров пытается поинтересоваться вашим анатомическим строением. Все кругом вдребезги, а сия ширмочка - как новенькая. Или еще круче. Любовно выстраиваете засаду. По всем правилам. С минными полями, заборами и прочими радостями. А потом посылаете одного смертника в стан врага. Себя показать. Кому-нибудь "чавку" начистить. Возмущенная армия противника, естественно, не может спокойно перенести подобное хамство и пытается дать сдачи. Вот тут-то вы проявляете свою "гениальность" и быстренько оттягиваете своего рэйнджера, и толпа врагов прет прямо под залпы ваших батарей. Можно сколь угодно много раз повторять этот прием. Компьютер так и не раскусит ваш план. Я преднамеренно не конкретизирую названия игр, ибо названные принципы характерны для всех без исключения.

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

Проблема компьютерной тупости заключается в прямолинейности программирования как такового. Оставьте в покое рекламные буклеты языков программирования. Не слепитесь глянцем. Да. Да. Полностью с вами согласен. И про ООП наслышан. Догадываюсь, что вы не про Организацию освобождения Палестины. И не про JAVA, которая не мотоцикл. Однако, по большому счету, дробление одного длиннющего алгоритма на свору подпрограмм (объектов) сути не меняет. Есть некий предмет. Есть некое событие. Есть определенный набор действий с предметом при наступлении события. Можно построить четкое линейное дерево для всего массива вариантов. Пусть оно будет очень большим. От этого оно не станет менее линейным, а значит, более умным.

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

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

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

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

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

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

Более того, смело можно сказать, что нынешняя теоретическая база вообще не позволяет разработать алгоритм, пусть даже очень отдаленно способный тягаться с человеческим интеллектом. Одной из причин является четкость математического аппарата. Каждому ребенку известно, что один плюс один равно двум. Постулат, так сказать. Даже убедительное доказательство имеется. Один апельсин плюс еще один апельсин... Сколько будет? А вот и нет! Если речь пойдет об апельсиновом соке, то будет полстакана. Да и то не всегда. Один фрукт может быть сочным, а второй не очень. Если же в примере использовать треугольники - получим пять возможных вариантов: один треугольник (положите один на другой); один большой треугольник (сложите их рядом); два треугольника; ромб; квадрат. А детки в школе свято верят, что 1 + 1 всегда 2. За исключением сложения с "минус единицей". И любой компьютер в это верит. Более того. Он еще и на ноль делить не умеет. Он вообще не понимает, что такое ноль и как он может существовать. Если чего-то нет, то этого нет! Лишь человек в состоянии понять сию хитрость.

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

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

Термин "нейро" означает подобность нейрону человеческого организма. Точнее, нашему нынешнему представлению о его функционировании. Речь идет о стратегии "черного ящика". Некой библиотеке программных нейромодулей ставится задача: на вход подаем это, в результате жаждем иметь это, твоя задача - придумать, как сие сделать. Программа "думает", то есть пытается на основе множества заложенных в нее алгоритмов отследить зависимость выходных данных от входных и определить характер такой зависимости. Если все удается, то нейропрограмма "придумывает" результат. Им является некая новая программа, которая однозначно перерабатывает входные данные в выходные, как того просил оператор. Нечто, очень отдаленно напоминающее это, встроено в MS Excel v5 и выше. Там тоже есть построитель простеньких моделей. Задаете несколько прямых зависимостей. Определяете диапазоны и типы используемых данных. Уточняете вид необходимого результата и - с Богом... Модуль математического анализа сам строит матрицу и сам ее решает. Если задача имеет искомое решение, оно будет найдено. Даже несколько, если подходящих ответов больше одного.

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

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

А пока можно со всей ответственностью сказать точно: если когда-нибудь где-нибудь какой-нибудь думающий компьютер и представит опасность для человечества, то это будет никак не Big Blue от IBM.

Александр Запольскис


© Компьютерная газета

полезные ссылки
Аренда ноутбуков