Рубріки: Истории

«Отец искусственного интеллекта»: как Джон МакКарти учил компьютеры здравому смыслу

Вікторія Пушкіна

Продолжаем серию статей о ярких именах в компьютерной науке (до этого мы уже писали о гение-самозванце Деннисе Ритчи и первых программистках ENIAC). Герой этого материала — Джон МакКарти. Этот человек дал определение термину «искусственный интеллект» (ИИ) и сегодня нередко называется его «отцом».

Уже за это он достоин статьи, а ведь он также был основоположником функционального программирования, разработал язык Лисп и еще в 1960 году предложил идею облачных вычислений, реализованную только в 2000-х.

Публикуем самые интересные факты из биографии Джона МакКарти.

Самостоятельно освоил университетскую математику

Джон МакКарти родился в 1927 году в Бостоне, но детство провел в Лос-Анджелесе. Семья жила возле Калифорнийского университета («Калтеха»). В 15 лет Джон купил книгу по математике, которую использовали студенты в «Калтехе» и начал самостоятельно ее изучать.

В 16 лет он подал документы в этот университет (и только в него), а в мотивационном письме написал только одно предложение: «Я собираюсь стать профессором математики».

Джона зачислили на первый курс, но на одном из первых занятий профессор сказал, что ему нет смысла оставаться в его классе. То же произошло на занятии второго курса. Так шестнадцатилетнего Джона МакКарти зачислили в выпускной класс математики.

Кстати, из «Калтеха» Джона позже чуть не отчислили — за несдачу экзамена по физике. Но позже он все же выпустился и отправился писать докторскую в Принстон.

Обсуждал идеи искусственного интеллекта с фон Нейманом

МакКарти впервые задумался об искусственном интеллекте в 1948 году — после посещения конференции, на которой компьютер сравнивался с человеческим мозгом. На этой конференции, в том числе, присутствовал Алан Тьюринг.

Спустя год МакКарти поделился своими мыслями с Джоном фон Нейманом (создатель архитектуры фон Неймана, на которой работают все современные компьютеры). Фон Нейману идея создания разумного компьютера понравилась, но сам МакКарти быстро разочаровался в ее предполагаемой реализации. Он хотел использовать детерминированный конечный автомат (ДКА), но понял, что этого будет недостаточно.

Схема ДКА. На вход подается последовательность нулей и единиц, которую автомат либо принимает, либо нет. ДКА — абстрактная концепция, но часто используется. Например, для моделей программ, которые проверяют, правильно ли пользователь ввел email.
Источник: https://ru.wikipedia.org/wiki/Детерминированный_конечный_автомат

В докторской МакКарти сконцентрировался на другой теме, но уже летом 1956 года вместе с Марвином Минским, Клодом Шенноном и Натаниэлем Рочестером он организовал двухмесячный семинар по вопросам ИИ в Дартмутском колледже.

Марвин Минский, Клод Шеннон, Рэй Соломонов и другие участники Дартмутского семинара
Источник: https://www.cantorsparadise.com/the-birthplace-of-ai-9ab7d4e5fb00

Там МакКарти впервые представил миру термин «искусственный интеллект» и впоследствии дал его определение:

«Искусственный интеллект — наука и технология создания интеллектуальных машин, особенно интеллектуальных компьютерных программ»

Никаких громких открытий во время семинара не произошло, но он сам по себе дал старт сфере искусственного интеллекта.

Заявка на проведение Дартмутского семинара
Полный текст можно посмотреть здесь: http://www-formal.stanford.edu/jmc/history/dartmouth.pdf

Стал «дядей» для студентов MIT и создал первый функциональный язык программирования

В 1956 году Джон МакКарти выиграл стипендию на год исследований от Sloan Fellowship Program (она кстати, существует до сих пор) и отправился в MIT. В конце года ему предложили там постоянную должность профессора. Кстати, он впечатлил не только администрацию университета, но и студентов — те называли МакКарти «дядя Джон».

Джон МакКарти провел в MIT шесть лет — одних из самых продуктивных в своей карьере. Именно в этот период, а точнее в 1958 году, он изобрел Лисп.

Лисп стал вторым после FORTRAN высокоуровневым языком программирования и первым функциональным языком программирования. То есть в нем описывается не последовательность команд, а взаимодействие между ними и подпрограммами. К таким языкам также относится Haskell и частично — Scala.

МакКарти создавал Лисп для его использования в сфере ИИ и до сих пор Лисп является самым востребованным инструментом в этой сфере. С другой стороны, Лисп считается достаточно сложным языком, в синтаксисе которого много скобок. Это породило множество мемов:

Один из мемов про Лисп
Источник: https://wiki.c2.com/?LispLanguage

Ближе к концу пребывания в MIT, Джон МакКарти совместно с Марвином Минским также поучаствовал в создании университетской лаборатории искусственного интеллекта.

Утверждал, что ИИ нельзя считать интеллектом, если у него нет человеческого «здравого смысла»

В поисках решения проблемы ИИ Джон МакКарти ставил перед собой не стандартные вопросы («Может ли компьютер обыграть человека в шахматы?»), а более тривиальные, повседневные. Например: «Как сделать, чтобы компьютер сам понял, как добраться до аэропорта?».

Идея была в том, что для решения повседневных задач люди используют здравый смысл. Значит, он должен быть и у искусственного интеллекта. Идея подробно описана в статье МакКарти 1959 года Programs with Common Sense. В ней же МакКарти описал гипотетическую ИИ-программу Advice Taker, которая сама принимает решение, как ей добраться до аэропорта.

МакКарти продолжил работать в этом направлении Стэнфорде, в который перешел из MIT. Его интересовало, как здравый смысл связан с формальной логикой.

В результате стэнфордских исследований Джон МакКарти разработал несколько мощных теорий. Например, он показал, как использовать ограничение над набором предикатов аномалии для формализации наследования.

Шел впереди своего времени

Как настоящий ученый, Джон МакКарти не всегда высказывал верные предположения. Но, как это иногда бывает в науке, некоторые из них в конце концов оказывались верными — когда дожидались своего времени.

Так, например, вышло с идеей, что технологию разделения времени в компьютерах можно использовать для распространения вычислительных ресурсов. В 1961 году, он публично предположил, что таким образом ресурсы (включая отдельные приложения) можно поставлять как коммунальные услуги.

Сначала идея произвела фурор, но спустя десять лет о ней забыли. А в начале XXI века вспомнили снова — воплотив ее в технологии облачных вычислений.

«Он всегда был сосредоточен на будущем. Всегда изобретал, изобретал, изобретал», — говорил о МакКарти Эд Фейгенбаум, заслуженный профессор компьютерных наук Стэнфордского университета.

Джон МакКарти работал в Стэнфорде и продолжал изобретать вплоть до выхода на пенсию в 1994 году. В 2011 году он умер. Спустя год после этого Стэнфордский университет включил МакКарти в список своих «инженерных героев» (Stanford Engineering Heroes).

Останні статті

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024