Ученый и новатор Джон Маккарти придумал термин «Искусственный интеллект», создал язык программирования Lisp и разработал концепцию разделения времени. В этой статье мы отследили путь Джона Маккарти от юного энтузиаста математики до титана компьютерной науки, чье наследие продолжает вдохновлять ученых и направлять эволюцию ИИ.
Ранняя жизнь и образование
Джон Маккарти родился 4 сентября 1927 года в Бостоне, штат Массачусетс. С ранних лет он проявлял склонность к математике. Страсть к науке легла в основу его академических занятий и в конечном итоге определила его карьеру.
После окончания школы Маккарти поступил в Калифорнийский технологический институт, где стал изучать математические дисциплины. Именно они дали ему инструменты для изучения абстрактного и конкретного, теоретического и практического. В 1948 году Джон получил степень бакалавра наук.
После получения диплома Маккарти продолжил обучение в Принстонском университете — одном из ведущих научно-исследовательских институтов мира. Там он углубился в сложные математические теории и концепции.
Докторантура стала прочной основой для логических рассуждений ученого и его дальнейшей работы. Маккарти защитил докторскую диссертацию в 1951 году. Это событие стало окончанием его формального образования, но началом исследований и открытий в области компьютерных наук и искусственного интеллекта.
Карьера и вклад Маккарти в мировую науку
1956: Создание Дартмутского семинара и рождение термина ИИ
В 1956 году Джон Маккарти был молодым математиком и работал ассистентом профессора в Дартмутском колледже. Тогда же Джон со своими коллегами организовал Дартмутский семинар, который был задуман как двухмесячный мозговой штурм. Основной его целью было рассмотреть вопрос о том, можно ли моделировать рассуждения, интеллект и творческие процессы с помощью вычислительных машин.
Деньги на проведение семинара выделил Фонд Рокфеллера. Первоначально планировалось, что в мероприятии примут участие одиннадцать ученых и математиков, но на самом деле их количество варьировалось: одни оставались на весь период, другие заходили на короткие промежутки времени.
Вместе со своими коллегами Маккарти предположил, что «Каждый аспект обучения или любой другой характеристики интеллекта в принципе может быть настолько точно описан, что машина может быть создана для его имитации». И впервые ввел термин «искусственный интеллект» для описания новой области исследований.
Термин отражал стремление к созданию машин, способных выполнять задачи, для которых обычно требуется человеческий интеллект. Например, понимание естественного языка, распознавание закономерностей, решение проблем и обучение.
1958: Изобретение языка программирования Lisp
В конце 1950-х годов Джон Маккарти осознавал необходимость в новом языке программирования, который мог бы эффективно поддерживать развитие искусственного интеллекта, поэтому в 1958 году он приступил к созданию Lisp.
Для Lisp был характерен уникальный синтаксис с большим количеством круглых скобок. Ниже пример простой программы на Lisp, которая определяет функцию для вычисления факториала числа.
(defun factorial (n)
(if (<= n 1)
1
(* n (factorial (- n 1)))))
В этом коде defun нужен для определения новой функции с именем factorial. Оператор if проверяет: n меньше или равно 1. Если меньше, то функция возвращает 1. Если n больше 1, функция возвращает произведение n и факториала n - 1. Это рекурсивный вызов функции factorial.
Рассмотрим простую программу на языке Fortran для аналогичного вычисления факториала числа.
PROGRAM FACTORIAL
INTEGER :: N = 5
INTEGER :: FACT = 1
INTEGER :: I
DO I = 1, N
FACT = FACT * I
END DO
PRINT *, 'Factorial of ', N, ' is ', FACT
END PROGRAM FACTORIAL
В Lisp для вычисления факториала используется рекурсия — концепция, которая в то время была недоступна в Fortran. Lisp ориентирована на символьные вычисления и подходит для решения задач, которые связаны с рекурсией и манипулированием «деревьями», которые часто встречаются в ИИ.
Кроме того, в Lisp было представлено много новых для того времени функций, такие как сборка мусора, динамическая типизация и самодостаточный компилятор. Впоследствии принципы проектирования Lisp повлияли на множество других языков программирования, включая Python, JavaScript и Ruby.
1958-1959: Разработка Advice Taker
Практически одновременно с созданием Lisp Джон Маккарти разработал концепцию программы Advice Taker, которая, по сути, стала ранней системой ИИ общего назначения.
Пока другое ПО решало проблемы только путем манипулирования предложениями в формальных языках, система Маккарти могла улучшить свою производительность с помощью советов в человекочитаемой форме. Она была создана для работы с новым видом списковой структуры — S-выражениями. Это позволило Advice Taker работать с информацией более гибким и интуитивно понятным способом.
Хотя полностью функционирующую версию Advice Taker Джон так и не завершил, ученый:
убедился, что машины могут демонстрировать разумное поведение, не просто выполняя запрограммированные инструкции, а обучаясь и адаптируясь к новой информации;
ввел несколько концепций, например, использование логики для представления знаний и рассуждений, которые стали фундаментальными для области ИИ.
1959: Идея концепции совместного использования времени
Со временем компьютеры становились более мощными, но оставались по прежнему слишком дорогими. Необходимо было сделать их доступными для большего числа пользователей. Поэтому Маккарти предложил концепцию совместного использования времени, которая в корне изменила способ использования вычислительных ресурсов.
Концепция позволяла нескольким пользователям одновременно иметь доступ к компьютерной системе. У каждого юзера создавалось впечатление, что он имеет эксклюзивный доступ к системе, в то время как на самом деле вычислительная мощность компьютера быстро переключается между несколькими пользователями.
В конце 1950-х годов концепция была по-настоящему революционной, потому что позволяла эффективно использовать дорогостоящие вычислительные ресурсы и давала возможность большему числу людей получить доступ к системам и пользоваться ими.
Маккарти отстаивал идею разделения времени не только теоретически. Он сыграл ключевую роль в разработке системы Compatible Time-Sharing System (CTSS) в Массачусетском технологическом институте (MIT).
Compatible Time-Sharing System стала предшественницей современных многопользовательских ОС и сыграла решающую роль в развитии интерактивных и облачных вычислений.
1965: Создание Стэнфордской лаборатории ИИ
В 1965 году Джон Маккарти приступил к новому проекту — создание Стэнфордской лаборатории искусственного интеллекта (SAIL). Под руководством Маккарти лаборатория стала центром инноваций и исследований в области ИИ. Она привлекала самые яркие умы в этой области и способствовала созданию атмосферы интеллектуального сотрудничества.
Исследования, которые проводили в SAIL, были масштабными и новаторскими. Они охватывали различные области ИИ, включая робототехнику, системы технического зрения, понимание естественного языка и машинное обучение. В лаборатории также проводились разработки в области компьютерных шахмат и был создан первый в мире мобильный робот общего назначения.
Многие концепции и технологии, разработанные в лаборатории, стали основополагающими элементами в исследованиях ИИ. Кроме того, лаборатория выпустила ряд лидеров в области искусственного интеллекта, таких как Радж Редди, Ханс Моравек, Виктор Шейнман и других.
Некоторые из ключевых открытий, сделанных в SAIL
Проект «Рука-глаза»
В этом проекте исследовали интеграцию зрения с робототехникой. Робот Shakey собирал модели из блоков. Он мог воспринимать окружающую обстановку, выводить неявные факты из явных, генерировать планы, восстанавливаться после ошибок при выполнении плана и общаться на обычном английском языке.
Проект «Стэнфордская тележка»
Тележка представляла собой самоходное транспортное средство. Она была оснащена телевизионной камерой и дальномером и могла передвигаться до заданного места и избегать препятствий в помещении без вмешательства человека.
Проект «Распознавание речи»
В рамках проекта была разработана техника распознавания непрерывной речи. Система была способна распознавать связную речь конкретного диктора и работать со словарным запасом около 1000 слов.
Операционная система WAITS
Операционную систему WAITS использовали для исследований, разработок и в качестве основной ОП для компьютера DEC PDP-10 компании SAIL. WAITS была известна своей превосходной поддержкой совместного использования времени и подготовки документов онлайн.
Язык программирования SAIL
Stanford Artificial Intelligence Language (SAIL) — язык программирования высокого уровня, разработанный для исследований в области ИИ. Его использовали для приложений искусственного интеллекта, включая обработку естественного языка и робототехнику.
Протокол Finger
Протокол Finger был ранним сетевым протоколом, который использовали для поиска информации о других пользователях в сети. Он был разработан в SAIL и позже стал стандартным протоколом Интернета.
Диск данных
Диск был ранней формой хранения данных на оптических дисках. Его использовали для хранения больших объемов данных, включая изображения и текст. Диск данных был предшественником оптических технологий хранения, таких как CD и DVD.
Системы oN-Line System (NLS)
В системе NLS ученые реализовали многие функции, которые сегодня уже стали стандартными в современных компьютерах, например, мышь, окна, гипертекст и видеоконференции.
Награды Джона
На протяжении своей карьеры Джон Маккарти получал множество наград, которые признавали его новаторский вклад в область информатики и ИИ, подчеркивали влияние его работы на широкое научное сообщество и мир в целом.
В 1971 году Маккарти получил премию Тьюринга от Ассоциации вычислительной техники (ACM) за новаторскую работу в области искусственного интеллекта, включая разработку языка программирования Lisp и концепции разделения времени. Ученые называют эту премию «Нобелевской премией в области вычислительной техники».
В 1988 году Маккарти был удостоен Киотской премии в области передовых технологий — одной из самых престижных международных наград в областях, которые традиционно не признаются Нобелевскими премиями. Он также стал лауреатом Национальной медали науки — высшей награды, которую правительство США присуждает ученым и инженерам.
Наследие Маккарти
Маккарти верил, что однажды машины смогут имитировать человеческий интеллект, и посвятил свою жизнь тому, чтобы воплотить это видение в жизнь. Джон скончался в 2011 году, но его идеи и открытия продолжают до сих пор влиять на развитие области ИИ:
Lisp повлиял на разработку Python и JavaScript и остается до сих пор популярным языком программирования для исследований ИИ;
концепция разделения времени заложила основу для современных облачных вычислений и коренным образом изменила то, как человечество использует компьютеры;
Дартмутский семинар собрал самые яркие умы и определил программу исследований ИИ на десятилетия вперед;
термин «искусственный интеллект» вошел в наш повседневный лексикон;
в SAIL были разработаны многие революционные технологии, и она продолжает оставаться ведущим центром исследований в области ИИ.