Искусственный Интеллект (ИИ) сегодня один из самых популярных, обсуждаемых и одновременно противоречивых и многозначных терминов. Действительно, с одной стороны, многочисленные эксперты утверждают, что уровень развития технологий искусственного интеллекта в стране - это важнейший критерий технологической, экономической и военно-стратегической мощи государства, показатель конкурентоспособности на высокотехнологичных рынках. Аналитики сообщают, что десятки тысяч компаний применяют технологии ИИ, тысячи стартапов по всему миру развивают решения на базе искусственного интеллекта, а ИТ-гиганты конкурируют за возможность купить наиболее успешных разработчиков в этой области. Рынок искусственного интеллекта оценивается консалтинговыми компаниями в
Авторы упомянутой публикации со ссылкой на Джулию Люк (Luc Julia), вице-президента Samsung по инновациям и соавтора цифрового помощника Siri, приводят следующую ее цитату: "Сегодняшние инструменты для бизнеса используют математику, статистику, машинное обучение, глубокое обучение, большие данные, получая машины более совершенные, чем в прошлом. Но то, что так часто называют ИИ, на самом деле не связано с искусственной формой интеллекта".
Многие авторы отмечали, что словосочетание "Искусственный интеллект" - это неудачный термин, который тем не менее стал общеупотребимым. Целый ряд специалистов предлагали свои уточнения этого названия, вспомним, например, замечание профессора Константина Воронцова, согласно которому ИИ логичнее было бы расшифровать как "имитация интеллекта" [2].
Отсутствие общепринятого определения осложняет решение целого ряда юридических и экономических вопросов, которые раньше не стояли на повестке.
Сегодня ИИ де-факто вступает в области, куда раньше "не ступала нога машины". От того, как мы трактуем термины, в том числе зависит разграничение юридической ответственности в таких непростых вопросах, как кто несет ответственность за аварию, вызванную системой управления беспилотной машиной, кто ответственен за решение, если диагноз пациенту был ошибочно поставлен системой ИИ, кому принадлежит авторство на мелодию, сгенерированную ИИ, - список можно
Почему же термин, которым люди пользуются почти 70 лет, до сих пор понимается разными группами специалистов по-разному? Какие определения ИИ существуют и чем они различаются?
Перечислим некоторые проблемы, с которыми сталкиваются специалисты, пытающиеся дать свое определение ИИ.
Во-первых, ИИ быстро развивается, появляется все больше новых решений, меняется наполнение термина, и трудно дать толкование, которое было бы достаточно гибким, охватывая все новые подходы к реализации ИИ.
Во-вторых, следует отметить, что ИИ опирается на исследования разных наук, как естественных, так и гуманитарных (компьютерные науки, статистика, психология, нейробиология, философия), каждая из которых имеет свой понятийный аппарат, свои взгляды на предмет, и не всегда эти взгляды
С философской, гносеологической, точки зрения термин интеллект привязан к биологическому объекту, а вопрос о том, могут ли неживые объекты обладать ощущением (как первичной основой структуры сознания и интеллекта), не решен. Поэтому большинство нейробиологов вопрос о том, может ли машина обладать разумом и, соответственно, интеллектом, пытаются отложить на будущее.
Разные участники сообщества ставят перед собой разные задачи. Для одних исследование ИИ связано с узконаучными целями, например, как с помощью компьютерного моделирования понять механизмы работы интеллекта человека. Для других целью является создание умных машин, которые позволят решать новые научные и практические задачи, не подвластные сегодня человеку, для третьих задача формулируется как бизнес и состоит в использовании новых ИИ-технологий везде, где их использование несет экономическую выгоду.
В-третьих, термином ИИ могут назвать разработки самого разного уровня сложности, опирающиеся на разные направления искусственного интеллекта, разные технологии, реализованные как в виртуальной среде, так и воплощенные в физическое устройство (в виде умной робототехники).
Дать однозначную исчерпывающую и согласованную дефиницию ИИ очень сложно, поэтому и существуют сотни частных определений. Попробуем разобраться, что в них общего и чем они различаются.
| Определение | Автор, год и источник | Ключевая часть определения | |
|---|---|---|---|
| 1 | Автоматизация задач, которые принято считать человеческими: мышление, принятие решений, решение проблем, обучение и т. д | Беллман (Bellman), 1978, [3]. | Автоматизация задач (вид деятельности человека). |
| 2 | Область исследований, направленная на разъяснение и эмуляцию разумного поведения в терминах вычислительных процессов. | Шайкофф (SchaIkoff), 1990, [4]. | Область исследований (вид деятельности человека). |
| 3 | Искусство создания машин, выполняющих функции, которые требуют интеллекта, если бы их выполняли люди. | Курцвейл, 1990, [5]. | Искусство создания машин. (вид деятельности человека). |
| 4 | ИИ - это наука и инженерия создания интеллектуальных машин | McCarthy, 2007, [6]. | |
| 5 | Искусственный интеллект - это область, изучающая компьютерные технологии, которые делают возможным восприятие, рассуждения и действия машин на их основе | Winston, P. H., 1992, [7]. | Это область изучения компьютерных технологий (вид деятельно) |
| 6 | Искусственный интеллект - это деятельность, направленная на создание интеллектуальных машин, а интеллект - это качество, которое позволяет объекту функционировать в окружающей среде надлежащим образом и с предвидением. | Nilsson, N. J. (2010), 2010, [8] | Это деятельность по созданию машин (вид деятельности человека). |
| 7 | Зонтичный термин, охватывающий целый ряд алгоритмов, позволяющих оптимизировать поиск в Интернете, нацеливать рекламу, утверждать потребительские кредиты и направлять водителей | Эндрю Нг, профессор Стэнфордского университета. 2017, [9]. | Свойство алгоритмов |
| 8 | Выполнение компьютером действий, для которых обычно требуется человеческий интеллект | Эми Вебб, профессор Нью-Йоркского университета, 2017, [10]. | Свойство машин |
| 9 | Интеллектуальная деятельность, которая раньше выполнялась только на основе интеллекта человека, а теперь может быть выполнена компьютером, включая распознавание речи, машинное обучение и обработку естественного языка | Генеральный директор Infosys Вишал Сикка, 2017, [11] | Деятельность машин с определенными способностями |
| 10 | Под ИИ понимается: "Комплекс технологических решений, позволяющий имитировать когнитивные функции человека (включая самообучение и поиск решений без заранее заданного алгоритма) и получать при выполнении конкретных задач результаты, сопоставимые, как минимум, с результатами интеллектуальной деятельности человека. Комплекс технологических решений включает в себя информационно коммуникационную инфраструктуру, программное обеспечение (в том числе в котором используются методы машинного обучения), процессы и сервисы по обработке данных и поиску решений". | Пункт 5 Национальной Стратегии развития ИИ в РФ на период до 2030 года [12] | Комплекс технологических решений |
Интересно отметить, что большая часть авторов, упомянутых в табл. 1.1, базируются на утверждении, что ИИ - это некоторая область деятельности человека, например область науки или инженерии, в то время как другая часть экспертов делает акцент на том, что ИИ - это определенное свойство
Заметим, что это принципиально разные подходы. Действительно, ИИ как наука может заниматься чисто теоретическими вопросами. Ответ на вопрос "Что такое ИИ как наука?" предполагает в первую очередь обозначение перечня областей исследования, научных школ, направлений и т. п.
Набор публикаций за некоторый период времени определяет спектр тем, над которыми работают ученые, которые фокусируются то на одной, то на другой научной проблеме. В частности, анализируя долю статей в области различных дисциплин, можно судить об изменении фокуса научных изысканий в области искусственного интеллекта в разные периоды времени (см. рис. 1.1).
Например, как видно из рисунка, в 1998 г. почти 75 % всех публикаций приходились на компьютерную лингвистику, а спустя 20 лет к ней было отнесено лишь 15 % статей из упомянутого источника. Категория "компьютерное зрение и распознавание образов", которая в начале века была в зачаточном состоянии, выросла многократно и заняла доминирующее положение в 2018 г.
Как мы отметили, помимо определений ИИ, связываемых с научной деятельностью (табл. 1.1), есть формулировки, которые исходят из того, что ИИ интерпретируется как набор свойств, способностей интеллектуальных машин. Здесь вопрос ставится в более практической плоскости, то есть в данном случае в первую очередь речь идет о реализованном машинном интеллекте в виде программ, работающих на том или ином аппаратном обеспечении и показывающих те или иные способности искусственного интеллекта.
Если наука создает теоретические основы продуктов будущего, то, говоря о свойствах ИИ, мы вынуждены более четко разграничивать набор возможностей интеллектуальных машин, существующих к данному моменту времени, и тех, которые теоретически могут быть созданы в будущем.
Подходя к развилке между понятиями "существующий ИИ" и "гипотетический ИИ", необходимо упомянуть деление искусственного интеллекта на так называемый сильный или общий ИИ (AGI, Artificial General Intelligence) и узкий, прикладной или слабый ИИ (ANI,Artificial Narrow Intelligence).
Примеры проектов, на основе которых мы утверждаем, чем именно слабый ИИ отличается от сильного, постоянно меняются по мере обретения более широких возможностей в рамках новых реализаций систем искусственного интеллекта. Сравнительно недавно, говоря об отличии первого и второго, авторы указывали на то, что узкий (слабый) ИИ - это интеллект, способный выполнять конкретную интеллектуальную функцию или их ограниченный набор подчас лучше, чем человек. При этом, превышая возможности человека в узкой области, такая система, как правило, не имеет интеллектуальных способностей в других сферах, в отличие от человека, который обучается решению задач в самых разных областях.
Однако сегодня (в 2022 году) - с появлением мультимодальных
Появление каждой новой перспективной возможности дает повод энтузиастам говорить о том, что пройден еще один рубеж на пути создания сильного ИИ. При этом скептики продолжают говорить о том, что ИИ никогда не будет обладать широтой когнитивных способностей человека, не будет обладать эмоциями, самосознанием и целеполаганием.
Эти рассуждения часто обосновывают тем, что у машины, соизмеримой по интеллекту с человеком, должны быть цели и мотивы, подобные тем, которые есть у человека. Цели и мотивы поведения человека зависят от многих факторов. Некоторые из них обусловлены нашими инстинктами, например, желание секса, еды и крова. На поведение человека и его цели оказывают влияние эмоции - такие как страх, гнев или ревность. Некоторые наши цели и мотивы носят общественный характер, например люди подвержены воздействию таких коллективных понятий как "успешный человек".
"Революционный поворот в понимании того, что индивидуальным может быть только мозг, а разум - исключительно коллективный феномен, кардинально изменит траекторию исследований общего (сильного) искусственного интеллекта. Его исследователям предстоит найти новые, принципиально иные архитектуры и алгоритмы, ориентированные уже не только на нейронные, а на социокогнитивные гиперсети" [15].
В рамках описанной выше терминологии все существующие на сегодняшний день системы ИИ относятся к категории слабого
В отличие от слабого, сильный ИИ, или интеллект общего назначения, - это гипотетическая машина будущего, которая будет способна понимать мир на уровне, сопоставимом с уровнем понимания его человеком, и обучаться выполнению всего спектра интеллектуальных задач, которые может выполнить
Подобное деление помогает терминологически разделить два разных понятия и раскрыть одну из основных причин отсутствия консенсуса в определении ИИ. Действительно, часть специалистов (в большей степени гуманитарии) склонны воспринимать термин ИИ как сильный ИИ, как интеллектуальную машину, наделенную свойствами сознания, осознания, мышления, чувственного восприятия действительности, волеизъявления. Другая часть сообщества, занятая разработкой технологий ИИ и различного рода приложений на его основе, привыкла называть искусственным интеллектом именно то, с чем они имеют дело (то есть со слабым ИИ). И в этой связи понимание под термином ИИ-решений, относящихся к категории "слабый ИИ", не вызывают у них
При том, что мы отметили достоинство деления на сильный и слабый ИИ, подобный подход имеет и некоторые ограничения: в частности, мы не можем в рамках этой терминологии отразить процесс "усиления" (развития) слабого ИИ. Очевидно, что те решения, которые мы относим к категории слабого ИИ, совершенствуются, становятся более интеллектуальными, однако до тех пор, пока ИИ не сравняется по возможностям с человеческим, он будет оставаться слабым по определению. В этом случае исследователи, занятые построением сильного ИИ, на всех промежуточных стадиях в рамках описанной терминологии будут получать решения, относящиеся к категории "слабый ИИ".
Нельзя построить сильный ИИ, постепенно наращивая мощность известных решений на базе слабого ИИ и интегрируя их между собой. Для построения сильного ИИ нужен качественный скачок, новая архитектура. Как говорится, "нельзя достичь луны, пересаживаясь на все более высокие деревья".
Подчеркнув, что сильный ИИ - это умозрительная конструкция будущего, не следует недооценивать важности этого понятия. Неверно полагать, что это термин, которым оперируют лишь фантасты. Понятие "сильный ИИ" является своего рода целью, идеальной моделью, на которую могут ориентироваться разработчики для того, чтобы создать интеллект, который станет помощником человеку в решении любых задач. Вопрос "Достижима ли задача построения сильного ИИ?", по-видимому, так и останется предметом споров специалистов, пока такая система не будет построена. При этом очевидно, что если такой интеллект будет создан, то в силу экспоненциального развития компьютерных технологий, на основе которых, как мы полагаем, он будет создан, и при незначительном совершенствовании во времени интеллекта человека, сильный ИИ должен вскоре обогнать по возможностям человеческий интеллект, превратившись в так называемый "суперинтеллект" (рис. 1.2).
Одним ученым мысль о том, что когда-то машины достигнут уровня интеллекта человека, кажется
Прогнозы перехода к стадии сверхразума можно найти также в работах Ника Бострома, который предрекает резкое ускорение роста возможностей ИИ после достижения уровня человека ( рис. 1.3.).
Вопрос о достижимости сильного интеллекта остается открытым. Впрочем, человечеству известно множество утверждений о невозможности той или иной технологической новации. Когда-то философы вроде Дрейфуса утверждали, что "компьютеры никогда не смогут играть в шахматы" (Dreyfus, 1972).
Следует также упомянуть такую важную функцию искусственного интеллекта, как познание человеком самого себя. Действительно, по мере того как мы создаем в компьютере вычислительный вариант интеллектуальной системы, мы начинаем намного лучше разбираться в природе нашего собственного интеллекта.
Отметим также, что сильный интеллект, как и суперинтеллект, не имеет четко определенной задачи и как человеческий интеллект формирует цели и пути достижения их реализации по мере своего
Часть авторов склонны полагать, что на каком-то этапе произойдет физическое слияние субстрата человеческого интеллекта (мозга человека) и машинного. На сегодняшний день невозможно представить физическую интеграцию двух инородных тел - кремниевого чипа и нейронов мозга. Тем не менее уже развиваются технологии вживляемых в мозг чипов, например, для восстановления зрения. Каким бы фантастическим ни выглядел проект слияния машины и человека, под ним есть весомое основание. Здоровый уровень эгоцентризма стимулирует людей использовать машину в целях продления и расширения собственных возможностей и спектра ощущений, возможно, даже более активно, чем стремится к созданию некоего субъекта, более совершенного, чем сам человек.
Комментируя причины наличия противоречий в толковании термина ИИ, следует также отметить, что их можно обнаружить в психологии человека - давно замечено, что люди склонны отрицать наличие интеллекта в поведении машин, после того как узнают, как именно реализован механизм "интеллектуальности" принятия ими решения.
Эту тенденцию можно проследить на рис. 1.4, где показаны четыре группы технологий искусственного интеллекта от зрелых разработок (давно освоенных массовым пользователем) до перспективных.
Действительно, такие задачи как оптическое распознавание символов, фильтрация спама, контроль дефектов на производстве все меньше ассоциируются с искусственным интеллектом, в то время как перспективные разработки на более ранней стадии исследования, такие как автоматическая разработка ПО или персональные роботы, в большей степени могут претендовать в массовом сознании на роль примеров искусственного интеллекта.
Искусственный интеллект наделяется совокупностью способностей, которые связываются с передним краем достижений компьютерной науки и за ее пределами. Неслучайно появление известного выражения "Искусственный интеллект - это то, что еще не сделано", получившего условное название Теорема Теслера.
В подтверждение тезиса можно привести курьезный диалог, известный со времен создания пионерских ИИ-программ, в котором у эксперта спрашивают, интеллектуальна ли машина, которая может прочитывать газету и делать "выжимку событий", предлагая вниманию читателя лишь наиболее важные тезисы. После положительного ответа эксперта ему предлагается вновь ответить на тот же вопрос, объяснив ему, что программа всего лишь выбирает из текста заголовки, выделенные жирным шрифтом… Эта шуточная история отражает склонность человека отождествлять понятие искусственного интеллекта со способностями, выходящими за рамки уже известных алгоритмов.
Из рассмотренного примера следует еще одна дилемма: что мы считаем критерием интеллектуальности машины - ее способности выполнить поставленную задачу или то, как реализован механизм решения этой задачи?
Отметим также, что дать определение ИИ, который создается как подобие интеллекта естественного, весьма непросто, не зная полной картины механизмов работы, точной локализации последнего и даже не имея однозначного определения самого термина "интеллект человека".Сложность достижения консенсуса в определении ИИ в том числе объясняется отсутствием такового в трактовке понятия "интеллект человека". Действительно, можно найти массу различных трактовок понятия "интеллект человека". Авторы исследования [20] признаются, что "…похоже, существует почти столько же определений интеллекта, сколько и экспертов, которых попросили дать этому термину определение". Так, согласно трактовке толкового словаря русского языка под редакцией Д.Н. Ушакова, "интеллект - это ум, рассудок, мыслительная способность человека (в противоположность воле и чувствам)". А согласно определению AllWords Dictionary, 2006, это "способность использовать память, знания, опыт, понимание, рассуждения, воображение и суждения для решения проблем и адаптации к новым ситуациям". По данным американского словаря The American Heritage Dictionary 2000 г. - это способность приобретать и применять знания.
Один из специалистов в области ИИ - генеральный директор Deep learning partnership - в своем докладе "Towards a general theory of intelligence", сравнивая интеллект искусственный и живой, предлагает отталкиваться от толкования интеллекта человека как совокупности разных его способностей ( рис. 1.5) и проанализировать, какие из них доступны машине и в какой мере.
| 1 | Логико-математические способности | 50% |
| 2 | Лингвистические способности | 50% |
| 3 | Способность восприятия пространства | 50% |
| 4 | Музыкальные способности | 50% |
| 5 | Телесно-кинестетические | 30% |
| 6 | Способность к межличностным отношениям | 10% |
| 7 | Способность воспринимать природу | 10% |
| 8 | Интрапсихические |
5% |
| 9 | Эк0% |
Отметим, что если на рис. 1.5 речь идет о способностях некоего усредненного человека, то в случае табл. 1.2 подразумеваются совокупные способности созданных на сегодняшний день машин, а не свойства конкретного ИИ. Это очевидно, как минимум, в силу того, что пока человеком не реализовано ни одного проекта, в котором созданный ИИ обладал бы одновременно всеми из перечисленных способностей, указанных в таблице 1.2.
Как следует из описанного выше примера, в разном контексте авторы, рассуждающие о том, что такое ИИ, употребляют это понятие как характеристику совокупности способностей разного рода ИИ-машин, так и в качестве способностей конкретной реализации ИИ. Действительно, когда мы говорим, что ИИ превзошел человека в игре в шахматы, мы имеем в виду конкретную программу, а когда речь идет о том, например, что ИИ в определенной мере вытеснит человека многих нетворческих профессий, мы говорим об ИИ как о совокупности технологий.
Заметим, что способности среднестатистического человека или способности человека, когда мы говорим о человеке (как о "человечестве"), выступающем в качестве автора всех достижений творческой мысли, будут существенно отличаться.
В отношении интеллекта искусственного эти отличия еще более разительны. В отличие от людей, имеющих общее физическое строение тела и набор базовых способностей, машины, наделенные интеллектом, могут выступать в виде самых разных объектов, несопоставимых по возможностям.
Под ИИ мы можем подразумевать и относительно простые программы, действующие в виртуальном мире, и сложнейших, воплощенных в искусственном устройстве, роботов, обладающих массой интеллектуальных подсистем (либо целую сеть сопряженных устройств). Более того, интеллектуальные функции могут быть второстепенными, встроенными в самые разные машины, в том числе и не позиционируемые как интеллектуальные. Поэтому понятия ИИ как среднестатистического интеллекта усредненной машины просто не существует.
Резюмируя вышеописанные подходы к трактовке ИИ, представим их в виде диаграммы (рис. 1.6).
Здесь по оси абсцисс отложены этапы разработки любого проекта, который развивается от стадии научной теории к практике ее технологического воплощения и далее реализуется в виде продукта на базе этой технологии. На оси ординат обозначено время, отражающее более длительный исторический процесс - процесс развития ИИ как науки и индустрии.
В указанных координатах можно расположить целый ряд понятий, которые в разном контексте могут именоваться термином ИИ и обозначать разные вещи. Например, ИИ как научное направление, ИИ как совокупность технологий, ИИ как сумма способностей доступных ИИ-продуктов на данный момент времени, ИИ как способности конкретной интеллектуальной машины, ИИ как совокупность способностей интеллекта будущего, когда он сравняется или превзойдет по интеллектуальным способностям человека.
Рисунок наглядно показывает, что ИИ - это зонтичный термин, описывающий совокупность разного рода решений, существенно различающихся по технологиям, уровню сложности, стадии реализации, назначению и т. п. То есть еще раз подчеркнем, что в зависимости от контекста под ИИ мы можем подразумевать разные вещи.
Проанализировать причины множественности определений и понять наполнение термина позволяет классификация определений. Рассмотрим одну из таких классификаций, впервые предложенную Стюартом Расселом и Питером Норвигом [22]. Авторы отмечают, что различные определения искусственного интеллекта опираются на одну из четырех способностей: действовать, как человек, думать, как человек, думать рационально и действовать рационально. Примеры определений в каждой категории приведены в табл. 1.3.
Трактовки в верхней части таблицы связаны с мыслительным процессом, в нижней - с поведением, левая часть исходит из сравнения с человеком, правая - из принципов рациональности. Каждое из четырех направлений задает свою область исследований.
| Как человек | Рационально | |
|---|---|---|
| Думать |
|
|
| Действовать |
|
|
Определение ИИ, отталкивающееся от критерия "способности думать, как человек", задает направление, в рамках которого ученые пытаются построить ИИ, изучая структуру и механизмы работы человеческого мозга, анализируя мыслительный процесс человека.
Критерий "способность действовать как человек", по сути, стал основой теста
Определение, берущее за основу способность "думать рационально", соответствует направлению, связанному с созданием компьютерных программ, которые могли бы рассуждать логически. А определение, исходящее из декларирования способности машин "действовать рационально", предполагает возможность создания интеллектуальных агентов, способных оптимально достигать (при заданных ограничениях) поставленной цели (например, бизнес-цели).
Авторы упомянутой классификации указывают, что важной характеристикой, которая должна быть отражена в определении термина ИИ, является автономность этой интеллектуальной машины. Именно это свойство ИИ-машин позволит им не только находить решения проблем, которые ставит человек, но и выявлять, формулировать и решать задачи, существование которых человеку неизвестно.
Классификацию систем ИИ по степени автономности и адаптивности можно найти в отчете компании PWC (табл. 1.4). Подход предлагает три вида ИИ по степени автономности и адаптивности и отделяет понятие ИИ от понятия "автоматизация".
| Человек в контуре управления | Без человека в контуре управления | |
|---|---|---|
| Система с жесткой программой |
Ассистирующий ИИ Системы искусственного интеллекта, которые помогают человеку принимать решения или совершать действия. |
Автоматизация Автоматизация ручных и когнитивных задач, как рутинных, так и нерутинных, не предполагающая новых способов выполнения задач, а автоматизирующая существующие. |
| Адаптивная система |
Дополняющий ИИ Системы искусственного интеллекта, которые дополняют процесс принятия решений человеком и постоянно учатся на основе своего взаимодействия с людьми и окружающей средой. |
Автономный ИИ Системы ИИ, которые могут адаптироваться к различным ситуациям и действовать автономно без помощи человека. |
Вопрос автономности ИИ тесно связан с вопросом необходимости контроля над работой искусственного интеллекта и определением допустимых рисков при делегировании тех или иных задач системам ИИ. В этой связи классификация ИИ-систем по степени автономности и необходимости контроля за последними представляет определенный
Ограничение автономности ряда интеллектуальных машин объясняется тем, что полностью автономные машины могут совершить непоправимую ошибку. И чем серьезнее возможные последствия этой ошибки, тем в большей степени человек стремится оставить за собой контроль за принятием решения (рис. 1.7).
В левом верхнем углу отмечена область, где машины оказываются эффективнее человека. Здесь человек лишь незначительно дополняет и корректирует машину. Например, в фильтрации спама или подборе ключевых слов. Это области, где машина эффективна, а возможная ошибка по уровню негативных последствий невелика. Напротив, в правом нижнем углу представлена область, где принятие решения без человека невозможно. Здесь человек лишь получает подсказку ИИ, а решение принимает сам. Как, например, при постановке медицинских диагнозов.
Говоря о развитии систем ИИ и пользуясь обозначениями рис. 1.7, можно сказать, что зона, где "человек дополняет машину", продолжит расти, а зона, где "машина дополняет человека", продолжит сокращение, что в известной мере можно назвать процессом постепенного вытеснения человека из области систем решения интеллектуальных задач и принятия решений.
Системы ИИ могут быть реализованы в виде сложных человекообразных роботов, таких как, например, в проекте ATLAS компании Boston Dynamics, однако это весьма узкое направление. Существует огромное количество ИИ-решений для реализации практических задач (увеличения производительности труда, повышения качества и степени кастомизации разного рода продуктов и услуг и т. п.). Поэтому внедрение ИИ выступает скорее в виде многогранного процесса интеллектуализации искусственной среды, окружающей человека, которая становится все более связанной, более интеллектуальной, более удобной для человека с точки зрения концепции "удобства функционирования человека" в том или ином обществе на определенный момент его развития.
В некотором смысле внедрение ИИ на предприятии может рассматриваться как один из элементов цифровизации, в котором в ведение компьютера передаются все более и более сложные задачи - например, распознавание товаров на полках или анализ входящих писем службы поддержки.
Существующие на сегодняшний день решения на базе ИИ неспособны делать многие вещи, которые кажутся простыми четырехлетним детям, но могут конкурировать с лучшими специалистами по узким задачам. Тот факт, что по многим параметрам, в том числе по параметру универсальности ИИ сильно отстает от возможностей человека, не умаляет важности успехов, достигнутых на базе ИИ. Несмотря на то, что мы оперируем понятием узкий интеллект, этот "узкий интеллект", проникая в многочисленные приложения, становится широким явлением и многими аналитиками уже сегодня трактуется как ступень эволюции процессов обработки данных, при котором
Очевидно, что финальная часть схемы рис. 1.8 - это картина будущего, которая осуществима лишь при приближении к концепции сильного ИИ. Здесь кроется еще одно противоречие во взглядах на цели и перспективы развития ИИ. Ученые, которые нацелены на построение сильного ИИ, говорят о необходимости поиска новых подходов в построении ИИ, отмечая, что экстенсивный путь развития слабого (узкого) ИИ является боковым, если не тупиковым путем развития направления. При этом процент ученых, занятых в проектах построения сильного ИИ, существенно уступает по численности группам разработчиков, занятых масштабированием и внедрением существующих ИИ-технологий во все новые решения в самых разных отраслях экономики. Поэтому можно сказать, что цель построения сильного интеллекта, как явления, оправдывающего изначальное понятие термина ИИ, в большинстве проектов заменяется более очевидной целью - максимальной коммерциализации узкого ИИ.
Очевидно, что большинство инвестиций сегодня связаны с проектами, которые окупаются в обозримой перспективе (рис. 1.9) и направлены преимущественно на расширение числа разработок в области узкого (слабого ИИ). При этом также очевидно, что проекты по созданию общего (сильного) интеллекта требуют куда больших инвестиций на разработку и предполагают появление продуктов в существенно более далекой перспективе (при отсутствии консенсуса по перспективности и достижимости приложений уровня сильного ИИ).
Развитие решений на базе узкого ИИ, хоть и является менее амбициозной задачей, но требует тем не менее огромных ресурсов. Поэтому вне зависимости от того, насколько близко существующие ИИ-решения подошли к понятию сильный ИИ они олицетворяют самый передовой край инженерной мысли. Современная технология ИИ, требующая высокопроизводительных вычислений, мощной ИТ-инфраструктуры, передовых научных разработок и соответствующих кадров, дефакто стала выступать как некоторая мера технологической зрелости компаний, отраслей и целых государств.
Многие специалисты сходятся во мнении, что ИИ - это локомотив последней волны конвергенции наиболее сложных взаимодополняющих технологий
Китайские специалисты придают роли ИИ еще большее значение и в одном из исследований ( рис. 1.11) представляют ИИ как вершину эволюции не только инфокоммуникационного, но и технологического прогресса, подразумевая, что ИИ как технология вбирает в себя и базируется на всей совокупности технико-технологического опыта человечества.
Мы отразили разные акценты и разные подходы в трактовке термина ИИ.
Сложность однозначного определения понятия ИИ и путей его развития порождает проблемы в определении производных терминов, таких как "ИИ-решение", "ИИ-проект", "ИИ-компания", "ИИ-рынок". Что в свою очередь приводит к трудностям при попытках рейтингования ИИ-проектов, ИИ-компаний и, что особенно важно, при количественной оценке рынка искусственного интеллекта в силу того, что разные авторы включают в ИИ-проект разный набор технологий и сервисов.
Комментируя вопрос, почему нет общепринятой трактовки границ ИИ-проекта, приведем аналогию - попытаемся ответить на вопрос, где локализован интеллект человека и как выделить систему его формирующую. Наиболее частый ответ - это область
При этом следует отметить, что отсутствие глобального консенсуса по определению ИИ не мешает наличию консенсуса в рамках отдельных технологий, отдельных сообществ, уточненного контекста или еще уже - в рамках
В различных контекстах термин ИИ приобретает свое наполнение - как концепция, как область науки, как маркетинговый термин, как продукт ИТ-компаний, как продукт софтверных компаний, как продукт вендоров, выпускающих чипы, как мера развитости технологической компании или даже отрасли, как персонаж в произведениях фантастической литературы и т. п.
Завершая раздел "попытка определения ИИ", следует отметить, что мы попытались построить изложение курса по принципу "от простого к сложному", стараясь свести к минимуму использование терминов, которые еще не были введены в рамках настоящей публикации. То есть мы вернемся к более полному раскрытию термина и уточнению определения по мере развития рассказа о научных школах, технологиях и продуктах на базе ИИ. Надеемся, что совокупность этих представлений и позволит читателю получить более полное представление о понятии ИИ.
После обзора проблем в определении термина ИИ было бы неверным не привести определение, которое нам кажется менее противоречивым.
ИИ - это зонтичный термин, который в зависимости от контекста может определять ряд понятий, включая такие как область науки, область инженерии, технологии и машины, а также способности этих машин, позволяющие решать задачи и выполнять действия, которые до создания ИИ выполнялись только на основе интеллекта
Для того чтобы дополнить и развить понятие термина ИИ, перейдем к анализу
Существуют десятки попыток отобразить эволюцию ИИ в виде диаграмм или так называемых лент времени (timelines) - от простейших [27] до весьма подробных [28, 29, 30] с демонстрацией научных, технологических и финансовых событий, отражающих логику развития ИИ. Подчас обилие полезной информации в этих таймлайнах входит в противоречие с их наглядностью и простотой. Мы постараемся выстроить траекторию изложения материала так, чтобы постепенно вводить новые термины, начав с простых диаграмм, чтобы не вызвать у читателя отторжения в отношении схем с обилием не описанных ранее терминов.
Начнем рассказ о развитии систем искусственного интеллекта с самой простой ленты времени, которая отражает основные периоды развития и коммерциализации технологий ИИ (рис. 1.12).
Развитие технологий искусственного интеллекта шло весьма неравномерно. Часто говорят о трех волнах развития ИИ: первая связана со становлением ИИ как нового научного направления и первыми его успехами, в том числе в машинном обучении, вторая - с успехами экспертных систем и третья - с массовым применением технологии глубокого обучения (Deep Learning) и приложений на его основе. Обо всех этих направлениях пойдет речь в данной лекции.
Принято считать, что первый всплеск интереса к ИИ пришелся на период начиная с середины пятидесятых и примерно до конца семидесятых годов. В это время появились многообещающие эксперименты и первые приложения на основе нового научного направления: достигнуты первые успехи по распознаванию образов на базе искусственных нейронных сетей, разработаны программы для игры в шашки и шахматы, предприняты попытки создания первых переводчиков. Кстати, термин "Искусственный интеллект" был введен разработчиком языка программирования DARPA. В эти годы был реализован целый ряд пионерских проектов, которые упоминаются во многочисленных публикациях по истории развития ИИ. Например, в 1964 году был реализован проект Eliza - чат-бот, разработанный в Массачусетском технологическом институте, в 1966 году был создан мобильный робот общего назначения SHAKEY. На новое направление возлагались большие надежды, специалистам казалось, что через 5-10 лет удастся создать машину с интеллектом среднего человека (задача, которую так и не удалось решить до настоящего времени). Ожидания первопроходцев были сверхамбициозными. Однако, учитывая сложность задач и тот факт, что аппаратно-вычислительная база того времени была крайне ограничена, вполне естественно, что разработчики столкнулись с принципиальными трудностями. К семидесятым годам стало очевидно, что радужные ожидания не оправдались, инвесторы были разочарованы скромными результатами, и в середине 1970-х годов наступила так называемая первая зима ИИ - период охлаждения к теме ИИ и сокращение
Второй взлет интереса к ИИ произошел на волне развития экспертных систем, о которых более подробно будет рассказано далее в этой лекции. У экспертных систем оказались свои ограничения, и, как показано на рисунке 1.12, на период 1987-1993 пришлась вторая зима ИИ.
Третий взлет произошел на базе массового внедрения технологии глубоких нейронных сетей (глубокого обучения), который существенно продвинул многие прикладные решения, включая компьютерное зрение, обработку естественного языка и другие направления.
Развитие глубокого обучения стало возможным благодаря совершенствованию технологий ИИ, опыта их применения, увеличению вычислительных ресурсов, оптимизированных под задачи
Мы дали самый общий обзор эволюции развития ИИ, который будет постепенно уточняться по мере обсуждения новых деталей и вариантов применения технологий ИИ.
По аналогии с тремя волнами повышенного интереса к ИИ условно выделяют и три периода в его развитии
Это период до 80-х годов, ознаменованный оформлением ИИ в новое направление и его становление как профессионального сообщества, второй с 80-х по 90-е - как период, связанный с бурным развитием машинного обучения (
Мы выделили три взлета в развитии ИИ, три условных периода, заметим, что самая частая схема представления структуры ИИ также отображается в виде совокупности все тех же множеств (см. рис. 1.14).
Здесь искусственный интеллект - это базовое понятие, которое мы обсуждаем на протяжении всего курса, машинное обучение - его подмножество (решает задачи создания алгоритмов, способных обучаться на данных в отличие от явного программирования задачи). Глубокое обучение и нейросети - один из видов машинного обучения, получивший массовое применение. О разных направлениях машинного обучения речь пойдет далее в данной лекции.
Представленная выше схема получила массовое цитирование [32, 33], однако, как любая высокоуровневая схема, она не раскрывает подробностей, вынужденно упрощает реальную картину и может ввести в заблуждение по поводу деталей. Например, известно, что первая модель искусственного нейрона появилась в 1943 году, а первые попытки создания нейронных сетей были предприняты в 50-е - 60-е годы.
Почему же этап машинного обучения обозначен лишь в восьмидесятые годы, а глубокое обучение с 2010 года?
Попробуем разобраться.
Дело в том, что каждая технология проходит в своем развитии несколько фаз: идея, запуск, борьба за воплощение, фаза экспериментов, лабораторных установок, пилотных проектов... Со многими технологиями происходит так, что минуют годы, прежде чем технология получит коммерческое массовое внедрение и ознаменует собой этап в развитии того или иного научного направления.
Поэтому от рождения до того момента, когда технология доходит до уровня массового принятия (когда она определяет сущность этапа), может проходить длительное время. Именно так следует воспринимать начало этапов на рис.1.13.
Термин "машинное обучение" был введен в 1959 году Артуром Самуэлем, американским сотрудником IBM и пионером в области компьютерных игр и искусственного интеллекта. В качестве определяющего был выдвинут тезис "способность программы учиться, не будучи явно запрограммированной". Суть идеи состоит в том, что машинное обучение предполагает наличие общих алгоритмов, которые могут выявить полезную информацию об исследуемом наборе данных без необходимости писать специальный код для решения этой задачи.
Можно сказать, что в машинном обучении способ выполнения задачи автоматически выводится из примеров. Действительно, вместо того чтобы писать программный код, разработчики снабжают данными алгоритм, который выстраивает собственную вычислительную структуру, соответствующую логике решения прикладной задачи.
При этом следует подчеркнуть, что использование машинного обучения может дать положительный результат только в том случае, если проблема имеет решение на основании имеющегося набора данных.
Отмеченную выше мысль (отличие машинного обучения от традиционного программирования) иллюстрирует рис. 1.15.
Активное развитие технологий машинного обучения началось в 1990-х годах, что явилось заметным шагом по сравнению с тем, как создавались системы ИИ ранее - вместо того, чтобы указывать совокупность правил, используя которые можно решить задачу, эти правила формируются автоматически в процессе обучения на наборе данных.
Если в традиционном программировании (см. рис. 1.15) на вход подаются данные и явно прописывается код их обработки, который определяет последовательность решения задачи, то в случае машинного обучения код обработки автоматически формируется алгоритмами на основе данных (извлекаются из этого набора данных).
Неслучайно появился слоган "От программ, написанных человеком, к программам, написанным другими программами".
Конечно, говоря "правила", мы немного упрощаем ситуацию - на самом деле результатом работы алгоритмов машинного обучения может быть модель, которую нельзя будет интерпретировать как набор правил, и в этом смысле она не будет до конца объяснима для человека. Мы еще подробнее поговорим об интерпретируемости моделей позднее в данной лекциие и в лекции 3.
Одним из вариантов реализации моделей машинного обучения являются нейронные сети, которые состоят из нейронов и синапсов (связей между нейронами). С биологической точки зрения, нейроны - это тип клеток нервной системы живого организма. Биологи традиционно изучают развитие, рост и функционирование данных клеток так же, как и клетки других частей тела животного в рамках физико-химических методов исследования. Точка зрения на клетки (нейроны) как на системы обработки информации явилась новым взглядом, который по времени совпал с тем, как генетика и биология развития также начали делать акцент на информации, рассматривая геном как программу, интерпретируемую механизмами клетки. Большинство специалистов в области ИИ сегодня сфокусированы не столько на задачах изучения механизмов обработки информации в биологических системах, сколько на проектировании систем ИИ на базе упрощенных моделей, первоначально заимствованных у живой природы. Ученые шли от изучения структуры мозга и от попытки сконструировать модель (в том числе информационную), которая бы использовала некоторыемеханизмыработымозгаи,вообщеговоря,нервнойсистемы, которые удалось разгадать или сделать предположение об их работе. Отмеченную нами условность этапности, показанную на рис. 1.13, следует также объяснить тем фактом, что ИИ - это совокупность целого ряда технологий в рамках разных направлений, поэтому волны научных достижений и прорывов в русле одних научных направлений могут не совпадать с активностью в рамках других направлений, и более пристальный взгляд на эволюцию ИИ невозможен без того, чтобы обозначить, какие же научные направления следует выделять в рамках развития ИИ. В первую очередь следует напомнить читателю сущность символьного, коннекционистского и эволюционного направлений и показать, как их конкуренция, взаимовлияние (и в ряде случаев интеграция) определяли развитие ИИ.
Увы, простота оставляет за скобками массу деталей. По мере рассмотрения этих деталей мы неизбежно придем к более сложным схемам, которые уже не укладываются в простые и наглядные высокоуровневые представления. Говоря о сложности построения единой схемы ИИ, уместно привести цитату Марвина Минского: "Инженерное и научное образование заставляет нас ожидать, что все, включая интеллект, имеет простое, компактное объяснение. Соответственно, когда новички в области ИИ спрашивают: "В чем суть ИИ?", - они, похоже, ожидают ответа, определяющего ИИ в терминах нескольких основных математических законов" [34].
Ранее мы обратили внимание читателя на неравномерный волно-образныйхарактерразвитиятехнологий ИИ. Еслипосмотретьразные источники, в поисках согласованного мнения, когда был взлет внимания к технологиям ИИ, а когда охлаждение, то обнаружим, что у разных авторов мнения несколько расходятся. Дело в том, что процесс развития ИИ не является однородным (опирающимся на одну технологию) - напротив, он эволюционировал в рамках разных направлений, разных научных школ. Поэтому в то время, как в развитии одних научных направлений был прорыв, другие имели локальные замедления. В многочисленных работах, посвященных этому вопросу, можно найти упоминания разного количества научных школ (направлений). Мы упомянем четыре и чуть подробнее остановимся на трех из них (коннекционизм,
Символьный ИИ обозначает совокупность методов, в которых знания представляются в виде символов и их отношений, то есть в виде некоторого формального языка. Символьный ИИ основан на способности человека понимать мир путем формирования символьных представлений и их взаимосвязей и создавать правила для фиксации знаний. Способность общаться с помощью символов - одно из проявлений нашего интеллекта. Символы играют ключевую роль в процессе мышления и рассуждения человека.
С помощью символов мы можем представлять окружающие нас предметы (машина, кошка, собака). Это могут быть не только перечисленные материальные объекты, но и абстрактные понятия (демократия, капитализм, транзакция). Символы могут быть организованы в иерархию (автомобиль состоит из дверей, окон, шин, сидений и т. д.). Символы могут использоваться для описания других символов (красное яблоко, тяжелый груз). Способность человека манипулировать символами существовала тысячи лет до появления термина "искусственный интеллект".
С помощью символов могут быть построены логические конструкции (если Петя является сыном моей дочери, то, следовательно, Петя мой внук). Символьный искусственный интеллект также иногда именуют как "Rule based AI" - ИИ, основанный на правилах. В некоторых публикациях в качестве синонима понятия "символьный ИИ" используют сокращение GOFAI ("Good Old-Fashioned Artificial Intelligence" - "старый добрый искусственный интеллект"), по имени, которое использовал Джон Хоугеланд в своего курса "Искусственный интеллект: Основная идея".
Для обозначения альтернативных подходов, не использующих явно символы высокого уровня, используют термин "субсимвольный ИИ".
Приведем простой пример применения подходов символьного ИИ на практике: пусть некая скоринговая программа использует символьные переменные "пол", "возраст", "профессия" и т. п., которые могут принимать определенные значения. В программе заданы правила типа "Если профессия "программист", пол мужской, а возраст попадает в промежуток от 30 до 40 лет, то некоторая переменная, участвующая в определении кредитного рейтинга, примет такое-то значение". При этом очевидно, что логика, по которой оценивается кредитный рейтинг респондента в данном примере задана изначально, вычисляется она по определенным правилам, может быть явно прочитана человеком, а подобного рода вывод программы является объяснимым. Определив совокупность правил вышеуказанным способом и задавая на входе совокупность параметров, по которым мы оцениваем потенциальных клиентов, можно решать такие задачи, как оценка целесообразности выдачи кредита.
Говорят, что символьный ИИ относится к объяснимым (или интерпретируемым) методам ИИ, поскольку позволяет рассуждать о том, каким образом получен достигнутый результат.
В рамках символьного подхода мы можем определить некоторую сущность набором признаков и связей. Например, яблоко-это фрукт, который растет на дереве, яблоко может быть красного, желтого или зеленого цвета и так далее (рис. 1.17).
Определив набор сущностей, выраженных в виде символов и отношений между ними, мы приходим к понятию "
Достоинство семантических сетей состоит в том, что это человеко-читаемый наглядный способ представления знаний.
Примером семантической сети является граф, отражающий взаимодействия в семейной системе, где на основе указанных связей можно получить характер родственных отношений между всеми членами группы (рис. 1.18).
Используя в качестве семантической сети (базы знаний) семейное дерево, то есть зная имена и родственные связи и следуя цепочке рассуждений типа "Если Анна мать Елены, а Елена мать Евгения, то Евгений - это внук Анны", система может генерировать ответы на вопросы о родственных отношениях всех участников системы.
Используя базу знаний, представляющую собой набор фактов, правил и отношений, символьная ИИ-система позволяет вести рассуждения, основанные на алгебраическом манипулировании имеющимися знаниями и отвечать на вопросы. Понятный человеку процесс получения выводов в символьных моделях облегчает контроль в их построении и отладке.
При этом отметим, что символьная система ИИ, по крайней мере в классическом ее понимании, не может обучаться сама, она опирается на базы знаний, которые явно закладываются в систему разработчиком.
Эффективность такой системы зависит от объема и качества базы знаний. Если система получает запрос, по которому знания либо отсутствуют, либо ошибочны, система не сможет дать удовлетворительный ответ.
С точки зрения области применения, следует отметить, что символьный подход лучше всего работает в задачах с четко определенными правилами. Например, символьный подход показал хорошие результаты в доказательстве теорем, в программах для игры в шахматы.
В частности, символьный подход (наряду с другими методами) был использован в решении Deep Blue, победившем чемпиона по шахматам Каспарова в 1997 году.
Символьные подходы были доминирующей парадигмой исследований в области ИИ с середины 1950-х до середины 1990-х, они показали свою эффективность в задачах с четко заданными правилами, однако открытые системы, такие как задачи на ориентацию в "обыденной реальности мира", слишком беспорядочны, чтобы представлять их в виде универсально обоснованных правил логики, которыми оперирует символьный ИИ.
Символьный подход в основном ориентирован на извлечение знаний из экспертов, однако существуют методы, извлекающие знания из данных. Примером такого подхода является алгоритм дерева решений - метод обучения с учителем. Цель алгоритма - создать дерево правил, которые можно использовать для прогнозирования выходных данных при заданных входных данных. Дерево решений - это тип направленного ациклического графа, который отображает решения и их последствия. Логика дерева решений наглядно представляется графом и понятна человеку. Деревья решений могут работать как с дискретными, так и с непрерывными переменными, их можно использовать для задач регрессии и классификации, речь о которых пойдет далее в этой лекции.
Дерево решений обычно начинается с одного узла, который разветвляется на возможные результаты. Каждый из этих результатов приводит к дополнительным узлам, которые разветвляются на другие возможности, что и позволяет говорить о древовидной структуре.
Пример дерева решений показан на рис. 1.19. Начиная с отправной точки "могу ли я начать писать статью", решения принимаются в зависимости от последовательности ответов на вопросы, каждый из которых зависит от результатов предыдущих ответов. Так двигаясь по той или иной ветке дерева, мы достигаем результата.
Дерево решений - это простейший способ извлечения знаний из данных, существуют и другие. Такой подход изучается в рамках направления интеллектуального анализа данных (Data Mining) или "добычи знаний из баз данных" (Knowledge Discovery in Databases).
В первую очередь символьный ИИ ассоциируется с экспертными системами и базами знаний.
Экспертные системы были одними из первых действительно успешных форм программного обеспечения для ИИ. Экспертная система эмулирует способность человека-эксперта по принятию решений путем рассуждений на основе совокупности знаний, представленных в виде правил. Первые экспертные системы были созданы в 1970-х годах. К наиболее ранним примерам можно отнести программу MYCIN, которая была разработана в 1972 году и диагностировала инфекционные заболевания крови.
Другой пример - система PROSPECTOR, созданная в 1974-83 гг. для геологических изысканий.
Так же, как и MYCIN, PROSPECTOR вовлекает геолога в диалог, с тем чтобы, опираясь на его наблюдения в качестве источника исходных данных, выбрать модель и дать ответ на вопросы "Где бурить?" и "Где искать?". В 1984 г. система достаточно точно предсказала существование месторождения молибдена, оцененного в многомиллионную сумму.
Широкое распространение экспертные системы получили в 1980-х годах. В 1980 году для корпорации Digital Equipment Сorp. была создана экспертная система под названием XCON, которая, по свидетельству разработчиков, экономила до 40 млн долларов ежегодно. С начала 1980-х годов корпорации по всему миру начали разрабатывать экспертные системы. Можно сказать, что выход из очередной зимы искусственного интеллекта в 1980-х годах произошел именно на волне разработок ИИ в форме экспертных систем. Основные элементы экспертной системы показаны на рис. 1.20.
Как видно из рисунка, одним из ключевых элементов системы является инженер по знаниям, который должен выудить из эксперта (и формализовать) тот набор знаний, которым этот специалист владеет. Иногда это является нетривиальной задачей, что связано не только с нежеланием некоторых экспертов делиться всеми знаниями, но и со сложностью вербализации и формализации некоторых знаний.
Одна из проблем, с которой столкнулись разработчики экспертных систем, состояла в сложности пересмотра знаний после того, как они были закодированы в механизме правил. Накопление новых данных в экспертных системах позволяло увеличивать объем знаний, но при этом новые правила не позволяли отменить старые. Этого недостатка были лишены конкурирующие системы машинного обучения, которые в отличие от систем, построенных на правилах, могли быть переобучены на новых данных и не требовали непосредственного контакта с экспертом.
Одним из примеров применения методов символьного ИИ можно назвать семантический поиск, который развивают провайдеры поисковых сервисов. Семантический поиск пытается использовать намерения пользователя и семантику слов для поиска нужного контента. Он выходит за рамки подбора релевантных ссылок просто, по ключевым словам, используя информацию, которая может не присутствовать непосредственно в тексте (сами ключевые слова), но тесно связана с тем, что хочет найти пользователь. Например, найти куртку по запросу "куртка" достаточно тривиально, но если, например, человек формулирует вопрос в виде фразы "теплая одежда для зимы", то вполне возможно, что ему подойдет сайт, где продается теплая куртка, при этом, может быть, пользователь ищет свитер или занят поиском термобелья. Для того чтобы выдать такой исчерпывающий ответ, нужно найти связь между всеми этими понятиями.
Данную идею наглядно иллюстрирует рис. 1.21.
Семантический поиск - это подход, который обеспечивает более тесное смысловое соответствие между текстом поискового запроса и результатами поисковой выдачи на основе анализа намерений пользователя, осуществляющего поиск, контекста его запроса и взаимосвязи между словами.
Понимание взаимосвязи между словами, отношений между сущностями позволяет улучшить качество поиска. Для решения данной задачи используются уже упомянутые нами графы Google появился алгоритм Hummingbird (Колибри), который считается первым поисковым алгоритмом, в котором был реализован семантический поиск, направленный на решение задачи "страницы, соответствующие смыслу, должны быть в приоритете по сравнению со страницами, соответствующими лишь нескольким поисковым словам". По сути, это означает, что страницы, которые лучше соответствуют контексту и намерениям пользователя, должны ранжироваться выше, чем страницы, которые повторяют ключевые слова без контекста. Для поисковиков это было очень важно, учитывая, что появилось множество недобросовестных методов для поднятия рейтинга страниц путем накачки ключевых слов. В настоящее время графы знаний широко используются технологическими гигантами, которым необходим анализ огромных объемов неупорядоченных данных. Не только Google использует графы знаний.
Netflix так же, как и упомянутые поисковые системы, использует технологию графов знаний для организации информации о своем обширном каталоге контента, устанавливая связи между фильмами, телепередачами, актерами и режиссерами ( рис. 1.22), что помогает предсказывать будущие запросы клиентов.
Можно сказать, что семантический поиск - это технология, которая использует модель графа знаний и позволяет системам искусственного интеллекта понимать значение сущностей и связей между ними, давая таким образом возможность увеличить точность поиска и степень его персонализации.
Таким образом, графы знаний - это инструмент сбора информации из разнородных источников и структурирования большого количества взаимосвязанных данных, которые можно исследовать с помощью запросов. Графы знаний используются для создания таких систем, как семантические поисковые системы, рекомендательные системы и разговорные боты.
Несмотря на то, что по массовости применения в решении современных задач ИИ символьный ИИ уступил позиции субсимвольным методам, тем не менее применение символьного ИИ существует и по сей день в современных экспертных системах, таких как, например, платформа ROSS [38], которая помогает юридическим фирмам в изучении судебных дел, в поисковых системах и других приложениях.
Каждое из направлений ИИ имеет свои сильные и слабые стороны. Многогранность явления ИИ говорит о том, что не существует одного-единственного наилучшего способа для решения широкого спектра задач ИИ. Оптимальные решения могут быть достигнуты на базе комбинирования нескольких подходов. Например, разработки в области символьного ИИ лежат в истоках такого фундаментального направления в области ИИ как NLP (Natural Language Processing, обработка естественного языка), которое в последнее время активно развивается, опираясь на технологии глубокого обучения. Все чаще возникают проекты, в которых речь идет об интеграции символьных и субсимвольных подходов для обеспечения объяснимости ИИ-решений. Прежде чем привести примеры подобных решений, напомним читателю более подробно о сути коннекционистских подходов в создании ИИ.
Коннекционизм - от английского слова Connect (соединять) - это направление ИИ, которое исходит из предположения, что ментальные способности человека и, в частности, способность к обучению можно объяснить и имитировать на основе сложноорганизованной сети связанных между собой (соединенных определенным образом) одинаковых относительно простых элементов.
Одним из центральных направлений коннекционизма является моделирование интеллекта с помощью искусственных нейронных сетей, состоящих из нейронов и синапсов (связей между нейронами). Механизм работы искусственных нейронов заимствован из живой природы. Последние были созданы в результате наблюдения за процессами, происходящими в мозге живых организмов. Заметим, что сам термин "нейрон", используемый в понятии "искусственные нейронные сети" (ИНС), был заимствован из биологии. Представление о том, что развитие и обучение человека базируется на свойствах нейронов мозга устанавливать связи, не ново, согласно данным [39] данная идея была высказана еще в 1932 г. психологом из Колумбийского университета (Нью-Йорк) Эдвардом Торндайком.
Как известно из биологии, нервные клетки при определенном воздействии могут переходить в активированное состояние. Сигналы по нервным волокнам передаются в виде коротких импульсов от клетки к клетке, достигают нервных клеток в мышцах, что приводит к возбуждению мышечных волокон и, соответственно, к движению животного или человека.
Каждая нервная клетка состоит из трех частей: из тела, нескольких ветвистых отростков (дендритов) и протяженного нервного волокна (аксона), длина которого может составлять от нескольких миллиметров до десятков сантиметров (рис. 1.23).
Нервные клетки взаимодействуют между собой в местах стыка (синапсах), где встречаются аксон пресинаптического нейрона и дендрит постсинаптического нейрона. Дендриты являются входными каналами для нервных импульсов, поступающих через аксоны от других нейронов. Эти импульсы могут либо возбуждать (увеличивать), либо подавлять (уменьшать) мембранный потенциал тела нейрона, который со временем возвращается к своему нормальному значению. Если количество возбуждающих импульсов превышает пороговое значение, то нейрон сам генерирует импульс.
Взаимодействующие между собой посредством передачи возбуждений нейроны формируют нейронные сети.
Как будет показано далее, ИНС используют некоторую аналогию с работой живых нервных клеток.
Основополагающей работой, заложившей фундамент для создания искусственных моделей нейронов и нейронных сетей, явилась работа Уоррена С. Мак-Каллока и Вальтера Питтса "Логическое исчисление идей, относящихся к нервной активности", опубликованная в 1943 г., в которой была предложена модель формального нейрона. Однако прошло более 10 лет, прежде чем появился нейрон Розенблатта, в котором использовалось суммирование входящих сигналов, умноженных на соответствующие числовые значения (синаптические веса) - рис. 1.24.
Несложно проследить сходство схемы, показанной на рис. 1.24, и рисунка 1.24. Модель, прообразом которой является биологический нейрон, представляет собой устройство, имеющее несколько входов (синапсы) и один выход (аксон).
На вход подаются сигналы . Каждому входу ставится в соответствие некоторый весовой коэффициент .
Попадая в нейрон, сигналы умножаются на соответствующие веса и складываются между собой ( - линейное преобразование). Сложение сигналов, поступающих по синаптическим связям, осуществляется в сумматоре (рис. 1.24).
Известно, что последовательное применение нескольких линейных преобразований эквивалентно одному линейному преобразованию. Если бы модель нейрона ограничивалась одним сумматором, то объединение множества нейронов в сеть было бы эквивалентно одному нейрону. Для того чтобы нарушить это правило, в модель нейрона добавляется нелинейный преобразователь (который реализует нелинейную функцию, которая называется функцией активации).
В рассмотренной модели использовалась пороговая функция активации (ступенчатая функция), которая показана на рис. 1.25 (а). Если суммарный сигнал превышает заданный порог активации, то нейрон возбуждается (активируется) и выдает на выходе 1, иначе выдается 0.
Определенным недостатком (ограниченной гибкостью) модели Уоррена Мак-Каллока являлся именно вид переходной функции (пороговый) - если значение вычисленного суммарного сигнала даже незначительно не достигает заданного порога, то выходной сигнал не формируется.
Такая функция подходит для бинарной классификации, но не подходит, когда для классификации требуется большее число нейронов (количество возможных классов больше двух). То есть если возникает задача, в которой возможно несколько ответов, или нам нужно вероятностное решение, например, с вероятностью 70% это один класс, а с вероятностью 30% - другой.
Впоследствии были реализованы модели нейрона с различными функциями активации. В частности, наиболее широкое использование получила сигмоида - гладкая монотонно возрастающая нелинейная функция, которая ограничена двумя горизонтальными асимптотами, что обеспечивает нормализацию выходного значения нейрона (рис. 1.25 б ) в диапазоне от 0 до 1.
По сути, нейрон представляет собой элементарный вычислитель, характеризующийся входным/ выходным состоянием и функцией активации.
На основе элементарных вычислителей, каждый из которых получает сигналы и посылает другим вычислителям, составляются ИНС разной топологии. Самая простая однослойная сеть показана на рис. 1.26.
Здесь сигналы от входного слоя сразу подаются на выходной слой по связям, каждой из которых устанавливается свой весовой коэффициент.
С помощью подобной сети можно построить работу простейших автоматов. Например, на рис. 1.27 показан автомат (гусеничный робот с тремя датчиками света), реагирующий на положение источника света.
Входные ячейки (фотоэлектрические датчики) реагируют на свет, посылают сигналы на выходные ячейки (нейроны), которые подают сигнал на управление гусеницами робота. Обучить такой автомат разным вариантам движения в зависимости от положения света можно задав весовые коэффициенты, определяющие силу связи между ячейками. В рассмотренном примере задача по обучению робота состояла в необходимости обеспечения движения такой машины за источником света. Для этого были подобраны веса, определяющие силу связи (от 0,45 до 0,99), как показано на рисунке. Еслиположение источника света находится спереди слева от автомата, то активируется вращение правой гусеницы, и наоборот. Несложно представить, что подобная машина будет двигаться за источником света.
Мы рассмотрели простейшую однослойную сеть. Больший интерес представляют многослойные сети. На рис. 1.28 показана многослойная сеть, где каждый нейрон одного слоя посылает сигнал каждому нейрону другого слоя. Данная сеть - это сеть прямого распространения, то есть сеть, в которой сигнал распространяется от входного слоя к выходному в одном
Далее поговорим об обучении нейронных сетей. В процессе обучения на вход подается вектор признаков ( рис.1.28), описывающий объект (массив значений), число элементов которого равно числу входных нейронов, на внутренних слоях происходит обработка сигналов, сеть преобразовывает сигнал в выходной слой.
Для того чтобы более наглядно объяснить, как происходит процесс обучения, рассмотрим конкретную задачу распознавания рукописных символов (рис. 1.29).
Как показано на рисунке, изображение рукописного символа (в данном случае цифры 4) разбивается на пикселы, представляется в виде вектора чисел и подается на вход сети.
Если бы все символы были одного размера и начертания, то задача распознавания была бы предельно простой - в том смысле, что сети потребовался бы всего лишь один входной вектор, чтобы запомнить один правильный ответ. Но цифры могут быть напечатаны разными шрифтами, а если мы говорим про рукописные символы, то тут разнообразие еще больше. Все люди пишут числа по-разному - наклон, начертание (все то, что мы называем почерком). И если мы подадим сети, обученной на одном примере, немного измененный входной вектор, соответствующий несколько иному начертанию той же цифры, то правильного ответа уже не получим.
Если необходимо, чтобы сеть классифицировала все многочисленные варианты рукописного написания цифр (например, четверки, показанной на рисунке как числа "4"), то задача состоит в том, чтобы научить сеть способности обобщать признаки на различных входных данных.
Для этого сети нужно продемонстрировать максимально полный набор вариантов написания цифры разными способами, чтобы она "поняла", какая совокупность признаков позволяет людям относить все разные начертания к одному классу изображений (цифре четыре). Для решения подобной задачи создаются обучающие выборки - данные, по которым обучается сеть. Обучение производится на многочисленных примерах размеченных данных, то есть на базе изображений, в каждом из которых отмечен правильный результат. Подобное обучение называют обучением с учителем или контролируемым обучением. Этот процесс похож на обучение ребенка. Ученику показывают изображение цифры в курсе или написав ее на доске, сообщая при этом правильный ответ. А потом тестируют ученика на знание предмета. Похожая процедура проводится с сетью. Сеть обучают на большом числе примеров по многочисленным вариантам написания каждой цифры, в результате чего подбираются весовые коэффициенты всех связей нейронов, и сеть в результате этой операции приобретает способность распознавать те изображения рукописных цифр, которые ей ранее не были продемонстрированы. После того, как сеть обучена, качество полученной модели проверяют на тестовой выборке. Если тест пройден - модель готова.
Жизненный цикл нейронной сети, как и любой модели машинного обучения, состоит из двух этапов: обучение (training) и применение (inference). На рис. 1.30 показаны периоды обучения сети: 1 иллюстрирует сеть определенной топологии до начала обучения, 2 показывает процесс обучения. Речь идет о задаче, в которой сеть должна обучиться относить изображения к одному из двух классов - "кошка" и "собака". По аналогии с предыдущим примером, где речь шла о необходимости продемонстрировать сети все варианты написания цифр, в данном случае сети необходимо продемонстрировать все варианты расположения, все ракурсы, все варианты освещения изображений обоих животных, чтобы сеть могла вычленить общие признаки для распознавания каждого из двух классов на фото. По мере того, как в сеть подаются размеченные изображения (про каждое известно, что там показано - кошка или собака), идет процесс обучения, который состоит в том, чтобы так подобрать весовые коэффициенты, чтобы сеть правильно относила каждое изображение к одному из двух классов. На рисунке на стадии обучения нейроны показаны разных размеров, что условно означает процесс нахождения весовых коэффициентов, которые определяют разную силу связи между соседними нейронами (то есть вес отдельных нейронов). На рис. 1.30 (3-4) условно показан процесс оптимизации сети по производительности: производится удаление избыточных связей в сети - связей, которые определяются малыми весами.
В случае глубокой нейросети на вход подаются тысячи и более размеченных данных, на которых сеть должна обучиться, чтобы идентифицировать закономерности в данных. Обучение обычно требует больших затрат вычислительных ресурсов, процесс обучения может быть реализован на локальном оборудовании или в облаке.
Обученная и оптимизированная модель передается в систему, где происходит ее применение - сеть распознает новые изображения. Заметим, что обучение сети может являться довольно длительным процессом, а вычисление результатов обученной сетью модели происходит достаточно быстро. Готовая для использования модель может быть размещена в облаке в некотором ЦОДе, локально у заказчика или на периферийном устройстве. В случае периферийного устройства небольшой мощности может быть особенно актуальна стадия оптимизации модели по производительности, о которой мы упомянули ранее.
Выше мы отметили, что для обучения модели на базе нейронных сетей необходимо настроить оптимальные веса для всех связей. Но до сих пор не обсуждали, как это можно сделать.
В сети из нескольких нейронов, как в примере рис. 1.27, весовые коэффициенты можно подобрать вручную. Однако в большей сети необходим автоматический способ поиска оптимальных значений весов (алгоритм обучения). Во время обучения веса, изменяясь на малые величины, приближаются к целевым (оптимальным) значениям.
Важнейшим этапом в развитии нейросетевых подходов явилось появление в середине 80-х годов прошлого века алгоритма обучения, который называется "метод обратного распространения ошибки". Не вдаваясь в детали, кратко остановимся на сути этого алгоритма.
Обучение нейросети происходит в два этапа - прямого распространения сигнала по сети, после которого вычисляется ошибка предсказания, и распространения ошибки по сети в обратную сторону по тем же самым связям, при котором веса связей сети корректируются таким образом, чтобы повысить успешность решения сетью задачи (уменьшить ошибку). Процесс повторяется до тех пор, пока не будет достигнут желаемый результат.
Поясним процедуру на рассмотренном выше примере с классификацией изображений. На стадии обучения мы представляем нейронной сети изображения вместе с метками (целевыми значениями), которые определяют, что именно изображено на рисунке. Предположим, что на некотором шаге обучения мы предоставили сети изображение кошки. После завершения прямого прохождения данных об изображениичерезсетьмодельформируетвыход, согласно которому изображение на 75% является кошкой. Во время обратного распространения учитывается ошибка, полученная на предыдущем этапе. Веса сети корректируются с учетом ошибки, так, чтобы в следующий раз точность была выше. Корректировка каждого веса осуществляется пропорционально его индивидуальному вкладу в общую ошибку. Поскольку вклад в ошибку от весов в более ранних слоях зависит от вклада весов в более поздних слоях, сигнал ошибки описывается как "обратное распространение ошибки".
Задача может быть сформулирована как оптимизация некоторой функции потерь, которая зависит от искомых весов. Потери (ошибка) - это разница между текущим предсказанием сети и истинным (определяемым меткой). Веса изменяются на каждой итерации, пока мы не приблизимся к минимуму функции потерь. Цель обучения - минимизировать ошибку или максимизировать точность предсказания, выполняемого моделью.
Как мы отметили, символизм и коннекционизм не единственные подходы, на основе которых могут строиться системы искусственного интеллекта. Но прежде, чем упомянуть другие системы, интересно остановиться на сравнении символьного и коннекционистского подходов, поскольку они представляют собой две основные ветви искусственного интеллекта и процесс их развития, конкуренции и взаимо-дополнения в известной степени отражает процесс эволюции ИИ.
Сравнивая упомянутые направления, уместно напомнить понятия "нисходящий" и "восходящий" как два подхода к созданию ИИ. Символьный подход относят к нисходящему (его также иногда называют подход "сверху вниз"), а коннекционистский - к восходящему (или к подходу "снизу вверх").
В нисходящем подходе познание рассматривается как высокоуровневое явление, которое не зависит от низкоуровневых деталей, то есть абстрагируется от способа реализации механизма работы мозга (в случае природного интеллекта) или принципа действия, конструкции вычислительного устройства (в случае искусственного интеллекта).
Подход "снизу вверх", или так называемая "восходящая парадигма" - это процесс изучения механизмов, использованных природой, с тем чтобы на их основе создать тот или иной вариант реализации ИИ. Примером последнего подхода является процесс создания искусственных нейронных сетей, которые базировались на изучении нейросетевой структуры мозга животных и человека.
Использование вышеописанных подходов можно проиллюстрировать на разных вариантах построения программы распознавания символов - например, символы можно распознавать на основе описания начертания той или иной буквы, в виде определения совокупности правил: "если буква состоит из трех отрезков, двух длинных и одного короткого, которые расположены таким-то образом, то следовательно - это буква А". Это символьный или нисходящий подход. В восходящем подходе речь может идти об обучении нейронной сети путем представления ей изображений большой совокупности букв "А", написанных разными способами, так что сеть сможет вычленить общие признаки для всех вариантов написания буквы и начать ее распознавать.
Исторически символьный подход был первым направлением, на базе которого удалось создать коммерчески успешные системы искусственного интеллекта. Он господствовал примерно с 1950-х по 1980-е годы.
Нисходящие системы плохо справляются с решением задач, включающих большое количество слабых видов взаимодействий, как, например, в системах распознавания образов. Этим объясняется растущее стремление найти альтернативный, более гибкий подход - что стимулировало обращение к коннекционистским моделям.
Для обучения ИНС требуют больших вычислительных ресурсов и памяти, которые было невозможно удовлетворить в период расцвета символьных методов. Позднее, когда появились более производительные компьютеры, исследования коннекционистских сетей "подход снизу вверх" показали значительные перспективы сначала в области распознавания образов, а позднее и во многих других областях. Общая тенденция выразилась в том, что по мере роста вычислительных возможностей коннекционистские методы в существенной мере потеснили символьные.
На рис. 1.32 отмечен 1943 год, в котором, как мы упомянули, появилась модель МакКаллока-Питтса.
Согласно данным Британики [45], первая нейронная сеть появилась в 1954 году, она была разработана Белмонтом Фарли и Уэсли Кларком из Массачусетского технологического института. Сеть была ограничена 128 нейронами и позволяла распознавать простые шаблоны.
В проекте было показано, что случайное разрушение до 10% нейронов в обученной сети не влияло на производительность сети - что напоминает свойство мозга человека переносить ограниченный ущерб, нанесенный хирургическим вмешательством или болезнью.
Среди первых применений можно упомянуть использование сети для принятия инвестиционных решений, распознавания рукописных цифр и определение по внешнему виду некоторых видов вооружений на изображениях.
В 1958 году Розенблатт построил электронное устройство, которое должно было имитировать процессы человеческого восприятия, получившее название "Перцептрон". Проект базировался на развитии идей МакКаллока и Питтса. Перцептрон должен был передавать сигналы от устройства на базе фотоэлементов в блоки электромеханических ячеек памяти, которые оценивали относительную величину электрических сигналов.
Два года спустя (в 1960 году) в Корнеллском университете был продемонстрирован первый нейрокомпьютер - "Марк-1", который был способен распознавать некоторые буквы английского алфавита. В современной терминологии перцептроны могут быть классифицированы как искусственные нейронные сети с одним скрытым слоем, с пороговой передаточной функцией и с прямым распространением сигнала.
В это же время шло развитие технологий в области символьного ИИ. В частности, на рис. 1.32 отмечен 1965 год - это год, в котором британский философ и логик Джон Алан Робинсон сформулировал правило резолюций - правило вывода, восходящее к методу доказательства теорем через поиск противоречий. Работы ученого были решающими в развитии языка логического программирования Пролог, оказавшего большое влияние на развитие символьного направления.
Следующее событие, отмеченное на временной шкале рис. 1.32, это 1969 год - год, когда Марвин Минский и Сеймур Пейперт написали книгу под названием "Перцептроны", в которой были отмечены некоторые ограничения перцептронов, публикация способствовала смещению интереса исследователей искусственного интеллекта в область символьных вычислений.
С середины 70-х годов прошлого столетия до начала восьмидесятых наблюдался, как мы уже упомянули, период охлаждения к теме ИИ. Выход из данной зимы искусственного интеллекта произошел на волне развития экспертных систем.
Однако в конце 1980-х и начале 1990-х годов индустрия ИИ испытала ряд финансовых неудач. На рис. 1.32 этот период обозначен как крах рынка LISP машин. В конце 80-х годов рынок специализированных аппаратных средств искусственного интеллекта испытал давление со стороны настольных компьютеров Apple и IBM, которые быстро набирали вычислительную мощность и вскоре сделали неэффективными более дорогие LISP-машины, что привело к закрытию целой индустрии.
1986 г. отмечен как год появления алгоритма обратного распространения ошибки - популярного алгоритма обучения нейронных сетей, в существенной мере способствовавшего распространению нейросетевых технологий. Алгоритм часто связывают с именем Румельхарта, который внес существенный вклад в развитие
С середины 90-х годов нейронные сети привлекают все больший интерес сообщества разработчиков ИИ.
Глубокие нейронные сети позволили получить ранее недостижимые результаты в задачах предсказания, однако они не дают объяснения человеку того, как именно был достигнут тот или иной результат (не являются интерпретируемыми), что ограничивает их применение особенно в таких приложениях, в которых принятие решения является критичным с точки зрения последствий при неверно принятом решении (например, постановка диагноза и выбор метода лечения).
Если логика семантической сети изначально понятна человеку, то с нейронными сетями такую логику проследить невозможно, что демонстрирует рис. 1.33.
Наличие недостатков и достоинств в нейросетевом и символьном подходах стимулировало исследователей к созданию гибридных решений. Гибридный подход, известный как нейросимвольный ИИ, сочетает в себе черты двух основных стратегий ИИ символьного и коннекционистского (рис. 1.34).
В символьном ИИ (вверху слева) человек-эксперт должен предоставить "базу знаний", которую ИИ использует для ответа на вопросы. Глубокие сети (вверху справа) обучаются для получения правильных ответов. Гибридное решение использует глубокие сети для того, чтобы генерировать части базы знаний, необходимые для ответа на заданный вопрос, или формируют признаки, использующиеся далее в процессе вывода.
Мы уже говорили, что там, где критичность принятия решения высока, необходимо решение, где человек контролирует ИИ. Те же соображения справедливы в отношении объяснимости ИИ там, где решение критично с точки зрения недопустимости ошибки, там требуется объяснение - как, на основании чего ИИ принял решение.
Объяснимый искусственный интеллект, или XAI (сокращение от Explainable Artificial Intelligence), - одно из относительно молодых и быстро развивающихся направлений в области ИИ, о котором речь еще будет идти в данном курсе.
Эволюционизм можно определить как научное направление, в рамках которого разрабатывается совокупность алгоритмов, моделирующих эволюционные процессы (и механизмы их реализации), наблюдаемые в живой природе. Эти механизмы обеспечили возникновение сложнейших живых организмов на Земле, приспособленных к самым разным условиям обитания. Исследование и использование данных механизмов позволило человеку создать искусственные системы, проявляющие способности достижения оптимальных стратегий поведения в разных внешних условиях. Подобно тому как искусственные нейронные сети получили начало на основе изучения работы нейронов в живых организмах, так эволюционные алгоритмы базируются на наблюдаемых в живой природе процессах наследования, мутации и отбора.
Отметим, что идея построения эволюционных алгоритмов ненамного моложе идеи построения искусственных нейронных сетей. Первые попытки использования цифровых компьютерных моделей для изучения процессов естественной эволюции использовались уже с середины 1950-х годов [47].
В начале 60-х годов прошлого столетия Ганс-Иоахим Бремерманн представил одни из первых попыток применить моделируемую эволюцию для решения задач численной оптимизации, а также разработал некоторые из ранних теорий эволюционных алгоритмов.
В 1967 году Джоном Генри Холландом были разработаны наиболее значимые генетические алгоритмы (подмножество эволюционных алгоритмов), на базовых принципах работы которых мы коротко остановимся.
Генетический алгоритм - это эвристический поисковый
Генетический алгоритм моделирует процесс естественного отбора, в котором наиболее приспособленные особи отбираются для производства потомства следующего поколения. Эти наиболее приспособленные особи из популяции производят потомство, которое наследует характеристики родителей, и эти характеристики передаются следующему поколению. Данный процесс продолжается при смене поколений (итерационно) и в конце концов приводит к "искомому" поколению с наиболее приспособленными особями. По сути, этот процесс можно рассматривать как итерационный процесс нахождения наилучшего решения задачи.
В самом общем плане итерационный процесс выглядит следующим образом: экспертом выбирается упрощенное прикидочное решение и проверяется, насколько оно удачно. Если оно удовлетворяет условиям, предъявляемым к решению, то задача выполнена, если решение не удовлетворяет требованиям, то оно модифицируется случайным образом и опять проверяется, не удовлетворяет ли требованиям модифицированное решение. При этом если в реальной жизни смена поколений растений и животных - это длительный селективный процесс, то используя генетический алгоритм можно сократить время между поколениями до считанных секунд компьютерных вычислений.
Можно сказать, что генетический алгоритм позволяет заменить процесс моделирования объекта, отвечающего некоторым требованиям, на процесс моделирования эволюции, приводящий к появлению подобного объекта.
Рассмотрим принципы работы генетического алгоритма на упрощенном наглядном примере.
Задача формулируется так, что ее решение может быть представлено в виде вектора генов (
Особь (индивидуум) характеризуется набором параметров - фенотипом. Фенотип - это совокупность внешних и внутренних признаков организма, приобретенных в результате индивидуального развития. Фенотип формируется на основе генотипа (совокупность генов) при участии ряда факторов внешней среды.
Гены соединяются в строку, образуя хромосому (решение). Совокупность хромосом дает популяцию, где любая хромосома есть возможное решение рассматриваемой оптимизационной задачи.
Процесс поиска решения осуществляется в рамках алгоритма, показанного на рис. 1.36.
На первом этапе осуществляется создание популяции. На этом этапе (как правило, случайным образом) создается множество генотипов начальной
На втором этапе идет оценивание приспособленности особей (хромосом) в популяции. На этом этапе осуществляется вычисление так называемой функции пригодности или фитнес-функции. Фитнес-функция определяет пригодность, приспособленность особи (описываемой хромосомой), то есть ее способность конкурировать с другими особями. Вероятность того, что особь будет выбрана для размножения, зависит от оценки ее приспособленности.
Фитнес-функция принимает на входе текущее потенциальное решение задачи и выдает значение, оценивающее его пригодность.
Наследующемшагеидетпроверкавыполненияусловияостановки алгоритма. Алгоритм прекратит исполняться, если найдено решение, удовлетворяющее требуемому критерию качества, если полученное значение больше не улучшается, если исчерпано число отпущенных на задачу поколений или лимит времени на эволюцию.
Если условие остановки не выполнено, то производится отбор хромосом для производства потомков. Идея фазы отбора заключается в том, чтобы отобрать наиболее приспособленных особей (хромосом) и позволить им передать свои гены следующему поколению.
Особи с высокой приспособленностью имеют больше шансов быть отобранными для воспроизводства. Процесс скрещивания показан на рис. 1.37(а). Для каждой пары родителей, подлежащих размножению случайным образом, выбирается точка кроссинговера (точка разрыва). В этой точке обе хромосомы делятся на две части и обмениваются генетическим материалом. На рис. 1.37(а) точка кроссинговера равна 3. Потомство создается путем обмена генами родителей между собой до достижения точки кроссинговера. Новое потомство добавляется в популяцию.
Некоторые из генов образовавшихся потомков могут подвергнуться мутации для поддержания разнообразия в популяции. На рис. 1.37(б) данный процесс проиллюстрирован тем, что некоторые нули заменены на единицы, а единицы на нули. Есть определенная вероятность, что благодаря мутации особь приобретет новое полезное свойство, если это свойство будет вредным, то такая особь будет отсеяна.
Таким образом, для возникновения новых комбинаций генов используются две операции: кроссинговер (скрещивание), позволяющий создать две новые хромосомы потомков путем комбинирования генетического материала пары родителей, а также мутация, которая может вызывать изменения в отдельных хромосомах.
Со временем эволюционные методы стали применять для оптимизации структуры нейросети, так возник термин "нейроэволюция". Первые нейроэволюционные алгоритмы появились в 1980-х годах.
В самом общем плане концепция нейроэволюции исходит из того, что по мере эволюции человеческий мозг развивался и эволюционировал, обретая способность все лучше решать определенные задачи. Идея нейроэволюции - запустить эволюционный процесс, подобный тому, который привел к развитию нашего мозга, на базе изменения искусственных нейронных сетей с использованием эволюционных алгоритмов.
Нейроэволюция - это метод машинного обучения, который применяет эволюционные алгоритмы для построения искусственных нейронных сетей. Общей целью является такая эволюция искусственных нейронных сетей, которая приводит к решению определенных задач.
Обучение нейросетей с помощью нейроэволюции наиболее эффективно в задачах обучения с подкреплением, таких как поиск оптимальных стратегий в компьютерных играх. В отличие от классических задач машинного обучения, в них удачность стратегии определяется не на каждом этапе игры, а в конце.
Нейроэволюция позволяет найти нейронную сеть, которая оптимизирует свою работу, учитывая вышеописанную обратную связь, без прямой информации о том, что именно она должна делать.
Существуют нейроэволюционные алгоритмы, которые эволюционно изменяют веса связей при заданной топологии сети, а есть алгоритмы, которые помимо эволюции весов также производят эволюцию топологии сети. В качестве примера можно привести эволюцию поведения в компьютерных играх или управление мобильными роботами.
Принципиальная схема нейроэволюции показана на рис. 1.38.
На каждой итерации закодированная информация о нейросети в виде генов декодируется в соответствующую нейросеть, которая тестируется на решении целевой задачи. В качестве целевой задачи на рисунке показана некоторая внешняя среда, в которой необходимо выполнять определенные функции для того, чтобы достигать поставленной задачи. Например, речь может идти об участии в игре и, соответственно, необходимости выполнять действия, которые ведут к выигрышу. В процессе тестирования измеряется производительность исследуемой конфигурации нейросети в решении задачи (фитнес-функция). После оценки всех членов текущей популяции, с помощью рассмотренных выше генетических операторов создается новая популяция. Особи с большей фитнес-функцией заменяют особи с меньшей [51].
Приложения на базе нейроэволюции нашли применение во многих областях, включая обработку изображений, обработку речи, программную инженерию, построение систем кибербезопасности и используются в целом ряде отраслей, таких как здравоохранение, финансы, робототехника и т. п.
Центральным элементом данного подхода к построению искусственного интеллекта, как следует из его названия, является понятие агента. Согласно [52], "агент - это любая сущность физическая или виртуальная, которая воспринимает свое окружение через датчики и действует на это окружение через исполнительные механизмы".
Под агентом могут подразумеваться разные сущности (программа, робот, человек). Агенты могут действовать в реальном мире (роботы), в виртуальном (персонаж игры), воздействовать на внешний мир из виртуального - чат-боты и другие программные агенты, поддерживающие решения конкретных людей.
Тенденции в разработке программного обеспечения последних лет показывают устойчивое движение в сторону поддержки автономных, рациональных агентов. Для создания интеллектуальных агентов могут использоваться методы машинного обучения, символьный, эволюционный, нейросетевой и гибридные подходы.
Алгоритмы машинного обучения позволяют агенту адекватно реагировать на изменения среды, совершенствовать правила поведения или приобретать интеллектуальное поведение.
Агенты можно классифицировать по степени их интеллектуальности, по способности рассуждать. Самые простые агенты - это реактивные агенты, они имеют простейший тип поведения, основываются на минимальном объеме информации и простых правилах: "ситуация-действие", "запрос-ответ".
Так называемые делиберативные агенты используют некоторые логические рассуждения и/или возможности планирования (1.39).
Агенты можно классифицировать по месту, где они выполняют свой код: статические агенты работают на выделенном сетевом узле, мобильные агенты могут перемещать свой код c одного компьютера на другой между узлами сети.
По поведению агенты можно разделить на пассивные (не имеют конкретных целей, могут реагировать на внешние раздражители, но сами не будут инициировать никаких действий) и активные (имеют определенные цели, которые они преследуют). Используется также термин "когнитивные агенты" - агенты, которые предполагают сложное планирование и рассуждения.
Агенты часто работают не поодиночке, а в рамках некоторой многоагентной системы. Многоагентная система - это слабо связанная сеть агентов, решающих некоторые задачи. Агенты работают вместе, чтобы найти ответы на вопросы, которые выходят за рамки индивидуальных возможностей или знаний каждого агента.
Многоагентные системы можно классифицировать по типу сотрудничества агентов (рис. 1.40).
Многоагентнаясистемаможетиметьнезависимыхагентов - каждый агент преследует свои собственные цели. В такой системе агенты могут не сотрудничать, но также возможен вариант, когда сотрудничество не запланировано, но может возникать спонтанно - в этом случае такие системы называют системами с эмерджентным сотрудничеством.
Многоагентные системы называются сотрудничающими, если у ее агентов есть общие цели, при этом ее агенты могут взаимодействовать между собой, а могут не взаимодействовать.
Сотрудничество внутри многоагентной системы может быть явно спроектировано разработчиком и может реализоваться путем адаптации, когда сотрудничество отдельных агентов развивается в ходе какого-то эволюционного процесса.
Многоагентный подход обеспечивает устойчивость и масштабируемость системы. За счет того, что ответственность за выполнение общей задачи распределена между большим числом агентов, система может переносить сбои одного или нескольких агентов.
Такие характеристики многоагентных систем, как гибкость и надежность, делают их эффективным подходом для решения многих сложных задач. Подобная задача делится на множество мелких простых подзадач, которые распределяются между агентами. Потребление ресурсов в такой системе оптимизируется между несколькими агентами, что часто приводит к менее затратному решению по сравнению с подходом, при котором вся задача выполняется одним агентом [54].
Возможны разные типы многоагентных систем по способу организации агентов. В качестве примера на рис. 1.41 показана иерархическая и коалиционная организация. В первом случае отдельные агенты организованы в древовидную структуру, часто используемую при управлении сотрудниками в компании. Агенты, находящиеся выше по дереву, имеют более высокий уровень осведомленности. Данные, получаемые агентами нижнего уровня, передаются вверх, а управленческие распоряжения вниз. В коалиционном типе организации агенты группируются в соответствии со своими целями в группы агентов, имеющих схожие цели.
Подходы с использованием интеллектуальных агентов и много-агентных систем применяются во многих приложениях в разных отраслях - в компьютерных играх для придания интеллекта неигровым
Из конкретных примеров можно привести проект компании Waymo, которая создала среду многоагентного моделирования Carcraft для тестирования алгоритмов беспилотных автомобилей, где имитируется дорожное взаимодействие между водителями-людьми, пешеходами и самоуправляемыми автомобилями.
Мы выделили на рис. 1.14 машинное обучение как монолитную область, затем рассмотрели разные научные направления, которые используются для решения задач машинного обучения. Помимо этого, следует упомянуть классификацию машинного обучения по степени контроля за процессом обучения (контролируемое, неконтролируемое, и т. п.), а также по типу целевой
Контролируемое обучение (обучение с учителем) - это подход, при котором алгоритм обучается на входных данных, которые были размечены для решения конкретной задачи. То есть подготовленные для анализа данные изначально содержат ответ, предполагающий правильное действие, которое должна предпринять обучаемая система. Этот процесс мы уже рассмотрели выше, говоря об обучении искусственной нейронной сети.
На рис. 1.42 отмечено два типа задач в категории обучения с учителем - это классификация и регрессия.
Классификация - это одна из наиболее часто встречающихся задач в машинном обучении. Ранее мы рассмотрели использование искусственной нейросети для решения задачи классификации на рис. 1.31. Процесс заключается в том, что на вход сети подаются образцы, вычисляется выходной сигнал, который сравнивается с соответствующим значением целевого вектора (требуемого выхода сети). Векторы обучающего множества последовательно предъявляются обучаемой сети, веса подстраиваются для каждого вектора до тех пор, пока ошибка по всему обучающему массиву не достигнет приемлемого уровня. Результатом является обученная модель, способная строить корректные прогнозы в отношении новых неразмеченных данных. Примером может служить распознавание изображений для постановки медицинского диагноза.
При этом нельзя сказать, что успехи нейросетей полностью вытеснили методы классического машинного обучения, включающего в себя целый ряд различных алгоритмов обучения, помимо нейро-сетевого. Нейросети хорошо показывают себя в задачах, где имеются большие объемы данных и признаки трудно извлечь ручным способом. Если же имеются данные небольшого объема с понятными структурированными признаками, то можно применить методы классического машинного обучения, которые мы очень кратко рассмотрим в этом курсе.
В качестве примера алгоритма классического обучения с учителем, используемого для решения задачи классификации, приведем весьма популярный метод опорных векторов (Support Vector Machine, SVM). Впервые этот алгоритм был предложен нашими соотечественниками Владимиром Вапником и Алексеем Червоненкисом в 1963 году.
Идею метода проиллюстрируем на примере задачи определения, к какому из двух изначально известных классов А и Б относится искомый объект.
Рассмотрим простейший наглядный пример (рис. 1.43), где представлены исходные точки (распределенные на плоскости по двум признакам - и ) и разбитые на два класса "А" и "Б". Задачей классификации является предсказание принадлежности к тому или иному классу новой (не принадлежащей к известной выборке) точки на плоскости.
Чтобы пример не был абстрактным, скажем, что параметры - это возраст и доход некоторой группы людей, а задача классификации состоит в определении их принадлежности к классу А (потенциальных покупателей определенного товара) и классу Б (тех, кто товар не купит).
На рисунке построена линия, разделяющая эти два класса (разделяющая прямая). Оптимальной с точки зрения точности классификации является прямая, расстояние от которой до каждого класса максимально. Если известно положение данной прямой, то новые точки (не относящиеся к обучающей выборке) будут классифицироваться по положению относительно данной прямой, определяя их принадлежность классу A или Б.
Мы рассмотрели максимально упрощенный пример с двумя признаками. На практике их может быть произвольное число. В общем случае объект представляется вектором в n-мерном пространстве, где координаты вектора описывают его отдельные атрибуты (например, вес, возраст, доход и т. п). В пространствах произвольной размерности вместо прямых рассматривают гиперплоскости - пространства, размерность которых на единицу меньше размерности исходного. Например, в трехмерном пространстве гиперплоскость - это привычно визуализируемая двумерная плоскость.
Представим ситуацию, когда множество точек первого и второго класса пересекаются и разделить их прямой линией невозможно (рис. 1.44). При этом при переходе из двумерного пространства параметров в трехмерное (при добавлении еще одного параметра, являющегося комбинацией имеющихся двух) возникает возможность разнести упомянутые классы и провести искомую плоскость. Таким образом, идея метода SVM состоит в переводе исходных векторов в пространство более высокой размерности и построение гиперплоскости, оптимально разделяющей эти классы.
Для иллюстрации принципа работы алгоритма
Прямая описывается уравнением Y = kx+b, и задача определения этой прямой сводится к нахождению параметров (коэффициентов) линейной зависимости (k и b), которые могут быть найдены путем минимизации суммы квадратов отклонений от каждой точки до нашей прямой (метод наименьших квадратов). Определив коэффициенты, мы можем провести прямую, которая обеспечивает минимальные расстояния от этой прямой до исходных точек. Получив уравнение искомой прямой, найдем значение цены квартиры при заданном значении площади .
Стоит отметить, что определение коэффициентов может быть сделано как аналитически (метод наименьших квадратов), так и с помощью оптимизационных методов. Для задач большой размерности первый способ оказывается алгоритмически более сложным, поэтому применяются методы градиентной оптимизации, такие как метод градиентного спуска.
К данному типу обучения относятся алгоритмы, которые обучаются на основе набора данных без каких-либо меток. В качестве примера неконтролируемого обучения можно привести кластерный анализ, где стоит задача разделить объекты на классы по неизвестному признаку. В отличие от классификации, в этом случае нет заранее известных классов. Алгоритм сам должен найти похожие объекты и объединить их в кластеры на основе некоторой заданной функции близости. Типичная задача - сегментация покупателей по предпочтениям или лояльности.
Одним из популярных алгоритмов, применяемых для решения задач кластеризации, является метод k-средних - метод, предложенный в 1950-х годах, суть которого состоит в том, что он стремится минимизировать суммарное квадратичное отклонение точек кластеров от центров этих кластеров ( рис. 1.46).
Весьма наглядное толкование метода приводит автор статьи [56], рассматривая задачу оптимального расположения трех ларьков в поселке. На первом шаге ставим торговые точки случайным образом и смотрим, в какой ларек кому из жителей ближе идти, выделяем три кластера - три группы людей, которым ближе идти до одного из трех ларьков. Перемещаем ларьки в сторону лучшей доступности для посетителей каждой из групп. Повторяем процедуру, то есть опять делим жителей на три кластера и вновь перемещаем ларьки до тех пор, пока не получим решение задачи.
Полуконтролируемое обучение или обучение с частичным участием учителя - это случай, когда обучение происходит на небольшом количестве размеченных и большом количестве неразмеченных данных. Можно сказать, что полуконтролируемое обучение находится между неконтролируемым обучением (без каких-либо размеченных данных) и контролируемым обучением (с полностью размеченными обучающими данными) - см. рис. 1.47.
Создание размеченных данных для машинного обучения - это длительный процесс, который часто требует квалифицированных специалистов в предметной области и достаточно высоких затрат. Процесс сбора немаркированных данных намного легче и дешевле. Соответственно, затраты на процесс обучения с использованием только размеченных данных могут быть слишком большими, и полуконтролируемое обучение может быть решением проблемы. В последнем случае используются две выборки с данными из одних и тех же
Типичный пример полуконтролируемого обучения - это обучение по фотографиям в социальных сетях, когда есть фото, где пользователь отметил на изображении людей или место съемок, то есть присвоил им теги (разметил данные), а есть фото, где данные не размечены.
Машинное обучение с подкреплением напоминает обучение с учителем, однако в данном случае в роли "учителя" выступает окружающая (настоящая или виртуальная) среда, которая показывает, как агенты должны действовать, чтобы получить наибольшее суммарное вознаграждение (рис. 1.48 б ).
Еще в 1951 году Марвин Минский, будучи студентом Гарвардского университета, построил машину, использующую простой метод обучения с подкреплением для имитации поведения мышей, которые учатся находить выход из лабиринта.
В качестве примера обучения с подкреплением можно привести компьютерную игровую модель, где агент пытается найти выход из лабиринта и в процессе поиска получает от внешней среды информацию (сигналы подкрепления) о том, где выхода нет, агент анализирует эту информацию и учится находить выход.
Робот (агент) учится выполнять задачу путем повторяющихся проб и ошибок при взаимодействии с незнакомой динамической средой, выполняя определенные действия, получая определенные результаты (и в зависимости от них награды), и при этом его задача - добиваться максимальной награды. Часто, говоря об обучении с подкреплением, в качестве аналогии приводят пример дрессировки домашних животных, которые ориентируются на подкрепление в виде лакомства, которое они получают, выполняя правильные действия.
Аналогично действуют агенты, которые максимизируют метрику вознаграждения за выполнение задачи. При этом следует отметить, что в случае с роботами (агентами) процесс проходит без вмешательства человека и без явного программирования шагов выполнения задачи.
Важным отличием обучения с подкреплением от классического обучения с учителем является то, что подкрепление возникает после нескольких шагов или действий, в то время как в классическом обучении с учителем для каждого обучающего примера известен правильный ответ. Например, при обучении компьютера игре в шахматы методом обучения с подкреплением подкрепление возникает лишь в конце партии - в случае выигрыша или проигрыша.
Мы обещали в начале курса приводить более полные структурные схемы понятия ИИ по мере толкования новых терминов. После того как мы ввели понятия контролируемое обучение, неконтролируемое и обучение с подкреплением, можно несколько усложнить картинку (рис. 1.14), добавив в нее новые элементы (рис. 1.49).
Соотношение категорий машинного обучения можно также наглядно представить в зависимости от решаемых задач и используемых алгоритмов (рис. 1.50).
Перечень вариантов машинного обучения расширяется. Сравнительно недавно появилась так называемая форма самоконтролируемого обучения (Self-supervised learning SSL).
Самоконтролируемое обучение (предиктивное обучение или самообучение) - это процесс машинного обучения, в котором модель обучается самостоятельно, получая информацию о некоторой части входных данных на основе другой части входных данных (см. рис. 1.51).
Метод самоконтролируемого обучения заключается в определении любой скрытой части входных данных из любой открытой части входных данных. В этом процессе задача из неконтролируемой преобразуется в задачу с контролем путем автоматической генерации меток.
Например, при обработке видео мы можем предсказать прошлые или будущие кадры на основе имеющихся видеоданных.
Продолжая разговор об эволюции систем машинного обучения, следует отметить рост точности и адекватности создаваемых моделей, что, естественно, приводило к повышению доверия к более зрелым моделям со стороны пользователей. Менялись способы создания программного обеспечения, которое обеспечивало решение задач (рис. 1.52).
На заре формирования технологии она преимущественно создавалась учеными и исследователями, которые, как правило, совмещали в себе все функции (постановка задачи, разработка алгоритма и непосредственно программирование). Исследования подобного рода велись в рамках научных институтов, университетов, и результаты чаще всего являлись внутренней разработкой, решения не являлись тиражируемым продуктом. На смену периоду разработки систем учеными, которым приходилось в одном лице совмещать все ипостаси, пришли коллективы, с разделением труда.
Разработчики выделились в отдельную категорию, появились специализированные библиотеки, приложения не приходилось писать с нуля, однако дублирование было по-прежнему высоким в силу преобладания внутренних разработок и ограниченного количества общедоступных программных продуктов.
Далее следовал этап продуктивизации. На этом этапе сформировался рынок продуктов как проприетарных, так и с открытым исходным кодом. Выделились профессии, связанные непосредственно с решением отдельных классов задач. На этом этапе все чаще задача исследователей состоит не столько в подборе оптимальной математической модели для описания того или иного набора данных, сколько в выборе доступных продуктов с тем или иным перечнем алгоритмов. Появляются компании, которые все больше услуг выполняют в виде аутсорсинга, крупные корпорации предлагают платформы, которые интегрируют в себе все больше этапов - от сбора данных и их обработки до внедрения моделей для конечных заказчиков. Услуга все чаще предоставляется как экономичный сервис, все большую роль приобретает фактор производительности систем, наличие специализированной инфраструктуры. Кроме того, предоставление модели машинного обучения в качестве сервиса позволяет компаниям монетизировать собранные наборы данных неявным образом, продавая как сервис обученные на этих данных модели.
Например, несмотря на то, что в открытом доступе существуют нейросети для определения эмоций человека по фотографии, предоставляемый облачным провайдером сервис с такой же функциональностью скорее всего позволит добиться большей точности за счет использования проприетарного датасета в процессе обучения.
Более подробно о бизнес-задачах, возникающих в проектах машинного обучения, и типах компаний, вовлеченных в решение данных задач на современном этапе, речь пойдет во второй лекции.
Искусственный Интеллект (ИИ) сегодня один из самых популярных, обсуждаемых и одновременно противоречивых и многозначных терминов. Действительно, с одной стороны, многочисленные эксперты утверждают, что уровень развития технологий искусственного интеллекта в стране - это важнейший критерий технологической, экономической и военно-стратегической мощи государства, показатель конкурентоспособности на высокотехнологичных рынках. Аналитики сообщают, что десятки тысяч компаний применяют технологии ИИ, тысячи стартапов по всему миру развивают решения на базе искусственного интеллекта, а ИТ-гиганты конкурируют за возможность купить наиболее успешных разработчиков в этой области. Рынок искусственного интеллекта оценивается консалтинговыми компаниями в
Авторы упомянутой публикации со ссылкой на Джулию Люк (Luc Julia), вице-президента Samsung по инновациям и соавтора цифрового помощника Siri, приводят следующую ее цитату: "Сегодняшние инструменты для бизнеса используют математику, статистику, машинное обучение, глубокое обучение, большие данные, получая машины более совершенные, чем в прошлом. Но то, что так часто называют ИИ, на самом деле не связано с искусственной формой интеллекта".
Многие авторы отмечали, что словосочетание "Искусственный интеллект" - это неудачный термин, который тем не менее стал общеупотребимым. Целый ряд специалистов предлагали свои уточнения этого названия, вспомним, например, замечание профессора Константина Воронцова, согласно которому ИИ логичнее было бы расшифровать как "имитация интеллекта" [2].
Отсутствие общепринятого определения осложняет решение целого ряда юридических и экономических вопросов, которые раньше не стояли на повестке.
Сегодня ИИ де-факто вступает в области, куда раньше "не ступала нога машины". От того, как мы трактуем термины, в том числе зависит разграничение юридической ответственности в таких непростых вопросах, как кто несет ответственность за аварию, вызванную системой управления беспилотной машиной, кто ответственен за решение, если диагноз пациенту был ошибочно поставлен системой ИИ, кому принадлежит авторство на мелодию, сгенерированную ИИ, - список можно
Почему же термин, которым люди пользуются почти 70 лет, до сих пор понимается разными группами специалистов по-разному? Какие определения ИИ существуют и чем они различаются?
Перечислим некоторые проблемы, с которыми сталкиваются специалисты, пытающиеся дать свое определение ИИ.
Во-первых, ИИ быстро развивается, появляется все больше новых решений, меняется наполнение термина, и трудно дать толкование, которое было бы достаточно гибким, охватывая все новые подходы к реализации ИИ.
Во-вторых, следует отметить, что ИИ опирается на исследования разных наук, как естественных, так и гуманитарных (компьютерные науки, статистика, психология, нейробиология, философия), каждая из которых имеет свой понятийный аппарат, свои взгляды на предмет, и не всегда эти взгляды
С философской, гносеологической, точки зрения термин интеллект привязан к биологическому объекту, а вопрос о том, могут ли неживые объекты обладать ощущением (как первичной основой структуры сознания и интеллекта), не решен. Поэтому большинство нейробиологов вопрос о том, может ли машина обладать разумом и, соответственно, интеллектом, пытаются отложить на будущее.
Разные участники сообщества ставят перед собой разные задачи. Для одних исследование ИИ связано с узконаучными целями, например, как с помощью компьютерного моделирования понять механизмы работы интеллекта человека. Для других целью является создание умных машин, которые позволят решать новые научные и практические задачи, не подвластные сегодня человеку, для третьих задача формулируется как бизнес и состоит в использовании новых ИИ-технологий везде, где их использование несет экономическую выгоду.
В-третьих, термином ИИ могут назвать разработки самого разного уровня сложности, опирающиеся на разные направления искусственного интеллекта, разные технологии, реализованные как в виртуальной среде, так и воплощенные в физическое устройство (в виде умной робототехники).
Дать однозначную исчерпывающую и согласованную дефиницию ИИ очень сложно, поэтому и существуют сотни частных определений. Попробуем разобраться, что в них общего и чем они различаются.
| Определение | Автор, год и источник | Ключевая часть определения | |
|---|---|---|---|
| 1 | Автоматизация задач, которые принято считать человеческими: мышление, принятие решений, решение проблем, обучение и т. д | Беллман (Bellman), 1978, [3]. | Автоматизация задач (вид деятельности человека). |
| 2 | Область исследований, направленная на разъяснение и эмуляцию разумного поведения в терминах вычислительных процессов. | Шайкофф (SchaIkoff), 1990, [4]. | Область исследований (вид деятельности человека). |
| 3 | Искусство создания машин, выполняющих функции, которые требуют интеллекта, если бы их выполняли люди. | Курцвейл, 1990, [5]. | Искусство создания машин. (вид деятельности человека). |
| 4 | ИИ - это наука и инженерия создания интеллектуальных машин | McCarthy, 2007, [6]. | |
| 5 | Искусственный интеллект - это область, изучающая компьютерные технологии, которые делают возможным восприятие, рассуждения и действия машин на их основе | Winston, P. H., 1992, [7]. | Это область изучения компьютерных технологий (вид деятельно) |
| 6 | Искусственный интеллект - это деятельность, направленная на создание интеллектуальных машин, а интеллект - это качество, которое позволяет объекту функционировать в окружающей среде надлежащим образом и с предвидением. | Nilsson, N. J. (2010), 2010, [8] | Это деятельность по созданию машин (вид деятельности человека). |
| 7 | Зонтичный термин, охватывающий целый ряд алгоритмов, позволяющих оптимизировать поиск в Интернете, нацеливать рекламу, утверждать потребительские кредиты и направлять водителей | Эндрю Нг, профессор Стэнфордского университета. 2017, [9]. | Свойство алгоритмов |
| 8 | Выполнение компьютером действий, для которых обычно требуется человеческий интеллект | Эми Вебб, профессор Нью-Йоркского университета, 2017, [10]. | Свойство машин |
| 9 | Интеллектуальная деятельность, которая раньше выполнялась только на основе интеллекта человека, а теперь может быть выполнена компьютером, включая распознавание речи, машинное обучение и обработку естественного языка | Генеральный директор Infosys Вишал Сикка, 2017, [11] | Деятельность машин с определенными способностями |
| 10 | Под ИИ понимается: "Комплекс технологических решений, позволяющий имитировать когнитивные функции человека (включая самообучение и поиск решений без заранее заданного алгоритма) и получать при выполнении конкретных задач результаты, сопоставимые, как минимум, с результатами интеллектуальной деятельности человека. Комплекс технологических решений включает в себя информационно коммуникационную инфраструктуру, программное обеспечение (в том числе в котором используются методы машинного обучения), процессы и сервисы по обработке данных и поиску решений". | Пункт 5 Национальной Стратегии развития ИИ в РФ на период до 2030 года [12] | Комплекс технологических решений |
Интересно отметить, что большая часть авторов, упомянутых в табл. 1.1, базируются на утверждении, что ИИ - это некоторая область деятельности человека, например область науки или инженерии, в то время как другая часть экспертов делает акцент на том, что ИИ - это определенное свойство
Заметим, что это принципиально разные подходы. Действительно, ИИ как наука может заниматься чисто теоретическими вопросами. Ответ на вопрос "Что такое ИИ как наука?" предполагает в первую очередь обозначение перечня областей исследования, научных школ, направлений и т. п.
Набор публикаций за некоторый период времени определяет спектр тем, над которыми работают ученые, которые фокусируются то на одной, то на другой научной проблеме. В частности, анализируя долю статей в области различных дисциплин, можно судить об изменении фокуса научных изысканий в области искусственного интеллекта в разные периоды времени (см. рис. 1.1).
Например, как видно из рисунка, в 1998 г. почти 75 % всех публикаций приходились на компьютерную лингвистику, а спустя 20 лет к ней было отнесено лишь 15 % статей из упомянутого источника. Категория "компьютерное зрение и распознавание образов", которая в начале века была в зачаточном состоянии, выросла многократно и заняла доминирующее положение в 2018 г.
Как мы отметили, помимо определений ИИ, связываемых с научной деятельностью (табл. 1.1), есть формулировки, которые исходят из того, что ИИ интерпретируется как набор свойств, способностей интеллектуальных машин. Здесь вопрос ставится в более практической плоскости, то есть в данном случае в первую очередь речь идет о реализованном машинном интеллекте в виде программ, работающих на том или ином аппаратном обеспечении и показывающих те или иные способности искусственного интеллекта.
Если наука создает теоретические основы продуктов будущего, то, говоря о свойствах ИИ, мы вынуждены более четко разграничивать набор возможностей интеллектуальных машин, существующих к данному моменту времени, и тех, которые теоретически могут быть созданы в будущем.
Подходя к развилке между понятиями "существующий ИИ" и "гипотетический ИИ", необходимо упомянуть деление искусственного интеллекта на так называемый сильный или общий ИИ (AGI, Artificial General Intelligence) и узкий, прикладной или слабый ИИ (ANI,Artificial Narrow Intelligence).
Примеры проектов, на основе которых мы утверждаем, чем именно слабый ИИ отличается от сильного, постоянно меняются по мере обретения более широких возможностей в рамках новых реализаций систем искусственного интеллекта. Сравнительно недавно, говоря об отличии первого и второго, авторы указывали на то, что узкий (слабый) ИИ - это интеллект, способный выполнять конкретную интеллектуальную функцию или их ограниченный набор подчас лучше, чем человек. При этом, превышая возможности человека в узкой области, такая система, как правило, не имеет интеллектуальных способностей в других сферах, в отличие от человека, который обучается решению задач в самых разных областях.
Однако сегодня (в 2022 году) - с появлением мультимодальных
Появление каждой новой перспективной возможности дает повод энтузиастам говорить о том, что пройден еще один рубеж на пути создания сильного ИИ. При этом скептики продолжают говорить о том, что ИИ никогда не будет обладать широтой когнитивных способностей человека, не будет обладать эмоциями, самосознанием и целеполаганием.
Эти рассуждения часто обосновывают тем, что у машины, соизмеримой по интеллекту с человеком, должны быть цели и мотивы, подобные тем, которые есть у человека. Цели и мотивы поведения человека зависят от многих факторов. Некоторые из них обусловлены нашими инстинктами, например, желание секса, еды и крова. На поведение человека и его цели оказывают влияние эмоции - такие как страх, гнев или ревность. Некоторые наши цели и мотивы носят общественный характер, например люди подвержены воздействию таких коллективных понятий как "успешный человек".
"Революционный поворот в понимании того, что индивидуальным может быть только мозг, а разум - исключительно коллективный феномен, кардинально изменит траекторию исследований общего (сильного) искусственного интеллекта. Его исследователям предстоит найти новые, принципиально иные архитектуры и алгоритмы, ориентированные уже не только на нейронные, а на социокогнитивные гиперсети" [15].
В рамках описанной выше терминологии все существующие на сегодняшний день системы ИИ относятся к категории слабого
В отличие от слабого, сильный ИИ, или интеллект общего назначения, - это гипотетическая машина будущего, которая будет способна понимать мир на уровне, сопоставимом с уровнем понимания его человеком, и обучаться выполнению всего спектра интеллектуальных задач, которые может выполнить
Подобное деление помогает терминологически разделить два разных понятия и раскрыть одну из основных причин отсутствия консенсуса в определении ИИ. Действительно, часть специалистов (в большей степени гуманитарии) склонны воспринимать термин ИИ как сильный ИИ, как интеллектуальную машину, наделенную свойствами сознания, осознания, мышления, чувственного восприятия действительности, волеизъявления. Другая часть сообщества, занятая разработкой технологий ИИ и различного рода приложений на его основе, привыкла называть искусственным интеллектом именно то, с чем они имеют дело (то есть со слабым ИИ). И в этой связи понимание под термином ИИ-решений, относящихся к категории "слабый ИИ", не вызывают у них
При том, что мы отметили достоинство деления на сильный и слабый ИИ, подобный подход имеет и некоторые ограничения: в частности, мы не можем в рамках этой терминологии отразить процесс "усиления" (развития) слабого ИИ. Очевидно, что те решения, которые мы относим к категории слабого ИИ, совершенствуются, становятся более интеллектуальными, однако до тех пор, пока ИИ не сравняется по возможностям с человеческим, он будет оставаться слабым по определению. В этом случае исследователи, занятые построением сильного ИИ, на всех промежуточных стадиях в рамках описанной терминологии будут получать решения, относящиеся к категории "слабый ИИ".
Нельзя построить сильный ИИ, постепенно наращивая мощность известных решений на базе слабого ИИ и интегрируя их между собой. Для построения сильного ИИ нужен качественный скачок, новая архитектура. Как говорится, "нельзя достичь луны, пересаживаясь на все более высокие деревья".
Подчеркнув, что сильный ИИ - это умозрительная конструкция будущего, не следует недооценивать важности этого понятия. Неверно полагать, что это термин, которым оперируют лишь фантасты. Понятие "сильный ИИ" является своего рода целью, идеальной моделью, на которую могут ориентироваться разработчики для того, чтобы создать интеллект, который станет помощником человеку в решении любых задач. Вопрос "Достижима ли задача построения сильного ИИ?", по-видимому, так и останется предметом споров специалистов, пока такая система не будет построена. При этом очевидно, что если такой интеллект будет создан, то в силу экспоненциального развития компьютерных технологий, на основе которых, как мы полагаем, он будет создан, и при незначительном совершенствовании во времени интеллекта человека, сильный ИИ должен вскоре обогнать по возможностям человеческий интеллект, превратившись в так называемый "суперинтеллект" (рис. 1.2).
Одним ученым мысль о том, что когда-то машины достигнут уровня интеллекта человека, кажется
Прогнозы перехода к стадии сверхразума можно найти также в работах Ника Бострома, который предрекает резкое ускорение роста возможностей ИИ после достижения уровня человека ( рис. 1.3.).
Вопрос о достижимости сильного интеллекта остается открытым. Впрочем, человечеству известно множество утверждений о невозможности той или иной технологической новации. Когда-то философы вроде Дрейфуса утверждали, что "компьютеры никогда не смогут играть в шахматы" (Dreyfus, 1972).
Следует также упомянуть такую важную функцию искусственного интеллекта, как познание человеком самого себя. Действительно, по мере того как мы создаем в компьютере вычислительный вариант интеллектуальной системы, мы начинаем намного лучше разбираться в природе нашего собственного интеллекта.
Отметим также, что сильный интеллект, как и суперинтеллект, не имеет четко определенной задачи и как человеческий интеллект формирует цели и пути достижения их реализации по мере своего
Часть авторов склонны полагать, что на каком-то этапе произойдет физическое слияние субстрата человеческого интеллекта (мозга человека) и машинного. На сегодняшний день невозможно представить физическую интеграцию двух инородных тел - кремниевого чипа и нейронов мозга. Тем не менее уже развиваются технологии вживляемых в мозг чипов, например, для восстановления зрения. Каким бы фантастическим ни выглядел проект слияния машины и человека, под ним есть весомое основание. Здоровый уровень эгоцентризма стимулирует людей использовать машину в целях продления и расширения собственных возможностей и спектра ощущений, возможно, даже более активно, чем стремится к созданию некоего субъекта, более совершенного, чем сам человек.
Комментируя причины наличия противоречий в толковании термина ИИ, следует также отметить, что их можно обнаружить в психологии человека - давно замечено, что люди склонны отрицать наличие интеллекта в поведении машин, после того как узнают, как именно реализован механизм "интеллектуальности" принятия ими решения.
Эту тенденцию можно проследить на рис. 1.4, где показаны четыре группы технологий искусственного интеллекта от зрелых разработок (давно освоенных массовым пользователем) до перспективных.
Действительно, такие задачи как оптическое распознавание символов, фильтрация спама, контроль дефектов на производстве все меньше ассоциируются с искусственным интеллектом, в то время как перспективные разработки на более ранней стадии исследования, такие как автоматическая разработка ПО или персональные роботы, в большей степени могут претендовать в массовом сознании на роль примеров искусственного интеллекта.
Искусственный интеллект наделяется совокупностью способностей, которые связываются с передним краем достижений компьютерной науки и за ее пределами. Неслучайно появление известного выражения "Искусственный интеллект - это то, что еще не сделано", получившего условное название Теорема Теслера.
В подтверждение тезиса можно привести курьезный диалог, известный со времен создания пионерских ИИ-программ, в котором у эксперта спрашивают, интеллектуальна ли машина, которая может прочитывать газету и делать "выжимку событий", предлагая вниманию читателя лишь наиболее важные тезисы. После положительного ответа эксперта ему предлагается вновь ответить на тот же вопрос, объяснив ему, что программа всего лишь выбирает из текста заголовки, выделенные жирным шрифтом… Эта шуточная история отражает склонность человека отождествлять понятие искусственного интеллекта со способностями, выходящими за рамки уже известных алгоритмов.
Из рассмотренного примера следует еще одна дилемма: что мы считаем критерием интеллектуальности машины - ее способности выполнить поставленную задачу или то, как реализован механизм решения этой задачи?
Отметим также, что дать определение ИИ, который создается как подобие интеллекта естественного, весьма непросто, не зная полной картины механизмов работы, точной локализации последнего и даже не имея однозначного определения самого термина "интеллект человека".Сложность достижения консенсуса в определении ИИ в том числе объясняется отсутствием такового в трактовке понятия "интеллект человека". Действительно, можно найти массу различных трактовок понятия "интеллект человека". Авторы исследования [20] признаются, что "…похоже, существует почти столько же определений интеллекта, сколько и экспертов, которых попросили дать этому термину определение". Так, согласно трактовке толкового словаря русского языка под редакцией Д.Н. Ушакова, "интеллект - это ум, рассудок, мыслительная способность человека (в противоположность воле и чувствам)". А согласно определению AllWords Dictionary, 2006, это "способность использовать память, знания, опыт, понимание, рассуждения, воображение и суждения для решения проблем и адаптации к новым ситуациям". По данным американского словаря The American Heritage Dictionary 2000 г. - это способность приобретать и применять знания.
Один из специалистов в области ИИ - генеральный директор Deep learning partnership - в своем докладе "Towards a general theory of intelligence", сравнивая интеллект искусственный и живой, предлагает отталкиваться от толкования интеллекта человека как совокупности разных его способностей ( рис. 1.5) и проанализировать, какие из них доступны машине и в какой мере.
| 1 | Логико-математические способности | 50% |
| 2 | Лингвистические способности | 50% |
| 3 | Способность восприятия пространства | 50% |
| 4 | Музыкальные способности | 50% |
| 5 | Телесно-кинестетические | 30% |
| 6 | Способность к межличностным отношениям | 10% |
| 7 | Способность воспринимать природу | 10% |
| 8 | Интрапсихические |
5% |
| 9 | Эк0% |
Отметим, что если на рис. 1.5 речь идет о способностях некоего усредненного человека, то в случае табл. 1.2 подразумеваются совокупные способности созданных на сегодняшний день машин, а не свойства конкретного ИИ. Это очевидно, как минимум, в силу того, что пока человеком не реализовано ни одного проекта, в котором созданный ИИ обладал бы одновременно всеми из перечисленных способностей, указанных в таблице 1.2.
Как следует из описанного выше примера, в разном контексте авторы, рассуждающие о том, что такое ИИ, употребляют это понятие как характеристику совокупности способностей разного рода ИИ-машин, так и в качестве способностей конкретной реализации ИИ. Действительно, когда мы говорим, что ИИ превзошел человека в игре в шахматы, мы имеем в виду конкретную программу, а когда речь идет о том, например, что ИИ в определенной мере вытеснит человека многих нетворческих профессий, мы говорим об ИИ как о совокупности технологий.
Заметим, что способности среднестатистического человека или способности человека, когда мы говорим о человеке (как о "человечестве"), выступающем в качестве автора всех достижений творческой мысли, будут существенно отличаться.
В отношении интеллекта искусственного эти отличия еще более разительны. В отличие от людей, имеющих общее физическое строение тела и набор базовых способностей, машины, наделенные интеллектом, могут выступать в виде самых разных объектов, несопоставимых по возможностям.
Под ИИ мы можем подразумевать и относительно простые программы, действующие в виртуальном мире, и сложнейших, воплощенных в искусственном устройстве, роботов, обладающих массой интеллектуальных подсистем (либо целую сеть сопряженных устройств). Более того, интеллектуальные функции могут быть второстепенными, встроенными в самые разные машины, в том числе и не позиционируемые как интеллектуальные. Поэтому понятия ИИ как среднестатистического интеллекта усредненной машины просто не существует.
Резюмируя вышеописанные подходы к трактовке ИИ, представим их в виде диаграммы (рис. 1.6).
Здесь по оси абсцисс отложены этапы разработки любого проекта, который развивается от стадии научной теории к практике ее технологического воплощения и далее реализуется в виде продукта на базе этой технологии. На оси ординат обозначено время, отражающее более длительный исторический процесс - процесс развития ИИ как науки и индустрии.
В указанных координатах можно расположить целый ряд понятий, которые в разном контексте могут именоваться термином ИИ и обозначать разные вещи. Например, ИИ как научное направление, ИИ как совокупность технологий, ИИ как сумма способностей доступных ИИ-продуктов на данный момент времени, ИИ как способности конкретной интеллектуальной машины, ИИ как совокупность способностей интеллекта будущего, когда он сравняется или превзойдет по интеллектуальным способностям человека.
Рисунок наглядно показывает, что ИИ - это зонтичный термин, описывающий совокупность разного рода решений, существенно различающихся по технологиям, уровню сложности, стадии реализации, назначению и т. п. То есть еще раз подчеркнем, что в зависимости от контекста под ИИ мы можем подразумевать разные вещи.
Проанализировать причины множественности определений и понять наполнение термина позволяет классификация определений. Рассмотрим одну из таких классификаций, впервые предложенную Стюартом Расселом и Питером Норвигом [22]. Авторы отмечают, что различные определения искусственного интеллекта опираются на одну из четырех способностей: действовать, как человек, думать, как человек, думать рационально и действовать рационально. Примеры определений в каждой категории приведены в табл. 1.3.
Трактовки в верхней части таблицы связаны с мыслительным процессом, в нижней - с поведением, левая часть исходит из сравнения с человеком, правая - из принципов рациональности. Каждое из четырех направлений задает свою область исследований.
| Как человек | Рационально | |
|---|---|---|
| Думать |
|
|
| Действовать |
|
|
Определение ИИ, отталкивающееся от критерия "способности думать, как человек", задает направление, в рамках которого ученые пытаются построить ИИ, изучая структуру и механизмы работы человеческого мозга, анализируя мыслительный процесс человека.
Критерий "способность действовать как человек", по сути, стал основой теста
Определение, берущее за основу способность "думать рационально", соответствует направлению, связанному с созданием компьютерных программ, которые могли бы рассуждать логически. А определение, исходящее из декларирования способности машин "действовать рационально", предполагает возможность создания интеллектуальных агентов, способных оптимально достигать (при заданных ограничениях) поставленной цели (например, бизнес-цели).
Авторы упомянутой классификации указывают, что важной характеристикой, которая должна быть отражена в определении термина ИИ, является автономность этой интеллектуальной машины. Именно это свойство ИИ-машин позволит им не только находить решения проблем, которые ставит человек, но и выявлять, формулировать и решать задачи, существование которых человеку неизвестно.
Классификацию систем ИИ по степени автономности и адаптивности можно найти в отчете компании PWC (табл. 1.4). Подход предлагает три вида ИИ по степени автономности и адаптивности и отделяет понятие ИИ от понятия "автоматизация".
| Человек в контуре управления | Без человека в контуре управления | |
|---|---|---|
| Система с жесткой программой |
Ассистирующий ИИ Системы искусственного интеллекта, которые помогают человеку принимать решения или совершать действия. |
Автоматизация Автоматизация ручных и когнитивных задач, как рутинных, так и нерутинных, не предполагающая новых способов выполнения задач, а автоматизирующая существующие. |
| Адаптивная система |
Дополняющий ИИ Системы искусственного интеллекта, которые дополняют процесс принятия решений человеком и постоянно учатся на основе своего взаимодействия с людьми и окружающей средой. |
Автономный ИИ Системы ИИ, которые могут адаптироваться к различным ситуациям и действовать автономно без помощи человека. |
Вопрос автономности ИИ тесно связан с вопросом необходимости контроля над работой искусственного интеллекта и определением допустимых рисков при делегировании тех или иных задач системам ИИ. В этой связи классификация ИИ-систем по степени автономности и необходимости контроля за последними представляет определенный
Ограничение автономности ряда интеллектуальных машин объясняется тем, что полностью автономные машины могут совершить непоправимую ошибку. И чем серьезнее возможные последствия этой ошибки, тем в большей степени человек стремится оставить за собой контроль за принятием решения (рис. 1.7).
В левом верхнем углу отмечена область, где машины оказываются эффективнее человека. Здесь человек лишь незначительно дополняет и корректирует машину. Например, в фильтрации спама или подборе ключевых слов. Это области, где машина эффективна, а возможная ошибка по уровню негативных последствий невелика. Напротив, в правом нижнем углу представлена область, где принятие решения без человека невозможно. Здесь человек лишь получает подсказку ИИ, а решение принимает сам. Как, например, при постановке медицинских диагнозов.
Говоря о развитии систем ИИ и пользуясь обозначениями рис. 1.7, можно сказать, что зона, где "человек дополняет машину", продолжит расти, а зона, где "машина дополняет человека", продолжит сокращение, что в известной мере можно назвать процессом постепенного вытеснения человека из области систем решения интеллектуальных задач и принятия решений.
Системы ИИ могут быть реализованы в виде сложных человекообразных роботов, таких как, например, в проекте ATLAS компании Boston Dynamics, однако это весьма узкое направление. Существует огромное количество ИИ-решений для реализации практических задач (увеличения производительности труда, повышения качества и степени кастомизации разного рода продуктов и услуг и т. п.). Поэтому внедрение ИИ выступает скорее в виде многогранного процесса интеллектуализации искусственной среды, окружающей человека, которая становится все более связанной, более интеллектуальной, более удобной для человека с точки зрения концепции "удобства функционирования человека" в том или ином обществе на определенный момент его развития.
В некотором смысле внедрение ИИ на предприятии может рассматриваться как один из элементов цифровизации, в котором в ведение компьютера передаются все более и более сложные задачи - например, распознавание товаров на полках или анализ входящих писем службы поддержки.
Существующие на сегодняшний день решения на базе ИИ неспособны делать многие вещи, которые кажутся простыми четырехлетним детям, но могут конкурировать с лучшими специалистами по узким задачам. Тот факт, что по многим параметрам, в том числе по параметру универсальности ИИ сильно отстает от возможностей человека, не умаляет важности успехов, достигнутых на базе ИИ. Несмотря на то, что мы оперируем понятием узкий интеллект, этот "узкий интеллект", проникая в многочисленные приложения, становится широким явлением и многими аналитиками уже сегодня трактуется как ступень эволюции процессов обработки данных, при котором
Очевидно, что финальная часть схемы рис. 1.8 - это картина будущего, которая осуществима лишь при приближении к концепции сильного ИИ. Здесь кроется еще одно противоречие во взглядах на цели и перспективы развития ИИ. Ученые, которые нацелены на построение сильного ИИ, говорят о необходимости поиска новых подходов в построении ИИ, отмечая, что экстенсивный путь развития слабого (узкого) ИИ является боковым, если не тупиковым путем развития направления. При этом процент ученых, занятых в проектах построения сильного ИИ, существенно уступает по численности группам разработчиков, занятых масштабированием и внедрением существующих ИИ-технологий во все новые решения в самых разных отраслях экономики. Поэтому можно сказать, что цель построения сильного интеллекта, как явления, оправдывающего изначальное понятие термина ИИ, в большинстве проектов заменяется более очевидной целью - максимальной коммерциализации узкого ИИ.
Очевидно, что большинство инвестиций сегодня связаны с проектами, которые окупаются в обозримой перспективе (рис. 1.9) и направлены преимущественно на расширение числа разработок в области узкого (слабого ИИ). При этом также очевидно, что проекты по созданию общего (сильного) интеллекта требуют куда больших инвестиций на разработку и предполагают появление продуктов в существенно более далекой перспективе (при отсутствии консенсуса по перспективности и достижимости приложений уровня сильного ИИ).
Развитие решений на базе узкого ИИ, хоть и является менее амбициозной задачей, но требует тем не менее огромных ресурсов. Поэтому вне зависимости от того, насколько близко существующие ИИ-решения подошли к понятию сильный ИИ они олицетворяют самый передовой край инженерной мысли. Современная технология ИИ, требующая высокопроизводительных вычислений, мощной ИТ-инфраструктуры, передовых научных разработок и соответствующих кадров, дефакто стала выступать как некоторая мера технологической зрелости компаний, отраслей и целых государств.
Многие специалисты сходятся во мнении, что ИИ - это локомотив последней волны конвергенции наиболее сложных взаимодополняющих технологий
Китайские специалисты придают роли ИИ еще большее значение и в одном из исследований ( рис. 1.11) представляют ИИ как вершину эволюции не только инфокоммуникационного, но и технологического прогресса, подразумевая, что ИИ как технология вбирает в себя и базируется на всей совокупности технико-технологического опыта человечества.
Мы отразили разные акценты и разные подходы в трактовке термина ИИ.
Сложность однозначного определения понятия ИИ и путей его развития порождает проблемы в определении производных терминов, таких как "ИИ-решение", "ИИ-проект", "ИИ-компания", "ИИ-рынок". Что в свою очередь приводит к трудностям при попытках рейтингования ИИ-проектов, ИИ-компаний и, что особенно важно, при количественной оценке рынка искусственного интеллекта в силу того, что разные авторы включают в ИИ-проект разный набор технологий и сервисов.
Комментируя вопрос, почему нет общепринятой трактовки границ ИИ-проекта, приведем аналогию - попытаемся ответить на вопрос, где локализован интеллект человека и как выделить систему его формирующую. Наиболее частый ответ - это область
При этом следует отметить, что отсутствие глобального консенсуса по определению ИИ не мешает наличию консенсуса в рамках отдельных технологий, отдельных сообществ, уточненного контекста или еще уже - в рамках
В различных контекстах термин ИИ приобретает свое наполнение - как концепция, как область науки, как маркетинговый термин, как продукт ИТ-компаний, как продукт софтверных компаний, как продукт вендоров, выпускающих чипы, как мера развитости технологической компании или даже отрасли, как персонаж в произведениях фантастической литературы и т. п.
Завершая раздел "попытка определения ИИ", следует отметить, что мы попытались построить изложение курса по принципу "от простого к сложному", стараясь свести к минимуму использование терминов, которые еще не были введены в рамках настоящей публикации. То есть мы вернемся к более полному раскрытию термина и уточнению определения по мере развития рассказа о научных школах, технологиях и продуктах на базе ИИ. Надеемся, что совокупность этих представлений и позволит читателю получить более полное представление о понятии ИИ.
После обзора проблем в определении термина ИИ было бы неверным не привести определение, которое нам кажется менее противоречивым.
ИИ - это зонтичный термин, который в зависимости от контекста может определять ряд понятий, включая такие как область науки, область инженерии, технологии и машины, а также способности этих машин, позволяющие решать задачи и выполнять действия, которые до создания ИИ выполнялись только на основе интеллекта
Для того чтобы дополнить и развить понятие термина ИИ, перейдем к анализу
Существуют десятки попыток отобразить эволюцию ИИ в виде диаграмм или так называемых лент времени (timelines) - от простейших [27] до весьма подробных [28, 29, 30] с демонстрацией научных, технологических и финансовых событий, отражающих логику развития ИИ. Подчас обилие полезной информации в этих таймлайнах входит в противоречие с их наглядностью и простотой. Мы постараемся выстроить траекторию изложения материала так, чтобы постепенно вводить новые термины, начав с простых диаграмм, чтобы не вызвать у читателя отторжения в отношении схем с обилием не описанных ранее терминов.
Начнем рассказ о развитии систем искусственного интеллекта с самой простой ленты времени, которая отражает основные периоды развития и коммерциализации технологий ИИ (рис. 1.12).
Развитие технологий искусственного интеллекта шло весьма неравномерно. Часто говорят о трех волнах развития ИИ: первая связана со становлением ИИ как нового научного направления и первыми его успехами, в том числе в машинном обучении, вторая - с успехами экспертных систем и третья - с массовым применением технологии глубокого обучения (Deep Learning) и приложений на его основе. Обо всех этих направлениях пойдет речь в данной лекции.
Принято считать, что первый всплеск интереса к ИИ пришелся на период начиная с середины пятидесятых и примерно до конца семидесятых годов. В это время появились многообещающие эксперименты и первые приложения на основе нового научного направления: достигнуты первые успехи по распознаванию образов на базе искусственных нейронных сетей, разработаны программы для игры в шашки и шахматы, предприняты попытки создания первых переводчиков. Кстати, термин "Искусственный интеллект" был введен разработчиком языка программирования DARPA. В эти годы был реализован целый ряд пионерских проектов, которые упоминаются во многочисленных публикациях по истории развития ИИ. Например, в 1964 году был реализован проект Eliza - чат-бот, разработанный в Массачусетском технологическом институте, в 1966 году был создан мобильный робот общего назначения SHAKEY. На новое направление возлагались большие надежды, специалистам казалось, что через 5-10 лет удастся создать машину с интеллектом среднего человека (задача, которую так и не удалось решить до настоящего времени). Ожидания первопроходцев были сверхамбициозными. Однако, учитывая сложность задач и тот факт, что аппаратно-вычислительная база того времени была крайне ограничена, вполне естественно, что разработчики столкнулись с принципиальными трудностями. К семидесятым годам стало очевидно, что радужные ожидания не оправдались, инвесторы были разочарованы скромными результатами, и в середине 1970-х годов наступила так называемая первая зима ИИ - период охлаждения к теме ИИ и сокращение
Второй взлет интереса к ИИ произошел на волне развития экспертных систем, о которых более подробно будет рассказано далее в этой лекции. У экспертных систем оказались свои ограничения, и, как показано на рисунке 1.12, на период 1987-1993 пришлась вторая зима ИИ.
Третий взлет произошел на базе массового внедрения технологии глубоких нейронных сетей (глубокого обучения), который существенно продвинул многие прикладные решения, включая компьютерное зрение, обработку естественного языка и другие направления.
Развитие глубокого обучения стало возможным благодаря совершенствованию технологий ИИ, опыта их применения, увеличению вычислительных ресурсов, оптимизированных под задачи
Мы дали самый общий обзор эволюции развития ИИ, который будет постепенно уточняться по мере обсуждения новых деталей и вариантов применения технологий ИИ.
По аналогии с тремя волнами повышенного интереса к ИИ условно выделяют и три периода в его развитии
Это период до 80-х годов, ознаменованный оформлением ИИ в новое направление и его становление как профессионального сообщества, второй с 80-х по 90-е - как период, связанный с бурным развитием машинного обучения (
Мы выделили три взлета в развитии ИИ, три условных периода, заметим, что самая частая схема представления структуры ИИ также отображается в виде совокупности все тех же множеств (см. рис. 1.14).
Здесь искусственный интеллект - это базовое понятие, которое мы обсуждаем на протяжении всего курса, машинное обучение - его подмножество (решает задачи создания алгоритмов, способных обучаться на данных в отличие от явного программирования задачи). Глубокое обучение и нейросети - один из видов машинного обучения, получивший массовое применение. О разных направлениях машинного обучения речь пойдет далее в данной лекции.
Представленная выше схема получила массовое цитирование [32, 33], однако, как любая высокоуровневая схема, она не раскрывает подробностей, вынужденно упрощает реальную картину и может ввести в заблуждение по поводу деталей. Например, известно, что первая модель искусственного нейрона появилась в 1943 году, а первые попытки создания нейронных сетей были предприняты в 50-е - 60-е годы.
Почему же этап машинного обучения обозначен лишь в восьмидесятые годы, а глубокое обучение с 2010 года?
Попробуем разобраться.
Дело в том, что каждая технология проходит в своем развитии несколько фаз: идея, запуск, борьба за воплощение, фаза экспериментов, лабораторных установок, пилотных проектов... Со многими технологиями происходит так, что минуют годы, прежде чем технология получит коммерческое массовое внедрение и ознаменует собой этап в развитии того или иного научного направления.
Поэтому от рождения до того момента, когда технология доходит до уровня массового принятия (когда она определяет сущность этапа), может проходить длительное время. Именно так следует воспринимать начало этапов на рис.1.13.
Термин "машинное обучение" был введен в 1959 году Артуром Самуэлем, американским сотрудником IBM и пионером в области компьютерных игр и искусственного интеллекта. В качестве определяющего был выдвинут тезис "способность программы учиться, не будучи явно запрограммированной". Суть идеи состоит в том, что машинное обучение предполагает наличие общих алгоритмов, которые могут выявить полезную информацию об исследуемом наборе данных без необходимости писать специальный код для решения этой задачи.
Можно сказать, что в машинном обучении способ выполнения задачи автоматически выводится из примеров. Действительно, вместо того чтобы писать программный код, разработчики снабжают данными алгоритм, который выстраивает собственную вычислительную структуру, соответствующую логике решения прикладной задачи.
При этом следует подчеркнуть, что использование машинного обучения может дать положительный результат только в том случае, если проблема имеет решение на основании имеющегося набора данных.
Отмеченную выше мысль (отличие машинного обучения от традиционного программирования) иллюстрирует рис. 1.15.
Активное развитие технологий машинного обучения началось в 1990-х годах, что явилось заметным шагом по сравнению с тем, как создавались системы ИИ ранее - вместо того, чтобы указывать совокупность правил, используя которые можно решить задачу, эти правила формируются автоматически в процессе обучения на наборе данных.
Если в традиционном программировании (см. рис. 1.15) на вход подаются данные и явно прописывается код их обработки, который определяет последовательность решения задачи, то в случае машинного обучения код обработки автоматически формируется алгоритмами на основе данных (извлекаются из этого набора данных).
Неслучайно появился слоган "От программ, написанных человеком, к программам, написанным другими программами".
Конечно, говоря "правила", мы немного упрощаем ситуацию - на самом деле результатом работы алгоритмов машинного обучения может быть модель, которую нельзя будет интерпретировать как набор правил, и в этом смысле она не будет до конца объяснима для человека. Мы еще подробнее поговорим об интерпретируемости моделей позднее в данной лекциие и в лекции 3.
Одним из вариантов реализации моделей машинного обучения являются нейронные сети, которые состоят из нейронов и синапсов (связей между нейронами). С биологической точки зрения, нейроны - это тип клеток нервной системы живого организма. Биологи традиционно изучают развитие, рост и функционирование данных клеток так же, как и клетки других частей тела животного в рамках физико-химических методов исследования. Точка зрения на клетки (нейроны) как на системы обработки информации явилась новым взглядом, который по времени совпал с тем, как генетика и биология развития также начали делать акцент на информации, рассматривая геном как программу, интерпретируемую механизмами клетки. Большинство специалистов в области ИИ сегодня сфокусированы не столько на задачах изучения механизмов обработки информации в биологических системах, сколько на проектировании систем ИИ на базе упрощенных моделей, первоначально заимствованных у живой природы. Ученые шли от изучения структуры мозга и от попытки сконструировать модель (в том числе информационную), которая бы использовала некоторыемеханизмыработымозгаи,вообщеговоря,нервнойсистемы, которые удалось разгадать или сделать предположение об их работе. Отмеченную нами условность этапности, показанную на рис. 1.13, следует также объяснить тем фактом, что ИИ - это совокупность целого ряда технологий в рамках разных направлений, поэтому волны научных достижений и прорывов в русле одних научных направлений могут не совпадать с активностью в рамках других направлений, и более пристальный взгляд на эволюцию ИИ невозможен без того, чтобы обозначить, какие же научные направления следует выделять в рамках развития ИИ. В первую очередь следует напомнить читателю сущность символьного, коннекционистского и эволюционного направлений и показать, как их конкуренция, взаимовлияние (и в ряде случаев интеграция) определяли развитие ИИ.
Увы, простота оставляет за скобками массу деталей. По мере рассмотрения этих деталей мы неизбежно придем к более сложным схемам, которые уже не укладываются в простые и наглядные высокоуровневые представления. Говоря о сложности построения единой схемы ИИ, уместно привести цитату Марвина Минского: "Инженерное и научное образование заставляет нас ожидать, что все, включая интеллект, имеет простое, компактное объяснение. Соответственно, когда новички в области ИИ спрашивают: "В чем суть ИИ?", - они, похоже, ожидают ответа, определяющего ИИ в терминах нескольких основных математических законов" [34].
Ранее мы обратили внимание читателя на неравномерный волно-образныйхарактерразвитиятехнологий ИИ. Еслипосмотретьразные источники, в поисках согласованного мнения, когда был взлет внимания к технологиям ИИ, а когда охлаждение, то обнаружим, что у разных авторов мнения несколько расходятся. Дело в том, что процесс развития ИИ не является однородным (опирающимся на одну технологию) - напротив, он эволюционировал в рамках разных направлений, разных научных школ. Поэтому в то время, как в развитии одних научных направлений был прорыв, другие имели локальные замедления. В многочисленных работах, посвященных этому вопросу, можно найти упоминания разного количества научных школ (направлений). Мы упомянем четыре и чуть подробнее остановимся на трех из них (коннекционизм,
Символьный ИИ обозначает совокупность методов, в которых знания представляются в виде символов и их отношений, то есть в виде некоторого формального языка. Символьный ИИ основан на способности человека понимать мир путем формирования символьных представлений и их взаимосвязей и создавать правила для фиксации знаний. Способность общаться с помощью символов - одно из проявлений нашего интеллекта. Символы играют ключевую роль в процессе мышления и рассуждения человека.
С помощью символов мы можем представлять окружающие нас предметы (машина, кошка, собака). Это могут быть не только перечисленные материальные объекты, но и абстрактные понятия (демократия, капитализм, транзакция). Символы могут быть организованы в иерархию (автомобиль состоит из дверей, окон, шин, сидений и т. д.). Символы могут использоваться для описания других символов (красное яблоко, тяжелый груз). Способность человека манипулировать символами существовала тысячи лет до появления термина "искусственный интеллект".
С помощью символов могут быть построены логические конструкции (если Петя является сыном моей дочери, то, следовательно, Петя мой внук). Символьный искусственный интеллект также иногда именуют как "Rule based AI" - ИИ, основанный на правилах. В некоторых публикациях в качестве синонима понятия "символьный ИИ" используют сокращение GOFAI ("Good Old-Fashioned Artificial Intelligence" - "старый добрый искусственный интеллект"), по имени, которое использовал Джон Хоугеланд в своего курса "Искусственный интеллект: Основная идея".
Для обозначения альтернативных подходов, не использующих явно символы высокого уровня, используют термин "субсимвольный ИИ".
Приведем простой пример применения подходов символьного ИИ на практике: пусть некая скоринговая программа использует символьные переменные "пол", "возраст", "профессия" и т. п., которые могут принимать определенные значения. В программе заданы правила типа "Если профессия "программист", пол мужской, а возраст попадает в промежуток от 30 до 40 лет, то некоторая переменная, участвующая в определении кредитного рейтинга, примет такое-то значение". При этом очевидно, что логика, по которой оценивается кредитный рейтинг респондента в данном примере задана изначально, вычисляется она по определенным правилам, может быть явно прочитана человеком, а подобного рода вывод программы является объяснимым. Определив совокупность правил вышеуказанным способом и задавая на входе совокупность параметров, по которым мы оцениваем потенциальных клиентов, можно решать такие задачи, как оценка целесообразности выдачи кредита.
Говорят, что символьный ИИ относится к объяснимым (или интерпретируемым) методам ИИ, поскольку позволяет рассуждать о том, каким образом получен достигнутый результат.
В рамках символьного подхода мы можем определить некоторую сущность набором признаков и связей. Например, яблоко-это фрукт, который растет на дереве, яблоко может быть красного, желтого или зеленого цвета и так далее (рис. 1.17).
Определив набор сущностей, выраженных в виде символов и отношений между ними, мы приходим к понятию "
Достоинство семантических сетей состоит в том, что это человеко-читаемый наглядный способ представления знаний.
Примером семантической сети является граф, отражающий взаимодействия в семейной системе, где на основе указанных связей можно получить характер родственных отношений между всеми членами группы (рис. 1.18).
Используя в качестве семантической сети (базы знаний) семейное дерево, то есть зная имена и родственные связи и следуя цепочке рассуждений типа "Если Анна мать Елены, а Елена мать Евгения, то Евгений - это внук Анны", система может генерировать ответы на вопросы о родственных отношениях всех участников системы.
Используя базу знаний, представляющую собой набор фактов, правил и отношений, символьная ИИ-система позволяет вести рассуждения, основанные на алгебраическом манипулировании имеющимися знаниями и отвечать на вопросы. Понятный человеку процесс получения выводов в символьных моделях облегчает контроль в их построении и отладке.
При этом отметим, что символьная система ИИ, по крайней мере в классическом ее понимании, не может обучаться сама, она опирается на базы знаний, которые явно закладываются в систему разработчиком.
Эффективность такой системы зависит от объема и качества базы знаний. Если система получает запрос, по которому знания либо отсутствуют, либо ошибочны, система не сможет дать удовлетворительный ответ.
С точки зрения области применения, следует отметить, что символьный подход лучше всего работает в задачах с четко определенными правилами. Например, символьный подход показал хорошие результаты в доказательстве теорем, в программах для игры в шахматы.
В частности, символьный подход (наряду с другими методами) был использован в решении Deep Blue, победившем чемпиона по шахматам Каспарова в 1997 году.
Символьные подходы были доминирующей парадигмой исследований в области ИИ с середины 1950-х до середины 1990-х, они показали свою эффективность в задачах с четко заданными правилами, однако открытые системы, такие как задачи на ориентацию в "обыденной реальности мира", слишком беспорядочны, чтобы представлять их в виде универсально обоснованных правил логики, которыми оперирует символьный ИИ.
Символьный подход в основном ориентирован на извлечение знаний из экспертов, однако существуют методы, извлекающие знания из данных. Примером такого подхода является алгоритм дерева решений - метод обучения с учителем. Цель алгоритма - создать дерево правил, которые можно использовать для прогнозирования выходных данных при заданных входных данных. Дерево решений - это тип направленного ациклического графа, который отображает решения и их последствия. Логика дерева решений наглядно представляется графом и понятна человеку. Деревья решений могут работать как с дискретными, так и с непрерывными переменными, их можно использовать для задач регрессии и классификации, речь о которых пойдет далее в этой лекции.
Дерево решений обычно начинается с одного узла, который разветвляется на возможные результаты. Каждый из этих результатов приводит к дополнительным узлам, которые разветвляются на другие возможности, что и позволяет говорить о древовидной структуре.
Пример дерева решений показан на рис. 1.19. Начиная с отправной точки "могу ли я начать писать статью", решения принимаются в зависимости от последовательности ответов на вопросы, каждый из которых зависит от результатов предыдущих ответов. Так двигаясь по той или иной ветке дерева, мы достигаем результата.
Дерево решений - это простейший способ извлечения знаний из данных, существуют и другие. Такой подход изучается в рамках направления интеллектуального анализа данных (Data Mining) или "добычи знаний из баз данных" (Knowledge Discovery in Databases).
В первую очередь символьный ИИ ассоциируется с экспертными системами и базами знаний.
Экспертные системы были одними из первых действительно успешных форм программного обеспечения для ИИ. Экспертная система эмулирует способность человека-эксперта по принятию решений путем рассуждений на основе совокупности знаний, представленных в виде правил. Первые экспертные системы были созданы в 1970-х годах. К наиболее ранним примерам можно отнести программу MYCIN, которая была разработана в 1972 году и диагностировала инфекционные заболевания крови.
Другой пример - система PROSPECTOR, созданная в 1974-83 гг. для геологических изысканий.
Так же, как и MYCIN, PROSPECTOR вовлекает геолога в диалог, с тем чтобы, опираясь на его наблюдения в качестве источника исходных данных, выбрать модель и дать ответ на вопросы "Где бурить?" и "Где искать?". В 1984 г. система достаточно точно предсказала существование месторождения молибдена, оцененного в многомиллионную сумму.
Широкое распространение экспертные системы получили в 1980-х годах. В 1980 году для корпорации Digital Equipment Сorp. была создана экспертная система под названием XCON, которая, по свидетельству разработчиков, экономила до 40 млн долларов ежегодно. С начала 1980-х годов корпорации по всему миру начали разрабатывать экспертные системы. Можно сказать, что выход из очередной зимы искусственного интеллекта в 1980-х годах произошел именно на волне разработок ИИ в форме экспертных систем. Основные элементы экспертной системы показаны на рис. 1.20.
Как видно из рисунка, одним из ключевых элементов системы является инженер по знаниям, который должен выудить из эксперта (и формализовать) тот набор знаний, которым этот специалист владеет. Иногда это является нетривиальной задачей, что связано не только с нежеланием некоторых экспертов делиться всеми знаниями, но и со сложностью вербализации и формализации некоторых знаний.
Одна из проблем, с которой столкнулись разработчики экспертных систем, состояла в сложности пересмотра знаний после того, как они были закодированы в механизме правил. Накопление новых данных в экспертных системах позволяло увеличивать объем знаний, но при этом новые правила не позволяли отменить старые. Этого недостатка были лишены конкурирующие системы машинного обучения, которые в отличие от систем, построенных на правилах, могли быть переобучены на новых данных и не требовали непосредственного контакта с экспертом.
Одним из примеров применения методов символьного ИИ можно назвать семантический поиск, который развивают провайдеры поисковых сервисов. Семантический поиск пытается использовать намерения пользователя и семантику слов для поиска нужного контента. Он выходит за рамки подбора релевантных ссылок просто, по ключевым словам, используя информацию, которая может не присутствовать непосредственно в тексте (сами ключевые слова), но тесно связана с тем, что хочет найти пользователь. Например, найти куртку по запросу "куртка" достаточно тривиально, но если, например, человек формулирует вопрос в виде фразы "теплая одежда для зимы", то вполне возможно, что ему подойдет сайт, где продается теплая куртка, при этом, может быть, пользователь ищет свитер или занят поиском термобелья. Для того чтобы выдать такой исчерпывающий ответ, нужно найти связь между всеми этими понятиями.
Данную идею наглядно иллюстрирует рис. 1.21.
Семантический поиск - это подход, который обеспечивает более тесное смысловое соответствие между текстом поискового запроса и результатами поисковой выдачи на основе анализа намерений пользователя, осуществляющего поиск, контекста его запроса и взаимосвязи между словами.
Понимание взаимосвязи между словами, отношений между сущностями позволяет улучшить качество поиска. Для решения данной задачи используются уже упомянутые нами графы Google появился алгоритм Hummingbird (Колибри), который считается первым поисковым алгоритмом, в котором был реализован семантический поиск, направленный на решение задачи "страницы, соответствующие смыслу, должны быть в приоритете по сравнению со страницами, соответствующими лишь нескольким поисковым словам". По сути, это означает, что страницы, которые лучше соответствуют контексту и намерениям пользователя, должны ранжироваться выше, чем страницы, которые повторяют ключевые слова без контекста. Для поисковиков это было очень важно, учитывая, что появилось множество недобросовестных методов для поднятия рейтинга страниц путем накачки ключевых слов. В настоящее время графы знаний широко используются технологическими гигантами, которым необходим анализ огромных объемов неупорядоченных данных. Не только Google использует графы знаний.
Netflix так же, как и упомянутые поисковые системы, использует технологию графов знаний для организации информации о своем обширном каталоге контента, устанавливая связи между фильмами, телепередачами, актерами и режиссерами ( рис. 1.22), что помогает предсказывать будущие запросы клиентов.
Можно сказать, что семантический поиск - это технология, которая использует модель графа знаний и позволяет системам искусственного интеллекта понимать значение сущностей и связей между ними, давая таким образом возможность увеличить точность поиска и степень его персонализации.
Таким образом, графы знаний - это инструмент сбора информации из разнородных источников и структурирования большого количества взаимосвязанных данных, которые можно исследовать с помощью запросов. Графы знаний используются для создания таких систем, как семантические поисковые системы, рекомендательные системы и разговорные боты.
Несмотря на то, что по массовости применения в решении современных задач ИИ символьный ИИ уступил позиции субсимвольным методам, тем не менее применение символьного ИИ существует и по сей день в современных экспертных системах, таких как, например, платформа ROSS [38], которая помогает юридическим фирмам в изучении судебных дел, в поисковых системах и других приложениях.
Каждое из направлений ИИ имеет свои сильные и слабые стороны. Многогранность явления ИИ говорит о том, что не существует одного-единственного наилучшего способа для решения широкого спектра задач ИИ. Оптимальные решения могут быть достигнуты на базе комбинирования нескольких подходов. Например, разработки в области символьного ИИ лежат в истоках такого фундаментального направления в области ИИ как NLP (Natural Language Processing, обработка естественного языка), которое в последнее время активно развивается, опираясь на технологии глубокого обучения. Все чаще возникают проекты, в которых речь идет об интеграции символьных и субсимвольных подходов для обеспечения объяснимости ИИ-решений. Прежде чем привести примеры подобных решений, напомним читателю более подробно о сути коннекционистских подходов в создании ИИ.
Коннекционизм - от английского слова Connect (соединять) - это направление ИИ, которое исходит из предположения, что ментальные способности человека и, в частности, способность к обучению можно объяснить и имитировать на основе сложноорганизованной сети связанных между собой (соединенных определенным образом) одинаковых относительно простых элементов.
Одним из центральных направлений коннекционизма является моделирование интеллекта с помощью искусственных нейронных сетей, состоящих из нейронов и синапсов (связей между нейронами). Механизм работы искусственных нейронов заимствован из живой природы. Последние были созданы в результате наблюдения за процессами, происходящими в мозге живых организмов. Заметим, что сам термин "нейрон", используемый в понятии "искусственные нейронные сети" (ИНС), был заимствован из биологии. Представление о том, что развитие и обучение человека базируется на свойствах нейронов мозга устанавливать связи, не ново, согласно данным [39] данная идея была высказана еще в 1932 г. психологом из Колумбийского университета (Нью-Йорк) Эдвардом Торндайком.
Как известно из биологии, нервные клетки при определенном воздействии могут переходить в активированное состояние. Сигналы по нервным волокнам передаются в виде коротких импульсов от клетки к клетке, достигают нервных клеток в мышцах, что приводит к возбуждению мышечных волокон и, соответственно, к движению животного или человека.
Каждая нервная клетка состоит из трех частей: из тела, нескольких ветвистых отростков (дендритов) и протяженного нервного волокна (аксона), длина которого может составлять от нескольких миллиметров до десятков сантиметров (рис. 1.23).
Нервные клетки взаимодействуют между собой в местах стыка (синапсах), где встречаются аксон пресинаптического нейрона и дендрит постсинаптического нейрона. Дендриты являются входными каналами для нервных импульсов, поступающих через аксоны от других нейронов. Эти импульсы могут либо возбуждать (увеличивать), либо подавлять (уменьшать) мембранный потенциал тела нейрона, который со временем возвращается к своему нормальному значению. Если количество возбуждающих импульсов превышает пороговое значение, то нейрон сам генерирует импульс.
Взаимодействующие между собой посредством передачи возбуждений нейроны формируют нейронные сети.
Как будет показано далее, ИНС используют некоторую аналогию с работой живых нервных клеток.
Основополагающей работой, заложившей фундамент для создания искусственных моделей нейронов и нейронных сетей, явилась работа Уоррена С. Мак-Каллока и Вальтера Питтса "Логическое исчисление идей, относящихся к нервной активности", опубликованная в 1943 г., в которой была предложена модель формального нейрона. Однако прошло более 10 лет, прежде чем появился нейрон Розенблатта, в котором использовалось суммирование входящих сигналов, умноженных на соответствующие числовые значения (синаптические веса) - рис. 1.24.
Несложно проследить сходство схемы, показанной на рис. 1.24, и рисунка 1.24. Модель, прообразом которой является биологический нейрон, представляет собой устройство, имеющее несколько входов (синапсы) и один выход (аксон).
На вход подаются сигналы . Каждому входу ставится в соответствие некоторый весовой коэффициент .
Попадая в нейрон, сигналы умножаются на соответствующие веса и складываются между собой ( - линейное преобразование). Сложение сигналов, поступающих по синаптическим связям, осуществляется в сумматоре (рис. 1.24).
Известно, что последовательное применение нескольких линейных преобразований эквивалентно одному линейному преобразованию. Если бы модель нейрона ограничивалась одним сумматором, то объединение множества нейронов в сеть было бы эквивалентно одному нейрону. Для того чтобы нарушить это правило, в модель нейрона добавляется нелинейный преобразователь (который реализует нелинейную функцию, которая называется функцией активации).
В рассмотренной модели использовалась пороговая функция активации (ступенчатая функция), которая показана на рис. 1.25 (а). Если суммарный сигнал превышает заданный порог активации, то нейрон возбуждается (активируется) и выдает на выходе 1, иначе выдается 0.
Определенным недостатком (ограниченной гибкостью) модели Уоррена Мак-Каллока являлся именно вид переходной функции (пороговый) - если значение вычисленного суммарного сигнала даже незначительно не достигает заданного порога, то выходной сигнал не формируется.
Такая функция подходит для бинарной классификации, но не подходит, когда для классификации требуется большее число нейронов (количество возможных классов больше двух). То есть если возникает задача, в которой возможно несколько ответов, или нам нужно вероятностное решение, например, с вероятностью 70% это один класс, а с вероятностью 30% - другой.
Впоследствии были реализованы модели нейрона с различными функциями активации. В частности, наиболее широкое использование получила сигмоида - гладкая монотонно возрастающая нелинейная функция, которая ограничена двумя горизонтальными асимптотами, что обеспечивает нормализацию выходного значения нейрона (рис. 1.25 б ) в диапазоне от 0 до 1.
По сути, нейрон представляет собой элементарный вычислитель, характеризующийся входным/ выходным состоянием и функцией активации.
На основе элементарных вычислителей, каждый из которых получает сигналы и посылает другим вычислителям, составляются ИНС разной топологии. Самая простая однослойная сеть показана на рис. 1.26.
Здесь сигналы от входного слоя сразу подаются на выходной слой по связям, каждой из которых устанавливается свой весовой коэффициент.
С помощью подобной сети можно построить работу простейших автоматов. Например, на рис. 1.27 показан автомат (гусеничный робот с тремя датчиками света), реагирующий на положение источника света.
Входные ячейки (фотоэлектрические датчики) реагируют на свет, посылают сигналы на выходные ячейки (нейроны), которые подают сигнал на управление гусеницами робота. Обучить такой автомат разным вариантам движения в зависимости от положения света можно задав весовые коэффициенты, определяющие силу связи между ячейками. В рассмотренном примере задача по обучению робота состояла в необходимости обеспечения движения такой машины за источником света. Для этого были подобраны веса, определяющие силу связи (от 0,45 до 0,99), как показано на рисунке. Еслиположение источника света находится спереди слева от автомата, то активируется вращение правой гусеницы, и наоборот. Несложно представить, что подобная машина будет двигаться за источником света.
Мы рассмотрели простейшую однослойную сеть. Больший интерес представляют многослойные сети. На рис. 1.28 показана многослойная сеть, где каждый нейрон одного слоя посылает сигнал каждому нейрону другого слоя. Данная сеть - это сеть прямого распространения, то есть сеть, в которой сигнал распространяется от входного слоя к выходному в одном
Далее поговорим об обучении нейронных сетей. В процессе обучения на вход подается вектор признаков ( рис.1.28), описывающий объект (массив значений), число элементов которого равно числу входных нейронов, на внутренних слоях происходит обработка сигналов, сеть преобразовывает сигнал в выходной слой.
Для того чтобы более наглядно объяснить, как происходит процесс обучения, рассмотрим конкретную задачу распознавания рукописных символов (рис. 1.29).
Как показано на рисунке, изображение рукописного символа (в данном случае цифры 4) разбивается на пикселы, представляется в виде вектора чисел и подается на вход сети.
Если бы все символы были одного размера и начертания, то задача распознавания была бы предельно простой - в том смысле, что сети потребовался бы всего лишь один входной вектор, чтобы запомнить один правильный ответ. Но цифры могут быть напечатаны разными шрифтами, а если мы говорим про рукописные символы, то тут разнообразие еще больше. Все люди пишут числа по-разному - наклон, начертание (все то, что мы называем почерком). И если мы подадим сети, обученной на одном примере, немного измененный входной вектор, соответствующий несколько иному начертанию той же цифры, то правильного ответа уже не получим.
Если необходимо, чтобы сеть классифицировала все многочисленные варианты рукописного написания цифр (например, четверки, показанной на рисунке как числа "4"), то задача состоит в том, чтобы научить сеть способности обобщать признаки на различных входных данных.
Для этого сети нужно продемонстрировать максимально полный набор вариантов написания цифры разными способами, чтобы она "поняла", какая совокупность признаков позволяет людям относить все разные начертания к одному классу изображений (цифре четыре). Для решения подобной задачи создаются обучающие выборки - данные, по которым обучается сеть. Обучение производится на многочисленных примерах размеченных данных, то есть на базе изображений, в каждом из которых отмечен правильный результат. Подобное обучение называют обучением с учителем или контролируемым обучением. Этот процесс похож на обучение ребенка. Ученику показывают изображение цифры в курсе или написав ее на доске, сообщая при этом правильный ответ. А потом тестируют ученика на знание предмета. Похожая процедура проводится с сетью. Сеть обучают на большом числе примеров по многочисленным вариантам написания каждой цифры, в результате чего подбираются весовые коэффициенты всех связей нейронов, и сеть в результате этой операции приобретает способность распознавать те изображения рукописных цифр, которые ей ранее не были продемонстрированы. После того, как сеть обучена, качество полученной модели проверяют на тестовой выборке. Если тест пройден - модель готова.
Жизненный цикл нейронной сети, как и любой модели машинного обучения, состоит из двух этапов: обучение (training) и применение (inference). На рис. 1.30 показаны периоды обучения сети: 1 иллюстрирует сеть определенной топологии до начала обучения, 2 показывает процесс обучения. Речь идет о задаче, в которой сеть должна обучиться относить изображения к одному из двух классов - "кошка" и "собака". По аналогии с предыдущим примером, где речь шла о необходимости продемонстрировать сети все варианты написания цифр, в данном случае сети необходимо продемонстрировать все варианты расположения, все ракурсы, все варианты освещения изображений обоих животных, чтобы сеть могла вычленить общие признаки для распознавания каждого из двух классов на фото. По мере того, как в сеть подаются размеченные изображения (про каждое известно, что там показано - кошка или собака), идет процесс обучения, который состоит в том, чтобы так подобрать весовые коэффициенты, чтобы сеть правильно относила каждое изображение к одному из двух классов. На рисунке на стадии обучения нейроны показаны разных размеров, что условно означает процесс нахождения весовых коэффициентов, которые определяют разную силу связи между соседними нейронами (то есть вес отдельных нейронов). На рис. 1.30 (3-4) условно показан процесс оптимизации сети по производительности: производится удаление избыточных связей в сети - связей, которые определяются малыми весами.
В случае глубокой нейросети на вход подаются тысячи и более размеченных данных, на которых сеть должна обучиться, чтобы идентифицировать закономерности в данных. Обучение обычно требует больших затрат вычислительных ресурсов, процесс обучения может быть реализован на локальном оборудовании или в облаке.
Обученная и оптимизированная модель передается в систему, где происходит ее применение - сеть распознает новые изображения. Заметим, что обучение сети может являться довольно длительным процессом, а вычисление результатов обученной сетью модели происходит достаточно быстро. Готовая для использования модель может быть размещена в облаке в некотором ЦОДе, локально у заказчика или на периферийном устройстве. В случае периферийного устройства небольшой мощности может быть особенно актуальна стадия оптимизации модели по производительности, о которой мы упомянули ранее.
Выше мы отметили, что для обучения модели на базе нейронных сетей необходимо настроить оптимальные веса для всех связей. Но до сих пор не обсуждали, как это можно сделать.
В сети из нескольких нейронов, как в примере рис. 1.27, весовые коэффициенты можно подобрать вручную. Однако в большей сети необходим автоматический способ поиска оптимальных значений весов (алгоритм обучения). Во время обучения веса, изменяясь на малые величины, приближаются к целевым (оптимальным) значениям.
Важнейшим этапом в развитии нейросетевых подходов явилось появление в середине 80-х годов прошлого века алгоритма обучения, который называется "метод обратного распространения ошибки". Не вдаваясь в детали, кратко остановимся на сути этого алгоритма.
Обучение нейросети происходит в два этапа - прямого распространения сигнала по сети, после которого вычисляется ошибка предсказания, и распространения ошибки по сети в обратную сторону по тем же самым связям, при котором веса связей сети корректируются таким образом, чтобы повысить успешность решения сетью задачи (уменьшить ошибку). Процесс повторяется до тех пор, пока не будет достигнут желаемый результат.
Поясним процедуру на рассмотренном выше примере с классификацией изображений. На стадии обучения мы представляем нейронной сети изображения вместе с метками (целевыми значениями), которые определяют, что именно изображено на рисунке. Предположим, что на некотором шаге обучения мы предоставили сети изображение кошки. После завершения прямого прохождения данных об изображениичерезсетьмодельформируетвыход, согласно которому изображение на 75% является кошкой. Во время обратного распространения учитывается ошибка, полученная на предыдущем этапе. Веса сети корректируются с учетом ошибки, так, чтобы в следующий раз точность была выше. Корректировка каждого веса осуществляется пропорционально его индивидуальному вкладу в общую ошибку. Поскольку вклад в ошибку от весов в более ранних слоях зависит от вклада весов в более поздних слоях, сигнал ошибки описывается как "обратное распространение ошибки".
Задача может быть сформулирована как оптимизация некоторой функции потерь, которая зависит от искомых весов. Потери (ошибка) - это разница между текущим предсказанием сети и истинным (определяемым меткой). Веса изменяются на каждой итерации, пока мы не приблизимся к минимуму функции потерь. Цель обучения - минимизировать ошибку или максимизировать точность предсказания, выполняемого моделью.
Как мы отметили, символизм и коннекционизм не единственные подходы, на основе которых могут строиться системы искусственного интеллекта. Но прежде, чем упомянуть другие системы, интересно остановиться на сравнении символьного и коннекционистского подходов, поскольку они представляют собой две основные ветви искусственного интеллекта и процесс их развития, конкуренции и взаимо-дополнения в известной степени отражает процесс эволюции ИИ.
Сравнивая упомянутые направления, уместно напомнить понятия "нисходящий" и "восходящий" как два подхода к созданию ИИ. Символьный подход относят к нисходящему (его также иногда называют подход "сверху вниз"), а коннекционистский - к восходящему (или к подходу "снизу вверх").
В нисходящем подходе познание рассматривается как высокоуровневое явление, которое не зависит от низкоуровневых деталей, то есть абстрагируется от способа реализации механизма работы мозга (в случае природного интеллекта) или принципа действия, конструкции вычислительного устройства (в случае искусственного интеллекта).
Подход "снизу вверх", или так называемая "восходящая парадигма" - это процесс изучения механизмов, использованных природой, с тем чтобы на их основе создать тот или иной вариант реализации ИИ. Примером последнего подхода является процесс создания искусственных нейронных сетей, которые базировались на изучении нейросетевой структуры мозга животных и человека.
Использование вышеописанных подходов можно проиллюстрировать на разных вариантах построения программы распознавания символов - например, символы можно распознавать на основе описания начертания той или иной буквы, в виде определения совокупности правил: "если буква состоит из трех отрезков, двух длинных и одного короткого, которые расположены таким-то образом, то следовательно - это буква А". Это символьный или нисходящий подход. В восходящем подходе речь может идти об обучении нейронной сети путем представления ей изображений большой совокупности букв "А", написанных разными способами, так что сеть сможет вычленить общие признаки для всех вариантов написания буквы и начать ее распознавать.
Исторически символьный подход был первым направлением, на базе которого удалось создать коммерчески успешные системы искусственного интеллекта. Он господствовал примерно с 1950-х по 1980-е годы.
Нисходящие системы плохо справляются с решением задач, включающих большое количество слабых видов взаимодействий, как, например, в системах распознавания образов. Этим объясняется растущее стремление найти альтернативный, более гибкий подход - что стимулировало обращение к коннекционистским моделям.
Для обучения ИНС требуют больших вычислительных ресурсов и памяти, которые было невозможно удовлетворить в период расцвета символьных методов. Позднее, когда появились более производительные компьютеры, исследования коннекционистских сетей "подход снизу вверх" показали значительные перспективы сначала в области распознавания образов, а позднее и во многих других областях. Общая тенденция выразилась в том, что по мере роста вычислительных возможностей коннекционистские методы в существенной мере потеснили символьные.
На рис. 1.32 отмечен 1943 год, в котором, как мы упомянули, появилась модель МакКаллока-Питтса.
Согласно данным Британики [45], первая нейронная сеть появилась в 1954 году, она была разработана Белмонтом Фарли и Уэсли Кларком из Массачусетского технологического института. Сеть была ограничена 128 нейронами и позволяла распознавать простые шаблоны.
В проекте было показано, что случайное разрушение до 10% нейронов в обученной сети не влияло на производительность сети - что напоминает свойство мозга человека переносить ограниченный ущерб, нанесенный хирургическим вмешательством или болезнью.
Среди первых применений можно упомянуть использование сети для принятия инвестиционных решений, распознавания рукописных цифр и определение по внешнему виду некоторых видов вооружений на изображениях.
В 1958 году Розенблатт построил электронное устройство, которое должно было имитировать процессы человеческого восприятия, получившее название "Перцептрон". Проект базировался на развитии идей МакКаллока и Питтса. Перцептрон должен был передавать сигналы от устройства на базе фотоэлементов в блоки электромеханических ячеек памяти, которые оценивали относительную величину электрических сигналов.
Два года спустя (в 1960 году) в Корнеллском университете был продемонстрирован первый нейрокомпьютер - "Марк-1", который был способен распознавать некоторые буквы английского алфавита. В современной терминологии перцептроны могут быть классифицированы как искусственные нейронные сети с одним скрытым слоем, с пороговой передаточной функцией и с прямым распространением сигнала.
В это же время шло развитие технологий в области символьного ИИ. В частности, на рис. 1.32 отмечен 1965 год - это год, в котором британский философ и логик Джон Алан Робинсон сформулировал правило резолюций - правило вывода, восходящее к методу доказательства теорем через поиск противоречий. Работы ученого были решающими в развитии языка логического программирования Пролог, оказавшего большое влияние на развитие символьного направления.
Следующее событие, отмеченное на временной шкале рис. 1.32, это 1969 год - год, когда Марвин Минский и Сеймур Пейперт написали книгу под названием "Перцептроны", в которой были отмечены некоторые ограничения перцептронов, публикация способствовала смещению интереса исследователей искусственного интеллекта в область символьных вычислений.
С середины 70-х годов прошлого столетия до начала восьмидесятых наблюдался, как мы уже упомянули, период охлаждения к теме ИИ. Выход из данной зимы искусственного интеллекта произошел на волне развития экспертных систем.
Однако в конце 1980-х и начале 1990-х годов индустрия ИИ испытала ряд финансовых неудач. На рис. 1.32 этот период обозначен как крах рынка LISP машин. В конце 80-х годов рынок специализированных аппаратных средств искусственного интеллекта испытал давление со стороны настольных компьютеров Apple и IBM, которые быстро набирали вычислительную мощность и вскоре сделали неэффективными более дорогие LISP-машины, что привело к закрытию целой индустрии.
1986 г. отмечен как год появления алгоритма обратного распространения ошибки - популярного алгоритма обучения нейронных сетей, в существенной мере способствовавшего распространению нейросетевых технологий. Алгоритм часто связывают с именем Румельхарта, который внес существенный вклад в развитие
С середины 90-х годов нейронные сети привлекают все больший интерес сообщества разработчиков ИИ.
Глубокие нейронные сети позволили получить ранее недостижимые результаты в задачах предсказания, однако они не дают объяснения человеку того, как именно был достигнут тот или иной результат (не являются интерпретируемыми), что ограничивает их применение особенно в таких приложениях, в которых принятие решения является критичным с точки зрения последствий при неверно принятом решении (например, постановка диагноза и выбор метода лечения).
Если логика семантической сети изначально понятна человеку, то с нейронными сетями такую логику проследить невозможно, что демонстрирует рис. 1.33.
Наличие недостатков и достоинств в нейросетевом и символьном подходах стимулировало исследователей к созданию гибридных решений. Гибридный подход, известный как нейросимвольный ИИ, сочетает в себе черты двух основных стратегий ИИ символьного и коннекционистского (рис. 1.34).
В символьном ИИ (вверху слева) человек-эксперт должен предоставить "базу знаний", которую ИИ использует для ответа на вопросы. Глубокие сети (вверху справа) обучаются для получения правильных ответов. Гибридное решение использует глубокие сети для того, чтобы генерировать части базы знаний, необходимые для ответа на заданный вопрос, или формируют признаки, использующиеся далее в процессе вывода.
Мы уже говорили, что там, где критичность принятия решения высока, необходимо решение, где человек контролирует ИИ. Те же соображения справедливы в отношении объяснимости ИИ там, где решение критично с точки зрения недопустимости ошибки, там требуется объяснение - как, на основании чего ИИ принял решение.
Объяснимый искусственный интеллект, или XAI (сокращение от Explainable Artificial Intelligence), - одно из относительно молодых и быстро развивающихся направлений в области ИИ, о котором речь еще будет идти в данном курсе.
Эволюционизм можно определить как научное направление, в рамках которого разрабатывается совокупность алгоритмов, моделирующих эволюционные процессы (и механизмы их реализации), наблюдаемые в живой природе. Эти механизмы обеспечили возникновение сложнейших живых организмов на Земле, приспособленных к самым разным условиям обитания. Исследование и использование данных механизмов позволило человеку создать искусственные системы, проявляющие способности достижения оптимальных стратегий поведения в разных внешних условиях. Подобно тому как искусственные нейронные сети получили начало на основе изучения работы нейронов в живых организмах, так эволюционные алгоритмы базируются на наблюдаемых в живой природе процессах наследования, мутации и отбора.
Отметим, что идея построения эволюционных алгоритмов ненамного моложе идеи построения искусственных нейронных сетей. Первые попытки использования цифровых компьютерных моделей для изучения процессов естественной эволюции использовались уже с середины 1950-х годов [47].
В начале 60-х годов прошлого столетия Ганс-Иоахим Бремерманн представил одни из первых попыток применить моделируемую эволюцию для решения задач численной оптимизации, а также разработал некоторые из ранних теорий эволюционных алгоритмов.
В 1967 году Джоном Генри Холландом были разработаны наиболее значимые генетические алгоритмы (подмножество эволюционных алгоритмов), на базовых принципах работы которых мы коротко остановимся.
Генетический алгоритм - это эвристический поисковый
Генетический алгоритм моделирует процесс естественного отбора, в котором наиболее приспособленные особи отбираются для производства потомства следующего поколения. Эти наиболее приспособленные особи из популяции производят потомство, которое наследует характеристики родителей, и эти характеристики передаются следующему поколению. Данный процесс продолжается при смене поколений (итерационно) и в конце концов приводит к "искомому" поколению с наиболее приспособленными особями. По сути, этот процесс можно рассматривать как итерационный процесс нахождения наилучшего решения задачи.
В самом общем плане итерационный процесс выглядит следующим образом: экспертом выбирается упрощенное прикидочное решение и проверяется, насколько оно удачно. Если оно удовлетворяет условиям, предъявляемым к решению, то задача выполнена, если решение не удовлетворяет требованиям, то оно модифицируется случайным образом и опять проверяется, не удовлетворяет ли требованиям модифицированное решение. При этом если в реальной жизни смена поколений растений и животных - это длительный селективный процесс, то используя генетический алгоритм можно сократить время между поколениями до считанных секунд компьютерных вычислений.
Можно сказать, что генетический алгоритм позволяет заменить процесс моделирования объекта, отвечающего некоторым требованиям, на процесс моделирования эволюции, приводящий к появлению подобного объекта.
Рассмотрим принципы работы генетического алгоритма на упрощенном наглядном примере.
Задача формулируется так, что ее решение может быть представлено в виде вектора генов (
Особь (индивидуум) характеризуется набором параметров - фенотипом. Фенотип - это совокупность внешних и внутренних признаков организма, приобретенных в результате индивидуального развития. Фенотип формируется на основе генотипа (совокупность генов) при участии ряда факторов внешней среды.
Гены соединяются в строку, образуя хромосому (решение). Совокупность хромосом дает популяцию, где любая хромосома есть возможное решение рассматриваемой оптимизационной задачи.
Процесс поиска решения осуществляется в рамках алгоритма, показанного на рис. 1.36.
На первом этапе осуществляется создание популяции. На этом этапе (как правило, случайным образом) создается множество генотипов начальной
На втором этапе идет оценивание приспособленности особей (хромосом) в популяции. На этом этапе осуществляется вычисление так называемой функции пригодности или фитнес-функции. Фитнес-функция определяет пригодность, приспособленность особи (описываемой хромосомой), то есть ее способность конкурировать с другими особями. Вероятность того, что особь будет выбрана для размножения, зависит от оценки ее приспособленности.
Фитнес-функция принимает на входе текущее потенциальное решение задачи и выдает значение, оценивающее его пригодность.
Наследующемшагеидетпроверкавыполненияусловияостановки алгоритма. Алгоритм прекратит исполняться, если найдено решение, удовлетворяющее требуемому критерию качества, если полученное значение больше не улучшается, если исчерпано число отпущенных на задачу поколений или лимит времени на эволюцию.
Если условие остановки не выполнено, то производится отбор хромосом для производства потомков. Идея фазы отбора заключается в том, чтобы отобрать наиболее приспособленных особей (хромосом) и позволить им передать свои гены следующему поколению.
Особи с высокой приспособленностью имеют больше шансов быть отобранными для воспроизводства. Процесс скрещивания показан на рис. 1.37(а). Для каждой пары родителей, подлежащих размножению случайным образом, выбирается точка кроссинговера (точка разрыва). В этой точке обе хромосомы делятся на две части и обмениваются генетическим материалом. На рис. 1.37(а) точка кроссинговера равна 3. Потомство создается путем обмена генами родителей между собой до достижения точки кроссинговера. Новое потомство добавляется в популяцию.
Некоторые из генов образовавшихся потомков могут подвергнуться мутации для поддержания разнообразия в популяции. На рис. 1.37(б) данный процесс проиллюстрирован тем, что некоторые нули заменены на единицы, а единицы на нули. Есть определенная вероятность, что благодаря мутации особь приобретет новое полезное свойство, если это свойство будет вредным, то такая особь будет отсеяна.
Таким образом, для возникновения новых комбинаций генов используются две операции: кроссинговер (скрещивание), позволяющий создать две новые хромосомы потомков путем комбинирования генетического материала пары родителей, а также мутация, которая может вызывать изменения в отдельных хромосомах.
Со временем эволюционные методы стали применять для оптимизации структуры нейросети, так возник термин "нейроэволюция". Первые нейроэволюционные алгоритмы появились в 1980-х годах.
В самом общем плане концепция нейроэволюции исходит из того, что по мере эволюции человеческий мозг развивался и эволюционировал, обретая способность все лучше решать определенные задачи. Идея нейроэволюции - запустить эволюционный процесс, подобный тому, который привел к развитию нашего мозга, на базе изменения искусственных нейронных сетей с использованием эволюционных алгоритмов.
Нейроэволюция - это метод машинного обучения, который применяет эволюционные алгоритмы для построения искусственных нейронных сетей. Общей целью является такая эволюция искусственных нейронных сетей, которая приводит к решению определенных задач.
Обучение нейросетей с помощью нейроэволюции наиболее эффективно в задачах обучения с подкреплением, таких как поиск оптимальных стратегий в компьютерных играх. В отличие от классических задач машинного обучения, в них удачность стратегии определяется не на каждом этапе игры, а в конце.
Нейроэволюция позволяет найти нейронную сеть, которая оптимизирует свою работу, учитывая вышеописанную обратную связь, без прямой информации о том, что именно она должна делать.
Существуют нейроэволюционные алгоритмы, которые эволюционно изменяют веса связей при заданной топологии сети, а есть алгоритмы, которые помимо эволюции весов также производят эволюцию топологии сети. В качестве примера можно привести эволюцию поведения в компьютерных играх или управление мобильными роботами.
Принципиальная схема нейроэволюции показана на рис. 1.38.
На каждой итерации закодированная информация о нейросети в виде генов декодируется в соответствующую нейросеть, которая тестируется на решении целевой задачи. В качестве целевой задачи на рисунке показана некоторая внешняя среда, в которой необходимо выполнять определенные функции для того, чтобы достигать поставленной задачи. Например, речь может идти об участии в игре и, соответственно, необходимости выполнять действия, которые ведут к выигрышу. В процессе тестирования измеряется производительность исследуемой конфигурации нейросети в решении задачи (фитнес-функция). После оценки всех членов текущей популяции, с помощью рассмотренных выше генетических операторов создается новая популяция. Особи с большей фитнес-функцией заменяют особи с меньшей [51].
Приложения на базе нейроэволюции нашли применение во многих областях, включая обработку изображений, обработку речи, программную инженерию, построение систем кибербезопасности и используются в целом ряде отраслей, таких как здравоохранение, финансы, робототехника и т. п.
Центральным элементом данного подхода к построению искусственного интеллекта, как следует из его названия, является понятие агента. Согласно [52], "агент - это любая сущность физическая или виртуальная, которая воспринимает свое окружение через датчики и действует на это окружение через исполнительные механизмы".
Под агентом могут подразумеваться разные сущности (программа, робот, человек). Агенты могут действовать в реальном мире (роботы), в виртуальном (персонаж игры), воздействовать на внешний мир из виртуального - чат-боты и другие программные агенты, поддерживающие решения конкретных людей.
Тенденции в разработке программного обеспечения последних лет показывают устойчивое движение в сторону поддержки автономных, рациональных агентов. Для создания интеллектуальных агентов могут использоваться методы машинного обучения, символьный, эволюционный, нейросетевой и гибридные подходы.
Алгоритмы машинного обучения позволяют агенту адекватно реагировать на изменения среды, совершенствовать правила поведения или приобретать интеллектуальное поведение.
Агенты можно классифицировать по степени их интеллектуальности, по способности рассуждать. Самые простые агенты - это реактивные агенты, они имеют простейший тип поведения, основываются на минимальном объеме информации и простых правилах: "ситуация-действие", "запрос-ответ".
Так называемые делиберативные агенты используют некоторые логические рассуждения и/или возможности планирования (1.39).
Агенты можно классифицировать по месту, где они выполняют свой код: статические агенты работают на выделенном сетевом узле, мобильные агенты могут перемещать свой код c одного компьютера на другой между узлами сети.
По поведению агенты можно разделить на пассивные (не имеют конкретных целей, могут реагировать на внешние раздражители, но сами не будут инициировать никаких действий) и активные (имеют определенные цели, которые они преследуют). Используется также термин "когнитивные агенты" - агенты, которые предполагают сложное планирование и рассуждения.
Агенты часто работают не поодиночке, а в рамках некоторой многоагентной системы. Многоагентная система - это слабо связанная сеть агентов, решающих некоторые задачи. Агенты работают вместе, чтобы найти ответы на вопросы, которые выходят за рамки индивидуальных возможностей или знаний каждого агента.
Многоагентные системы можно классифицировать по типу сотрудничества агентов (рис. 1.40).
Многоагентнаясистемаможетиметьнезависимыхагентов - каждый агент преследует свои собственные цели. В такой системе агенты могут не сотрудничать, но также возможен вариант, когда сотрудничество не запланировано, но может возникать спонтанно - в этом случае такие системы называют системами с эмерджентным сотрудничеством.
Многоагентные системы называются сотрудничающими, если у ее агентов есть общие цели, при этом ее агенты могут взаимодействовать между собой, а могут не взаимодействовать.
Сотрудничество внутри многоагентной системы может быть явно спроектировано разработчиком и может реализоваться путем адаптации, когда сотрудничество отдельных агентов развивается в ходе какого-то эволюционного процесса.
Многоагентный подход обеспечивает устойчивость и масштабируемость системы. За счет того, что ответственность за выполнение общей задачи распределена между большим числом агентов, система может переносить сбои одного или нескольких агентов.
Такие характеристики многоагентных систем, как гибкость и надежность, делают их эффективным подходом для решения многих сложных задач. Подобная задача делится на множество мелких простых подзадач, которые распределяются между агентами. Потребление ресурсов в такой системе оптимизируется между несколькими агентами, что часто приводит к менее затратному решению по сравнению с подходом, при котором вся задача выполняется одним агентом [54].
Возможны разные типы многоагентных систем по способу организации агентов. В качестве примера на рис. 1.41 показана иерархическая и коалиционная организация. В первом случае отдельные агенты организованы в древовидную структуру, часто используемую при управлении сотрудниками в компании. Агенты, находящиеся выше по дереву, имеют более высокий уровень осведомленности. Данные, получаемые агентами нижнего уровня, передаются вверх, а управленческие распоряжения вниз. В коалиционном типе организации агенты группируются в соответствии со своими целями в группы агентов, имеющих схожие цели.
Подходы с использованием интеллектуальных агентов и много-агентных систем применяются во многих приложениях в разных отраслях - в компьютерных играх для придания интеллекта неигровым
Из конкретных примеров можно привести проект компании Waymo, которая создала среду многоагентного моделирования Carcraft для тестирования алгоритмов беспилотных автомобилей, где имитируется дорожное взаимодействие между водителями-людьми, пешеходами и самоуправляемыми автомобилями.
Мы выделили на рис. 1.14 машинное обучение как монолитную область, затем рассмотрели разные научные направления, которые используются для решения задач машинного обучения. Помимо этого, следует упомянуть классификацию машинного обучения по степени контроля за процессом обучения (контролируемое, неконтролируемое, и т. п.), а также по типу целевой
Контролируемое обучение (обучение с учителем) - это подход, при котором алгоритм обучается на входных данных, которые были размечены для решения конкретной задачи. То есть подготовленные для анализа данные изначально содержат ответ, предполагающий правильное действие, которое должна предпринять обучаемая система. Этот процесс мы уже рассмотрели выше, говоря об обучении искусственной нейронной сети.
На рис. 1.42 отмечено два типа задач в категории обучения с учителем - это классификация и регрессия.
Классификация - это одна из наиболее часто встречающихся задач в машинном обучении. Ранее мы рассмотрели использование искусственной нейросети для решения задачи классификации на рис. 1.31. Процесс заключается в том, что на вход сети подаются образцы, вычисляется выходной сигнал, который сравнивается с соответствующим значением целевого вектора (требуемого выхода сети). Векторы обучающего множества последовательно предъявляются обучаемой сети, веса подстраиваются для каждого вектора до тех пор, пока ошибка по всему обучающему массиву не достигнет приемлемого уровня. Результатом является обученная модель, способная строить корректные прогнозы в отношении новых неразмеченных данных. Примером может служить распознавание изображений для постановки медицинского диагноза.
При этом нельзя сказать, что успехи нейросетей полностью вытеснили методы классического машинного обучения, включающего в себя целый ряд различных алгоритмов обучения, помимо нейро-сетевого. Нейросети хорошо показывают себя в задачах, где имеются большие объемы данных и признаки трудно извлечь ручным способом. Если же имеются данные небольшого объема с понятными структурированными признаками, то можно применить методы классического машинного обучения, которые мы очень кратко рассмотрим в этом курсе.
В качестве примера алгоритма классического обучения с учителем, используемого для решения задачи классификации, приведем весьма популярный метод опорных векторов (Support Vector Machine, SVM). Впервые этот алгоритм был предложен нашими соотечественниками Владимиром Вапником и Алексеем Червоненкисом в 1963 году.
Идею метода проиллюстрируем на примере задачи определения, к какому из двух изначально известных классов А и Б относится искомый объект.
Рассмотрим простейший наглядный пример (рис. 1.43), где представлены исходные точки (распределенные на плоскости по двум признакам - и ) и разбитые на два класса "А" и "Б". Задачей классификации является предсказание принадлежности к тому или иному классу новой (не принадлежащей к известной выборке) точки на плоскости.
Чтобы пример не был абстрактным, скажем, что параметры - это возраст и доход некоторой группы людей, а задача классификации состоит в определении их принадлежности к классу А (потенциальных покупателей определенного товара) и классу Б (тех, кто товар не купит).
На рисунке построена линия, разделяющая эти два класса (разделяющая прямая). Оптимальной с точки зрения точности классификации является прямая, расстояние от которой до каждого класса максимально. Если известно положение данной прямой, то новые точки (не относящиеся к обучающей выборке) будут классифицироваться по положению относительно данной прямой, определяя их принадлежность классу A или Б.
Мы рассмотрели максимально упрощенный пример с двумя признаками. На практике их может быть произвольное число. В общем случае объект представляется вектором в n-мерном пространстве, где координаты вектора описывают его отдельные атрибуты (например, вес, возраст, доход и т. п). В пространствах произвольной размерности вместо прямых рассматривают гиперплоскости - пространства, размерность которых на единицу меньше размерности исходного. Например, в трехмерном пространстве гиперплоскость - это привычно визуализируемая двумерная плоскость.
Представим ситуацию, когда множество точек первого и второго класса пересекаются и разделить их прямой линией невозможно (рис. 1.44). При этом при переходе из двумерного пространства параметров в трехмерное (при добавлении еще одного параметра, являющегося комбинацией имеющихся двух) возникает возможность разнести упомянутые классы и провести искомую плоскость. Таким образом, идея метода SVM состоит в переводе исходных векторов в пространство более высокой размерности и построение гиперплоскости, оптимально разделяющей эти классы.
Для иллюстрации принципа работы алгоритма
Прямая описывается уравнением Y = kx+b, и задача определения этой прямой сводится к нахождению параметров (коэффициентов) линейной зависимости (k и b), которые могут быть найдены путем минимизации суммы квадратов отклонений от каждой точки до нашей прямой (метод наименьших квадратов). Определив коэффициенты, мы можем провести прямую, которая обеспечивает минимальные расстояния от этой прямой до исходных точек. Получив уравнение искомой прямой, найдем значение цены квартиры при заданном значении площади .
Стоит отметить, что определение коэффициентов может быть сделано как аналитически (метод наименьших квадратов), так и с помощью оптимизационных методов. Для задач большой размерности первый способ оказывается алгоритмически более сложным, поэтому применяются методы градиентной оптимизации, такие как метод градиентного спуска.
К данному типу обучения относятся алгоритмы, которые обучаются на основе набора данных без каких-либо меток. В качестве примера неконтролируемого обучения можно привести кластерный анализ, где стоит задача разделить объекты на классы по неизвестному признаку. В отличие от классификации, в этом случае нет заранее известных классов. Алгоритм сам должен найти похожие объекты и объединить их в кластеры на основе некоторой заданной функции близости. Типичная задача - сегментация покупателей по предпочтениям или лояльности.
Одним из популярных алгоритмов, применяемых для решения задач кластеризации, является метод k-средних - метод, предложенный в 1950-х годах, суть которого состоит в том, что он стремится минимизировать суммарное квадратичное отклонение точек кластеров от центров этих кластеров ( рис. 1.46).
Весьма наглядное толкование метода приводит автор статьи [56], рассматривая задачу оптимального расположения трех ларьков в поселке. На первом шаге ставим торговые точки случайным образом и смотрим, в какой ларек кому из жителей ближе идти, выделяем три кластера - три группы людей, которым ближе идти до одного из трех ларьков. Перемещаем ларьки в сторону лучшей доступности для посетителей каждой из групп. Повторяем процедуру, то есть опять делим жителей на три кластера и вновь перемещаем ларьки до тех пор, пока не получим решение задачи.
Полуконтролируемое обучение или обучение с частичным участием учителя - это случай, когда обучение происходит на небольшом количестве размеченных и большом количестве неразмеченных данных. Можно сказать, что полуконтролируемое обучение находится между неконтролируемым обучением (без каких-либо размеченных данных) и контролируемым обучением (с полностью размеченными обучающими данными) - см. рис. 1.47.
Создание размеченных данных для машинного обучения - это длительный процесс, который часто требует квалифицированных специалистов в предметной области и достаточно высоких затрат. Процесс сбора немаркированных данных намного легче и дешевле. Соответственно, затраты на процесс обучения с использованием только размеченных данных могут быть слишком большими, и полуконтролируемое обучение может быть решением проблемы. В последнем случае используются две выборки с данными из одних и тех же
Типичный пример полуконтролируемого обучения - это обучение по фотографиям в социальных сетях, когда есть фото, где пользователь отметил на изображении людей или место съемок, то есть присвоил им теги (разметил данные), а есть фото, где данные не размечены.
Машинное обучение с подкреплением напоминает обучение с учителем, однако в данном случае в роли "учителя" выступает окружающая (настоящая или виртуальная) среда, которая показывает, как агенты должны действовать, чтобы получить наибольшее суммарное вознаграждение (рис. 1.48 б ).
Еще в 1951 году Марвин Минский, будучи студентом Гарвардского университета, построил машину, использующую простой метод обучения с подкреплением для имитации поведения мышей, которые учатся находить выход из лабиринта.
В качестве примера обучения с подкреплением можно привести компьютерную игровую модель, где агент пытается найти выход из лабиринта и в процессе поиска получает от внешней среды информацию (сигналы подкрепления) о том, где выхода нет, агент анализирует эту информацию и учится находить выход.
Робот (агент) учится выполнять задачу путем повторяющихся проб и ошибок при взаимодействии с незнакомой динамической средой, выполняя определенные действия, получая определенные результаты (и в зависимости от них награды), и при этом его задача - добиваться максимальной награды. Часто, говоря об обучении с подкреплением, в качестве аналогии приводят пример дрессировки домашних животных, которые ориентируются на подкрепление в виде лакомства, которое они получают, выполняя правильные действия.
Аналогично действуют агенты, которые максимизируют метрику вознаграждения за выполнение задачи. При этом следует отметить, что в случае с роботами (агентами) процесс проходит без вмешательства человека и без явного программирования шагов выполнения задачи.
Важным отличием обучения с подкреплением от классического обучения с учителем является то, что подкрепление возникает после нескольких шагов или действий, в то время как в классическом обучении с учителем для каждого обучающего примера известен правильный ответ. Например, при обучении компьютера игре в шахматы методом обучения с подкреплением подкрепление возникает лишь в конце партии - в случае выигрыша или проигрыша.
Мы обещали в начале курса приводить более полные структурные схемы понятия ИИ по мере толкования новых терминов. После того как мы ввели понятия контролируемое обучение, неконтролируемое и обучение с подкреплением, можно несколько усложнить картинку (рис. 1.14), добавив в нее новые элементы (рис. 1.49).
Соотношение категорий машинного обучения можно также наглядно представить в зависимости от решаемых задач и используемых алгоритмов (рис. 1.50).
Перечень вариантов машинного обучения расширяется. Сравнительно недавно появилась так называемая форма самоконтролируемого обучения (Self-supervised learning SSL).
Самоконтролируемое обучение (предиктивное обучение или самообучение) - это процесс машинного обучения, в котором модель обучается самостоятельно, получая информацию о некоторой части входных данных на основе другой части входных данных (см. рис. 1.51).
Метод самоконтролируемого обучения заключается в определении любой скрытой части входных данных из любой открытой части входных данных. В этом процессе задача из неконтролируемой преобразуется в задачу с контролем путем автоматической генерации меток.
Например, при обработке видео мы можем предсказать прошлые или будущие кадры на основе имеющихся видеоданных.
Продолжая разговор об эволюции систем машинного обучения, следует отметить рост точности и адекватности создаваемых моделей, что, естественно, приводило к повышению доверия к более зрелым моделям со стороны пользователей. Менялись способы создания программного обеспечения, которое обеспечивало решение задач (рис. 1.52).
На заре формирования технологии она преимущественно создавалась учеными и исследователями, которые, как правило, совмещали в себе все функции (постановка задачи, разработка алгоритма и непосредственно программирование). Исследования подобного рода велись в рамках научных институтов, университетов, и результаты чаще всего являлись внутренней разработкой, решения не являлись тиражируемым продуктом. На смену периоду разработки систем учеными, которым приходилось в одном лице совмещать все ипостаси, пришли коллективы, с разделением труда.
Разработчики выделились в отдельную категорию, появились специализированные библиотеки, приложения не приходилось писать с нуля, однако дублирование было по-прежнему высоким в силу преобладания внутренних разработок и ограниченного количества общедоступных программных продуктов.
Далее следовал этап продуктивизации. На этом этапе сформировался рынок продуктов как проприетарных, так и с открытым исходным кодом. Выделились профессии, связанные непосредственно с решением отдельных классов задач. На этом этапе все чаще задача исследователей состоит не столько в подборе оптимальной математической модели для описания того или иного набора данных, сколько в выборе доступных продуктов с тем или иным перечнем алгоритмов. Появляются компании, которые все больше услуг выполняют в виде аутсорсинга, крупные корпорации предлагают платформы, которые интегрируют в себе все больше этапов - от сбора данных и их обработки до внедрения моделей для конечных заказчиков. Услуга все чаще предоставляется как экономичный сервис, все большую роль приобретает фактор производительности систем, наличие специализированной инфраструктуры. Кроме того, предоставление модели машинного обучения в качестве сервиса позволяет компаниям монетизировать собранные наборы данных неявным образом, продавая как сервис обученные на этих данных модели.
Например, несмотря на то, что в открытом доступе существуют нейросети для определения эмоций человека по фотографии, предоставляемый облачным провайдером сервис с такой же функциональностью скорее всего позволит добиться большей точности за счет использования проприетарного датасета в процессе обучения.
Более подробно о бизнес-задачах, возникающих в проектах машинного обучения, и типах компаний, вовлеченных в решение данных задач на современном этапе, речь пойдет во второй лекции.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.