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