Шрифт:
Существует философское направление, главный принцип утверждает, что это, напротив, одно и то же. Это течение называется бихевиоризмом и является инструментализмом в применении к психологии. Другими словами, это учение о том, что психология может или должна только быть наукой о поведении, а не о мышлении, что она может только измерять и предсказывать отношения между внешними обстоятельствами людей («стимулами») и наблюдаемым поведением людей («реакцией»). Последнее, к сожалению, представляет собой именно тот подход, который в рамках теста Тьюринга должен применять судья, рассматривая кандидата на искусственный интеллект. Тем самым поддерживается установка, что если программе удается достаточно хорошо притворяться искусственным интеллектом, значит, она им обладает. Но в конечном счете программа, не являющаяся искусственным интеллектом, не может его имитировать. Путь к искусственному интеллекту не может лежать через все более удачные трюки, благодаря которым чатботы становятся более убедительными.
Вне сомнения, бихевиорист спросит: а в чем, собственно, разница между тем, что мы дадим чатботу очень богатый набор трюков, шаблонов и баз данных, и тем, что наделим его возможностями искусственного интеллекта. Что такое программа искусственного интеллекта, если не набор таких трюков?
При обсуждении ламаркизма в главе 4 я указал на фундаментальную разницу между усилением мышцы в течение жизни одной особи и увеличением ее силы в ходе эволюции. В первом случае знание о том, как достичь всех доступных мышечных сил должно присутствовать в генах особи еще до начала череды изменений. (И то же относится к знанию о том, как распознать обстоятельства, при которых нужно запускать изменения.) Это точный аналог «трюка», который программист должен встроить в чатбот: чатбот отвечает, «как если бы» он при составлении ответа создал часть знания, но на самом деле все знания были созданы заранее и в другом месте. Аналогом эволюционных изменений вида является творческое мышление человека. Аналог идеи о том, что искусственный интеллект можно создать, накапливая трюки чатбота, – это ламаркизм, теория о том, что новые адаптации можно объяснить изменениями, которые в действительности являются лишь проявлением существующих знаний.
Существует несколько современных областей научного поиска, которым присуще одно общее заблуждение. Область исследований по искусственному интеллекту, крутящаяся вокруг чатботов, целиком зашла в тупик, но и на других направлениях проблема связана с тем, что исследователи дают чрезмерно завышенные оценки своим реальным, хотя и относительно скромным достижениям. Одним из таких направлений является искусственная эволюция.
Вспомним идею Эдисона о том, что прогресс требует сменяющих друг друга фаз «вдохновения» и «работы в поте лица», а также то, что благодаря компьютерам и другим технологиям появляется все больше возможностей автоматизации для второй фазы. Этот приятный результат ввел в заблуждение тех, кто слишком уверен в достижении искусственной эволюции (и искусственного интеллекта). Допустим, например, что вы аспирант со специализацией в области робототехники и хотите сконструировать робота, который будет ходить на двух ногах лучше предыдущих. Первая стадия решения этой задачи должна включать в себя вдохновение, другими словами, творческое мышление, направленное на улучшение попыток предыдущих исследователей. Вы будете отталкиваться от них, от известных решений других задачах, которые, по вашим предположениям, могут иметь отношение к данной, и от строения ходящих животных. Все это составляет существующие знания, которые вы будете варьировать и комбинировать по-новому, а затем критиковать и снова варьировать. В итоге вы создадите техническую конструкцию нового робота: ноги с рычагами, шарнирами, тяговыми тросами и моторами; тело с блоком питания; органы чувств, через которые робот будет получать обратную связь и тем самым сможет правильно управлять конечностями; а также компьютер, который будет осуществлять управление. В этой конструкции вами для ходьбы будет наилучшим возможным способом адаптировано все, кроме программы в компьютере.
Программа должна будет распознавать такие ситуации, когда, например, робот вот-вот потеряет равновесие или наталкивается на препятствие, вычислять соответствующее действие и выполнять его. Это самая сложная часть исследовательского проекта. Как узнать, когда лучше обойти препятствие слева, а когда – справа, когда перепрыгнуть через него, а когда отпихнуть его в сторону, или пройти прямо по нему, или шагнуть шире, чтобы не наступить на него, или решить, что его преодолеть нельзя и повернуть назад? И как именно в каждом из таких случаев нужно осуществить все эти действия по отсылке бесчисленного количества сигналов в моторы и механизмы в соответствии с обратной связью, полученной от органов чувств?
Разумеется, вы разобьете задачу на подзадачи. Поворот на один заданный угол похож на поворот на любой другой. Поэтому можно написать подпрограмму для поворота, которая возьмет на себя весь континуум возможных случаев. Готовую подпрограмму можно будет просто вызывать из остальных частей программы при необходимости поворота, и в этих частях знания о том, что именно требуется для поворота, будут излишними. Задав и решив столько таких подзадач, сколько возможно, вы создадите код или язык, весьма хорошо приспособленный для формулирования движений робота при ходьбе. Каждый вызов одной из подпрограмм – это такая формулировка или команда на данном языке.
До этого момента большая часть того, что вы сделали, относится к «вдохновению»: она требовала творческого мышления. Настало время попотеть. Автоматизировав все, что вы знаете, как автоматизировать, вы столкнетесь с единственной возможностью для достижения дополнительной функциональности: обратиться к методу проб и ошибок. Однако теперь у вас есть преимущество в виде языка, который был вами адаптирован для передачи роботу инструкций по ходьбе. Поэтому можно начать с программы, простой на этом языке, но очень сложной в плане элементарных команд компьютера и означающей, например, «Идти вперед; при столкновении с препятствием остановиться». Затем можно запустить эту программу и посмотреть, что будет делать робот. (Или проверить ее на компьютерной модели робота.) Если робот споткнется и упадет или произойдет еще что-то нежелательное, программу можно модифицировать – все на том же уже созданном вами языке высокого уровня, – устраняя недостатки по мере их выявления. Вдохновения для такого метода нужно меньше, а вот попотеть придется.
Но есть и альтернативный подход: можно переложить вторую фазу на компьютер, но с использованием так называемого эволюционного алгоритма. С помощью одной и той же компьютерной модели запускается множество пробных версий, в каждой из которых самая первая программа случайным образом немного меняется. Эволюционный алгоритм подвергает каждого смоделированного робота набору тестов, задуманных вами: сколько он может пройти, не упав; насколько хорошо он преодолевает препятствия и пересеченную местность и так далее. В конце каждого прогона остается программа, показавшая наилучшие результаты, а остальные отбрасываются. Затем создается множество вариантов этой выбранной программы, и процесс повторяется. После тысяч итераций такого «эволюционного» процесса может оказаться, что робот согласно установленным вами критериям ходит достаточно хорошо. Теперь можно писать диссертацию. И вы не только сможете утверждать, что сконструированный вами робот ходит с требуемой степенью ловкости, но и что вы на компьютере реализовали эволюцию.
Такая процедура с успехом осуществлялась уже много раз. Это полезная методика. И, безусловно, она представляет собой «эволюцию» в смысле чередования вариации и отбора. Но эволюция ли это в более важном смысле создания знаний путем вариации и отбора? Когда-нибудь мы достигнем и этого, но я сомневаюсь в том, что на данный момент это уже достигнуто, по той же причине, по которой я сомневаюсь в том, что чатботы обладают интеллектом, пусть и небольшим. Просто потому, что их способностям есть гораздо более очевидное объяснение, а именно творческое мышление программиста.