С 1950-х годов многие представители ИИ-сообщества изучали способы сделать ключевые аспекты человеческого мышления – такие, как изначальное интуитивное знание и построение абстракций и аналогий, – частью машинного интеллекта и тем самым позволить системам ИИ действительно понимать ситуации, с которыми они сталкиваются. В настоящей главе я опишу несколько исследований на эту тему, включая некоторые направления моей прошлой и текущей работы.
Изначальное знание для компьютеров
На заре ИИ, пока машинное обучение и нейронные сети не заняли господствующее положение в отрасли, исследователи вручную кодировали правила и знания, необходимые программе для выполнения задач. Многим пионерам ИИ казалось, что таким методом “встраивания” можно сообщить машинам достаточно основанных на здравом смысле человеческих знаний, чтобы машины получили интеллект человеческого уровня.
Самой знаменитой и длительной попыткой вручную закодировать повседневные знания для машин стал проект Дугласа Лената Cyc (“Сайк”). Ленат – сначала аспирант, а затем профессор Лаборатории искусственного интеллекта Стэнфордского университета – прославился в 1970-х годах, когда написал программы, которые моделировали процесс создания человеком новых понятий, особенно в математике[334]. Однако, посвятив исследованию этой сферы более десяти лет, Ленат пришел к выводу, что для истинного прогресса в ИИ машины должны обладать здравым смыслом. В связи с этим он решил собрать огромный набор фактов о мире и прописать логические правила, в соответствии с которыми программы смогут использовать этот набор, устанавливая необходимые им факты. В 1984 году Ленат ушел с академического поста и основал компанию (ныне – Cycorp), чтобы достичь этой цели.
Название Cyc отсылает к слову encyclopedia, но, в отличие от знакомых нам энциклопедий, в Cyc, по мысли Лената, должны были войти все неписаные человеческие знания – или, по крайней мере, достаточный объем таких знаний, чтобы системы ИИ смогли работать на человеческом уровне в области зрения, языка, планирования, логических рассуждений и т. д.
Cyc – это система символического ИИ такого типа, как я описала в главе 1: она содержит набор написанных логическим компьютерным языком утверждений о конкретных объектах или общих понятиях. Вот несколько примеров утверждений из Cyc (переведенных с логического языка на естественный)[335]:
• Объект не может находиться более чем в одном месте в одно время.
• Объекты год за годом стареют.
• У каждого человека есть мать, и эта мать – женщина.
Проект Cyc также включает в себя сложные алгоритмы для построения логических выводов из утверждений. Так, Cyc может определить, что если я нахожусь в Портленде, то я также не нахожусь в Нью-Йорке, поскольку я объект, Портленд и Нью-Йорк – места, а объект не может находиться более чем в одном месте в одно время. Помимо этого, Cyc имеет богатый набор методов для работы с противоречивыми и неопределенными утверждениями.
Утверждения Cyc вручную закодированы людьми (а именно сотрудниками Cycorp) или выведены системой на основе существующих утверждений[336]. Сколько утверждений необходимо, чтобы закодировать человеческое знание, основанное на здравом смысле? На лекции в 2015 году Ленат сказал, что в настоящий момент в Cyc содержится 15 миллионов утверждений, и предположил: “Вероятно, это около пяти процентов от необходимого”[337].
Лежащая в основе Cyc философия роднит проект с экспертными системами, которые создавались в первые годы исследования ИИ. Как вы помните, в главе 2 упоминалась экспертная система для медицинской диагностики MYCIN. Для создания правил, на основе которых система сможет ставить диагнозы, разработчики взяли интервью у ряда “экспертов” – квалифицированных врачей. Затем разработчики перевели эти правила на логический компьютерный язык, чтобы позволить системе делать логические выводы. В Cyc “экспертами” выступают люди, которые вручную переводят свои знания о мире в логические утверждения. “База знаний” Cyc больше базы знаний MYCIN, а применяемые алгоритмы логического вывода более продвинуты, но у проектов одна идея: интеллект можно вручную закодировать в правила, применяемые к достаточно богатому набору явно заданных знаний. Сегодня в сфере ИИ господствует глубокое обучение, и Cyc остается одним из последних крупных проектов символического ИИ[338].