Программирование искусственного интеллекта в приложениях
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Джонс Тим
Перевод:
Осипов А. И.
Год издания: 2018
Кол-во страниц: 312
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-97060-579-0
Артикул: 616465.02.99
Доступ онлайн
В корзину
Данная книга посвящена вопросам искусственного интеллекта (ИИ), то есть методам и технологиям, призванным сделать ПО более умным и полезным. Рассмотренные алгоритмы в основном предназначены для встраивания в другое программ ное обеспечение, что позволяет создавать программы, гибко подстраивающиеся под требования и привычки пользователя. Здесь описан ряд алгоритмов ИИ - нейронные сети, генетические алгоритмы,
системы, основанные на правилах, нечеткая логика, алгоритмы муравья и умные агенты. Для каждого алгоритма приведены примеры реализации. Некоторые из этих приложений применяются на практике, другие относятся скорее к теоретическим изысканиям. Так или иначе, автор раскрывает секреты наиболее интересных алгоритмов ИИ, что делает их доступными для более широкой аудитории. Предполагается, что благодаря подробному описанию алгоритмов методики и технологии ИИ займут свое место в списке традиционных программ. Книга призвана помочь разработчикам использовать технологии ИИ при создании более умного программного обеспечения.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 10.03.01: Информационная безопасность
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов.
Для полноценной работы с документом, пожалуйста, перейдите в
ридер.
Программирование искусственного интеллекта в приложениях М. Тим Джонс
Al Application Programming M. Tim Jones CHARLES RIVER MEDIA, INC. Hingham, Massachusetts
Москва, 2018 Программирование искусственного интеллекта в приложениях М. Тим Джонс
УДК 004.8 ББК 32.813 Д42 Джонс М. Т. Программирование искусственного интеллекта в приложениях / М. Тим Джонс ; Пер. с англ. Осипов А. И. – М. : ДМК Пресс, 2018. – 312 с.: ил. ISBN 978-5970605790 Д42 ISBN 1584502789 (англ.) CHARLIES RIVER MEDIA ISBN 978-5970605790 (рус.) © Издание на русском языке, перевод на русский язык, оформление. ДМК Пресс Данная книга посвящена вопросам искусственного интеллекта (ИИ), то есть методам и технологиям, призванным сделать ПО более умным и полезным. Рассмотренные алгоритмы в основном предназначены для встраивания в другое программное обеспечение, что позволяет создавать программы, гибко подстраивающиеся под требования и привычки пользователя. Здесь описан ряд алгоритмов ИИ – нейронные сети, генетические алгоритмы, системы, основанные на правилах, нечеткая логика, алгоритмы муравья и умные агенты. Для каждого алгоритма приведены примеры реализации. Некоторые из этих приложений применяются на практике, другие относятся скорее к теоретическим изысканиям. Так или иначе, автор раскрывает секреты наиболее интересных алгоритмов ИИ, что делает их доступными для более широкой аудитории. Предполагается, что благодаря подробному описанию алгоритмов методики и технологии ИИ займут свое место в списке традиционных программ. Книга призвана помочь разработчикам использовать технологии ИИ при создании более умного программного обеспечения. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. Copyright © by
Содержание Глава 1. История искусственного интеллекта ...................... 15 Что такое искусственный интеллект ............................................... 15 Сильный и слабый ИИ ...................................................................... 16 Результат внедрения ИИ .................................................................. 16 История развития ИИ ....................................................................... 16 Рождение компьютера, 1940е ........................................................... 16 Рождение ИИ, 1950е ....................................................................... 17 Подъем ИИ, 1960е .......................................................................... 18 Спад исследований ИИ, 1970е .......................................................... 19 Подъем и спад ИИ, 1980е ................................................................. 19 Постепенный прогресс ИИ, 1990е и настоящее время ......................... 20 Направления ИИ ............................................................................... 21 Основоположники ............................................................................. 21 Алан Тьюринг .................................................................................. 21 Джон МакКарти ............................................................................... 21 Марвин Мински ............................................................................... 22 Артур Самуэль ................................................................................. 22 Философские, моральные и социальные аспекты ........................ 22 Структура данной книги ................................................................... 23 Литература и ресурсы ...................................................................... 24 Глава 2. Алгоритм отжига ............................................................. 25 Естественная мотивация ................................................................. 25 Алгоритм отжига ............................................................................... 25 Начальное решение ......................................................................... 26 Оценка решения .............................................................................. 26 Случайный поиск решения ................................................................ 26 Критерий допуска ............................................................................ 27 Снижение температуры .................................................................... 28 Повтор ........................................................................................... 28
Программирование ИИ в приложениях 6 Пример итерации ............................................................................. 28 Пример задачи .................................................................................. 29 Представление решения ................................................................... 30 Энергия .......................................................................................... 30 Температура ................................................................................... 30 Исходный код .................................................................................... 32 Пример выполнения ......................................................................... 38 Оптимизация алгоритма .................................................................. 40 Начальная температура .................................................................... 40 Конечная температура ...................................................................... 40 Функция изменения температуры ...................................................... 40 Количество итераций при одном значении температуры ....................... 40 Другие области применения .......................................................... 41 Итоги .................................................................................................. 41 Литература и ресурсы ..................................................................... 41 Глава 3. Введение в теорию адаптивного резонанса ....... 43 Алгоритмы кластеризации ............................................................... 43 Биологическая мотивация ............................................................... 43 Алгоритм ART1 .................................................................................. 44 ART1 в деталях ................................................................................ 44 Разбор выполнения алгоритма .......................................................... 47 Обучение в ART1 .............................................................................. 48 Преимущества ART1 по сравнению с другими алгоритмами кластеризации .............................................. 48 Семейство алгоритмов ART ............................................................... 48 Использование ART1 для персонализации .................................... 48 Определение персонализации .......................................................... 49 Применение персонализации ............................................................ 49 Персонализация с использованием ART1 ............................................ 49 Исходный код .................................................................................... 50 Оптимизация алгоритма .................................................................. 59 Пример запуска ................................................................................ 59 Аспекты соблюдения конфиденциальности .................................. 60 Другие области применения .......................................................... 61 Итоги .................................................................................................. 61 Литература и ресурсы ...................................................................... 62
Содержание 7 Глава 4. Алгоритмы муравья ....................................................... 63 Естественная мотивация ................................................................. 63 Алгоритм муравья ............................................................................. 65 Граф .............................................................................................. 65 Муравей ......................................................................................... 67 Начальная популяция ....................................................................... 67 Движение муравья ........................................................................... 67 Путешествие муравья ....................................................................... 67 Испарение фермента ....................................................................... 68 Повторный запуск ............................................................................ 68 Пример итерации ............................................................................. 68 Пример задачи .................................................................................. 71 Исходный код .................................................................................... 71 Примеры запуска .............................................................................. 80 Изменение параметров алгоритма ................................................. 82 Alpha () / Beta () ............................................................................ 82 Rho () ............................................................................................ 82 Количество муравьев ....................................................................... 82 Другие области применения .......................................................... 83 Итоги .................................................................................................. 83 Литература и ресурсы ...................................................................... 83 Глава 5. Введение в архитектуру нейронных сетей и алгоритм обратного распространения ............................... 85 Нейронные сети в биологической перспективе ............................ 85 Однослойные перцептроны ............................................................... 86 Моделирование булевых выражений с помощью SLP ............................ 87 Многослойные сети ......................................................................... 88 Обучение с помощью алгоритма обратного распространения ......................................... 90 Алгоритм обратного распространения ................................................ 90 Пример алгоритма обратного распространения .................................. 91 Расчет поведения ИИ для компьютерных игр ................................ 94 Архитектура нейроконтроллера ......................................................... 96 Обучение нейроконтроллера ............................................................. 98 Данные для тестирования ................................................................. 98 Обсуждение исходного кода ............................................................ 100
Программирование ИИ в приложениях 8 Обучение нейроконтроллера ........................................................ 109 Память нейроконтроллера ............................................................. 110 Другие области применения ......................................................... 110 Итоги ................................................................................................ 110 Литература и ресурсы .................................................................... 111 Глава 6. Введение в генетические алгоритмы ................... 112 Биологическое побуждение .......................................................... 112 Генетический алгоритм .................................................................. 112 Инициализация ............................................................................. 113 Оценка ......................................................................................... 114 Отбор ........................................................................................... 114 Рекомбинирование ........................................................................ 115 Генетические операторы ............................................................... 116 Перекрестное скрещивание ............................................................ 116 Мутация ....................................................................................... 117 Пример выполнения генетического алгоритма .......................... 118 Пример задачи ................................................................................ 120 Обзор .......................................................................................... 120 Кодировка решения ....................................................................... 120 Оценка здоровья ........................................................................... 120 Рекомбинирование ........................................................................ 121 Обсуждение кода ............................................................................ 121 Реализация виртуальной машины .................................................... 121 Применение генетического алгоритма .............................................. 124 Примеры запуска ............................................................................ 134 Настройка параметров и процессов ............................................. 136 Метод отбора ................................................................................ 136 Размер популяции ......................................................................... 136 Генетические операторы ................................................................ 136 Другие механизмы ......................................................................... 137 Вероятности ................................................................................. 137 Недостатки генетического алгоритма .......................................... 138 Преждевременное схождение ......................................................... 138 Эпистазис ..................................................................................... 138 Теорема «не бывает бесплатных обедов» .......................................... 139 Другие области применения ........................................................ 139 Итоги ................................................................................................ 139 Литература и ресурсы .................................................................... 140
Содержание 9 Глава 7. Искусственная жизнь .................................................. 141 Введение ......................................................................................... 141 Моделирование пищевых цепочек .................................................... 141 Модель пищевой цепочки ............................................................. 142 Обзор .......................................................................................... 142 Окружающая среда ........................................................................ 142 Анатомия агента ............................................................................ 143 Энергия и метаболизм ................................................................... 145 Воспроизведение .......................................................................... 147 Смерть ......................................................................................... 147 Соревновательность ...................................................................... 147 Пример итерации ........................................................................... 147 Исходный код ................................................................................ 151 Примеры функционирования модели .......................................... 171 Интересные стратегии ................................................................... 173 Изменение параметров ................................................................. 173 Итоги ................................................................................................ 174 Литература и ресурсы .................................................................... 174 Глава 8. Введение в системы, основанные на правилах ............................................................. 175 Введение ......................................................................................... 175 Архитектура системы, основанной на правилах .......................... 175 Рабочая память ............................................................................. 176 База знаний .................................................................................. 176 Система логического вывода ........................................................... 177 Типы систем, основанных на правилах ........................................ 177 Система обратного вывода ............................................................. 177 Система прямого вывода ................................................................ 177 Фазы работы системы, основанной на правилах ........................ 178 Фаза соответствия ......................................................................... 178 Фаза разрешения конфликтов ......................................................... 178 Фаза действия .............................................................................. 179 Простой пример .............................................................................. 179 Пример использования .................................................................. 181 Устойчивость к ошибкам ................................................................. 181 Определение правил ...................................................................... 182 Обсуждение исходного кода ......................................................... 185
Программирование ИИ в приложениях 10 Построение базы правил ............................................................... 207 Область применения ...................................................................... 207 Недостатки систем, основанных на правилах ............................. 208 Итоги ................................................................................................ 208 Литература и ресурсы .................................................................... 209 Глава 9. Введение в нечеткую логику .................................... 210 Введение ......................................................................................... 210 Пример нечеткой логики ................................................................ 210 Функции принадлежности ............................................................. 211 Нечеткое управление ..................................................................... 212 Визуальный пример нечеткой логики ........................................... 213 Аксиомы нечеткой логики .............................................................. 215 Функции ограничения .................................................................... 216 Зачем использовать нечеткую логику .......................................... 216 Пример использования .................................................................. 216 Управление зарядкой батареи с помощью нечеткой логики ................. 217 Функции принадлежности при зарядке батареи с помощью нечеткой логики ............................................................ 217 Обсуждение исходного кода ......................................................... 219 Механизм нечеткой логики .............................................................. 219 Функции принадлежности для модели зарядного устройства ............... 221 Функция управления в модели зарядного устройства для батарей ..................................... 223 Главный цикл модели ..................................................................... 224 Преимущества использования нечеткой логики ......................... 225 Другие области применения ......................................................... 226 Итоги ................................................................................................ 226 Литература и ресурсы .................................................................... 226 Глава 10. Модель состояний ..................................................... 227 Введение ........................................................................................ 227 Скрытые модели Маркова ............................................................. 228 Интересные области применения ................................................ 229 Распознавание речи ....................................................................... 229 Моделирование текста ................................................................... 230 Моделирование музыки .................................................................. 231 Пример применения ....................................................................... 231 Обсуждение исходного кода ........................................................... 231
Содержание 11 Примеры .......................................................................................... 240 Авторство ........................................................................................ 241 Итоги ................................................................................................ 241 Литература и ресурсы .................................................................... 241 Глава 11. Программное обеспечение, основанное на использовании агентов ................................ 243 Что представляет собой агент ....................................................... 243 Свойства агентов ........................................................................... 243 Строение агентов .......................................................................... 245 Как сделать агентов разумными ................................................... 247 Пример применения ....................................................................... 248 Разработка Webагента .................................................................. 248 Свойства Webагента ..................................................................... 249 Обсуждение исходного кода ......................................................... 249 Webинтерфейсы ........................................................................... 252 Сбор и фильтрация новостей ........................................................... 272 Пользовательский интерфейс ......................................................... 279 Основная функция ......................................................................... 295 Другие области применения ......................................................... 296 Итоги ................................................................................................ 296 Литература и ресурсы .................................................................... 297 Глава 12. Искусственный интеллект сегодня ..................... 298 Сверху вниз и снизу вверх ............................................................. 298 Построение искусственной жизни ................................................ 299 Разумные рассуждения и проект CYC ........................................... 299 Автономное программирование ................................................... 300 ИИ и научные открытия .................................................................. 300 Программирование эмоций .......................................................... 301 Семантическая сеть Internet .......................................................... 302 Литература и ресурсы .................................................................... 303 Приложение. Архив с примерами ........................................... 305 Алгоритм отжига ............................................................................. 305 Теория адаптивного резонанса ..................................................... 305 Алгоритмы муравья ........................................................................ 305 Алгоритм обратного распространения ........................................ 305
Программирование ИИ в приложениях 12 Генетические алгоритмы и генетическое программирование .............................................. 306 Искусственная жизнь и разработка нейронных сетей ..................................................... 306 Экспертные системы ...................................................................... 306 Нечеткая логика .............................................................................. 307 Скрытые модели Маркова ............................................................. 307 Умные агенты .................................................................................. 307 Системные требования .................................................................. 307 Предметный указатель ................................................................ 308
Эта книга посвящается моей жене Джилл (Jill) и детям Меган (Megan), Элизе (Elise) и Марку (Marc). Их терпение и поддержка сделали возможным написание данной книги. Благодарности Над созданием данной книги работало очень много людей. Когда я писал примеры для книги, алгоритмы разрабатывались и развивались большой группой исследователей и практиков. Хочется особо отметить работу Алана Туринга (Alan Turing), Джона МакКарти (John McCarthy), Артура Самуэля (Arthur Samuel), Н. Метрополис (N. Metropolis), Гейла Карпентера (Gail Carpenter), Стефена Гроссберга (Stephen Grossberg), Марко Дориго (Marco Dorigo), Дэвида Румельхарта (David Rumelhart), Джоффри Хинтона (Geoffrey Hinton), Джона Ван Ньюмена (John van Neumann), Дональда Хеббса (Donald Hebbs), Тейво Конена (Teuvo Kohonen), Джона Хопфилда (John Hopfield), Уоррена МакКуллоча (Warren McCulloch), Вальтера Питтса (Walter Pitts), Марвина Мински (Marvin Minski), Сеймура Паперта (Seymour Papert), Джона Холланда (John Holland), Джона Коза (John Koza), Томаса Бэка (Thomas Back), Брюса МакЛеннана (Bruce MacLennan), Патрика Уинстона (Patrick Winston), Чарльза Форги (Charles Forgy), Лотфи Заде (Lotfi Zadeh), Родни Брукса (Rodney Brooks), Андрея Маркова (Andrey Markov), Джеймса Бэйкера (James Baker), Дуга Лената (Doug Lenat), Клода Шэннона (Claud Shannon) и Алана Кэй (Alan Kay). Также хочу поблагодарить Дэна Клэйна (Dan Klein) за полезные обзоры ранних изданий данной книги. Вступление Эта книга посвящена вопросам искусственного интеллекта (ИИ), который также называют «слабым ИИ», или методам и технологиям, призванным сделать программное обеспечение более умным и полезным. Ранние разработки ИИ были ориентированы на создание умных машин, которые копировали поведение человека (подругому эти системы назывались «сильным ИИ»), однако в настоящее время большинство исследователей и разработчиков ИИ преследуют более практичные цели. Эти задачи включают встраивание алгоритмов и технологий ИИ в программное обеспечение, что позволяет создавать программы, гибко подстраивающиеся под требования и привычки пользователя. В данной книге описывается ряд алгоритмов ИИ, а также подробно рассматривается их работа. В число этих алгоритмов входят нейронные сети, генетические алгоритмы, системы, основанные на продукционных правилах, нечеткая логика, алгоритмы муравья и умные агенты. Для каждого алгоритма приведены примеры приложений. Некоторые из этих приложений полезны для практического применения, другие относятся скорее к теоретическим изысканиям. Так или иначе, эта книга раскрывает секреты наиболее интересных алгоритмов ИИ, что
Программирование ИИ в приложениях делает их доступными для более широкой аудитории. Я надеюсь, что благодаря подробному описанию алгоритмов в данной книге методики и технологии ИИ займут свое место в списке более традиционных программ. ИИ будет развиваться понастоящему только при условии, что ему найдется практическое применение. Поэтому я рассчитываю, что эта книга поможет разработчикам использовать технологии ИИ при создании более умного программного обеспечения. Со мной вы можете связаться по адресу mtj@mtjones.com. Обозначения, используемые в книге В книге используются следующие шрифтовые выделения: курсивом помечены смысловые выделения в тексте; названия переменных, команд и других элементов языка программирования набраны моноширинным шрифтом; специальным стилем оформлена дополнительная информация; все Internetадреса подчеркнуты; каждый листинг имеет порядковый номер (например, листинг 1.1). Тот же код без номера можно загрузить с сайта издательства «ДМК Пресс» www.dmk.ru.
Глава 1. История искусственного интеллекта В этой вводной главе представлено краткое обсуждение искусственного интеллекта и вкратце описана история создания современного ИИ и научные изыскания ряда разработчиков, которые внесли свой вклад в формирование концепции ИИ. В конце главы рассмотрена структура книги, включая изложенные здесь методики и технологии. Что такое искусственный интеллект Искусственным интеллектом, или ИИ (Artificial Intelligence – AI), называют процесс создания машин, которые способны действовать таким образом, что будут восприниматься человеком как разумные. Это может быть повторение поведения человека или выполнение более простых задач, например, выживание в динамически меняющейся обстановке. Для некоторых исследователей результат данного процесса состоит в том, чтобы научиться лучше понимать нас самих. Для других это база, на основе которой можно научить искусственные системы вести себя разумно. В любом случае ИИ обладает таким потенциалом для изменения мира, которого нет ни у одной другой технологии. В период становления ИИ его разработчики обещали достичь очень многого, а добились несравненно меньшего. В то время создание разумных систем казалось очень простой задачей, которая так и не была решена. В наше время цели создания ИИ стали намного практичнее. ИИ был разделен на несколько частей, имеющих различные цели и средства их достижения. Проблема ИИ заключается в том, что технологии, которые исследуются в его рамках, становятся обычными сразу после их внедрения. Например, построение машины, которая смогла бы различать человеческую речь, когдато считалось частью разработки ИИ. Теперь такие технологии, как нейронные сети и скрытые модели Маркова, уже никого не удивляют и не рассматриваются как разработка ИИ. Родни Брукс (Rodney Brooks) описывает этот феномен как «эффект ИИ». После того как технология ИИ находит применение, она перестает быть технологией ИИ. Поэтому сочетание букв ИИ также получило расшифровку как «Почти применено» (Almost Implemented), поскольку после своего создания эта технология перестает быть чудом и используется повсеместно.
История искусственного интеллекта 16 Сильный и слабый ИИ Так как искусственный интеллект поразному понимается разными людьми, было принято решение использовать другую классификацию. Сильный ИИ (Strong AI) представляет собой программное обеспечение, благодаря которому компьютеры смогут думать так же, как люди. Помимо возможности думать, компьютер обретет и сознание разумного существа. Слабый ИИ (Weak AI) представляет собой широкий диапазон технологий ИИ. Эти функции могут добавляться в существующие системы и придавать им различные «разумные» свойства. Данная книга фокусируется на слабом ИИ и методиках, используемых для встраивания в другие системы. Результат внедрения ИИ Исследование ИИ привело к появлению многих технологий, которые мы сейчас принимаем как должное. Вспомните, что в ранние 1960е разработки в области миниатюризации при создании космической системы «Аполлон» способствовали изобретению и внедрению интегрированных схем, которые играют такую важную роль в современных технологиях. Системы распознавания голоса и письма также обязаны своим возникновением ИИ. В настоящее время многие коммерческие продукты включают технологии ИИ. Видеокамеры используют нечеткую логику, которая позволяет зафиксировать изображение при перемещении камеры. Нечеткая логика также нашла применение в посудомоечных машинах и других устройствах. Суть этих технологий не интересует массового потребителя, потому что люди желают получать устройства, которые работают, но не хотят знать, как именно они работают. Кроме того, здесь присутствует определенный фактор страха, который может повлиять на некоторых покупателей. Узнав, что прибор использует технологию ИИ, они просто могут отказаться от его покупки. Примечание Нечеткая логика подробно описывается в главе 9. История развития ИИ Об истории и развитии ИИ можно написать очень много. В этом разделе представлены важнейшие вехи в развитии ИИ, а также кратко рассказано о людях, которые внесли в этот процесс свой вклад. Рассмотрение истории ИИ включает в себя современную точку зрения о том, как развивалась данная технология с 1940х гг. (Stottler Henke, 2002). Рождение компьютера, 1940е Эра разумных машин наступила вскоре после появления первых компьютеров. Большинство компьютеров были созданы для того, чтобы взломать немецкие шифры во время Второй мировой войны. В 1940 г. был построен первый
рабочий компьютер на электромагнитных реле – Робинсон (Robinson). Он предназначался для расшифровки военных переговоров немцев, которые были зашифрованы с помощью машины Энигма (Enigma). Робинсон назван в честь создателя мультипликационных трюков, Хита Робинсона (Heath Robinson). Три года спустя вакуумные трубки заменили электромагнитные реле, что позволило построить Колосс (Colossus). Этот более быстрый компьютер был создан для взлома новых усовершенствованных кодов. В 1945 г. в Университете Пенсильвании доктор Джон В. Мохли (Dr. John W. Mauchly) и Д. П. Экерт (J. P. Eckert, Jr.) разработали более известный компьютер, ENIAC. Его задачей было рассчитать баллистические таблицы времен Второй мировой войны. Нейронные сети с обратной связью построены Вальтером Питтсом (Walter Pitts) и Уорреном МакКуллочем (Warren McCulloch) в 1945 г., чтобы показать возможности их применения при расчетах. Эти ранние сети были электронными и весьма поспособствовали росту энтузиазма у создателей технологии. Примерно в то же время Норберт Винер (Norbert Wiener) создал область кибернетики, которая включала математическую теорию обратной связи для биологических и инженерных систем. Важным аспектом данного открытия стала концепция о том, что разум – это процесс получения и обработки информации для достижения определенной цели. Наконец в 1949 г. Дональд Хеббс (Donald Hebbs) открыл способ создания самообучающихся искусственных нейронных сетей. Этот процесс (получивший название «Обучение по Хеббсу») позволяет изменять весовые коэффициенты в нейронной сети так, что данные на выходе отражают связь с информацией на входе. Хотя использование этого метода не избавляло от проблем, почти все свободные процедуры обучения основаны на обучении по Хеббсу. Рождение ИИ, 1950е 1950е отмечены в истории как годы рождения ИИ. Алан Тьюринг (Alan Turing) предложил специальный тест (который впоследствии получил название «Тест Тьюринга») в качестве способа распознать разумность машины. В этом тесте один или несколько людей должны задавать вопросы двум тайным собеседникам и на основании ответов определять, кто из них машина, а кто человек. Если не удавалось раскрыть машину, которая маскировалась под человека, предполагалось, что машина разумна. Существует и дополнение к тесту Тьюринга (так называемый «Приз Лебнера»), которое представляет собой соревнование по выявлению лучшего имитатора человеческого разговора. В 1950е гг. ИИ по своей природе был в первую очередь символичным. Именно в то время сделано открытие, что компьютеры могут управлять символами так же, как и числовыми данными. Это привело к разработке таких программ, как предназначавшаяся для доказательства теорем Logic Theorist (авторы – Ньюэлл (Newell), Симон (Simon) и Шоу (Shaw)) и General Problem Solver (создатели – Ньюэлл и Симон), использовавшаяся для анализа нерешаемых проблем. Наверное, самым крупным открытием в программной области в 1950е было создание История развития ИИ
История искусственного интеллекта 18 Артуром Самуэлем программы для игры в шашки, которая постепенно научилась обыгрывать своего создателя. В 1950е гг. были также разработаны два языка ИИ. Первый, язык IPL, был создан Ньюэллом, Симоном и Шоу для программы Logic Theorist. IPL являлся языком обработки списка данных и привел к созданию более известного языка LISP. LISP появился в конце 1950х и вскоре заменил IPL, став основным языком приложений ИИ. Язык LISP был разработан в лабораториях Массачусетсткого технологического института (MIT). Его автором был Джон МакКарти, один из первых разработчиков ИИ. Джон МакКарти представил концепцию ИИ как часть своего предложения для Дормутской конференции по проблемам ИИ. В 1956 г. разработчики ИИ встретились в Дормутском колледже, чтобы обсудить дальнейшее развитие разумных машин. В своем предложении Джон МакКарти написал: «Задача заключается в том, чтобы работать на основе предположения, что любой аспект обучения или другой функции разума может быть описан так точно, чтобы машина смогла его симулировать. Мы попытаемся определить, как сделать так, чтобы машины смогли пользоваться языком, формулировать абстракции и концепции, решать задачи, которыми сейчас занимаются только люди, а также заниматься самообучением». Дормутская конференция позволила впервые встретиться всем разработчикам ИИ, однако общее решение по ИИ принято не было. В конце 1950х Джон МакКарти и Марвин Мински основали в MIT лабораторию искусственного интеллекта, которая работает и по сей день. Подъем ИИ, 1960е В 1960е гг. произошел скачок в развитии ИИ, вызванный прогрессом в компьютерных технологиях, а также увеличением количества разработок в данной области. Наверное, самым важным показателем того, что ИИ достиг приемлемого уровня, стало появление критиков. К этому времени относится написание двух книг: «Компьютеры и здравый смысл: миф о мыслящих машинах» Мортимера Тауба (Mortimer Taub) и «Алхимия и ИИ» Хуберта и Стюарта Дрейфус (Hubert and Stuart Dreyfus). В 1960е наиболее важным было представление знаний, так как сильный ИИ продолжал оставаться главной темой в разработках ИИ. Были построены игрушечные миры, например, «Blocks Microworld Project» Мински и Паперта в MIT, а также SHRDLU Терри Винограда (Terry Winograd). С помощью этих миров создавалась окружающая среда, в которой тестировались идеи по компьютерному зрению, роботехнике и обработке человеческого языка. В начале 1960х Джон МакКарти основал лабораторию ИИ в Стэндфордском университете. Сотрудники лаборатории, помимо прочего, создали робота Шейки (Shakey), который мог перемещаться по искусственному миру и выполнять простые приказания. Разработки нейронных сетей процветали до конца 1960х, ровно до тех пор, пока не была издана книга Мински и Паперта «Перцептроны: введение в вычислительную геометрию». Авторы описали ограничения по использованию простых
Доступ онлайн
В корзину