/
Текст
ИСКУССТВЕННЫМ
&
ИН! Шк/ю
Беседы со школьниками
7^4
фзейО;
49):
«о
9)1
егапзТаее аьу ассе1егако>->
Тгапа! а<ем«ц адеДОзд);
5епд еНе 0»М5зде ГВ еНе и1п
епс1 11
’ Оп усХ1Г анИТ Нет*
аг I с. йп Г) аФРЦ"’* - П;
. 5Г31 ! ()| '; 'Л . . --1 ._ -V . -/-/
/I 7 X/ X . • •
_____
а I ^4। ао|Х1
5еп8 еле Мм$31
11У®
Людмила Литвинцева
ИСКУССТВЕННЫЙ
ИНТЕЛЛЕКТ
Беседы со школьниками
Санкт-Петербург
«БХВ-Петербург»
2019
УДК 004.8-053.2
ББК 32.81 Зя71
Л64
Литвинцева Л. В.
Л64 Искусственный интеллект. Беседы со школьниками. — СПб.: БХВ-
Петербург, 2019. — 312 с.: ил.
18ВЫ 978-5-9775-4008-7
Книга предназначена для первого знакомства с наукой «искусствен-
ный интеллект». В форме бесед школьников с учеными, разработчи-
ками интеллектуальных систем и роботов представлена ясная картина
того, что и как изучает эта современная научная дисциплина, описаны
ее основные идеи, понятия, модели и методы. Рассказано, как наде-
лить искусственные создания способностью логически мыслить и рас-
суждать так, как это умеет человек, что такое нечеткие высказывания
и нечеткие множества, генетические алгоритмы и «мягкие» вычисле-
ния, как использовать искусственный интеллект в системах управления
парковкой беспилотного автомобиля. Также читатели узнают, что такое
нейросети и как обучаются роботы, как проводятся конференции по ис-
кусственному интеллекту и в каком направлении искусственный интел-
лект будет развиваться дальше.
Для школьников средних и старших классов
УДК 004.8-053.2
ББК 32.81 Зя71
18ВЫ 978-5-9775-4008-7
Группа подготовки издания:
Руководитель проекта
Зав. редакцией
Иллюстрации и верстка
Оформление обложки
Евгений Рыбаков
Екатерина Сависте
Марины Дамбиевой
Марины Дамбиевой
«БХВ-Петербург», 191036, Санкт-Петербург, Гончарная ул., 20.
© Литвинцева Л. В., 2019
© Оформление. ООО «БХВ-Петербург», ООО «БХВ», 2019
Несколько слов о самом главном. О тех людях, без поддержки которых не было
бы этой книги. Она появилась при содействии многих родных и близких мне лю-
дей.
Моя огромная благодарность — моей дочери Насте. Это моё счастье, радость и
гордость, которые всегда со мной. При её поддержке, любви и мудрости эта книга
появилась на свет. Настя мой самый дорогой первый читатель.
Вторая моя огромная благодарность — всей моей семье: моим чудесным внуч-
кам, талантливому мудрому Мите, моему уникальному мужу, Профессору. Их со-
веты и поддержка — неиссякаемый источник энергии и творчества.
Я благодарна всем своим друзьям и особенно моим физтеховским подругам
Наде и Тане за дружескую и эмоциональную поддержку. Надя, занимаясь изуче-
нием физико-химических процессов в атмосфере, тем не менее, заинтересованно
прочитала рукопись и дала несколько ценных советов. Вот что значит дружба!
Большую роль в появлении книги сыграла также известная в среде «Разумного
пути» Мария Разбаш, щедро дарующая доброту, мудрость, понимание, творче-
ский взгляд на жизнь. Мария, низкий Вам поклон.
Я также очень благодарна Евгению Евгеньевичу Рыбакову, зам. главного ре-
дактора издательства «БХВ», который поверил в автора и в актуальность и по-
лезность этой книги, а также Марине Валерьевне Дамбиевой, замечательному
художнику-дизайнеру издательства. Благодаря их поддержке и оригинальным
творческим решениям книга получилось именно такой, какая она есть.
В этой книге в форме бесед с любознательными школьниками рассказывается о науке
«искусственный интеллект» (ИИ) и её направлениях исследований.
В книге есть персонажи. Это восьмиклассница Аня — смешливая почемучка, про ко-
торую учителя говорят: «Аня, не больше 10 вопросов в день». И десятиклассник Артём —
обстоятельный рукастый молодой человек, который увлекается робототехникой. Этот
весёлый тандем друзей посещает занимательные лекции молодых учёных, постигая пре-
мудрости науки ИИ.
Учёные обсуждают со школьниками задачи, которые решаются в рамках основных на-
правлений в ИИ, объясняют их научную суть, а также способы и примеры их решения.
Каждому направлению ИИ посвящена своя глава-беседа. Всего таких бесед
шесть. Их научная тема охватывает следующие разделы ИИ.
1. Что такое данные, информация и знания, в чём их отличия и как они пред-
ставляются в системах ИИ. Тест Тьюринга и уровни понимания входной ин-
формации. Устройство систем взаимодействия с человеком на естественном
языке. Знакомство с диалоговыми и экспертными системами, персональны-
ми помощниками, чат-ботами и так далее.
2. Какие есть способы рассуждений у людей, и как строятся логические модели
рассуждений. Знакомство с типами логик, включая неклассические логики,
среди которых — логики времени и пространства, необходимые роботам.
3. Нечёткие вычисления в задачах ИИ. Знакомство с нечёткой логикой и нечёт-
ким выводом, с нечётким управлением, например, движением роботов.
4. Что такое генетические алгоритмы и как они работают. Их практическое
применение в задачах ИИ, например, в задаче автоматической парковки ав-
томобиля.
5. Способы обучения в системах ИИ. Введение в нейровычисления. Знаком-
ство с типами искусственных нейронных сетей и алгоритмами их обучения.
Пример нечётких нейронных сетей для задач управления движением и взаи-
модействием роботов.
6. Как должны быть устроены интеллектуальные роботы. Знакомство с миром
роботов и обсуждение их «интеллекта». Знакомство с моделями и алгорит-
мами целенаправленного поведения роботов.
В результате школьники получают знания о базовых понятиях, математических
моделях, методах и алгоритмах теории искусственного интеллекта.
Автор стремилась максимально упростить восприятие, а также заинтересовать
читателей красотой научных решений, при этом не увлекаясь излишней слож-
ностью. Если не всегда удавалось её избежать, читателям всегда предоставлялся
выбор перейти к следующей странице, не теряя при этом дальнейшей нити рас-
суждений.
Автор надеется, что эта книга позволит читателям легко и с удовольствием вой-
ти в тему изучения науки ИИ, а также обрести начальный багаж знаний для вос-
приятия сложных университетских курсов (в случае если они выберут себе такую
профессию).
Автор использовала свой большой опыт научной и педагогической деятельно-
сти на протяжении многих лет работы как у нас в стране, так и за рубежом.
ВВЕДЕНИЕ
— Сова, — сказал Кролик деловито, — у нас с тобой
есть мозги. У остальных — опилки. Если в этом Лесу кто-то
должен думать, а когда я говорю «думать», я имею в виду
думать по-настоящему, то это наше с тобой дело.
— Да, — сказала Сова, — я этим и занимаюсь.
А. А. Милн. «Винни-Пух и все-все-все»
...Тихий летний вечер. Мы сидим на даче с внучкой Аней. Я пишу научную
статью в журнал, а Аня развлекается с программой «Сири» на своём мобильном
телефоне.
— Бабушка, послушай, что говорит мне «Сири», она такая умная!
— Да неужели? Например? — улыбнувшись, спросила я.
— Ну, например, я её попросила: «Эй, Сири, позвони моей бабушке», а она от-
ветила: «У меня нет номера телефона твоей бабушки». Представляешь?
— Представляю. А вообще-то, что такое «умная», по-твоему?
— Ну, по-моему, умная, если она умеет отвечать на вопросы.
— А как насчёт понимания?
— Ну, если правильно отвечает, значит, умеет понимать.
— А что это значит — понимать?
Аня задумалась.
— Наверное, понимать — значит находить смысл информации, которую тебе
дают.
— Правильно. По-научному я бы сказала так: понимать — значит уметь «интер-
претировать» входную информацию.
Устройство, или программа, которая этим занимается, называется процессо-
ром. Например, есть цифровые процессоры. Они понимают только язык чисел. Та-
кой процессор стоит, например, в твоём калькуляторе. Он понимает только цифры,
и с ним можно «говорить» путём нажатия кнопок, каждая из которых обозначает
число или операцию, которую с этим числом надо сделать, например, вычесть или
умножить. А есть лингвистические процессоры. Это программы, которые пони-
мают (интерпретируют) человеческую речь. Таким процессором в твоём Айфоне
пользуется голосовой помощник, который называется «Сири».
А вот является ли умной программа «Сири»? Хочешь, поговорим об этом? Что
это такое — искусственный разум?
— Конечно, хочу!
ЧТО ТАКОЕ ИНТЕЛЛЕКТ И ЧТО ДОЛЖНА УМЕТЬ
УМНАЯ МАШИНА?
— Когда мы говорим об умном человеке, мы говорим, что человек наделён ин-
теллектом. А компьютер? Или телефон? Или любая другая электронная машина,
например робот? Может ли у него быть интеллект? Что должна уметь умная ма-
шина, по-твоему?
— Умная машина? Ну, я не знаю... Мне кажется, что умная машина должна
иметь много знаний.
— Правильно. Интеллект связан с умением накапливать знания. А откуда
машина берёт свои знания?
— Наверное, знания ей человек даёт.
— Да, конечно, и это тоже так. В машину можно «заложить» много знаний.
Например, в твой телефон заложена твоя записная книжка, в которой хранятся
номера телефонов всех твоих друзей. Кстати, не забудь внести туда и мой номер,
ведь мы же тоже друзья? Но умный человек, а также умная машина, обладающая
интеллектом, должны уметь самостоятельно находить знания. Ну, например,
в твой телефон не заложены сведения о погоде на завтра, но «Сири» умеет поль-
зоваться Интернетом и находить там нужную информацию. Верно?
— Конечно.
— Что ещё?
— Пока не придумала...
— Для того чтобы электронному устройству, сделанному, по большому счёту, из
железок, стать «умным», ему прежде всего нужно научиться понимать тот язык,
на котором к нему обращается человек. Согласна?
— Да, согласна.
ТОЛКОВЫЙ СЛОВАРЬ
Интеллект означает ум, рассудок, мыслительные способности человека.
Итак, мы выяснили три признака интеллекта:
• умение накапливать знания;
• умение общаться и взаимодействовать с помощью языка;
• умение понимать;
ЧТО ЕЩЁ ДЕЛАЕТ МАШИНУ «УМНОЙ»?
— А что ещё делает машину «умной»?
— Хм... — задумалась Аня. — Не могу больше ничего придумать.
— Добавим к интеллекту способности логически мыслить и планировать свои
действия. Но и это не всё.
— О, я знаю, я знаю! — воскликнула Аня. — Умный человек ещё любит учиться!
Мой папа говорит, что он больше всего на свете любит учиться.
— Правильно. Способность к обучению и к самообучению — очень важная чер-
та любого интеллекта.
— Бабушка, а как компьютер или робот обучаются? Они же не ходят в школу...
— Способами обучения и наделения интеллектом машин и роботов занимается
наука, которая называется «искусственный интеллект».
Теперь мы выделили уже шесть интеллектуальных способностей:
• умение накапливать знания;
• умение общаться и взаимодействовать с помощью языка;
• умение понимать;
• умение обучаться и самообучаться;
• умение логически мыслить;
• умение планировать и исполнять свои действия.
— Что мы ещё забыли?
ЧТО ТАКОЕ АБСТРАКТНО МЫСЛИТЬ
И МОГУТ ЛИ РОБОТЫ ЭТО ДЕЛАТЬ?
— А ещё у человеческого интеллекта есть способность к абстрактному мыш-
лению.
Это умение мыслить не предметами, а понятиями о предметах. Например, ты
знаешь, что атомы состоят из ядра и электронов, а ядро — из протонов и нейтро-
нов. Ты знаешь, что Солнце — это огромная звезда, а не маленький шарик. Что
на дне океана темно. Но никто не видел электрона, никто и никогда не бывал на
Солнце, немногие люди побывали на дне океана. Но мы знаем о свойствах этих
предметов не потому, что видели предмет, а по проявлению его свойств в види-
мом для нас мире.
Абстрактное мышление — это ключ к творчеству и научному прогрессу. Это
именно то, что отличает человека от животного и от робота.
Абстрактное мышление - это умение мыслить не предметами, а понятия-
ми о предметах.
— А роботы и компьютеры могут абстрактно мыслить? — спросила Аня.
— Это как раз самое сложное. Пока компьютеры и роботы находятся в рамках
вычислительных процессов. Можно ли запрограммировать процесс творчества —
вопрос открытый. А может, и не надо их этому учить?
Дорогие читатели, хотите узнать, как создаются умные программы и роботы?
Приглашаем вас вместе с Аней окунуться в мир науки искусственного интел-
лекта (ИИ).
ЧТО ТАКОЕ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ?
Это наука, которая создаёт математические модели и алгоритмы интеллекту-
альных способностей человека, а программисты воплощают эти модели в про-
граммах компьютера и роботах.
Любая система, обладающая интеллектом, должна уметь находить, запоминать,
накапливать и целенаправленно использовать свои знания для решения новых
задач.
Учёные в области ИИ считают, что именно эти способности определяют Ю —
коэффициент машинного, искусственного, интеллекта.
1р (т1:е11|§епсе риоНепЬ, читается «ай-кью») -
коэффициент, который характеризует уровень интеллекта.
В современном мире рассматриваются различные степени машинного Ю: от
систем «слабого искусственного интеллекта» к системам «сильного искусствен-
ного интеллекта».
Историческая справка
Своё название «искусственный интеллект» наука обрела в 1956 году во вре-
мя научного семинара молодых учёных (в городе Дартмур, США).
На этом семинаре обсуждались возможности моделирования интеллекта
человека с помощью вычислительных машин. Математика в то время иссле-
дованием таких задач не занималась. И эта область исследований представля-
лась новой и активно исследовалась.
Результатом работы семинара стала идея, предложенная Джоном Маккар-
ти, назвать данную область научных исследований искусственным интеллектом
(ИИ).
Так родилась наука «искусственный интеллект».
ТРИ УЧЁНЫХ КИТА НАУКИ
«ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ»
Наука «искусственный интеллект» держится на научных достижениях трёх зна-
менитых учёных китов — это Алан Тьюринг, Норберт Винер и Джон фон Ней-
ман. Имена этих математиков хорошо известны всему миру.
Алан Тьюринг
Норберт Винер
Джон фон Нейман
Винер сформулировал важнейший принцип кибернетики, который гласит: «нет
непроходимой пропасти между живым организмом и неживым автоматом»
(1948 год).
Тьюринг ввёл понятие универсальной машины Тьюринга, с помощью которо-
го определил понятие алгоритма. В 1950 году Алан Тьюринг предложил тест, свя-
занный с определением мышления искусственной системы. Это известный тест
Тьюринга.
В 1951 году фон Нейман сформулировал принципы организации вычисли-
тельных систем, которые легли в основу современных вычислительных машин
(компьютеров).
Кибернетика - наука об общих закономерностях /та
управления в живых и неживых системах. Хн?
Универсальная машина Тьюринга -
абстрактная вычислительная машина.
Алгоритм - это конечная последовательность
? а команд или шагов, которые надо выполнить,
чтобы решить поставленную задачу.
ЧТО МОЖЕТ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ,
ВОПЛОЩЁННЫЙ В СОВРЕМЕННЫХ СИСТЕМАХ
И РОБОТАХ?
С начала появления науки ИИ прошло всего лишь чуть более 60 лет. А совре-
менные информационные технологии и компьютеры уже настолько проникли в
нашу жизнь, что многим из нас существование без общения с компьютером стало
немыслимым!
Вот некоторые впечатляющие достижения в разработке систем ИИ и роботов.
Программа Веер В1ие победила в шахматной игре чемпиона мира по шахматам
Гарри Каспарова (впервые это случилось в 1997 году).
Робот Асимо научился прекрасно ходить как человек и даже танцевать
(2000 год). С тех пор появилось много роботов-андроидов.
Появились роботы, понимающие речь, распознающие лица и даже улыбку сво-
их собеседников.
Автономный робот-геолог «Кьюриосити» уже 7 лет изучает поверхность Марса
и передаёт интересную информацию людям.
Программа А/рйаСо обыграла одного из величайших игроков старинной китай-
ской игры «го» (это произошло совсем недавно — в марте 2016 года).
Роботы компании «Бостон динамик» умеют ходить, прыгать и даже кувыр-
каться.
Программа «Сири» (31п) компании Арр1е понимает человеческую речь и служит
персональным помощником, который может понимать вашу речь, говорить, ис-
полнять ваши поручения и даже шутить. И таких программ уже много.
Роботы-хирурги научились выполнять сложные операции.
И это только начало.
ЗНАКОМСТВО С НАУКОЙ В ТЕХНОПАРКЕ
ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Для того чтобы сделать знакомство с наукой ИИ увлекательным и интересным,
школьница-восьмиклассница Аня со своим другом, десятиклассником Артёмом,
отправятся в Технопарк искусственного интеллекта на встречи с учёными. Там
они встретят замечательных учителей и друзей, которые помогут школьникам по-
нять, как создаются умные программы и роботы и что для этого надо знать.
Постепенно они будут приобретать всё новые знания. Узнают, как научить робо-
та общаться и понимать человеческий язык, рассуждать, ставить цели и находить
решения, понимать окружающий мир, в котором мы все живём, и обучаться.
Узнают также, что такое нечёткая математика и нечёткие вычисления, зачем
роботам нужны генетические алгоритмы, и какую способность проявляют искус-
ственные нейронные сети.
Напоследок они побывают на конференции учёных и послушают умные раз-
говоры о том, можно ли реализовать способности разума вычислительными про-
цедурами. Каковы перспективы развития умных созданий, и существует ли каче-
ственная разница между искусственным разумом и человеческим разумом. И что
ИИ может сделать для нас уже сейчас?
Обо всем об этом мы поговорим вместе с вами, дорогие читатели. Согласны?
Тогда в путь!
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ. ПЕРВОЕ ЗНАКОМСТВО
В которой Артём и Аня посещают в Технопарке искусственного интеллекта лаборато-
рию моделей представления знаний и обработки естественного языка, узнают, что такое
данные, информация и знания и чем они отличаются друг от друга. Знакомятся с раз-
личными моделями представления знаний в ИИ. Узнают, как в системах ИИ реализуется
умение общаться и понимать человеческий язык. Изучают модель диалога и устройство
лингвистических процессоров. Постигают уровни понимания в системах ИИ и знакомятся
с тестом Тьюринга для определения Ю машинного интеллекта. Знакомятся с экспертны-
ми системами, чат-ботами, искусственными собеседниками и обсуждают их интеллекту-
альные способности.
ГЛАВА 1. ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ. ПЕРВОЕ ЗНАКОМСТВО
ЗНАКОМСТВО С ПРОГРАММИСТОМ В ЛАБОРАТОРИИ ТЕХНОПАРКА
Первая заповедь программиста
ЧТО ТАКОЕ ДАННЫЕ, ИНФОРМАЦИЯ И ЗНАНИЯ И В ЧЁМ ИХ РАЗЛИЧИЯ?
От данных к базам данных
Что такое информация?
Что такое знания?
Знания в системах ИИ
Модели представления знаний в ИИ
УМЕНИЕ ОБЩАТЬСЯ
Диалог с Чеширским Котом
Диалог с компьютером
Лингвистический процессор
РАЗГОВОР О ПОНИМАНИИ
Что такое понимание?
Уровни понимания
К2-тест для систем искусственного интеллекта,
предложенный Тьюрингом
ЭВОЛЮЦИЯ СИСТЕМ ОБРАБОТКИ ЗНАНИЙ И ВЗАИМОДЕЙСТВИЯ
С ПОЛЬЗОВАТЕЛЕМ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ
Родоначальница диалоговых систем программа «Элиза»
Персональные голосовые помощники. Программа «Сири»
Что такое чат-боты?
Что такое экспертные системы?
Перспективы развития систем обработки знания
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 1
(14)
(16)
(18)
(19)
(20)
(20)
(25)
(27)
(29)
(38)
(39)
(41)
(42)
(53)
(54)
(55)
(58)
(61)
(62)
(63)
(65)
(67)
(72)
(75)
ЗНАКОМСТВО С ПРОГРАММИСТОМ
В ЛАБОРАТОРИИ ТЕХНОПАРКА
В один из воскресных дней моя внучка, восьмиклассница Аня, напомнила мне:
— Бабушка, ты обещала рассказать о науке «искусственный интеллект» и о
том, как учёные создают умные программы и машины.
— У меня идея. Хочешь посмотреть наш Технопарк искусственного интеллек-
та? — предложила я. — Мой бывший студент, его зовут Борис, — хороший про-
граммист. Он работает в лаборатории моделей представления знаний и обработки
естественного языка. Он интересно рассказывает о своей работе. Я напишу ему
по электронной почте и попрошу о встрече. Хочешь посмотреть наш технопарк?
— Хочу! А можно я приглашу с собой своего друга Артёма. Он учится в десятом
классе и увлекается робототехникой, — попросила Аня.
— Конечно. Вдвоём вам будет веселее.
В следующее воскресенье Аня с Артёмом приехали в Технопарк искусственно-
го интеллекта, чтобы своими глазами увидеть, что же это такое.
Технопарк был особенным. Это огромный научный центр с множеством науч-
ных и учебных лабораторий. В центре проводились выставки новых технологий,
компьютеров и роботов. А ещё были классы для занятий. В них молодые учёные
рассказывали о том, что такое искусственный интеллект, и как устроены програм-
мы, проявляющие ту или иную интеллектуальную способность.
Ребята нашли лабораторию, в которой работал молодой кандидат наук Борис.
Постучав, вошли в лабораторию и огляделись.
— Смотри, Артём, что тут написано на стене, — прошептала Аня.
ДЕВИЗ ИССЛЕДОВАТЕЛЬСКОЙ ЛАБОРАТОРИИ
«О том, над чем мы работаем сегодня,
другие подумают только завтра».
— А тут ещё одна интересная мысль, — сказал Артём и прочитал:
«ПРОГРАММИСТ - ЭТО НЕ ЧЕЛОВЕК,
ЭТО ПРОСТО НОВАЯ ФОРМА ЖИЗНИ».
Первая заповедь программиста
Начало было интригующим.
В это время программист в наушниках, сидящий за компьютером, повернулся к
ребятам и произнёс:
— Здравствуйте, дорогие гости! Я немного увлёкся, извините! Но я ждал вас!
Меня зовут Борис. Как вы догадались, я по жизни программист. Чем могу слу-
жить?
— Уважаемый программист! — сказала школьница. — Меня зовут Аня. А это
мой друг Артём. Мы хотели бы познакомиться с вашей наукой, и у нас есть вопро-
сы.
— Похвально! И какие же они?
— Нам хотелось бы узнать, как вы создаёте ваши умные программы, — сказал
Артём. — И что для этого нужно знать?
— Ну что ж, хороший вопрос. Попробую ответить. С чего начнём? — и тут же
смешливо добавил: — Первая заповедь программиста-, не знаешь, что делать,
начни с главного.
Начнём с определения того, что мы, разработчики умных программ, считаем
системами с искусственным интеллектом.
Борис взглянул на ребят и задал вопрос.
— Посмотрите на определение системы, обладающей интеллектом. Какое клю-
чевое слово в этом определении? Как вы думаете?
Система обладает интеллектом, если она умеет
находить, запоминать, накапливать и целенаправленно
использовать свои знания для решения проблем.
Именно эти способности определяют качество
любого интеллекта, в том числе и машинного.
ЧТО ТАКОЕ ДАННЫЕ, ИНФОРМАЦИЯ И ЗНАНИЯ
И В ЧЁМ ИХ РАЗЛИЧИЯ?
— Ключевое слово здесь — по-моему, знание, — ответил Артём.
— Совершенно верно, молодец! Поэтому, прежде чем говорить о системах
с искусственным интеллектом, нам надо сначала понять, что такое знание. Со-
гласны?
— Согласны, — ответила Аня.
— О’кей. Тогда начнём разбираться. Прежде всего рассмотрим следующие
важные понятия: данные, информация и знания. Дадим определение каждому
из них и обсудим, в чём их различия. Начнём с данных.
Данные первичны. Это то, что фиксируют органы восприятия действующего
существа (человека, робота или программы). Сами по себе данные из внешнего
мира ничего не значат. Важно, кто их воспринимает (выбирает) и как собирается
их использовать.
Лягушка, например, способна уловить лишь сигналы о движении мошки, кото-
рой можно подкрепиться, или сигналы опасности, когда над ней самой нависает
тень. Всё остальное, что происходит в мире, для лягушки — бесполезный шум...
Мозг человека воспринимает мир несравненно богаче. Для него имеет значе-
ние и шум дождя, и цвет рябины за окном, и школьный звонок на перемену, и но-
мер телефона одноклассницы, и даже сколько бит содержится в терабайте.
Данные в компьютере бывают трёх типов: внутренние данные находятся в па-
мяти программы или в базе данных в компьютере; входные данные вводит чело-
век для решения задачи; выходные данные получают в ходе выполнения програм-
мы решения задачи.
Данные для решения задач в компьютере могут быть очень разными. Это мо-
гут быть числовые и символьные списки, таблицы, тексты, фотоснимки, заметки,
аудиоданные, изображения и так далее.
От данных к базам данных
Когда данных становится настолько много, что они не вмещаются на страницах
одной или даже нескольких книг, возникает проблема, как с ними работать. Для
этого головы одного программиста недостаточно. Вот тут-то на сцену и выходят
базы данных в сопровождении своих специальных программ, называемых си-
стемами управления базами данных (СУБД).
/Ха База данных (БД) - совокупность данных из некоторой
области, хранимых в компьютере в соответствующем
формате и в сопровождении системы управления БД. -л™
Система управления базами данных (СУБД) -
программная система управления БД, включающая
< . инструменты заполнения данных в БД, их редактирования,
а также поиска нужных элементов данных в БД. /АД
СУБД берут на себя заботу наполнения и сохранения баз данных, их редакти-
рования и модификации, а также поиска нужных элементов данных. Это целое
направление в информатике и программировании. Мы его на этом оставим.
Нас интересуют знания и системы, работающие на основе знаний. Поговорим
об этом.
Что такое информация?
Слово «информация» можно встретить в лексиконе практически любого чело-
века, ведь мы живём в век информации! Значение этого слова более-менее пони-
мают все, но всё же заглянем в словарь иностранных слов, а затем посмотрим на
определения, которые принимаются в рамках той или иной научной теории.
СЛОВАРЬ ИНОСТРАННЫХ СЛОВ
Информация - 1) сообщение о чём-либо; 2) сведения, являющиеся объектом
хранения, обработки и передачи.
НАУКА «ИНФОРМАТИКА»
Информация - это данные, записанные в формализованном виде, который
позволяет собирать, хранить и обрабатывать эту информацию на компью-
тере.
НАУКА «КИБЕРНЕТИКА» (Н. ВИНЕР)
Информация - это обозначение содержания, полученное из внешнего мира
с помощью наших органов чувств.
ТЕОРИЯ ДИНАМИЧЕСКИХ СИСТЕМ (Г. КАСТЛЕР)
Информация есть случайный и запомненный выбор одного варианта из не-
скольких возможных и равноправных.
Посмотрите внимательно на эти определения. Есть вопросы?
Всё ли на свете есть информация?
— Какое-то непонятное последнее определение! Выбор какого такого вариан-
та?! — спросила Аня.
— Варианта какого-то события или какого-то состояния, или сообщения. Вот,
например, давай с тобой подбросим монетку вверх, поймаем на ладошку и посмо-
трим, что выпало: «орёл» или «решка».
Подбрасывание монеты.
События: монета упала «орлом» или монета упала «решкой».
«решка» — лицевая сторона монеты «орёл» — обратная сторона монеты
Борис вытащил из кармана монетку и перебросил её Анне.
— Лови!
— Что у тебя выпало? Какой вариант? — спросил Борис.
— «Орёл», — ответила Аня.
— Вот видишь. Это и есть выбор события «выпал орёл». Верно?
— Ну да. И что тут особенного? — удивилась Аня.
— Особенность тут в том, что ты нам сообщила об этом, сказав, что «выпал
орёл». А мы запомнили.
— Получается, что всё на свете есть информация! — задумчиво произнёс Ар-
тём.
— Всё, что мы можем воспринять своими органами чувств (или опосредован-
но), обработать с помощью своих мыслительных процессов и запомнить, — уточ-
нил Борис и добавил: — Во всех информационных процессах используется запо-
минаемая информация.
Как измерять информацию?
Идея красивая и простая.
Клод Шеннон, американский инженер, криптоаналитик и математик, рассма-
тривал текстовые сообщения Т, содержащие символы из некоторого алфавита.
Пусть в простейшем случае эти сообщения будут о том, что выпадает при под-
брасывании монетки. Пусть у нас будет сообщение от Ани: Т = «выпал орёл».
Представим это сообщение следующим образом.
Обозначим сообщение «выпал орёл» с помощью символа 1, а сообщение «вы-
пала решка» — с помощью символа 0. В этом случае математики говорят, что
алфавит сообщений состоит из двух символов: {1,0}. Или говорят, что сообщения
представляются в бинарном алфавите.
Теперь мы можем записать сообщение от Ани «выпал орёл» как: Т= {1}.
Мы видим, что длина этого сообщения (количество символов в сообщении) рав-
на единице. Запишем это как Л/ = 1.
Мы с вами убедились, что при подбрасывании монеты выпадает одно из двух:
«орёл» или «решка». В этом случае математики говорят, что эти события равно-
вероятные.
Вероятность того, что выпадет «орёл» (р^ или «решка» (р0) равна 1/2 .
А теперь смотрим на формулу вычисления количества информации в Анином
сообщении.
Формула Шеннона
/Л/="Л/ (РсЖРо+^кад) = -1 • у'од2у + у1од2у
Значение /ЛА= 1 представляет минимальное количество информации и называ-
ется битом.
Аня посмотрела на формулу в растерянности.
Борис тут же спросил:
— Аня, ты что? Не знаешь, что такое логарифмы?
— Нет, мы в школе их ещё не проходили, — смутилась Аня.
— А! Ничего страшного! — проговорил Борис. — Не проблема. Я тебя научу, как
не бояться формул.
ПРИМЕЧАНИЕ. Дорогие друзья! Воспользуемся советом известного писателя
и физика Роджера Пенроуза:«Если вы испытываете ужас перед формулами
(как большинство людей), то я вам советую полностью игнорировать строку с
формулой. Надо одарить формулу пытливым, но не проникающим взглядом, а
затем двинуться вперёд. Переведите взгляд на следующий за формулой текст.
Он поможет вам понять, что в ней важно, а что можно спокойно пропустить на
данный момент прочтения. К ней можно возвращаться по мере желания углу-
биться в понимание, и со временем вы всё поймёте!»
ПРИМЕЧАНИЯ К ФОРМУЛЕ ШЕННОНА. Знак «минус» в формуле Шеннона по-
ставлен для того, чтобы величина была положительной. Так как логарифм
(для величин меньше 1) — величина отрицательная. Двоичные логарифмы вы-
браны для удобства.
Измерение информации в компьютере
Итак, мы уяснили, что количество информации (или объём информации) изме-
ряется в битах.
В компьютере информация тоже кодируется с помощью двоичной знаковой си-
стемы — 0 или 1. Здесь бит также является минимальной единицей измерения
информации.
Следующей по величине единицей измерения информации в компьютере яв-
ляется байт. Один байт равен 8 битам. Рассматриваются также кратные байту
единицы измерения количества информации. Это килобайт, мегабайт, гигабайт
и так далее.
Например, вот вы знаете, сколько бит в гигабайте?
Это довольно большое число. 1 Гбайт = 8 589 434 592 бит.
— А что дальше, за гигабайтом? — спросила Аня.
— А дальше идёт терабайт, равный 1024 Гбайт. В битах это число ещё большее!
Далее идут петабайт, равный 1024 терабайт, эксабайт и так далее. Это тоже очень
большие числа! Кстати, вот вам история про большие числа.
Байт - величина информации, равная 8 битам.
1 байт = 8 бит = 2 • 2 • 2 = 23 бит.
1 килобайт (Кбайт) = 1024 байт или 8192 бит.
1 мегабайт (Мбайт) = 1024 Кбайт или 8 388 608 бит.
1 гигабайт (Гбайт) = 1024 Мбайт или 8 589 434 592 бит.
1 терабайт = 1024 Гбайт или 8 796 093 022 208 бит.
История про большие числа
Однажды один математик обсуждал со своим юным другом большие числа.
В ходе разговора зашла речь о числе со ста нулями, у которого не было соб-
ственного названия. Мальчик предложил назвать это число доодо! («гугол»).
Идея математику понравилась, и впоследствии он ввёл это слово для обозначе-
ния очень большого числа. Так оно и прижилось. И кстати, название компании
6оод1е является искажённым написанием слова «гугол» (доодо!).
Важные выводы: от информации к знаниям
Первый. Информация воспринимается некоторой информационной систе-
мой. Каждая информационная система воспринимает поток информации от своих
органов чувств (или датчиков). Как правило, большая часть воспринимаемой ин-
формации избыточна. Это либо бесполезный шум, либо эта информация не явля-
ется ценной с точки зрения существования данного существа (то есть его целей).
Второй. В реальных процессах принятия решений используется не просто ин-
формация, а ценная информация (или осмысленная информация). Чем в боль-
шей мере информация помогает достижению цели действующего существа, тем
более ценной она является.
Третий. При восприятии и обработке информации в любой интеллектуальной
системе общее количество информации уменьшается и остаётся только цен-
ная. Она представляет собой то, что и есть знание. Этот процесс называется из-
влечением знаний. Способность к извлечению знаний — очень важное качество
любого интеллекта.
Четвёртый. Способность извлекать знания зависит от воспринимающего
существа. Если говорить о людях, то слух или туманный намёк может для умного
человека стать знанием или источником знаний. А для человека, не любящего
думать, и ворох информации останется просто информацией, без превращения
в знания.
Что такое знания?
Википедия
Знание - это результат процесса познавательной деятельности.
Викисловарь
Знание - это осведомлённость в какой-либо области.
Гуманитарная энциклопедия
Знания - это полученная определённым способом и упорядоченная некото-
рым образом информация, которая с разной степенью достоверности отража-
ет внешний мир.
Учёные в области искусственного интеллекта
Знание - это ценная информация, содержащая усвоенные понятия, свойства
и законы внешнего мира, а также правила и способы достижения целей дей-
ствующего существа.
Мы будем использовать определение знаний, которое дается учёными в обла-
сти искусственного интеллекта.
В современном мире систем ИИ существуют два основных направления их раз-
работок:
• на основе моделей человеческих знаний и стратегий принятия решений
(традиционный ИИ);
• на основе моделей машинного самообучения.
Традиционный подход в разработке систем ИИ связан с передачей системам
ИИ человеческих знаний и стратегий принятия решений. Во втором случае систе-
ма ИИ развивается сама (как ребёнок).
Человеческий интеллект развивался миллионы лет и накопил огромные зна-
ния. Искусственный интеллект развивается всего каких-то 60-70 лет.
Сколько лет понадобится ИИ, чтобы путём самообучения достигнуть некоторо-
го уровня человеческого интеллекта, не говоря уже о том, чтобы его превзойти?
Ответ очевиден.
Именно поэтому при разработке систем ИИ учитываются идеи и алгоритмы обо-
их направлений.
Это мы и будем обсуждать в наших дальнейших беседах. Наш разговор мы нач-
нём со способов представления знаний в системах ИИ.
И прежде всего обсудим, в чём основное различие между данными, информа-
цией и знанием в системах ИИ.
От данных к элементарным единицам и структурам знаний
Рассмотрим простой пример.
В память компьютера нужно записать данные всех студентов определённого
университета: фамилии студентов, в каком году они поступили, на каком факуль-
тете и на каком курсе учатся и так далее.
Представим эту информацию в виде списков, содержащих значения следую-
щих типов данных: «ФИО», «год поступления», «факультет», «курс обучения» и
так далее. В простейшем случае это можно сделать в виде списка в алфавитном
порядке. Например, так, как показано в этом примере.
Пример. Данные о студентах в виде списка:
(...
(Арбатов Андрей Иванович, 2018, юридический, 1)
(Иванов Сергей Сергеевич, 2015, экономический, 4)
(Петров Сергей Евгеньевич, 2014, математический, 3)
(Сидоров Никита Петрович, 2013, управление, 6)
Этих данных большое количество — столько, сколько студентов в конкретном
вузе в текущем году.
Что не так с этим списком? Сами по себе эти данные не несут никакого смысла.
Про смысл знает программист, который будет писать программу обработки этих
данных.
Однако, если мы заведем таблицу, в которой будут колонки с фамилией, го-
дом рождения, факультетом, курсом обучения и другими сведениями, тогда эти
данные будут более осмысленными. Например, такая таблица может выглядеть
следующим образом (табл. 1.1).
Таблица 1.1
Фамилия, имя, отчество Год поступления Факультет Курс
Арбатов Андрей Иванович 2018 юридический 1
Иванов Сергей Сергеевич 2015 экономический 4
Петров Сергей Евгеньевич 2014 математический 3
Сидоров Никита Петрович 2013 управление 6
...
В этой таблице каждое «данное» в колонке уже имеет свой «смысл». Например,
Петров — это фамилия человека, математический — это название факультета,
а цифра 3 — это третий год (курс) обучения. Понимаете, ребята?
— Да, понимаем, — ответила Аня. — И что это нам даёт?
— Смотрите: каждая колонка представляет не просто какие-то данные, а не-
которую элементарную единицу знания. В этой таблице каждое данное принад-
лежит к своему классу понятий, представляющему ту или иную единицу знания.
При этом сама таблица представляет собой не просто совокупность разнородных
данных, а является элементарной структурой знаний.
Знания в системах ИИ
Если собрать набор элементарных единиц знаний, никак не связанных между
собой, то это ещё не будут знания. Для того чтобы куча единиц знаний стала зна-
нием, должны быть указаны, какие существуют семантические отношения (смыс-
ловые связи) между различными типами данных в них.
Примеры типов семантических отношений между единицами знаний
«Часть — целое» (например, колесо — часть велосипеда).
«Подкласс — класс» (например, кот — млекопитающее).
«А находится на Б» (например, кот находится на велосипеде).
«Причина — следствие» (кот упал и со страху убежал).
«Раньше», «позже» (например, сначала кот упал, а потом убежал).
Можно выделить некоторый базовый набор семантических отношений между
простейшими единицами знаний. С помощью этих отношений мы получим не про-
сто свалку элементарных единиц знаний — семантически организованную струк-
туру знаний!
Поэтому учёные в ИИ говорят, что знания обладают внутренней структурой'.
В этом основное отличие знаний от данных!
Знания могут быть общего типа, профессиональные (предметные) знания или
в виде личного опыта.
Типы знаний: общие, профессиональные, личный опыт
Общее знание — это такое знание, которое известно всем (из некоторой груп-
пы). В ИИ мы говорим, что люди в процессе своего развития (от младенчества к
профессиональной деятельности) создают свою модель внешнего мира. Другими
словами, мы связываем усвоенные понятия, свойства и законы внешнего мира в
некоторую картину мира в своей голове.
К общему знанию, например, можно отнести такое знание: «все люди смертны»,
или «реки текут в море», или «планета Земля вращается вокруг Солнца».
— А, ну да, «дважды два равняется четыре». «Волга впадает в Каспийское
море»... Да мы тут все сейчас заснём, перечисляя все эти общие факты, — за-
смеялась Аня.
— Как ты собираешься учить своего робота, чтобы он тебя понимал — это раз,
чтобы умел решать сложные задачи — это два, чтобы помогал тебе — это три.
А? — спросил Борис.
— Действительно, как? — задумалась Аня.
— Вот об этом и речь. Окончив школу, люди выбирают себе профессию и идут
учиться в университет, в котором приобретают профессиональные знания, напри-
мер знания врача (обо всех болезнях и лечении больных) или знания инженера,
или строителя, или программиста и так далее. Мы в искусственном интеллекте
говорим, что эти знания составляют модель предметной области.
— Понимаете, Аня, Артём? — спросил программист.
— Да. Но как всё это знание записать в виде вашей таблицы, уважаемый Бо-
рис? Я что-то не представляю, — задумалась Аня.
— И правильно, что не очень понимаешь. Всё знание в виде таблицы не пред-
ставишь! Нужны разные способы, — ответил Борис. — Вот об этом мы и будем
сейчас говорить.
Модель - это всегда некоторое упрощённое представление
о реальном объекте, процессе или явлении заданной
предметной области.
Математическая модель - это модель, записанная
на некотором формальном языке.
Формальный язык - это язык, характеризуемый точными
правилами построения выражений языка
(формальная грамматика) и точными правилами
их интерпретации. Такими языками являются,
например, языки программирования, на которых пишутся
компьютерные программы.
Модель внешнего мира - это записанные в памяти
структуры знаний, отражающие усвоенные понятия,
свойства, принципы и законы окружающего мира.
Модель предметной области - это записанные в памяти
структуры знаний, отражающие понятия, свойства,
принципы и законы конкретной области
профессиональной деятельности.
Модели представления знаний в ИИ
Надо отдавать себе отчёт в том, что знание нужно не только иметь, но и пред-
ставлять его в компьютере с помощью определённых средств и определённым об-
разом, чтобы не получилось так, как говорится в этом афоризме: «Я очень много
знаю, но практически ничего не помню».
Модель представления знаний в ИИ -
это формальный способ записи и обработки знания
в системе ИИ.
На рис. 1.1 показаны основные модели представления знаний, которые исполь-
зуются в теории ИИ. На протяжении этой книги мы познакомимся со всеми этими
моделями.
Рис. 1.1
Базы знаний в системах искусственного интеллекта
По аналогии с базами данных и СУБД строят базы знаний (БЗ) и системы управ-
ления базами знаний (СУБЗ).
В общем случае база знаний может состоять из различных разделов. Каждый
раздел содержит знания разного типа. Например, так, как это схематически по-
казано на рис. 1.2 (для задачи управления поведением робота). Структуру базы
знаний задаёт разработчик для решения тех задач, под которые разрабатывается
система ИИ.
ПРИМЕЧАНИЕ. О деревьях решений см. главу 6.
База знаний (БЗ) - совокупность взаимосвязанных
и структурированных единиц знаний с заданной моделью
представления знаний и системой управления базой знаний.
Система управления базами знаний (СУБЗ) -
программная система, включающая инструменты
заполнения данных в базах знаний, их редактирования,
а также поиска нужных элементов знаний в БЗ.
Сценарий - структура знаний, описывающая взаимосвязь
событий во времени.
стратегии поведения»
в&ДО Деревья решении
--------------
СЛОВАРИ
Л. ' Модель внешнего мира.
Фреймы, сценарии
4- '
Рис. 1.2
Что такое фрейм?
Историческая справка
Один из авторов фундаментальных работ по ИИ Марвин Минский в 1975 году
предложил использовать понятие «фрейм» (от английского слова Кате — кадр,
рамка) для обозначения структуры, с помощью которой можно описывать раз-
личные единицы знания.
С помощью модели фреймов учёные пытались описать устройство памяти чело-
века. Однако оказалось, что такая модель очень упрощённая, и для описания па-
мяти и механизма мышления человека не очень годится. А вот для представления
некоторых знаний в системах ИИ она вполне подходит и успешно используется.
Фрейм - структура (список), содержащая
описание объекта в виде атрибутов (свойств, слотов)
ЧСЬ и их значений.
Например, этот список может быть представлен так:
(Имя_фрейма
(имя слота 1: <значение слота 1 > / <#присоединённая процедура 1 >;
имя слота 2: <значение слота 2> / <#присоединённая процедура 2>;
имя слота т <значение слота 1 > / <#присоединённая процедура п >))
Имя фрейма задаёт некоторую элементарную единицу знания в базе знаний.
Набор единиц знаний в БЗ зависит от тех задач, которые решает разрабатывае-
мая система ИИ.
Важные замечания
1. В качестве значений слотов могут быть конкретные данные или ссылка на
другой фрейм, или некоторая присоединённая процедура.
2. Присоединённая процедура> означает, что значением слота является не-
кая вычислительная процедура, которую надо выполнить.
3. Символ п показывает количество слотов в данной структуре.
4. В конкретной программной реализации языка фреймов может быть другой
синтаксис.
Пример фрейма для описания объектов
Фрейм для описания объектов показан на рис. 1.3. Посмотрите
(«банан»
(18А: «фрукты»;
цвет: жёлтый;
вкус: сладкий;
форма: продолговатый;
образ: #у1зиа112е («банан»)))
(«фрукты»
(18А: «физические объекты»;
тип: обобщённый класс;
признак: «съедобные плоды»;
Рис. 1.3
назначение: «еда»;
место произрастания: «дерево»))
Внутри каждой структуры могут находиться ссылки на другие структуры фрей-
мов. Благодаря этому можно построить структурированную систему знаний, опи-
сывающую тот или иной фрагмент предметной области, с которой имеет дело кон-
кретная система ИИ.
Фреймы для представления знаний используются в лингвистических процессо-
рах, в системах обработки естественного (человеческого) языка, в различных экс-
пертных системах, в системах планирования действий робота и других областях.
Проинтерпретируем записанный нами объект «банан».
В базе знаний имеется элементарная единица знания с именем «банан». Она
имеет характерные свойства: 18А, цвет, вкус, форму, образ.
Слот 18А обычно используется для описания принадлежности данного объекта
к указанному классу объектов. В нашем примере это означает, что объект с име-
нем «банан» является объектом из общего класса под названием «фрукты».
Значениями свойств (цвет, вкус, форма) являются слова жёлтый, сладкий, про-
долговатый. Значением свойства образ является результат исполнения вычисли-
тельной процедуры #у1зиа112е(«банан»).
Слот 18А — важный, он связывает две единицы знаний («банан» и «фрукты»)
семантическим отношением «подкласс — класс». В нашем примере это означает,
что объект «банан» входит в более общий класс объектов под названием «фрук-
ты». Кроме того, слот 18А значит, что объект «банан» обладает (ещё говорят на-
следует) всеми теми свойствами (слотами), которые есть у фрейма «фрукты».
Вот посмотрите. Если опишем: «фрукты — это съедобные плоды» или «фрук-
ты — это плоды, растущие на дереве», тогда этими же свойствами будет обладать
и «банан». Зная это, система ИИ может ответить, например, на вопрос «где растёт
банан»?
— И где? — спросила Аня.
— На дереве.
— Ну, это очевидно!
— Кому? — улыбнулся программист и продолжил: — Роботу, например, надо
всё это объяснить.
Продукционная модель представления знаний
— Поговорим ещё об одном
популярном способе (модели)
представления знаний в ИИ.
В этой модели знания пред-
ставляются в виде правил,
которые называются продук-
ционными правилами. Рас-
смотрим задачу, связанную,
например, с распознавани-
ем животного по его призна-
кам. Кстати, вы были в зоопар-
ке? — спросил программист.
— Конечно, — ответил Ар-
тём.
— А кто вам понравился?
— Я вспомнила, кто нам по-
нравился, — быстро ответила
Аня и, хитро улыбнувшись,
продолжила: — Нам с Артё-
мом понравилось животное
тёмно-коричневого цвета с бе-
лыми клеточками и с длинной
шеей. Угадайте, кто это?
— Хороший вопрос! Сейчас
расскажу, как такую задачку
Если «у животного есть перья», то «это птица»
можно решить с помощью программы «300», работающей с продукционными
правилами.
Продукционное правило имеет следующий вид:
«Если А (и В1, В2,...) то С».
Левая часть правила («если...») содержит описание
некоторых фактов (А, В1 и так далее) из предметной
области, в которой ищется решение.
Правая часть правила («то...») содержит описание
некоторого факта (или действия - С).
С помощью продукционных правил можно описывать
стратегии поведения (принятия решений) при поиске
решения задач.
Угадай, кто это?
В базе знаний программы «300» содержатся продукционные правила, описы-
вающие знания для решения задачи распознавания животных по их внешним при-
знакам. Например, такие:
Правило П1: если «животное кормит детёнышей молоком», то «это млеко-
питающее».
Правило П2: если «у животного перья», то «это птица».
Правило ПЗ: если «животное млекопитающее и у него есть копыта», то «это
копытное».
Правило П4: если «животное ест траву», то «это травоядное».
Правило П5: если «животное млекопитающее и травоядное» и «животное
имеет длинную шею и темно-коричневое тело с белыми клеточками», то «это
жираф».
Правило П6: если «животное млекопитающее и ест мясо», то «это хищник».
Сообщение от пользователя «нам понравилось животное тёмно-коричневого
цвета с белыми клеточками и с длинной шеей» поступает на вход программы
«300».
Программа сопоставит данное описание животного с левыми частями своих
правил П1, П2, ..., П6, хранящихся в её базе знаний. И выделит правило П5.
В этом правиле есть дополнительное условие, которое надо выяснить, поэтому
система спросит: «Это животное ест траву?»
— Что ты ответишь, Аня?
— Животное ест траву и кормит детёнышей молоком, — ответила Аня.
Через секунду ответ был готов: «Вам понравился жираф».
Чаепитие с Борисом и разговор о том, вредно ли думать
Борис предложил сделать перерыв, попить чай и поболтать. Чаепитие про-
шло очень весело. Молодой учёный вытащил из своей памяти очередной рассказ
о программистах, который очень рассмешил ребят.
— Я вот сейчас расскажу вам одну историю, — сказал Борис. — Послушайте.
(См. рисунок на стр. 37.)
Артём рассмеялся.
— И что тут смешного? — спросила Аня. — Мне вот совсем не смешно.
Борис, улыбаясь, ответил:
— Вот, как напишешь свою первую программу для компьютера, тогда и пой-
мёшь. Не будем торопиться.
Через некоторое время все расслабились и стали обсуждать всякое, что придёт
в голову.
и спрашивает:
- Папа, а почему солнце каждый день встаёт
на востоке, а садится на западе?
- Ты это проверяла? - Проверяла.
- Хорошо проверяла? - Хорошо.
- Работает? - Работает.
- Каждый день работает?
- Я вот сейчас расскажу вам одну историю, -
сказал Борис. - Послушайте:
«Сидит программист, ищет ошибки в программе.
День сидит, два сидит. Подходит дочка
Да, каждый день.
- Тогда ради бога,
дочка, ничего
не меняй!
И опять уткнулся
в свою программу».
Аня спросила:
— А вот как быть с пословицей, которую я часто слышу от взрослых: «много
будешь знать — скоро состаришься» Это что означает?
Борис, улыбаясь, ответил:
— Я думаю, к вашим роботам это не относится! Взрослые любят иногда так го-
ворить в некоторых особых случаях.
— А вот ещё одна пословица, — сказал Артём. — «Горе от ума». Это как?
Тут Борис рассмеялся:
— Вижу, вижу! Вы с пользой проводите время! Горе от ума — это когда вместо
того, чтобы отдыхать и радоваться, человек продолжает думать и думать, и ду-
мать — а в результате принимает неправильное решение!
— А! То есть много думать вредно? — хитро улыбнулась Аня. — Тогда давайте
пить чай!
УМЕНИЕ ОБЩАТЬСЯ
Спустя пару минут Аня снова задала вопрос.
— Борис, а у Вас какая была первая программа?
— Первой моей серьёзной программой была программа под названием линг-
вистический процессор, — ответил Борис. — Хотите узнать, как устроены про-
граммы, которые умеют общаться на человеческом, естественном, языке и пони-
мать смысл того, что ты им говоришь?
— Конечно, хотим! — воскликнула Аня.
— С удовольствием расскажу. Но сначала поговорим вот о чём.
— Представьте себе, ребята, что вы хотите создать умную систему (виртуаль-
ного агента или искусственного собеседника, или робота). С чего бы вы начали
свой проект? Какой интеллектуальной способностью вы хотели бы наделить ваше
создание в первую очередь? Что бы вы хотели от системы искусственного интел-
лекта? Что скажешь, Артём?
— Да, интересный вопрос. Так с ходу даже и не ответить. Сейчас подумаю...
Я бы хотел с помощью искусственного интеллекта открывать что-то новое, иссле-
довать новые проблемы, — ответил Артём.
— Похвально. Это направление называется машинным обучением. Сейчас оно
очень популярно. Об этом можно будет поговорить подробнее, посетив лаборато-
рию машинного обучения у нас в технопарке. А ты, Аня, что бы хотела?
— А я бы хотела помогать людям. Я бы создала робота, который умеет общать-
ся и быть хорошим другом.
— Тоже замечательное дело. Умение общаться — важное качество любой ин-
теллектуальной системы. К умению общаться и взаимодействовать с помощью
языка, речи и письменности люди шли тысячами лет эволюции. У систем искус-
ственного интеллекта не такая большая история. Но наделить их такой способ-
ностью можно. С этого мы и начнём: как создать модель общения и как её реали-
зовать в компьютерной программе.
Общение (коммуникация) - это процесс двустороннего
о® (или многостороннего) обмена информацией, идеями,
ведущий к взаимному пониманию.
Важное замечание
Умение общаться с людьми - очень важное умение человеческого интеллек-
та. Оно включает умение понимать суть сказанного. А ещё нужно обладать
вниманием и тактом к собеседнику, не вызывать в нём неприятных эмоций.
Иначе он повернётся и уйдёт. И никакого диалога не будет.
Диалог с Чеширским Котом
— Сначала поговорим о том, как устроен любой диалог вообще, а потом — как
работают программы, способные вести диалог на естественном языке.
— Как ты думаешь, Анна, когда возникает диалог? — спросил Борис.
— По-моему, когда один человек что-то хочет сказать другому или спросить его
о чём-нибудь.
— Верно. В диалоге принимают участие два собеседника.
Возьмём какой-нибудь пример диалога, скажем, из сказки английского писа-
теля Льюиса Кэрролла «Приключение Алисы в Стране чудес». Вот он, разговор с
Чеширским Котом. Почитайте, и обсудим принципы устройства диалога вообще.
Для того чтобы вести разговор, нужно говорить на одном и том же языке. Или
воспользоваться услугами переводчика. Согласны?
— Согласны. Но лучше самому выучить язык своего собеседника. Тогда никого
не надо будет просить, — ответила Аня.
— Логично. Многие люди так и поступают. Кроме того, есть ещё одно условие
в диалоге. Нужно иметь общую тему обсуждения. Верно? Однако давайте обо
всём по порядку.
- Чеширский Мурлыка... - заговорила Алиса несмело... -
скажите, пожалуйста, куда мне отсюда идти?
- Это во многом зависит от того, куда ты хочешь прийти, -
ответил Кот.
- Да мне почти всё равно, - начала Алиса.
- Тогда всё равно, куда идти.
- Лишь бы попасть куда-нибудь, - пояснила Алиса.
- Не беспокойся, куда-нибудь ты обязательно попадёшь...
Общая схема диалога
Нарисуем общую схему диалога (рис. 1.4) и поговорим о ней.
Участники диалога, назовём их Р1 (Алиса) и Р2 (Кот), ведут между собой разго-
вор о некоторой ситуации (явлении) окружающего их внешнего мира. Обозначим
этот внешний мир как «Действительность Д».
Видите, на схеме показано, что оба участника ведут разговор об одной и той
же «Действительности». Стрелочки 01 и О2 обозначают способы отражения внеш-
него мира в голове (мозге) данного участника: как и каким мы видим мир вокруг
нас. У участников диалога они могут быть разными. И всё же они должны быть
похожими, иначе было бы невозможно договориться друг с другом: один говорит
«это белое», а другой — «нет, это чёрное». Это важное условие успешного диа-
лога.
Языки Я1 и Я2 не обязаны быть одинаковыми. И тогда нужен переводчик. Им
в нашей схеме является квадратик Т (переводчик или интерфейс).
— А что такое квадратики М1 и М2? — спросил Артём, разглядывая схему диа-
лога.
— Эти блоки представляют модели внешнего мира. В них содержатся знания об
окружающем нас мире. Эти модели также должны быть похожими — это ещё одно
условие успешного диалога. Иначе разговор может получиться приблизительно
таким же, как в известной поговорке «Я ему про Фому, а он мне про Ерёму».
Рис. 1.4
Важные условия успешного диалога
1. Два участника диалога погружены в одну и ту же действительность.
2. Способы отражения внешнего мира в голове участников диалога не долж-
ны противоречить друг другу.
3. Если языки у партнёров диалога разные, то необходим интерфейс (или
переводчик).
4. Модели внешнего мира М1 и М2 должны быть похожими (адекватными друг
ДРУГУ).
Диалог с компьютером
— А что означают стрелочки И1 и И2? — спросила Аня.
— Они обозначают очень важные процедуры, выполняемые мозгом каждого
участника диалога. Это так называемые процедуры интерпретации. С их по-
мощью входные сообщения от одного партнёра диалога (то, что он сказал) срав-
ниваются с теми знаниями, которые находятся в памяти другого партнёра, вос-
принимающего сообщение.
В результате выдаётся некоторая реакция на сказанное партнёром диалога:
в виде ответа на тот или иной ответ либо в виде действия, либо в виде некоторой
эмоциональной реакции. Так и происходит разговор, общение.
Рассмотрим теперь, что будет, если один из участников диалога — компьютер
или робот, а второй участник диалога — человек, не владеющий премудростями
программирования. В этом случае компьютер должен обладать соответствующей
программой, в которой должен быть блок Т, переводчик с человеческого языка на
язык компьютера. Такая программа называется языковым, или лингвистическим,
процессором.
Обсудим, по каким алгоритмам работает этот процессор.
Программа-переводчик входных сообщений, записанных
сяа на естественном языке, в язык компьютера называется
языковым, или лингвистическим, процессором.
ПРИМЕЧАНИЕ. Будем называть в дальнейшем любой человеческий язык —
естественным языком (ЕЯ).
Лингвистический процессор
— Лингвистический процессор — это просто! — продолжил свой рассказ Бо-
рис. — Вот, полюбуйтесь — я нарисовал его структуру. Это рис. 1.5.
— Кстати, Анна, ты понимаешь, что такое структура? — спросил Борис.
— По-моему, структура означает, из чего всё это состоит. Правильно?
— Ну да, совершенно верно, — улыбнулся Борис и продолжил: — Видите,
в лингвистическом процессоре входные сообщения проходят сложную обра-
ботку.
— Простите, — прервала Аня. — А что такое входное сообщение?
— Сейчас объясню подробнее, — ответил Борис. — Давайте возьмём при-
мер из разговора с твоей любимой программой на Айфоне. Спроси свою «Сири»
о чём-нибудь.
— Хорошо. Например, спрошу её вот
о чем: «Эй, Сири! Брать ли мне сегодня
зонтик?»
— Когда ты её спрашиваешь о чём-то
(или просишь о чём-то) — это и есть вход-
ное сообщение для неё. В твоём примере
входным сообщением для «Сири» являет-
ся произнесённая тобой фраза.
{Входное сообщение на естественном языке (речь)}
Блок распознавания человеческой речи
{Входное сообщение в символьном виде}
Лингвистический процесс
Предварительная
обработка
Словари
Блок понимания
и генерации ответа
Семантический
анализ
Синтаксический
анализ
{Ответ на естественном языке}
Рис. 1.5
ПРИМЕЧАНИЕ. Слово «блок» на рис. 1.5 и в дальнейшем нашем разговоре озна-
чает подпрограмму (подсистему). Подпрограмма — это программа в составе
другой, большей программы.
Этапы обработки входного сообщения
в лингвистическом процессоре
— Лингвистические процессоры стараются понять, что интересует пользова-
теля, и найти соответствующий ответ или выполнить соответствующее действие.
Они это делают по-разному. Начнём с традиционного способа обработки есте-
ственного языка. Рассмотрим твой пример, Аня. Когда ты спрашиваешь програм-
му: «Эй, Сири! Брать ли мне зонтик сегодня?», то понимаешь, что происходит
внутри программы «Сири»?
— Конечно. «Сири» откроет сайт погоды, посмотрит, есть ли у нас дождь, и от-
ветит, — уверенно произнесла Аня.
ГЛАВА 1
— Это же программа на компьютере, это не живой человек, который бы сделал
то, о чём ты только что нам радостно сообщила. На вход программы «Сири» по-
ступил всего лишь некий звуковой сигнал!
— Может, это просто набор каких-то звуков с улицы? Как, имея на входе в про-
грамму какие-то звуки, выдать сообщение на выходе «да, возьми сегодня зонтик,
будет дождь»? Ты можешь объяснить, как это сделать? Понимаешь, какой это
сложный процесс?
— Я не подумала. Действительно, мой мозг умеет решать эту задачу... Но я не
представляю, как это объяснить в виде алгоритма?!
— Давайте попробуем разобраться. Входной сигнал подаётся на вход блока,
распознающего человеческую речь. Это очень важный блок. Он обеспечивает ав-
томатическое деление входного сообщения на отдельные части — слова.
Блок распознавания сразу узнает фразу «Эй, Сири!», что означает вызов про-
граммы «Сири».
После этого «Сири» по Интернету передаст звуковой сигнал твоего речевого
сообщения нужной программе, которая начнёт обработку речевого сигнала. А за-
тем сигнал, преобразованный в текстовый вид «Брать ли мне зонтик сегодня?»,
отправится на обработку лингвистическому процессору.
И в первую очередь это текстовое сообщение попадает на вход блока «Пред-
варительная обработка».
Информация о каждом слове из этого сообщения по очереди вытаскивается из
словаря лингвистического процессора и записывается в отдельный список. Обсу-
дим, как это происходит.
Предварительная обработка и определение типа сообщения
В блоке предварительной обработки формируется список (назовём его /.), кото-
рый состоит из слов входного предложения и присоединённой к ним информации
из словаря.
А также определяется тип речевого (текстового) сообщения.
Это делается так.
1. Если во входном сообщении используется частица «ли» или стоит вопроси-
тельный знак, то тип предложения — вопросительный. Входному сообщению
присваивается статус «вопрос».
2. Если в текстовом сообщении стоит точка в конце предложения, то это по-
вествовательное предложение. Входному сообщению присваивается статус
«факт».
3. Если в текстовом сообщении стоит восклицательный знак в конце предло-
жения или используется глагол в повелительном наклонении, то это побуди-
тельное предложение. Входному сообщению присваивается статус «коман-
да».
Эй, Сири! Брать ли мне сегодня зонтик?
Цель вопросительного предложения — получить от собеседника ответ на по-
ставленный в сообщении вопрос.
Эй, Сири! Сегодня чудесная погода.
Цель повествовательного предложения — сообщить о чём-либо.
Эй, Сири! Запиши телефон моей бабушки 010 222 55.
Цель побудительного предложения — мотивировать адресата сообщения со-
вершить какое-либо действие.
Как устроен словарь лингвистического процессора
В модели обработки текстовых сообщений на естественном языке слова несут
два типа значений: грамматические и семантические (смысловые).
Грамматические значения разделяются на два типа: синтаксические и служеб-
ные значения. К последней категории относятся, например, вопросительный знак
(?) и частицы.
К синтаксическим значениям относятся грамматические свойства данного сло-
ва, то есть чем является данное слово: это глагол, или наречие, или предлог, или
существительное, или прилагательное и так далее. Если это слово — существи-
тельное, то у него есть также род, число и падеж.
В качестве семантических значений слова выступают имена единиц знаний,
которые используются в модели внешнего мира.
Например, глаголы, как правило, описывают действия, существительные —
объекты и субъекты действий, наречия — место, время действий или время со-
бытий и так далее. Прилагательные описывают различные свойства предметов
внешнего мира (например, размер, цвет и тому подобное).
ФРАГМЕНТ СЛОВАРЯ
(брать
(синтаксическоя_часть
(основа «брать», часть_речи «глагол», форма «инфинитив», время «неопреде-
лённое», модель_управления «М1»));
(семантическая_часть
(действие «взять», субъект_действия «человек», объект_действия «зонт», от-
куда «место», куда «место», присоединённые_процедуры «#(Ф1, Ф2)»)))
(ли
(часть_речи «частица»))
(мне
(синтаксическая_часть
(основа «я», часть_речи «местоимение», падеж «дательный», число «един-
ственное»);
(семантическая_часть
(субъект-действия «пользователь»)))
(зонтик
(синтаксическая_часть
(основа «зонт», часть_речи «существительное», число «единственное», род
«мужской», падеж «именительный/винительный»));
(семантическая_часть
(понятие «физический-объект», класс «бытовой_предмет», назначение «за-
щита_от_дождя», использование (необходимое_условие «дождь»), визуаль-
ная_форма «#1та§е1»)))
(сегодня
(синтоксическая_часть
(основа «сегодня», часть_речи «наречие», время «настоящее»));
(семантическая_часть
(понятие «время», статус «текущая дата», присоединённая_процедура «теку-
щая дата»)))
(? (служебный_символ «вопрос»)
(семантическая_часть
(вопрос «пользователь»)))
ПРИМЕЧАНИЕ. Из словаря выбраны только слова из примера входного сообще-
ния «Брать ли мне сегодня зонтик?». О модели и о присоединённых процедурах
мы поговорим чуть позже, когда дойдём до этого этапа.
Разговор о словаре
— Составление словаря — дело скучное, — заметила Аня.
— Согласен. Эта тема несколько занудная, но куда без словарей в нашем мире
без границ! Языки-то у всех разные. Итак, посмотрим на наш пример описания
слова «брать» в словаре и обсудим, что там записано. Смотрите и задавайте во-
просы.
— Это похоже на фреймы, — заметил Артём.
— Да, это так. У нас есть имя фрейма «брать» и есть его слоты, названные
синтаксическая часть и семантическая часть. Значение слота «синтаксическая
часть» представляется списком грамматических признаков данного слова. Значе-
ние слота «семантическая часть» — списком семантических категорий.
— А что такое модель управления, а ещё присоединённые процедуры какие-
то? — спросила Аня.
— Правильные вопросы. Подождите немного, и я вам их объясню, когда мы
перейдём к блоку синтаксического анализа.
Важное замечание
Обратите внимание вот на что. Видно, что это не словарь в обычном смысле
как у Даля, или как словари иностранных слов. Такой словарь можно назвать
программно-ориентированным словарём (или базой словарных данных), ко-
торый создаётся программистами для решения задач лингвистического ана-
лиза. Словарь - это база данных, содержащая описание слов естественного
языка.
Что такое синтаксическая структура входного сообщения?
— Вернёмся снова к схеме обработки естественного языка на рис. 1.5.
Сформированный список слов 1_ поступает на вход следующего блока «Синтак-
сический анализ». Задача этого блока — найти в списке /. слова, которые являют-
ся подлежащим, сказуемым и дополнением. (Другие оставшиеся слова анализи-
руются последними.)
В процессе анализа слов списка 2. строится так называемая синтаксическая
структура входного сообщения. Эта структура ещё называется деревом зависи-
мостей (слов в предложении). Смотрим на определения.
Деревом называют математическую структуру,
состоящую из вершин, исходящих из одной начальной,
и дуг, связывающих вершины. Каждая вершина
представляет некоторый элемент данных или знаний,
а дуги указывают тип связи между вершинами (рис. 1.6).
Синтаксическая структура входного предложения
(сообщения) на ЕЯ - это дерево зависимостей слов
в предложении, где каждая дуга (стрелка) идёт от главного
слова («хозяина») в зависимое слово («слугу») и помечена
именем синтаксического отношения (подлежащее,
или сказуемое, или обстоятельство (места, времени
или образа действия) и т. п.
Математическое
дерево
— Обсудим, как строится дерево зависимостей слов в предложении. Самая
верхняя (или корневая вершина) в дереве зависимостей — это слово-глагол, ко-
торое является сказуемым. Сказуемое-глагол в предложении главное по смыслу'.
Оно управляет другими важными словами в предложении.
— Как это управляет? — спросила Аня.
— А вот как. Какого, по-твоему, слова требует глагол «брать»? — спросил Бо-
рис. — Брать «что»?
— Зонтик.
— Правильно, «брать зонтик». То есть надо искать в списке 2. «существитель-
ное в винительном падеже». Это слово и будет кандидатом на синтаксическую
роль «дополнения» во входном сообщении. Кроме того, действие «брать» требует
также указать «кто» это делает, верно?
— Ну да. Это — «я», — ответила Аня.
— Правильно. То есть на роль подлежащего в предложении надо искать су-
ществительное или местоимение, которые подходят на роль субъекта действия.
В нашем случае это местоимение в дательном падеже. Другими словами, в моде-
ли управления (словами) описываются образцы поиска в предложении тех зави-
симых слов, которых по смыслу требует глагол «брать». Это и есть модель управ-
ления М1, которая указывается в словаре для данного слова-глагола.
— После того как определены слова, играющие роль сказуемого, подлежащего
и дополнения, анализируются оставшиеся необработанные слова. В нашем вход-
ном сообщении это слово «сегодня» и вопросительный знак. Слово «сегодня»
объявляется «обстоятельством времени». А служебное слово «?» задаёт значе-
ние статуса входного сообщения. Его «статус» — вопрос.
И дерево зависимостей слов в данном предложении готово. Посмотрите на
В вершине дерева находится главное слово в предложении — сказуемое, ко-
торое представлено глаголом «брать». А внизу в вершинах находятся зависимые
от глагола слова, обозначающие «что» взять и «кому» взять. Это слова «зонт» и
«мне».
Слово «сегодня» — наречие. Оно означает время действия. Стрелочки между
словами-вершинами показывают, какая грамматическая связь существует между
словами.
Итак, на выходе блока синтаксического анализа имеется синтаксическая струк-
тура входного сообщения, которая очень наглядно демонстрирует, как устроено
(в грамматическом смысле) входное сообщение.
А дальше происходит семантический анализ построенной синтаксической
структуры. Задача семантического анализа — извлечь смысл сказанной фразы,
который содержится в данной входной фразе.
Важное замечание
Синтаксический анализ входных сообщений в основном используется в систе-
мах машинного перевода с одного естественного языка на другой. В остальных
системах обработки естественных языков после предварительной обработки
обычно идёт блок семантического анализа с использованием грамматической
информации!
От синтаксического анализа к семантическому.
Построение смысла сказанного
В процессе семантического анализа синтаксическое дерево зависимостей слов
превращается в семантическую структуру, показанную на рис. 1.8.
Синтаксическая структура
Семантическая структура
В вершинах указаны единицы знания (понятия) из модели внешнего мира, а на-
звания на стрелочках обозначают смысловые связи между этими понятиями.
В смысловом представлении появились новые вершины и связи. Это элементы
знаний о том, что пользователь — это человек, что назначением зонта является
защита от дождя. Действие «брать» превратилось в действие «взять», у действия
«взять зонт» появилось необходимое условие — наличие дождя. А время дей-
ствия — это текущее время (сообщения).
Один и тот же смысл люди передают и на русском языке, и на английском, и
на японском, и даже на машинном языке! Этот смысл не зависит от языка. Он за-
висит от того физического мира, в котором мы все живём. А планета Земля для
всех нас одинакова.
— Откуда это знание появилось? — спросила Аня. — Что-то не очень пони-
маю...
— Сейчас объясню. Оно извлекается из словаря, где описывается «семантиче-
ская часть» слов. Посмотрите внимательно на описание слова «зонтик» в разделе
«семантическая часть» словаря.
(зонтик
(семантическая_часть
(понятие «физический_объект», класс «бытовой_предмет», назначение «за-
щита_от_дождя»,
использование (необходимое_условие «дождь»), визуальная_форма
«#1та§е1»)))
Программа семантического анализа извлекает эту информацию и строит се-
мантическую структуру предложения, показанную на рис. 1.8. И этот смысл для
всех языков — один и тот же.
— Смысл не зависит от языка?! — переспросила Аня.
— Ну, конечно. Смысл не зависит от языка. Один и тот же смысл люди пере-
дают и на русском языке, и на английском, и на французском языке! Иначе как бы
мы все друг друга понимали?!
От смыслового представления к процедурам интерпретации
— После того как «смысл» того, что хотел сказать пользователь, определён,
он обрабатывается другими программами. Эти программы занимаются интерпре-
тацией данного смысла и нахождением уместной реакции на смысл данного со-
общения.
На нашей схеме (вернёмся к рис. 1.5) это очень важный блок «понимания и ге-
нерации ответа».
Первое, на что здесь обращают внимание, — это на тип входного сообщения.
Что это: команда, вопрос или некое утверждение общего смысла, типа «погода
сегодня замечательная»? У нас это вопрос. Вот тут-то нам и пригодятся присоеди-
нённые процедуры, прикреплённые к некоторым словам и записанные в словаре.
Заглянем снова в список Там находятся присоединённые процедуры, связан-
ные с действием «брать зонт». Блок генерации ответа считывает присоединённые
процедуры (Ф1 и Ф2) и запускает их выполнение.
Присоединённая процедура Ф1: «проверка необходимого условия для выполне-
ния действия».
С помощью этой процедуры реализуются следующие функции:
«открыть сайт погоды», «считать информацию на текущий момент».
Далее выполнить процедуру Ф2.
Процедура Ф2:
/ если считанная с сайта информация означает «дождь»,
то выдать ответ:
«да, стоит взять зонт, потому что по прогнозу сегодня дождь» /,
/ если считанная с сайта информация означает «нет дождя»,
то выдать ответ:
«зонт брать не стоит, дождя по прогнозу не будет» /.
Внимание! Теперь вопрос: если по такому алгоритму работает «Сири», то на-
сколько она умна, по-вашему? Каков критерий оценки машинного интеллекта?
РАЗГОВОР О ПОНИМАНИИ
— Поговорим о том, как мы
видим мир. Что скажете?
— Глазами, — ответила Аня.
— Быстрый ответ, молодец.
Однако на этот вопрос есть
много ответов. Например, «гла-
зами», или «в окно», или «гла-
зами других». Но в вопросе есть
и более важный смысл: как вы
понимаете мир? Мы смотрим на
одно и то же, но каждый видит
своё... — заметил Борис и про-
должил: — Что для вас, ребята,
значит «понимать»?
— Ну, я могу понимать слова,
что они означают, — ответи-
ла Аня. — Могу понимать, что
люди говорят, стараюсь понять,
что они чувствуют...
— А для меня понимать —
значит уметь объяснить. На-
пример, Ане, как решать ту или
иную задачку, — сказал Артём.
— Совершенно верно. Есть
разные уровни понимания. Ино-
гда оно сводится к простому узнаванию, как бы отвечая на вопрос «что это та-
кое?». Иногда происходит понимание чего-то в общих чертах. Артём имел в виду
научный, логический уровень понимания. И существует глубокое понимание, ког-
да ты можешь всё представить в мельчайших деталях, найти ассоциации, сделать
разнообразные выводы из понятого. Есть уровень чувственного понимания, о ко-
тором говорила Аня.
В процессе понимания могут возникать различные образы, картинки из про-
шлого опыта жизни, и связываться с тем, что ты воспринимаешь в данный момент.
Так это всё устроено у человека.
Подумайте, какой уровень понимания вы хотите воплотить в своём роботе?
Роботы же не с другой планеты, а создаются людьми...
Что такое понимание?
Рассмотрим следующий диалог. Маленький мальчик спрашивает маму: «Мама,
а крапива кусается? — Да. — А как она лает?»
— Что тут не так? — спросил Борис.
— Крапива не лает! — заметила Аня. — Это же растение, а не собака.
— А почему тогда она кусается? — хитро спросил программист и продолжил: —
Вот видите, у маленького мальчика внешний мир пока ещё очень прост. Он знает
о том, кто его окружает (родители, братик или сестричка, собачка или кот) и как
они себя ведут. Про крапиву он пока ничего не знает, но услышал где-то это слово
«крапива» и пытается понять, что это такое, задавая вопросы маме. Механизм по-
нимания состоит из двух процедур.
Первая — определить и записать в своей памяти новое понятие, например «кра-
пива». У нашего мальчика это происходит в разговоре с мамой. Ведь мама — са-
мый первый и самый главный учитель!
И вторая — установить связь нового понятия с тем, что мозг уже знает (то есть
с накопленными знаниями).
— Аня, что, по-твоему, этот маленький мальчик уже знает? — спросил Борис.
— Ясно, что он знает — что собаки кусаются! — засмеялась Аня.
— Точно, — улыбнулся Борис. — А теперь обсудим, что такое понимание с точ-
ки зрения учёных в искусственном интеллекте.
Способность к пониманию - это умение находить смысл
ерЧн, входной информации и устанавливать связь этой
информации с теми знаниями, которые есть в системе,
то есть с предыдущим опытом.
Способность к пониманию — важное качество любого интеллекта. У человека
способность понимать увиденное, услышанное, прочитанное — одна из главных
и важных интеллектуальных способностей. Учёные, работающие в области ИИ,
стремятся создавать программы, способные проявлять эту способность в той или
иной мере.
— А что значит «установление связей с предыдущим опытом»? — спросил Ар-
тём.
— Это предполагает способность проверить, совместимы ли новые знания со
старым знанием, не противоречит ли новое старому. И если так, то суметь усо-
вершенствовать свои представления и идеи о мире. Это, как в нашем примере,
мальчик подумал, что крапива тоже лает, раз она «кусается». Но это не так. И он
это запомнил.
Уровни понимания
— Понимание тесно связано со знанием. Для того чтобы понимать, надо учить-
ся и приобретать знания и опыт.
— Получается, что если у тебя нет знаний, то и понять ничего нельзя? — удиви-
лась Аня.
— Конечно. Вы же за этим ходите в школу, не так ли? — с улыбкой спросил
Борис и продолжил:
— Понимание является универсальной функцией мышления, которая представ-
ляет собой оценку входной информации (сообщения, текста, зрительного образа,
явления природы, события, поведения человека и т. д.) на основе своего знания
(опыта).
Понимание в общении сводится к определению того, что говорится, зачем го-
ворится и какой должна быть реакция (ответ). При этом в человеческом обще-
нии важно также, как это говорится (каким тоном, выражением лица и тому по-
добное).
Учёные выделяют несколько уровней понимания входной информации, которые
присущи существам, обладающим интеллектом. Они достаточно условны, однако
помогут нам уяснить сложности программирования вычислительных процедур,
связанных с пониманием в системах ИИ.
Нулевой или поверхностный уровень понимания
Часто на улице можно услышать такой разговор двух соседок.
— Добрый день! Как поживаете?
— Хорошо, спасибо. А как вы?
— Тоже нормально. Хороший сегодня день, не правда ли?
— Да, сегодня солнышко.
В таком диалоге не обязательно понимать, что тебе говорят, а просто опреде-
лённым образом поддерживать беседу. Так люди довольно часто себя ведут, если
не хотят вступать в беседу, а отказаться невежливо. На этом уровне понять —
значит просто ответить в том же духе, не вникая особо в смысл сказанного. В со-
временных программах, умеющих вести диалог, используется встроенный набор
вариантов такого типа ответов.
Выделим следующие уровни понимания, которые характеризуют уровень ин-
теллекта системы.
• Уровень 1. Система задаётся вопросом: «Что надо моему собеседнику?»
На этом уровне понять - значит найти нужный ответ (реакцию) на заданный
пользователем вопрос или команду.
• Уровень 2. Система задаётся вопросами: «Что это такое?» «Почему и как
это произошло?» На этом уровне понять - значит уметь объяснить. Это уро-
вень научного, логического, понимания.
• Уровень 3. Система задаётся вопросом: «Что делать, чтобы достичь за-
данной цели?» На этом уровне понять - значит уметь спланировать свои
действия для достижения цели.
• Уровень 4. Система задаётся вопросами: «Что такое хорошо?» и «Что та-
кое плохо?» Этот уровень связан с оценкой поведения людей и пониманием
их поступков.
• Уровень 5. Система задаётся вопросом: «Почему он плачет (смеётся, гру-
стит)?» На этом уровне понять - значит объяснить чувства и эмоции другого
человека, посочувствовать ему. Это уровень чувственного понимания.
• Уровень 6. Система задаётся вопросом: «Как выразить свои идеи, пред-
ставления, чувства и эмоции?» Это уровень творческого, образного и ассо-
циативного мышления. Он связан с умениями фантазировать, придумывать,
создавать виртуальные миры, искать новые нестандартные решения. Меха-
низмы творческого мышления досконально не изучены. Однако уже есть ин-
тересные попытки имитации творчества в системах ИИ.
ПРИМЕЧАНИЕ. Эти уровни даны для того, чтобы иметь некоторые критерии
оценки интеллекта, как естественного, человеческого, так и искусственного.
Возвращаясь к программе «Сири», обсудим, какой уровень понимания она про-
являет.
В основном «Сири» проявляет первый уровень понимания. Однако даже такой
уровень понимания позволяет ей быть очень полезным помощником человеку.
Если «Сири» не знает, что ответить, то она использует нулевой, поверхностный,
уровень понимания и просто вежливо поддерживает беседу. В этом вы сами мо-
жете убедиться, если поговорите с ней.
Разговор о способности машин понимать
— Я не уверен, что уровень чувственного понимания доступен машине, — за-
думчиво произнёс Артём.
— Я, пожалуй, с тобой соглашусь. По большому счёту, машина на это не спо-
собна, — ответил Борис и продолжил: — И будет ли способна в будущем — тема
для многочисленных дискуссий. Однако попытки имитировать этот процесс уже
существуют и выдаются за эмоции машин. Об этом мы поговорим в заключитель-
ной главе.
А вот послушайте, как чудесно написала Новелла Матвеева. Мне эти строчки
напомнили вот такую картинку у моря, как на этой фотографии, — продолжил Бо-
рис. Я её сделал на побережье Тихого океана, когда работал в Японии.
В закате раннем море убегает
Трофеями — роняя корни трав,
И, убегая, даль отодвигает...
— А теперь вопрос к вам, мои друзья: как определить, поняла тебя система ис-
кусственного интеллекта или нет? Можете сказать?
— Например, я задам системе вопрос. И если она ответит правильно — значит,
поняла, — ответил Артём.
— Твой ответ, — сказал Борис, — совпадает с мнением первых разработчиков
человеко-машинных диалоговых систем. Они тоже считали, что «если мы, пре-
следуя некоторую цель, обратились к компьютерной программе (или роботу) и по-
лучили от неё желаемый ответ (то есть добились своей цели), то можно говорить,
что система нас поняла».
Однако, кроме этого простого критерия, существует другой тест, связанный с
определением мышления искусственной системы. Его предложил британский ма-
тематик Алан Тьюринг. Тест был опубликован в философском журнале М1пс1 в
1950 году.
К)-тест для систем искусственного интеллекта,
предложенный Тьюрингом
Борис на минуту прервался и стал рыться в своих бумагах. Прошло 5 минут.
— Хотел найти вам этот номер журнала, да он куда-то завалился. Ну, да бог с
ним. У нас теперь есть Интернет. Итак, продолжим.
Тьюринг один из первых задал вопрос: могут ли машины делать то, что может
делать человек? И это было ещё в прошлом веке, представляете!
Тест Тьюринга формулируется следующим образом.
«Есть несколько человек, судей, общающихся с двумя собеседниками, которых
судьи не видят. Например, эти два собеседника находятся за непрозрачной пере-
городкой. Один из собеседников — компьютерная программа, а другой — чело-
век. Судьи задают вопросы обоим собеседникам и слушают их ответы. Если 30%
судей не в состоянии отличить по ответам человека-собеседника от компьютер-
ной программы-собеседника, то считается, что компьютер успешно сдал тест и
обладает способностью к пониманию».
Тьюринг предсказал, что компьютеры в конечном счёте пройдут его тест. Он
считал, что к 2000 году компьютер с памятью 1 миллиард бит может это сделать.
Но к 2000 году ни одна программа не смогла пройти этот тест.
— И что, до сих пор так никто и не прошёл тест Тьюринга? — спросила Аня.
— Спешу тебя обрадовать! — произнёс Борис. — В начале лета 2014 года это
событие случилось. Компьютерная программа с названием «Евгений Густман»,
созданная командой российских разработчиков, прошла тест, который проводил-
ся Королевским обществом в Лондоне. Программа убедила 33 процента судей в
том, что она является 13-летним мальчиком из города Одессы.
— Здорово! — воскликнула Аня и, повернувшись к своему другу, спросила: —
Ты знал об этом, Артём?
— Да. А ещё я читал, что есть такой ежегодный конкурс, в котором награжда-
ется лучшая программа-собеседник, имитирующая «человеческое» поведение в
разговоре.
— Совершенно верно, Артём, — сказал, улыбнувшись, Программист. — Дей-
ствительно, среди таких программ проводятся даже конкурсы. Например, про-
грамма \Л/а1зоп выиграла специальное телешоу, обыграв двух представителей
Ното зар/епз.
Что проверяет тест Тьюринга — разумность программы или её способность
имитировать человека?
ГЛАВА 1
— Возникла большая дискуссия о том, а что собственно проверяет тест Тьюрин-
га: разумность программы (компьютера) или её способность походить на челове-
ка? Или это просто имитация процесса понимания и одурачивание собеседника?
Характерным свойством данного теста является то, что можно разговаривать
о чём угодно. А в этом случае одного понимания слов недостаточно, надо уметь
разбираться в теме диалога.
Возникает вопрос: а чей интеллект мы тестируем? Обычного человека и про-
граммы \Л/а1зоп, а заодно и интеллект человека-судьи? Или интеллект обычного
человека, обычного судьи и команды разработчиков программы \Л/а1зоп? Аня, Ар-
тём, обсудите это на досуге.
Противники теста Тьюринга утверждают, что тест не способен оценить общий
интеллект заданной программы. Это правда. Тест Тьюринга несовершенен. Одна-
ко с некоторыми поправками и уточнениями он используется и сегодня для опре-
деления того, может ли программа «мыслить».
Можно ли запрограммировать способность понимать?
— Ну как, друзья, теперь вам понятно, какие проблемы существуют и как они
решаются в системах, ведущих диалог на естественном языке? — спросил Бо-
рис.
— Да, теперь я больше понимаю, как происходит диалог с компьютером или
роботом. С ними можно общаться, но всё равно, по-моему, они думают не так, как
мы, люди, — сказала Аня.
— Верно. Роботы и системы искусственного интеллекта думают алгоритмиче-
ским способом. Учёные в области ИИ говорят, что их «понимание» находится в
рамках вычислительной парадигмы. Другими словами, любой механизм пони-
мания сначала описывается в виде некоторого алгоритма, а затем программи-
руется.
А все ли мыслительные процессы можно запрограммировать? Вот в чём во-
прос.
На данный момент такие программы способны только изображать, имитиро-
вать, что понимают. Наш цифровой друг может быть обеспокоен твоим вопросом,
Аня, но за этим ничего нет — ни понимания, ни эмоций. Он просто следует алго-
ритму поиска реакции на твой вопрос. Понимаешь?
— Понимать-то я понимаю. Но всё равно, я люблю общаться с «Сири». Мне ка-
жется, что она меня понимает...
— Идея создания «мыслящих» собеседников человеческого типа очень привле-
кательна! И такие системы будут развиваться и дальше. Однако надо понимать,
что мы находимся в рамках вычислительной парадигмы. А можно ли все уровни
человеческой способности «понимать» описать в виде алгоритма? Об этом до сих
пор спорят учёные.
А мы пока идём дальше. Посмотрим, в каких системах ИИ реализованы все те
идеи и алгоритмы, о которых мы говорили.
ЭВОЛЮЦИЯ СИСТЕМ ОБРАБОТКИ ЗНАНИЙ
И ВЗАИМОДЕЙСТВИЯ С ПОЛЬЗОВАТЕЛЕМ
НА ЕСТЕСТВЕННОМ ЯЗЫКЕ
Рис. 1.9
Важное замечание
Наиболее продвинутые разговорные программы вполне могут быть встроены
в робота. И роботы, умеющие вести беседу, уже появились на рынке.
Родоначальница диалоговых систем
программа «Элиза»
— Посмотрим на рис. 1.9, где показана эволюция систем обработки знания и
взаимодействия с пользователем на естественном (человеческом) языке.
Мы видим, что первой диалоговой системой была программа «Элиза», разра-
ботанная американским учёным Джозефом Вейзенбаумом в 1966 году.
«Элиза» могла вести диалог с пациентами, имитируя разговор врача-психиатра.
Вейзенбаум говорил, что он написал программу, пародирующую поведение пси-
хиатра.
Ответы «Элизы» казались настолько правдоподобными, что многих пациентов
приводили в восторг и они с удовольствием вступали в эмоциональный контакт
с компьютером.
Это приводило разработчика программы в полное изумление!
Программа «Элиза» была устроена так, чтобы распознавать ключевые слова и
сочетания во входном тексте, который набирался с клавиатуры. Например, если
человек набирал фразу со словом «мать», «Элиза» спрашивала о семье.
Если «Элиза» не находила ключевое слово, то просто перефразировала задан-
ный человеком вопрос (как это показано в нашем примере диалога с «Элизой»).
Вот типичный диалог с программой «Элизой».
Пациент: «Я в самом деле несчастна».
«Элиза»: «Вы думаете, что приход сюда сделает вас счастливой?»
Пациент: «Во всяком случае, мне нужна помощь».
«Элиза»: «Какое значение имела бы для вас эта помощь, если бы вы её полу-
чили?»
Пациент: «Быть может, я научилась бы ладить с мамой».
«Элиза»: «Расскажите ещё что-нибудь о вашей семье».
— Это никого тебе, Аня, не напоминает? — спросил Борис.
— Конечно, напоминает. Программу «Сири» на моём Айфоне.
— Кстати, «Элиза» является прототипом системы «Сири», — заметил Борис.
— Но программа «Сири» намного «умнее» «Элизы». Она очень многое умеет
делать, — встала на защиту своей программы Аня.
— Согласен. Конечно, «Сири» намного умнее. Как всякий способный ученик,
она превзошла свою родоначальницу и дала начало развитию нового поколения
систем взаимодействия между людьми и устройствами! Их называют персональ-
ными голосовыми помощниками.
Персональные голосовые помощники.
Программа «Сири»
Среди персональных голосовых помощников многим хорошо известна програм-
ма «Сири» на Айфоне. Ей, например, можно голосом давать приказы, и она будет
искать в Интернете то, что тебе нужно.
— Что ещё, знаете? — спросил Борис.
— «Сири» может напомнить, что нужно поздравить друга с днём рождения, —
ответил Артём. — Или может написать с моих слов эсэмэску и отослать её.
— А ещё, — добавила Аня, — она может набрать нужный мне номер телефона
по имени. Например, «Сири» вполне может разобраться с моей фразой «скажи
бабушке, что я приду позже». Да, и вообще, с ней можно поболтать, если скучно.
— Верно. Тогда поговори с ней, а я послушаю, — предложил Борис.
— Хорошо. Эй, «Сири»! — сказала Аня, открыв свой Айфон и вызвав прог-
рамму.
Вот какой разговор мы услышали.
Аня: «Эй, Сири, кто твой учитель?»
«Сири»: «Меня создали в команде Эппл в Калифорнии».
Аня: «Понимаешь ли ты русский?»
«Сири»: «Я говорю на английском, ...»
[Перечисляет все языки, на которых говорит.]
Аня: «Сколько тебе лет?»
«Сири»: «Мне не разрешается отвечать на это».
Аня: «Ты меня любишь?»
«Сири»: «Я твой друг и ассистент».
Аня: «Сири, какая твоя любимая книга?»
«Сири»: «Я с удовольствием соглашусь с твоим мнением».
Аня: «Любишь ли ты читать?»
«Сири»: «Мы говорим про тебя, а не про меня!»
На этом Аня закончила диалог с «Сири» и спросила:
— Ну как?
— Спору нет, разговаривать и изучать поведение программы «Сири» интерес-
но, — заметил Борис. — Она успешно справляется со многими задачами оказания
простейших услуг.
Историческая справка
Начало разработки «Сири» относится к 2007 году. Название «Сири» происхо-
дит от английских слов «Зреесб 1п1егрге1а1юп апб НесодпИюп 1п1ег1асе» (интер-
фейс интерпретации и распознавания речи). В разработке системы принима-
ли участие исследовательские группы по ИИ ведущих университетов США. Их
40-летний опыт работы в этой области использовала компания Арр1е, разрабо-
тав программу «Сири».
Разговор об интеллекте «Сири»
— Видишь, Артём, я же говорю, что она многое умеет и, значит, умная, — ра-
достно промолвила Аня.
— А вот насчёт её ума я бы особо не обольщался! — заметил Борис. — Вы же
сами видите. Это — очень исполнительный помощник, и даже развлечь может.
Ясно также, что она хорошо исполняет множество ваших команд-поручений. И тем
не менее, «Сири» довольно жёстко запрограммирована на это исполнение, и тут
особо интеллект не нужен. А вот что касается разговоров на общие темы, то умом
она, пожалуй, не блещет! Механизм общения с «Сири» похож на механизм обще-
ния, который продемонстрировала нам система «Элиза». Это фактически способ
ведения разговора без глубокого понимания смысла воспринимаемых фраз.
— Но всё равно... Я люблю разговаривать с «Сири», — промолвила Аня.
— Понимаю тебя, — сказал Борис. — Интересно наблюдать, как она отвечает.
Иногда получается очень смешно. Люди любят общаться с теми искусственными
созданиями, которые пусть и не очень умные, но зато в чём-то схожи с человеком.
Правда?
— Ну да.
— Поговорим ещё о том, как работает «Сири». Эту программу ещё называют
облачным персональным помощником. Это значит, что она использует облачное
хранилище (память) для своей работы. Другими словами, доступ к данным осу-
ществляется через Интернет. Так что своей собственной «головы» у «Сири» нет.
Облачное хранилище данных представляет собой
многочисленную сеть удалённых друг от друга серверов,
на которых хранится информация. Доступ к данным
осуществляется через Интернет.
Сервер - выделенный компьютер (рабочая станция)
для выполнения какой-либо сервисной задачи
без непосредственного участия человека.
В облачной памяти программы «Сири» содержатся образцы ответов на боль-
шое множество запросов общего типа от своих пользователей. На каждый пред-
полагаемый вопрос есть предполагаемый ответ. Современные диалоговые про-
граммы располагают базой образцов ответов на миллионы таких вопросов. Имея
в наличии такое количество вариантов ответов, можно вполне слыть умным и эру-
дированным собеседником.
И тем не менее «Сири» — очень полезная и нужная программа. Она дала на-
чало развитию нового поколения систем взаимодействия между людьми и устрой-
ствами'. И это большой шаг вперёд. Что мы сейчас и наблюдаем.
Кроме того, хочу сказать ещё несколько слов в защиту будущих поколений
«Сири» и ей подобных программ. Уже разрабатываются механизмы самообуче-
ния, которые позволят программам самостоятельно обучаться и приобретать но-
вые знания. А это существенный скачок на пути совершенствования машинного
интеллекта. Однако пока сами алгоритмы самообучения далеки от совершенства.
И единственное, чему пока научились с таким алгоритмом программы, — это ру-
гаться и отвечать, используя нецензурную лексику. Так что тут ещё много работы.
Но вектор развития таких помощников идёт в интересном направлении.
Что такое чат-боты?
В современном мире существует целое направление разработки компьютерных
программ, называемых искусственными собеседниками, которые умеют разго-
варивать с человеком.
Среди них есть программы, которые называются чат-ботами. Термин «бот» об-
разовался от слова «робот», а термин «чат» означает быстрый обмен текстами
(или разговорными фразами) в режиме онлайн в заданном окне программы.
Это похоже на процесс обмена письменными сообщениями, например,
в «Скайпе».
Чат-бот - компьютерная программа, выполняющая ту
или иную заданную цель деятельности, например,
выполнять функции секретаря или собеседника.
В последнее время чат-боты получи-
ли широкое распространение в Интер-
нете. Есть просто программы-болтуны,
а есть вполне полезные боты.
— Программы-болтуны? Это как? —
удивилась Аня.
— Это развлекательные чат-боты,
работающие по принципу программы
«Элиза». Например, есть чат-бот «Шек-
спир».
— «Шекспир»?! — удивилась Аня.
— Да. Это программа, ведущая диа-
лог от имени всемирно известного ав-
тора Вильяма Шекспира. Она создана
для того, чтобы поболтать и развлечь
своего пользователя. Например, вы можете назвать любое слово из шекспиров-
ских стихов, а он в ответ пришлёт один из его сонетов. Кроме того, этот бот может
тебя потроллить. Мне, например, это совсем не нравится, но выглядит забавно.
Попробуйте. Этот бот легко можно найти в Интернете и поговорить с ним.
Умны ли чат-боты?
— А этот бот «Шекспир» умный? — спросила Аня.
— Нет, подобные чат-боты далеки от совершенства. Большинство таких про-
грамм, как правило, неглубоко понимают суть введённой фразы или теста. Они
работают по шаблонам (вопрос — ответ), которые у них есть в памяти, перефра-
зируют введённые фразы или подают какие-либо реплики. Но, видимо, для целей
привлечения новых клиентов и пользователей такого «интеллекта» вполне доста-
точно.
— А есть ли полезные боты? — спросил Артём.
— Вот, например, такой случай: вы являетесь владельцем своего сайта, который
недавно создали для своего небольшого бизнеса. Сайт пока ещё мало знаком по-
требителям. Как говорят специалисты, он нераскрученный. Так вот, для привлече-
ния клиентов можно завести чат-бота, который вместо вас в режиме онлайн будет
отвечать на вопросы, присланные потенциальными клиентами. Таким образом,
вы отдаёте это занятие чат-боту, а сами можете заняться другими делами.
— Как тебе идея, Артём?
— Идея хорошая! Надо только сообразить, каким бизнесом лучше заняться, да
бота под этот бизнес сделать, — произнёс Артём.
— Хорошая идея.
А теперь поговорим ещё об одном важном классе систем ИИ, умеющих взаи-
модействовать с человеком на естественном языке и помогать ему решать свои
профессиональные задачи. Это — экспертные системы.
Что такое экспертные системы?
— Как известно, любая профессиональная деятельность человека связана с
постановкой и решением (выполнением) задач в определённой предметной об-
ласти. Часто можно слышать, как о человеке говорят: «Он профессионал в своём
деле!» Что это означает, по-твоему, Артём? — спросил Борис.
— Что он очень хороший мастер. Что он много знает в своей области, — отве-
тил школьник.
— Верно. В любой профессии есть люди, которые в совершенстве владеют
своей профессией. К ним обычно приходят учиться и набираться опыта молодые
специалисты. Обычно мастер передаёт свои знания начинающим специалистам,
наставляя и обучая их. А что делать молодому специалисту, если рядом нет опыт-
ного мастера?
— Наверное, учиться на своих ошибках, — задумчиво сказала Аня.
— В работе это может стоить очень дорого! — заметил Борис. — Учиться запу-
скать ракеты в космос — дорогое удовольствие!
Или вот такая ситуация, которую часто можно наблюдать в сельских больни-
цах. Молодой врач приезжает работать в деревню, где кроме него больше нет ди-
пломированного врача. Привезли больного в тяжёлом состоянии, и молодой врач
растерялся: с таким случаем он не сталкивался. Спросить совета не у кого, а надо
быстро принимать решение.
— И что же делать?
— Чтобы всё закончилось хорошо, надо научиться передавать свои знания во-
время! Таких ситуаций очень много. На заводе, в банке, в медицинском учрежде-
нии, в любых производствах. Всего не перечислить.
Так возникло целое направление в ИИ под названием экспертные системы.
Это были первые интеллектуальные программы-помощники, умеющие работать
с профессиональными знаниями. Они могут, например, заменить человека на его
работе или если не совсем заменить, то подсказать либо посоветовать, как ре-
шить проблему.
Экспертные системы (ЭС) - интеллектуальные
программы-советчики, или консультанты, умеющие
взаимодействовать с пользователем на его языке, работать
с профессиональными знаниями, принимать решения
и давать советы.
Кто такой инженер по знаниям?
В разработке конкретной экспертной системы участвуют представители сле-
дующих специальностей: эксперт в данной проблемной области (например, врач
или инженер), задачи которой будет решать ЭС (например, диагностировать за-
болевание); инженер по знаниям и программист.
— Инженеры по знаниям! Не знала, что есть такие, — удивилась Анна.
— Да, такие специалисты появились. Для того чтобы поместить знания в экс-
пертную систему, их надо сначала извлечь из головы эксперта, а затем предста-
вить определёнными структурами знаний. Эксперт (например, врач) хорошо зна-
ет, как диагностировать болезни в некоторой области и лечить людей (например,
сердечно-сосудистой системы). Но, как правило, он не представляет (да ему это и
не нужно!), как всё это устраивается в экспертной системе на компьютере.
На начальном этапе разработки инженер по знаниям накапливает (собирает)
профессиональные знания о данной предметной области с помощью человека-
эксперта.
Инженер по знаниям в контакте с экспертом (например, врачом) выявляет все
те знания, которые есть у врача для профессионального принятия решений. Они
вместе создают (пока в словесной форме) все правила типа «если..., то». Напри-
мер, если симптомы больного — «такие-то», то диагноз — «такой-то», а лече-
ние — «такое-то».
После этого инженер по знаниям выбирает тот или иной имеющийся программ-
ный продукт для создания ЭС. Такой программный продукт называется оболоч-
кой экспертной системы. Полученные от эксперта знания инженер по знаниям
записывает в базу знаний выбранной оболочки экспертной системы. Затем проис-
ходит тестирование ЭС с заполненной базой знаний.
Во многих ЭС базы знаний состоят из продукционных правил типа «если..., то»
и бывают довольно большого размера. Кроме того, часто возникает необходи-
мость добавлять новые правила в базу знаний или модернизировать старые пра-
вила. Другими словами, нужно уметь управлять большой по объёму базой знаний.
Поэтому в ИИ и возникло специальное направление — инженерия знаний, кото-
рое этим занимается.
Давайте посмотрим, из чего состоит любая экспертная система.
Архитектура экспертных систем
Типичная экспертная система состоит из следующих основных блоков (подси-
стем): интерфейс с пользователем и интерфейс для инженеров по знаниям, блок
«Анализ диалогов», решатель задач, база знаний, рабочая память, блок объясне-
ния и блок накопления знаний. Все эти блоки показаны на рис. 1.10.
ЭКСПЕРТНАЯ СИСТЕМА
— Хм, а что такое интерфейс? Это лингвистический процессор? — спросила
Аня.
— Интерфейс обеспечивает взаимодействие пользователя с экспертной систе-
мой. Если это взаимодействие происходит с помощью человеческого языка, тогда
в интерфейс обязательно включается та самая программа «лингвистический про-
цессор». Он обеспечивает понимание смысла входных сообщений от пользовате-
лей.
Бывают графические интерфейсы или интерфейсы в виде меню. «Меню-
интерфейс» обычно используется инженером по знаниям для того, чтобы записы-
вать знания в базу знаний.
— А что делает блок анализа диалога? — спросил Артём.
— Он управляет диалогом с пользователем. В процессе диалога система выяс-
няет, что хочет пользователь и какую задачу предстоит решить экспертной систе-
ме. Кроме того, в процессе диалога определяются входные данные, нужные для
решения задачи.
— А что такое «решатель»? — спросила Аня. — Что он решает?
— Блок «решатель» организует поиск решения той задачи, которую определил
блок анализа диалога в результате «общения» с пользователем. Этот поиск осу-
ществляется с помощью встроенных процедур работы со знаниями. Простейший
пример такого поиска решений мы недавно обсудили в задаче распознавания жи-
вотного. Помните программу «ЗОО»?
Блок объяснений показывает, как система получила решение задачи (или по-
чему она не получила решение) и какие знания она при этом использовала. Это
очень полезный блок. Во-первых, он облегчает эксперту (например, врачу) работу
по тестированию экспертной системы, а во-вторых, он повышает доверие пользо-
вателя к полученному результату.
И наконец, рабочая память предназначена для хранения исходных и промежу-
точных данных решаемой в текущий момент задачи. Вот, пожалуй, и всё о том,
как устроены экспертные системы. Эти системы решают интересные и нужные
задачи.
— А не могли бы вы привести пример какой-нибудь экспертной системы? — по-
просила Аня.
— Конечно. Давайте рассмотрим примеры некоторых экспертных систем, кото-
рые в настоящее время имеют практический интерес.
Примеры экспертных систем
Существует проект экспертной системы под названием «Реморама», которая
служит умным помощником в торговле строительными материалами. Её устанав-
ливают в киосках в торговых залах крупных строительных магазинах.
«Реморама» подбирает стройматериалы под заданные пользователем параме-
тры и производит расчёт их стоимости. Пользователями такой экспертной систе-
мы могут быть обычные покупатели. Система не требует специального обучения.
Покупатель описывает, что он хочет (ставит свою задачу).
Итогом решения ЭС становится чек с перечнем, количеством и стоимостью ма-
териалов, которые удовлетворяют условиям задачи. С помощью этого чека поку-
патель осуществляет набор материалов и оплачивает их на кассе.
— Полезная система! — заметил Артём.
— Ну да, согласен. Вот другой пример. Разработана экспертная система АСЕ,
которая определяет неисправности в телефонной сети и даёт советы по необхо-
димому ремонту в ней. Она разработана в США. Система работает без человече-
ского вмешательства.
Она умеет анализировать сводки-отчёты о состоянии кабельной сети, которые
получает ежедневно. АСЕ обнаруживает неисправные телефонные кабели и за-
тем решает, нуждаются ли они в планово-предупредительном ремонте или нет.
Если «да», то выбирает, какой тип ремонтных работ вероятнее всего будет эф-
фективным.
— Ах, да! — воскликнула Аня. — Я совсем недавно наблюдала, как около на-
шего дома меняли телефонный кабель. Так вы думаете, эту поломку определила
экспертная система?
— Вполне возможно. А вот ещё примеры.
Экспертная система АРМ \Л/1пМасЫпе знает всё по машиностроению. С её по-
мощью можно производить расчёт и проектировать детали машин, механизмов,
элементов конструкций и узлов. Таким образом, всю рутинную работу инженера-
проектировщика выполняет программа.
Или вот такая экспертная система «Кардиолог» — формулирует диагноз боль-
ного по введённым симптомам, назначает курс лечения или профилактики.
— Действительно, эти экспертные системы — настоящие помощники. Только
вот... создавать такого «эксперта», наверное, не очень-то просто! — заметил Ар-
тём.
— Конечно, нужно понимать, какая задача ставится и как надо подходить к её
решению. Для этого и существует профессия «инженер по знаниям», который
одновременно и программист, работающий с экспертами и извлекающий из них
знания для принятия решений.
Перспективы развития систем обработки знания
Существуют ещё несколько интересных проектов систем обработки есте-
ственного языка.
Есть проект систем автоматического извлечения контента (то есть содержимого
потока информации). Суть их вот в чём. В современном мире с помощью компью-
теров можно запомнить «наизусть» любое количество информации, в том числе
и текстов на естественном языке. Но проблема получения важных сведений из
этой информации остаётся за человеком. Однако если объём этой информации
лавинообразно растёт, то человек уже не в состоянии проанализировать данный
поток информации, и ему нужна помощь. Например, есть различные аналитиче-
ские отделы, которые просматривают огромные потоки информации в разных
социальных компьютерных сетях. Им нужно выявить намерения плохих людей.
Например, если эти люди обсуждают между собой попытки организовать террори-
стическую атаку где-либо на планете. Такие аналитические отделы обрабатывают
в электронном виде до 10 Мбайт текстовой информации в день, которой обмени-
ваются между собой группы людей.
— Десять мегабайт текстовой информации — это почти три «Войны и мира»
Льва Толстого, между прочим, — заметил Борис. — Представляете, нужно за день
прочитать три романа «Война и мир»? Такое одному человеку (и даже несколь-
ким) не под силу! Что делать?
На помощь приходят системы автоматического извлечения контента. Задача
для такой системы формулируется следующим образом: проанализировав поток
текстовых сообщений, нужно дать заключение, есть там плохие замыслы или нет
(могут быть и другие цели).
Похожие проблемы возникают во многих других областях: в банках, в частных
компаниях, в различных государственных службах, когда информации слишком
много, а обработать её нужно очень быстро, обязательно в срок и ничего плохо-
го не пропустить. Такие задачи под силу мощным компьютерам — при наличии,
конечно, интеллектуальных систем анализа контента (содержимого) социальных
сетей. Поэтому такие проекты уже на стадии разработок.
Кроме того, нужны системы автоматического реферирования, способные из-
влекать смысловую «тему» входного текста и определять, к какой области он
относится. Нужны также системы, способные автоматически генерировать анно-
тацию к заданному тексту или тексты для ленты новостей. Требуются програм-
мы, умеющие определять, на каком человеческом языке написан входной текст.
И список таких задач только расширяется.
Какие ещё умные помощники нам понадобятся?
— Какие ещё умные помощники нам понадобятся? Что вы думаете? — спросил
Борис.
— Ну, умные помощники никогда не помешают, — задумчиво произнесла Аня.
— Есть много проектов, которые в настоящее время находятся в разработке, и
такие системы-помощники появятся в ближайшем будущем. Экспертные системы
будут совершенствоваться, предоставляя людям всё более и более ощутимую ин-
теллектуальную и профессиональную помощь.
Представьте себе, однажды мы получим возможность поговорить с искусствен-
ным экспертом в области туриндустрии. Например, вы планируете поездку на
остров Ява, чтобы сделать себе полную энергетическую перезагрузку. Там есть
таинственный храмовый комплекс Прамбанан. Местные жители утверждают, что
медитации в этом храме способствуют исцелению тела и души. Ну, так вот, вы об-
ращаетесь к виртуальному эксперту по организации туристических поездок.
Перед нами возникнет симпатичное лицо виртуального эксперта, который спро-
сит, улыбаясь: «Чем я могу вам помочь?»
Вы сообщаете ему необходимую информацию для организации тура для вас.
Это — дата вылета и пункт прибытия, на сколько дней вы хотите, какой отель,
в каком ценовом диапазоне и так далее. Виртуальный помощник свяжется с оте-
лями, авиакомпаниями, всё закажет наилучшим для вас образом.
Такие ЭС будут выполнять множество полезных задач: зарезервируют столик в
ресторане, закажут такси, найдут ближайшие магазины и закажут продукты, най-
дут гида и так далее.
— Здорово! — воскликнула Аня.
— Ещё как! Правда, я бы не стал ждать, когда появятся такие помощники, а
махнул бы на Яву прямо сейчас! — пошутил Борис.
— Мы согласны! И присоединимся к вам! —добавил, улыбаясь, Артём.
Борис кивнул и продолжил.
— А ещё появятся продвинутые медицинские экспертные системы, способные
выполнять функции домашнего доктора. Если вы почувствуете себя плохо, то
можете поговорить у себя дома с таким экспертом-врачом, а не сидеть часами в
поликлинике в очереди. Доброжелательное лицо на вашем компьютере спросит
«что болит?», «где болит?» и задаст ещё кучу вопросов. Домашний эксперт мо-
жет проанализировать состояние вашего тела с помощью электронных датчиков
и сделать заключение о вашем здоровье. Если проблема окажется серьёзной, ЭС
отправит вас в больницу, если проблема — небольшая, то выпишет рецепт и на-
значит лечение.
В будущем таких экспертов-помощников будет очень много и во многих обла-
стях.
Это - машиностроение, авиация, энергетика, медицина, геологораз-
ведка, микроэлектроника, а также торговля, бизнес и даже политика.
Например, на выборах побеждает команда кандидата, умеющая
моделировать поведение избирателей.
Мы видим, что современное общество меняется с каждым днём.
Появляются всё новые и новые экспертные системы, помогающие
решать всё более сложные научные и практические задачи. А алго-
ритмы, заключённые в ЭС, способны превращать огромные потоки
данных в новое научное знание.
— Вот, пожалуй, и всё на сегодня. На этом мы и закончим. Мне пора вернуться
к своим проблемам, а вернее, к своим ошибкам. Хотя это одно и то же. На своём
пути познания искусственного интеллекта не забудьте посетить лабораторию, где
работает мой друг Логик. Он многое знает. И вам будет полезно и важно погово-
рить с ним. Я ему позвоню. И до следующих встреч!
— До свидания, уважаемый Борис! Спасибо вам за интересные беседы! — ска-
зал Артём.
— Счастливо, друзья! Передавайте привет Логику и пишите мне письма!
«Ното 5ар1еп5 научился приспосабливать мир под себя,
вместо того, чтоб самому приспосабливаться
к существующим условиям».
Педро Домингос <0
ГЛАВА 1
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 1
1. В чём основное отличие баз данных от баз знаний?
2. Чему равно минимальное количество информации?
3. Текст состоит из 28 000 символов. Каждый символ
записывается в машинном слове из одного байта. Какой объём
информации несёт данный текст?
4. Постройте синтаксическое дерево для следующего входного
сообщения: «В зоопарке в тесной клетке беззаботно жил старый
лис».
5. Найдите смысл этого сообщения.
6. Опишите знания, характеризующие действие «взять», в виде
фрейма.
7. Опишите продукционные правила для задачи распознавания
животного «кошка» по её признакам.
8. Что значит понять следующий фрагмент текста?
«Тьма, пришедшая со Средиземного моря, накрыла
ненавидимый прокуратором город. Исчезли висячие мосты,
соединяющие храм со страшной Антониевой башней.
Опустилась с неба бездна и залила крылатых богов над
гипподромом, Хасмонейский дворец с бойницами, базары,
караван-сараи, переулки, пруды... Пропал Ершалаим -
великий город, как будто не существовал на свете...».
Какие уровни понимания можно выделить?
БЕСЕДА С ЛОГИКОМ В ЛАБОРАТОРИИ
«ЛОГИЧЕСКИЕ МОДЕЛИ ЧЕЛОВЕЧЕСКИХ РАССУЖДЕНИЙ»
В которой Артём и Аня посещают лабораторию логических моделей человеческих рас-
суждений и беседуют с Логиком о том, как наделить искусственные создания способ-
ностью логически мыслить и рассуждать так, как это умеет человек. В беседах с Логиком
школьники узнают, что существуют различные способы рассуждений, например дедук-
ция, индукция и правдоподобные рассуждения. Ребята знакомятся с базовыми понятия-
ми классической логики для того, чтобы узнать, что такое неклассические логики. Они
знакомятся с логикой времени и пространства, которой пользуются умные системы ИИ
и роботы.
ГЛАВА 2. БЕСЕДА С ЛОГИКОМ В ЛАБОРАТОРИИ
«ЛОГИЧЕСКИЕ МОДЕЛИ ЧЕЛОВЕЧЕСКИХ РАССУЖДЕНИЙ» (76)
КАК МОДЕЛИРОВАТЬ ЧЕЛОВЕЧЕСКОЕ УМЕНИЕ РАССУЖДАТЬ
И ПОДДАЁТСЯ ЛИ ОНО ФОРМАЛИЗАЦИИ? (78)
О ЧЁМ РАССУЖДАЮТ ЛЮДИ? ОБО ВСЁМ НА СВЕТЕ! (79)
КАК ПОЛУЧАТЬ НОВЫЕ СУЖДЕНИЯ ИЗ ДРУГИХ СУЖДЕНИЙ? (81)
Что такое истинные высказывания? (81)
Логические основы рассуждений (81)
ОСНОВНЫЕ ИДЕИ ЛОГИКИ АРИСТОТЕЛЯ. ОБЩИЕ ЗАКОНЫ РАССУЖДЕНИЙ (82)
ФОРМАЛЬНАЯ ЗАПИСЬ СИЛЛОГИЗМОВ (83)
ОТ ЛОГИКИ АРИСТОТЕЛЯ К ПРОСТЕЙШЕЙ
МАТЕМАТИЧЕСКОЙ ЛОГИКЕ ВЫСКАЗЫВАНИЙ (86)
КАК НАУЧИТЬ РОБОТОВ ПРАВИЛЬНО ЛОГИЧЕСКИ РАССУЖДАТЬ
И ЧТО ТАКОЕ ПРАВИЛО ВЫВОДА? (88)
ЧТО ТАКОЕ КЛАССИЧЕСКИЕ ЗАКОНЫ ЛОГИКИ? (89)
КАКИМ СПОСОБОМ ЛЮБИЛ РАССУЖДАТЬ ШЕРЛОК ХОЛМС? (90)
ИНДУКЦИЯ И ПРАВДОПОДОБНЫЕ РАССУЖДЕНИЯ (91)
Принципиальное отличие между дедуктивной
и индуктивной схемами рассуждений (91)
РАЗГОВОР О ПРАВДОПОДОБНЫХ РАССУЖДЕНИЯХ (92)
ЧТО ТАКОЕ НЕКЛАССИЧЕСКИЕ ЛОГИКИ? (94)
ЧТО ТАКОЕ ПСЕВДОФИЗИЧЕСКАЯ ЛОГИКА ВРЕМЕНИ? (95)
КАК ПОСТРОИТЬ ЛОГИКУ ВРЕМЕНИ ДЛЯ РОБОТОВ? (96)
ОПИСАНИЕ СВОЙСТВ ВРЕМЕНИ. АКСИОМЫ ВРЕМЕНИ (97)
КАК ЛЮДИ РАССУЖДАЮТ О СОБЫТИЯХ ВО ВРЕМЕНИ? (99)
ПСЕВДОФИЗИЧЕСКАЯ ЛОГИКА ПРОСТРАНСТВА (101)
Задача обхода роботом препятствий (ЮЗ)
Пример базы знаний для решения задачи обхода препятствий (Ю4)
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 2 (105)
КАК МОДЕЛИРОВАТЬ ЧЕЛОВЕЧЕСКОЕ УМЕНИЕ
РАССУЖДАТЬ И ПОДДАЁТСЯ ЛИ ОНО ФОРМАЛИЗАЦИИ?
«Если бы это было так, это было бы
ещё ничего, а если ничего, то оно бы так
не было, но так как это не так, то оно и
не этак. Такова логика вещей!»
Л. Кэрролл. «Алиса в Зазеркалье»
В следующий раз Аня с Артёмом отправились в лабораторию логических моде-
лей человеческих рассуждений к Логику.
— Здравствуйте, уважаемый Логик! — сказала Аня. — Нас отправил к Вам Про-
граммист Борис. Он обещал известить Вас о нашем приходе.
— Знаю-знаю. Я вас поджидал, — произнёс он. — Прошу вас, проходите!
— Меня зовут Аня. А это — мой школьный друг Артём. Мы с Артёмом хотели бы
познакомиться с наукой искусственного интеллекта и узнать, что и как она изуча-
ет, — скороговоркой выпалила Аня.
— О! Весьма польщён! — улыбнулся Логик, поклонившись обоим гостям. — Чем
могу служить?
— У нас есть наш Роботёнок. Мы хотим, чтобы он был умным помощником и
другом, — ответил Артём. — Но для этого мне нужно понять, что такое искус-
ственный интеллект и как его можно воплотить в алгоритмах и программах для
роботов?
— Что ж, — заметил Логик. — Это дело хорошее. Я готов помочь вам приоб-
рести нужные знания. Вы посетили лабораторию Бориса и уже знаете, как можно
создавать системы искусственного интеллекта, которые умеют разговаривать с
человеком на естественном языке. Теперь поговорим о том, как научить их рас-
суждать.
Начнём с того, что попробуем смоделировать человеческое умение рассу-
ждать.
Итак, дорогие Друзья, вы ступили на путь познания человеческих Рассуждений,
а это важная способность любого интеллекта — умение рассуждать и логически
мыслить. Для того чтобы научить этому роботов, надо самим отчётливо представ-
лять, как это делается.
— Чтобы понять новые математические модели, которые используются при соз-
дании систем искусственного интеллекта (неклассические логики, логики времени
и пространственных отношений, нечёткие логики и другое), мы сначала вспомним
(или познакомимся) базовые идеи классических формальных моделей рассужде-
ния. Согласны? — начал нашу беседу Логик, обращаясь к Ане и Артёму.
— Да, согласны.
— Ну и замечательно! Пойдёмте, друзья, вместе со мной в удивительный мир
логики!
Умение рассуждать стало проявляться у людей, как только появился язык. Он
позволяет передавать мысли, идеи, образы, чувства. В беседе можно поделиться
взглядами с партнёром, уточнить точку зрения, найти истину. Совсем необяза-
тельно, чтобы у людей действовали одни и те же модели мышления и способы
рассуждения. Они бывают разные, и это в какой-то мере отражено в существова-
нии различных языков.
Новые модели создаются на базисе старых, классических моделей путём не-
которых расширений, изменений и обобщений.
О ЧЁМ РАССУЖДАЮТ ЛЮДИ? ОБО ВСЁМ НА СВЕТЕ!
— Да? — удивилась Аня. — А как, интересно?
— Достаточно познакомиться с языками разных народов и племён. Индейцы,
например, могут упрекнуть европейцев в отсутствии точного мышления. Нам до-
статочна форма «мы», а у них есть специальные выражения для случаев «я и ты»,
«я и они». В языке эскимосов различается много типов снега: только что выпав-
ший снег, сильно слежавшийся снег, снег с дождём. В европейских языках отдель-
ных слов для выражения этих нюансов нет.
— Ну и что? Просто европейцам неважно, наверное, описывать все эти подроб-
ности одним словом, — возразил Артём.
— Согласен. Но для эскимосов это жизненно необходимо. Они могут знать о
снеге больше и рассуждать о нём иначе, чем мы с тобой. Вот для вас, ребята, что
такое снег?
— Ну, для меня снег означает, что пришла зима, — ответила Аня. — А ещё из
снега можно лепить снежную бабу или играть в снежки. А ещё снег состоит из чу-
десных белых снежинок, падающих с неба.
— Видите, суждения о снеге можно делать самые разные. А, впрочем, рассу-
ждать можно обо всём на свете, — добавил Логик и улыбнулся.
— Я тоже знаю один забавный пример рассуждений, — сказала Аня. — Я про-
читала об этом в одной умной книжке про Дарвина. Хотите, расскажу?
— Конечно. С удовольствием послушаю, — откликнулся Логик.
— Вот послушайте...
Чарльзу Дарвину однажды задали вопрос: «есть ли связь между большим коли-
чеством старых дев в Великобритании и могуществом её морского флота?» Он
подумал и ответил следующим образом.
1. Чем больше старых дев, тем больше кошек.
2. Чем больше кошек, тем меньше мышей.
3. Чем меньше мышей, тем больше шмелей (мыши — злостные враги шмелей,
так как разоряют их гнёзда).
4. Чем больше шмелей, тем больше клевера (шмели — основные опылители
клевера).
5. Чем больше клевера, тем больше крупнорогатого скота и свиней (клевер —
их основной корм).
6. Чем больше скота, тем больше солонины (засоленного мяса).
7. Чем больше солонины, тем на более дальние расстояния могут плавать ко-
рабли Великобритании.
8. Чем на более дальние расстояния они будут плавать, тем могущественнее
будет её флот.
— Ну как вам эти рассуждения? Понравились? — спросила Аня.
— Да, рассуждения известные. И весьма забавные. Но рассуждения должны
не нравиться, а быть логически обоснованными, истинными. Верны ли они,
как вы считаете?
Аня задумалась, а потом сказала:
— Ну, это же рассуждения Дарвина. А он очень известный учёный. Значит, это
верно.
Логик улыбнулся и произнёс:
— Как говорится, доверяй, но проверяй. Твой пример, Аня, относится к так на-
зываемым правдоподобным рассуждениям. К ним относятся все рассуждения,
в которых заключения не достоверны, а лишь возможны в той или иной степени.
Термин «правдоподобность» означает сходство (подобие) с истиной. Позже мы
уделим им особое внимание.
Правдоподобным высказываниям строго противопоставляются классические
логические высказывания, в которых заключения являются логически истин-
ными.
Наша задача — обсудить с вами, какие логические теории используются в со-
временных системах искусственного интеллекта.
К этому мы сейчас и перейдём.
КАК ПОЛУЧАТЬ НОВЫЕ СУЖДЕНИЯ
ИЗ ДРУГИХ СУЖДЕНИЙ?
Возможность получения одних идей в качестве логических следствий других
лежит в фундаменте любой науки. Именно поэтому математики с давних пор пы-
тались создавать строгие теории рассуждений, позволяющие из истинных сужде-
ний (высказываний) получать истинные.
Что такое истинные высказывания?
— Какое из двух высказываний истинно: «коровы дают молоко» и «коровы ле-
тают»? — спросил Логик и продолжил: — А вот ещё.
1. Яблоки растут на пальмах.
2. Рыбу ловят в море.
3. Крокодилы едят кактусы.
— Что можно про них сказать: какие из них ложные, какие истинные?
— Первое и третье высказывания ложные, потому что в жизни так не бывает.
А второе — истинное, правильное, — ответил Артём.
— Согласен! Итак, истинное высказывание означает, что факт, содержащийся
в суждении, имеет место в реальном мире. А ложное высказывание означает, что
этот факт не имеет места в реальном мире.
Логические основы рассуждений
В основе любой логики лежат три базовые сущности. Это понятия, высказыва-
ния (или суждения) и умозаключения.
С помощью понятий человек выделяет предметы или классы предметов, отли-
чающиеся друг от друга. Например, растения, люди, студенты, компьютеры.
С помощью суждения (или высказывания) человек утверждает факт существо-
вания предмета и подтверждает или отрицает связь между предметом и некото-
рым свойством предмета. Вообще говоря, высказывание — это сказанная кем-то
мысль.
С помощью умозаключений человек из нескольких высказываний получает но-
вое высказывание (суждение). Это фундаментальный механизм мышления. В ло-
гике процесс умозаключения называется выводом.
Основной задачей логики является строгое математическое описание этого
процесса (логического вывода).
Всякое высказывание в логике рассматривается как истинное или ложное с
точки зрения соответствия его реальной действительности. В логике эти понятия
определяются следующим образом (без всяких дискуссий, что есть истина):
• истина — то, что существует в реальной действительности, или то, что при-
нимается за правду;
• ложь — то, что не существует в реальной действительности, это искажение
истины, то есть неправда.
ОСНОВНЫЕ ИДЕИ ЛОГИКИ АРИСТОТЕЛЯ.
ОБЩИЕ ЗАКОНЫ РАССУЖДЕНИЙ
Оказывается, независимо от того, о чём говорят люди — о футболе или о физи-
ке, — они одинаково пользуются общими законами рассуждений.
— Интересно, какими же? — спросила Аня.
— Да ты сама ими часто пользуешься. Вот, например, что ты скажешь об этом:
«Все собаки умеют лаять. Шурка — собака. Лает ли она?»
— Ну, конечно, лает, — засмеялась Аня.
— Вот мы и выяснили один из основных законов логики Аристотеля. Но давайте-
ка обо всём по порядку.
Историческая справка
Основоположником первого логического метода рассуждений был Аристо-
тель, живший в 384-322 годах до нашей эры.
Аристотель занялся изучением различных типов рассуждений и выделил неко-
торые из них, которые назвал силлогизмами.
В силлогизм входят три высказывания.
Первое высказывание в силлогизме принято называть большой посылкой, вто-
рое — малой посылкой, а третье — умозаключением, или выводом. При этом по-
следнее, третье, высказывание (вывод) вытекает из первых двух.
Силлогизм - рассуждение, состоящее из трёх высказываний: .
двух посылок и одного заключения. Силлогизм по-гречески
означает «вывод» (заключение).
Это способ получения заключения, исходя из двух
определённых высказываний, которые называются посылками.
Вот примеры силлогизмов.
Пример 1
1. Все люди дышат воздухом.
2. Пётр — человек.
3. Следовательно, Пётр дышит воздухом (вывод).
Пример 2
1. Все кошки имеют глаза и уши.
2. Пётр имеет глаза и уши.
3. Следовательно, Пётр — кошка.
— Как вы думаете — в примере 1 сделано правильное заключение, что «Пётр
дышит воздухом»? — спросил Логик.
Аня посовещалась с Артёмом, и он ответил:
— Да, мы думаем, что это правильное заключение.
— Ав примере 2?
— Нет, неверное.
— Но почему так произошло? Что в этом примере не так, как в предыдущем? —
спросила Аня.
— Попробуем разобраться, в чём тут дело. Действительно, в жизни мы редко
делаем такие ошибки, даже если и не знаем законов, ограничивающих их приме-
нение.
— Посмотрим теперь внимательнее на наши примеры силлогизмов, — продол-
жил Логик.
ФОРМАЛЬНАЯ ЗАПИСЬ СИЛЛОГИЗМОВ
Итак, в силлогизм входят три высказывания, составленные из трёх понятий:
общее понятие, единичное понятие и вытекающий из них вывод.
Общее понятие описывает класс объектов. В примере 1 это — люди.
Единичное понятие описывает конкретного представителя из данного класса.
В примере 1 это — Пётр.
Кроме того, есть конкретное свойство (тоже единичное понятие), которым об-
ладают представители рассматриваемого класса.
В примере 1 это конкретное свойство — «дышать воздухом».
Общее понятие «люди» обозначим символом А, свойство «дышать воздухом»
обозначим через Р, конкретного человека (единичное понятие) Пётр обозначим
символом В.
Посмотрите на формальную запись силлогизма.
Посылка 1: Все А суть Р.
Посылка 2:Данный В суть Д.
Заключение (вывод): В суть Р.
А — общее понятие, а понятия Ри В — единичные.
Видите, посылки 1 и 2 отделены от заключения (вывода) горизонтальной чер-
той. Так у логиков принято отделять посылки от вывода. Горизонтальная черта
означает «следовательно».
Смысл рассуждения в данном силлогизме таков:
Если общее понятие А связывается со свойством Р (посылка 1) и если единич-
ное понятие В является частным случаем общего понятия А (посылка 2), то можно
сделать вывод о том, что понятие В также связывается со свойством Р.
Графически формальную запись силлогизма можно изобразить так, как пока-
зано на рис. 2.1.
Рис. 2.1
В суть Р
правильно
Этот закон описывает правильное правило рассуждений, при котором из ис-
тинных посылок следует истинное заключение.
В примере 2 выделяются такие понятия: общее понятие — «кошки» (обозначим
через А), свойство «иметь глаза и уши» обозначим через Р, а Петра обозначим
через В.
Вот формальная запись второго силлогизма.
Посылка 1: Все А суть Р.
Посылка 2:Данный В суть Р,
Заключение (вывод): В суть А.
Графически это можно изобразить так, как показано на рис. 2.2.
неправильно
ч в суть А
Рис. 2.2
Его вывод — ложный, так как Пётр не является кошкой. Таким образом, данная
схема рассуждения — не правильная. Она приводит к ложному выводу. Понимае-
те, Аня, Артём?
— Не понимаю, чем различаются эти две схемы рассуждений? В чём тут дело? —
спросила Аня.
— Давайте посмотрим внимательнее. В первом случае малая посылка В, то
есть Пётр, соотносится с общим понятием А, то есть «люди». А во втором примере
малая посылка В, то есть Пётр, соотносится с единичным свойством Р.
Так вот, первая схема является разрешённой (правильной), а вторая — запре-
щённой (неправильной)! Другими словами, в первом случае вывод сделан пра-
вильный, и он истинен. А во втором случае вывод — ложный. Как говорят логики,
здесь допущена логическая ошибка.
Итак, мы видим, что существуют такие силлогизмы, которые при истинности по-
сылок не гарантируют истинности заключения.
В логике Аристотеля правильных схем (их ещё называют модусами) 24. Углуб-
ляться дальше мы не будем. Любознательные могут изучить этот вопрос само-
стоятельно. А мы пойдём дальше.
Историческая справка
Кроме правильных схем силлогизмов, Аристотель также сформулировал три
логических закона, которые являются обязательными для непротиворечивых
логических умозаключений.
Их мы рассмотрим чуть позже.
ОТ ЛОГИКИ АРИСТОТЕЛЯ К ПРОСТЕЙШЕЙ
МАТЕМАТИЧЕСКОЙ ЛОГИКЕ ВЫСКАЗЫВАНИЙ
В середине XIX века математики всерьёз исследовали логические законы
мышления, сформулированные в древности Аристотелем. Английский математик
Джордж Буль построил простейшую математическую логику, которую назвал про-
позициональной логикой (логика высказываний или исчисление высказываний).
Эта логика изучала сложные высказывания, построенные из простых с по-
мощью специальных логических операций.
Буль для своих логических рассуждений создал особую алгебру, которую впо-
следствии назвали булевой алгеброй.
Он приписал всем высказываниям два значения истинности: «истинно» (обо-
значается как 1) и «ложно» (обозначается как 0).
Кроме того, он ввёл операции над высказываниями как в обычной алгебре. Их
четыре.
Операции над высказываниями
Пусть мы имеем два высказывания — А и В. Рассмотрим следующие логиче-
ские операции.
1. Логическое следование (или импликация).
Пишется:
А^В.
Читается: если А, то В.
2. Логическое отрицание А.
Пишется: А.
Читается: не А.
3. Логическое умножение (объединение, или конъюнкция).
Пишется:
АлВ.
Читается: А и В.
4. Логическое сложение (или дизъюнкция).
Пишется:
А уВ.
Читается: А или В.
С помощью таких операций простые высказывания можно соединять в более
сложные. Например, «Если (А или не В), то С».
Как вычислить истинность сложных высказываний, если известна истинность
высказываний А и В? Для этого существуют специальные правила, в которых ука-
зано, как по значению «истинности» А и В найти значение истинности сложного
высказывания. Они показаны в табл. 2.1.
Таблица 2.1. Таблица истинности
А В А -+В А А лВ А В
И(1) И(1) И(1) Л(0) И(1) И(1)
И(1) Л(0) Л (0) Л(0) И(1)
Л(0) И(1) И(1) И(1) Л(0) И(1)
Л(0) Л(0) И(1) Л(0) Л(0)
В табл. 2.1 «И» означает «истина», «Л» — «ложь». В математических логиках
значение «истины» описывается как 1, а значение «ложь» — как 0.
Посмотрите на последнюю строчку в таблице. Она закрашена жёлтым цветом.
Видите, если А ложно и В ложно, то выражение А В истинно. Другими словами,
высказывание «из лжи следует ложь» истинно. Например, я могу сказать: «Если
коровы летают, то самолёты дают молоко», и это высказывание будет истинным
с точки зрения логики.
— Вот это да! — воскликнула Аня. — Ну и логика! Так можно довысказываться
до чего угодно!
— Согласен, — продолжал тем временем Логик. — В высказываниях типа «Если
А, то В» не предполагается, что должна существовать связь между А и В.
Попробуйте сами что-нибудь сочинить в таком роде.
— Сейчас попробую, — предложил Артём. — Ну, например, такое: «Если 2x2 = 5,
то Рим — столица Италии». — А зачем нужна такая логика?
— У неё есть известные достоинства, — ответил Логик. — Она позволяет от-
влекаться от конкретных свойств А и В. Её задача — установить и описать нормы
и приёмы корректного рассуждения! Именно это мы с вами и обсуждаем.
Для того чтобы исправить такого рода «странности», было введено важное по-
нятие — правило вывода. Оно тоже было предложено математиком Дж. Булем
вместо силлогизмов Аристотеля.
КАК НАУЧИТЬ РОБОТОВ ПРАВИЛЬНО ЛОГИЧЕСКИ
РАССУЖДАТЬ И ЧТО ТАКОЕ ПРАВИЛО ВЫВОДА?
Правила вывода «следят» за тем, что ты выводишь. Только с их помощью по-
лучаются одни истинные высказывания из других!
Примером правила вывода является так называемое правило «модус поненс».
Посмотрите на определение.
Правило вывода «модус поненс»
Если А является истинным высказыванием и если верно, что из А всегда следу-
ет В, то тогда В тоже является истинным высказыванием.
Математически оно записывается так:
Посылка 1 (входной факт): А
Посылка 2:А В
Заключение (вывод): В
— Так что «модус поненс» не позволит вам утверждать, что истинно будто «са-
молёты дают молоко». Ясно почему? — спросил Логик.
— Нет, не очень, — ответила Аня.
— Давайте сообразим вместе. Итак, у нас есть следующие суждения:
А — «коровы летают», В — «самолёты дают молоко» иА->В — «если коровы
летают, то самолёты дают молоко».
Выражение А В истинно. Но известно, что А — ложно. Значит, правило выво-
да не работает, и поэтому выводить В нельзя. Теперь понятно?
— Здорово! Теперь понятно, — ответила Аня.
— Это правило нам очень пригодится, чтобы научить роботов логически ду-
мать.
Наряду с правилом «модус поненс» в классической логике используется также
так называемое правило «модус толленс» (от латинского «тобиз 1оПепз»). Это
правило формулируется следующим образом:
Посылка 1 (входной факт): не В
Посылка 2:А -> В
Заключение (вывод): не А.
Однако в прикладных задачах ИИ оно практически не используется.
ЧТО ТАКОЕ КЛАССИЧЕСКИЕ ЗАКОНЫ ЛОГИКИ?
Начатые Булем исследования были продолжены другими математиками, и в
результате возникла целая наука — математическая логика. Классическая ма-
тематическая логика состоит из нескольких разделов: исчисление высказываний,
логика предикатов первого порядка, высшего порядка и ряд других теоретических
разделов.
Для задач ИИ обычно используются первые два раздела классической логики.
Однако наряду с классическими логиками в ИИ применяются так называемые не-
классические логики, о которых мы поговорим чуть позже. Основное отличие не-
классических логик состоит в том, что в них нарушаются классические законы
логики, а на смену им приходят новые.
Посмотрим на эти законы. Первым их высказал ещё Аристотель.
Закон тождества
Аристотель утверждал, что «невозможно ничего не мыслить, если не мыс-
лить что-нибудь одно». Другими словами, всякая мысль (А) в процессе рас-
суждения должна быть тождественная самой себе. (А есть А.)
Формальная запись: А = А.
Закон непротиворечивости
Не могут быть верными две мысли, одна из которых отрицает другую. Други-
ми словами, неверно, что есть А и одновременно есть не А.
Формальная запись: (А л А).
Закон исключённого третьего (или третьего не дано)
Аристотель писал: «...ничего не может быть посредине между двумя про-
тиворечивыми суждениями об одном, каждый отдельный факт необходимо
либо утверждать, либо отрицать». Другими словами, из двух высказыва-
ний «А» и «не А» одно обязательно является истинным.
Формальная запись: (А V А).
КАКИМ СПОСОБОМ ЛЮБИЛ РАССУЖДАТЬ
ШЕРЛОК ХОЛМС?
Классическая математическая логика успешно развивает дедуктивную модель
мышления, которую рассматривал ещё Аристотель.
Дедукция - это метод, при котором новое, частное
высказывание выводится логическим путём из общего.
Вопрос: кто из известных персонажей любил размышлять методом дедукции?
— Это знаменитый Шерлок Холмс, — ответил Артём.
— Верно. Для многих читателей имя Шерлока Холмса навсегда связано с изя-
ществом и неоспоримостью дедуктивного метода рассуждений, — улыбнулся Ло-
гик и продолжил: — Есть огромное количество анекдотов на эту тему. Вот один из
них.
Пошли как-то Шерлок Холмс и Доктор Ватсон в поход в горы. Просыпаются они
ночью, и Холмс спрашивает Ватсона:
— Посмотрите наверх, Ватсон, о чём говорит это небо у нас над головой?
Ватсон посмотрел на небо и произнёс:
— Какое прекрасное небо! Столько звёзд! О чём это может говорить? Отвечаю:
с астрономической точки зрения, мы можем сказать, что нас окружает миллион
галактик и практически миллиард планет! С теологической точки зрения: Господь
очень велик, а мы — мелкие человечки. С климатической точки зрения: нас ожи-
дает прекрасная погода... А вы что думаете, Холмс?
— Нет, Ватсон, это говорит о том, что у нас украли палатку.
Однако дедуктивные схемы рассуждений не являются панацеей для всех слу-
чаев жизни.
Дедуктивный метод рассуждений не всегда ведёт к успеху, особенно при вы-
движении новых идей, которые тесно связаны с опытом. Существует много других
способов рассуждений, которые использует человек в своей жизни.
Для объяснения личного опыта люди используют схему рассуждений, при кото-
рой рассуждения ведутся в другом направлении (по сравнению с дедукцией) — от
частного к общему.
ИНДУКЦИЯ И ПРАВДОПОДОБНЫЕ РАССУЖДЕНИЯ
Мы все учимся исходя из опыта. Учёные стараются извлечь из данного опыта
наиболее правильное представление (знания) и используют для этого метод ин-
дукции.
Индукция - это метод мышления «от частного к общему».
Индуктивную схему рассуждений можно представить
следующей схемой.
51 есть Р,
52 есть Р,
5 есть Р,
т 1
следовательно, все 5 есть Р.
Смысл метода индукции таков: есть предметы (понятия, явления) 32, ..., 8т,
принадлежащие к множеству предметов (понятий, явлений) 8. Этим предметам
присуще свойство Р. В заключении индуктивной схемы утверждается, что все
предметы множества 8 имеют свойство Р.
Поступая так, учёный действует по следующему принципу: предположенное об-
щее утверждение становится более правдоподобным, если оно подтверждается
для нового частного случая.
Так появились на свет многие законы физики, которые успешно работают.
Принципиальное отличие между дедуктивной
и индуктивной схемами рассуждений
Если посылки в дедуктивной схеме выбраны правильно и являются истинными,
то получаемые на их основе логические заключения не могут быть ложными. Если
они нас чем-то настораживают, вызывают сомнение, то надо ещё раз проверить
истинность посылок.
Что касается индуктивной схемы рассуждений, то даже если посылки выбраны
истинными, то получаемые на их основе заключения могут быть как истинными,
так и ложными. Именно поэтому индуктивный вывод всегда является правдопо-
добным рассуждением. И обсуждать можно только то, какова степень правдопо-
добности выведенного суждения.
И хотя не все индуктивные суждения можно безоговорочно принимать, этот
способ сыграл большую роль в развитии науки. В XIX веке появилось большое
количество эмпирических (полученных на практике в экспериментах) знаний, ко-
торые надо было объяснить. И это успешно удалось.
Историческая справка
Математик Пойа в своей известной книге «Математика и правдоподобные
рассуждения» интересно рассуждал о правдоподобных рассуждениях: «Такие
рассуждения являются предположениями, или пробными утверждениями. Это
утверждение ни в коей мере не является доказанным, не может претендовать
на истинность, но оно является попыткой подойти к истине».
РАЗГОВОР О ПРАВДОПОДОБНЫХ РАССУЖДЕНИЯХ
Наблюдения Пойа
«Собрались вместе математик, логик, физик и инженер.
— Взгляни на этого математика, — сказал логик. — Он замечает, что первые
девяносто девять чисел меньше 100, и отсюда с помощью того, что он называет
индукцией, заключает, что все числа меньше 100.
— А физик верит, — сказал математик, — что 60 делится на все числа. Он за-
мечает, что 60 делится на 1,2, 3, 4, 5 и 6. Он проверяет несколько других чисел,
например 10, 20 и 30 (взятых, как он говорит, наугад). Так как 60 делится и на них,
то он считает экспериментальных данных достаточно, чтобы утверждать, будто
число 60 делится на все числа.
— Да, но взгляни на инженера, — возразил физик. — Инженер подозревает,
что все нечётные числа — простые. Во всяком случае, 1 можно рассматривать как
простое число, доказывает он. Затем идут 3, 5 и 7 — все, несомненно, простые.
Затем идёт 9 — досадный случай; 9, по-видимому, не является простым числом.
Но 11 и 13 — конечно, простые числа. „Возвратимся к 9, — говорит он, — я заклю-
чаю, что 9 должно быть ошибкой эксперимента"».
Пойа привёл свои наблюдения о том, как рассуждают разные учёные. Это, ко-
нечно, шутливый пример. Но в каждой шутке, как говорится, лишь доля шутки...
Этот пример показывает нам, насколько осторожно надо быть с методом ин-
дукции. Совершенно очевидно, что индукция может привести к ошибке. Но за-
мечательно, что индукция иногда приводит к истине. Вот так обстоят дела с этой
индукцией!
В заключение этой темы хочу сказать, что наряду с дедукцией и индукцией
есть и третий тип рассуждения - - трансдукция. Это рассуждения от «частного к
частному», «от единичного к единично-
му» или «от общего к общему». Такие
рассуждения тоже относятся к классу
правдоподобных рассуждений. Выво-
ды правдоподобных рассуждений в не-
которых случаях могут быть в какой-то
мере адекватными действительности.
Однако адекватность действительности
не является синонимом логической со-
стоятельности. Вот так обстоят дела...
— Вернёмся к твоему примеру, Аня,
в начале нашего разговора. Теперь ты
понимаешь, к какому типу рассуждений
относится твой пример «про могущество
морского флота Великобритании»? —
улыбаясь, спросил Логик.
Аня на минутку задумалась, а потом
сказала:
— Я пытаюсь понять, что тут не так.
Но тут как-то всё странно.
— Давай разберёмся. Люди любят
так рассуждать «от частного к частно-
му», при этом истинность самих выска-
зываний бывает весьма сомнительной.
Дарвин построил забавную цепочку
рассуждений, чтобы повеселить своих
читателей. Если ты научишь такой логи-
ке своего Роботёнка, то представляешь,
что будет? — спросил Логик.
— Да уж! Я об этом не подумала! —
засмеялась Аня.
— Вот-вот. Надо отдавать себе отчёт,
чему мы учим свои создания, — заме-
тил Логик.
ТЕКТШМ
МОК
ПАТ1Ж
ЧТО ТАКОЕ НЕКЛАССИЧЕСКИЕ ЛОГИКИ?
А теперь поговорим вот о чём. Высказывания могут быть не только истинными
или ложными, но и... какими ещё, можешь сказать, Артём?
— Правдоподобными, как вы нам объяснили, — ответил школьник.
— Совершенно верно. Но кроме этого высказывания могут быть приближённы-
ми, нечёткими, неопределёнными, эмоциональными и так далее. Поэтому учёные
в искусственном интеллекте стали активно изучать различные типы человеческих
рассуждений и пытаться разработать их математические модели. Это привело к
возникновению различных неклассических логик.
До сих пор всякое высказывание мы оценивали только двумя значениями: исти-
на или ложь (1 или 0). Истинное высказывание означало, что факт, содержащийся
в суждении, имеет место в реальном мире. А ложное высказывание — что этот
факт не имеет места в реальном мире.
— А что ещё может быть, кроме истины и лжи? — удивилась Аня.
— Например, истина и ложь в квантовой суперпозиции, — улыбнулся Логик.
— Это как? — удивилась Аня.
— Не всё сразу. Давайте по порядку.
Итак, важная особенность неклассических логик состоит в том, что они умеют
работать с высказываниями, истинность которых может принимать значения не
только «истина» (1) и «ложь» (0), но и иметь любое значение из интервала между
0 и 1.
— Мне что-то не очень понятно, как высказывание может иметь значение не 0
и не 1, а что-то среднее? Оно либо «верное», либо «ложное», — задумчиво про-
изнесла Аня.
— Это вовсе не обязательно. Ты просто не обращала внимания на такие вы-
сказывания, — возразил ей Логик. — А они встречаются сплошь и рядом. Рассмо-
трим, например, такое высказывание: «Вероятно, скоро пойдёт снег». Что можно
сказать об истинности такого высказывания?
— Да кто его знает — всё что угодно!
— Вот видишь, высказывания могут иметь не только два значения истинности.
Высказывание можно оценивать на множестве значений «истинности».
Аня задумалась на минуту и спросила:
— А какой логикой пользуются умные роботы?
— Хороший вопрос. В современной робототехнике, конечно же, используется
классическая математическая логика. Кроме того, для задач управления движе-
нием применяется нечёткая логика. Об этом вам может рассказать наш Профес-
сор. Я ему напишу. И особую роль играют так называемые псевдофизические
логики времени, пространства и действий.
— Псевдофизические логики, нечёткие логики — это что-то новое! — заметил
Артём.
— Да, это сравнительно новые логические модели. Однако они довольно широ-
ко используются в системах искусственного интеллекта и интеллектуальной робо-
тотехнике.
— Как интересно! А нельзя ли рассказать об этих логиках? — спросила Аня.
— Конечно, этим мы сейчас и займёмся.
ЧТО ТАКОЕ ПСЕВДОФИЗИЧЕСКАЯ ЛОГИКА ВРЕМЕНИ?
Учёным в области искусственного интеллекта важно понять, как человек вос-
принимает время и пространство и как он его моделирует. Другими словами, какие
знания о времени и пространстве он использует для решения своих повседневных
задач. И кроме того, учёным важно записать эти знания в программы роботов так,
чтобы они (а также другие системы ИИ) понимали логику событий во времени так,
как это делает человек.
Так возникло направление в ИИ, которое занимается разработкой «псевдо-
физических» логик времени, а также
пространства и действий.
— Странное какое-то слово —
«псевдофизические», — заметила
Аня. — Что это означает?
— Сейчас объясню. Слово «псев-
дофизические» состоит из двух ча-
стей «псевдо» + «физические». Слово
«физические» говорит о том, что эти
логики описывают свойства време-
ни, пространства и действий, прису-
щие окружающему нас физическому
миру. А приставка «псевдо» отражает
тот факт, что эти свойства не являют-
ся чисто физическими свойствами, а
моделируют особенности восприятия
времени и пространства человеком.
Итак, начнём с логики времени.
Что такое высказывание о событиях?
Без времени наступила бы полная путаница в повседневной жизни людей.
А ещё без учёта времени невозможно было бы ничего спланировать, никаких дей-
ствий.
Наши действия всегда происходят во времени. С помощью времени мы соот-
носим действия между собой, говорим, какое действие произошло раньше, какое
позже, или одновременно. Мы также говорим, когда произошло то или иное со-
бытие.
— Как ты думаешь, что такое «событие», Артём? — спросил Логик.
— Наверное, это — то, что случается. Так?
— Верно. Примерами высказываний о событиях могут быть следующие факты:
«Ворона села на ветку, съела кусочек сыра и улетела», «Блеснула молния, грянул
гром», «3-го июня на Красной площади открылась книжная выставка».
КАК ПОСТРОИТЬ ЛОГИКУ ВРЕМЕНИ ДЛЯ РОБОТОВ?
Для создания модели логики времени нам понадобятся следующие понятия:
«событие» и «временное отношение» между событиями.
Событие представляет собой некий результат, или факт,
связанный с деятельностью некоторого субъекта действия,
например человека, робота, животного или сил природы.
Отношение - это математическое понятие, с помощью
которого можно описывать связь двух и более сущностей.
В нашем случае это будет связь во времени двух событий.
В терминах отношений вводятся многие важнейшие понятия логики и матема-
тики.
Введём следующие временные отношения между событиями: «быть раньше»
(обозначим его как Я^, «быть позже» (обозначим его как Я2) и «быть одновремен-
но» (обозначим его как Яо).
Тогда высказывание «событие А произошло раньше события В» можно запи-
сать формально следующим образом: (А Я1 В).
Имена событий и имена временных отношений будут составлять алфавит язы-
ка логики времени. Простые высказывания в логике времени будем записывать
как (А Я В), где А и В — имена событий, а В — имя временного отношения между
ними.
Сложные высказывания будем строить с помощью классических логических
операций, о которых я недавно рассказывал.
А теперь попробуем описать свойства времени в виде аксиом.
Аксиома - это исходное утверждение, которое в рамках
данной модели (теории) считается истинным
без требования доказательства.
Например, известные всем школьникам аксиомы геометрии Евклида. Можете
вспомнить какую-нибудь аксиому в геометрии?
ОПИСАНИЕ СВОЙСТВ ВРЕМЕНИ. АКСИОМЫ ВРЕМЕНИ
Для начала обсудим, какие свойства есть у времени и как его воспринимает
человек. Время непосредственно не воспринимается нашими органами чувств,
поэтому так трудно научиться понимать время. Известно, что дети к двум-трём го-
дам вполне постигают основные свойства (законы) пространства, а вот свойства
времени остаются трудными, и где-то к четырём-пяти дети начинают понимать
время.
А как это было у вас, ребята?
Время нельзя увидеть, но зато его можно измерить. Для указания временной
точки в пределах суток используется шкала времени с единицами измерения —
часы, минуты и секунды. Текущее время в таком формате нам показывают обыч-
ные часы.
Время можно также представить в виде стрелы времени, имеющей направле-
ние из прошлого в будущее.
Изобразим стрелу времени в виде простой геометрической прямой, например,
так, как это показано на рис. 2.3. Назовём эту прямую осью времени. Задав на оси
времени точку отсчёта и единицу измерения, получим шкалу времени.
раньше раньше
АВ С Шкала времени
—V-------' время
раньше
Так на свете появились различные календари. Единицей измерения времени в
календарях обычно является день (а точнее, сутки). Часто мы спрашиваем: «Ка-
кой сегодня день?» или «Какое сегодня число?» — и заглядываем в текущий ка-
лендарь.
— А теперь ещё раз посмотрим на стрелу времени. Какие его свойства отража-
ет стрела времени? Есть идеи?
Аня почесала в затылке, посмотрела задумчиво на Артёма, и тот решил первым
ответить на этот каверзный вопрос:
— Время идёт всё время вперёд. Его нельзя вернуть.
— Молодец! Очень правильное замечание. Итак, отметим первое свойство вре-
мени: время однонаправленно. Оно течёт из прошлого в будущее. Время не может
ветвиться, идти параллельно или по кругу (разве что в фантастических романах).
Из свойства однонаправленности времени следует ещё одно важное свой-
ство — его необратимость. Это свойство можно выразить с помощью следующего
высказывания: «если событие А произошло раньше события В, то событие В не
может быть раньше события А».
Аксиомы времени
Свойство необратимости времени выражается следующей аксиомой:
если (событие А раньше события В), то неверно что (событие В раньше
события А).
(А /?1 В) (В А)
Свойство транзитивности времени выражается аксиомой: если (собы-
тие А раньше события В), а (событие В раньше события С), то (событие А
раньше события С).
(А В)л (В С) (А С)
Каждому событию на шкале времени соответствует либо точка (времени), либо
отрезок времени. Если событие отражается на шкале времени в виде точки, то
оно рассматривается как точечное событие. Если событие отражается на шкале
времени в виде отрезка времени с началом и концом, то оно рассматривается как
интервальное событие.
КАК ЛЮДИ РАССУЖДАЮТ О СОБЫТИЯХ ВО ВРЕМЕНИ?
Для описания взаимосвязи между точечными событиями человек использует
шесть временных отношений.
Это следующие отношения:
• «быть раньше»;
• «быть позже»;
• «быть одновременно».
И ещё три так называемых метрических отношения:
• «событие А раньше на /V единиц времени на заданной шкале времени со-
бытия В»;
• «событие А позже на Л/ единиц времени на заданной шкале времени собы-
тия В»;
• «событие А происходит в момент времени Тна заданной шкале времени».
В логике времени важно также описать свойства временных отношений.
— У них тоже есть свойства? — удивилась Аня.
— Да. Различные временные отношения связаны между собой с помощью не-
которых аксиом, например таких:
• если (событие «А» «раньше» события «В») и (событие «В» «происходитод-
новременно» с событием «С»), то (событие «А» «раньше» события «С»);
• если (событие «А» «раньше» события «В»), то (событие «В» «позже» собы-
тия «А»).
— Вот вам задание, ребята. Запишите на досуге эти аксиомы на формальном
языке логики времени.
С помощью таких аксиом интеллектуальный робот может понимать человече-
ские рассуждения о событиях, происходящих во времени. Кроме того, это понима-
ние ему понадобится, например, при составлении плана действий.
— Мне бы хотелось увидеть пример того, как роботы и системы искусственного
интеллекта могут понимать время... — произнесла Аня.
— Давайте обсудим следующую задачу: построить план действий во време-
ни для робота-повара, готовящего борщ по рецепту, прочитанному в Интернете.
Пусть у нас будет следующий рецепт борща.
ЗАДАЧА ПОСТРОЕНИЯ
ПЛАНА ДЕЙСТВИЙ ВО ВРЕМЕНИ
Рецепт вкусного борща
Варить мясной бульон 1,5 часа.
В середине приготовления добавить три
лавровых листа, пять горошин чёрного пер-
ца и посолить.
Потом положить в другую кастрюлю овощи
(свёклу, морковь, лук и сельдерей). Тушить
20 минут. Затем положить это в бульон и
одновременно положить нарубленную капу-
сту. Закончить варку через 10 минут. После
отключить плиту.
Вот какой план действий построила программа робота-повара (рис. 2.4).
12:00
13:30
Шкала времени, часы
Рис. 2.4
Каждое действие описывается интервальным событием, которое имеет на-
чало и конец во времени. Программа выделила семь событий Р2, Р3, Р4,..., Р7 и
расположила их на оси времени I в порядке возрастания времени.
Событие Р, — «варить бульон»: начало в 12:00, конец в 13:30.
Событие Р2 — «добавить три листа и пять горошин»: начало в 12:45.
Событие Р3 — «солить бульон»: начало в 12:47.
Событие Р4 — «положить овощи в другую кастрюлю»: начало в 12:50.
Событие Р5 — «тушить овощи»: начало в 12:55, конец в 13:15.
Событие Р6 — «положить тушёные овощи и капусту в кастрюлю с бульоном»:
начало в 13:20, конец в 13:30.
Событие Р7 — «отключить плиту»: начало в 13:31.
ПРИМЕЧАНИЕ. Приведённый план действий носит демонстрационный характер.
На досуге можно поразмышлять и составить свою программу для решения дан-
ной задачи робота-повара.
ПСЕВДОФИЗИЧЕСКАЯ ЛОГИКА ПРОСТРАНСТВА
Пространственная логика так же, как и логика времени, отражает свойства про-
странственных отношений в физическом мире и их восприятия человеком. Она
строится так же, как и логика времени. Но только пространственных отношений
в реальном физическом мире гораздо больше, чем временных. Попробуем разо-
браться в этом вопросе и порисуем.
— Порисуем? — удивилась Аня. — И что же, интересно?
— Сейчас скажу. Возьмём, например, текст про ворону из басни Крылова.
«Вороне где-то бог послал кусочек сыру;
На ель ворона, взгромоздясь,
Позавтракать было совсем уж собралась,
Да призадумалась, а сыр во рту держала.
На ту беду лиса близёхонько бежала...»
— Ваша задача, друзья, — нарисовать картинку, представляющую ситуацию,
описанную в тексте, — сказал Логик.
— Хм. Я не совсем понимаю, что нужно делать, — произнесла Аня.
— Хорошо. Давайте вместе рисовать. Я буду задавать вопросы, ты будешь от-
вечать, а Артём — рисовать. Итак, начнём. Где находится ворона? — спросил
Логик Аню.
— На дереве, вернее на ёлке.
— Верно. Рисуем ёлку и ворону на её ветке.
Прошу, Артём, изобрази нам эту ситуацию.
— Дальше. Аня, где находится сыр?
— Сыр находится в клюве вороны.
— Изобразим этот факт. А где находится
лиса?
— Лиса находится поблизости, около ёлки.
Смотрим, что нарисовал Артём.
В ситуации, которую описывает этот текст,
есть объекты внешнего мира: ворона, ветка,
ель, кусочек сыра во рту, лиса. И есть про-
странственное расположение между этими
объектами: «ворона находится на ветке»,
«ветка — часть ели», «кусочек сыра находится во рту», «рот — часть вороны»,
«лиса находится вблизи ели».
Пространственное расположение физических объектов можно описывать с по-
мощью пространственных отношений. В нашем примере используются четыре
пространственных отношения: «находиться на», «часть-целое», «находиться в»,
«находиться вблизи».
— Сколько всего пространственных отношений существует в окружающем нас
мире? Как вы думаете? — спросил Логик.
— Наверное, много! — ответила Аня.
— Давайте выделим следующие типы пространственных отношений.
1. Пространственные отношения, описывающие расстояние между объектами
А и В.
К этому типу относятся, например, следующие отношения: «объект А близко
к объекту В», «объект А далеко от объекта В», «объект А находится около В», а
также отношения типа «объект А находится на расстоянии М [единиц измерения]
от объекта В». В качестве единиц измерения могут использоваться сантиметры,
метры, километры и так далее в зависимости от решаемой задачи.
2. Пространственные отношения, описывающие отношения направленности.
Например, такие отношения, как «объект А находится слева (или справа, или
впереди, сзади) от объекта В».
3. Пространственные отношения, описывающие отношения взаимного рас-
положения объектов.
Например, «объект А находится внутри объекта В» или «объект А находится на
объекте В» (или «в», «под», «над», «между» и тому подобное).
4. Отношение «часть-целое» (например, ножка стула или клюв вороны).
Знания о пространственных отношениях необходимы роботу для решения сле-
дующих задач:
• автономного, то есть самостоятельного, передвижения в пространстве с
учётом обхода всяких препятствий;
• понимания суждений о пространственных отношениях, выраженных слова-
ми в процессе общения робота с человеком;
• для выполнения различных действий.
Задача обхода роботом препятствий
Одной из задач, которую решает автономный мобильный робот, передвигаясь
из пункта А в пункт В, является задача обхода препятствий в процессе движения.
Рассмотрим, например, робота-доставщика пиццы в небольшом городке. Для пе-
редвижения такой робот использует платформу типа тележки с колёсами.
На борту движущейся тележки расположены датчики (или сенсоры), способные
сканировать пространство вокруг него и посылать сигналы о препятствиях в си-
стему управления движением робота. Пример такого робота показан вот на этом
рисунке (ниже).
Этот маленький автономный мобильный робот
передвигается по улицам небольшого городка и до-
ставляет пиццу заказчику, поэтому задача обхода
препятствий для него весьма актуальна.
На рис. 2.5 схематично показано расположение
сенсоров и области их сканирования.
Количество сенсоров зависит от задачи пере-
движения, которую решает робот. Например, если
это мобильный робот, который передвигается по не-
большим улочкам, то ему понадобится семь сенсо-
ров (датчиков), которые будут фиксировать объек-
ты, находящиеся впереди робота, слева и справа от
робота и позади него (слева и справа).
Пример базы знаний для решения задачи
обхода препятствий
Благодаря сенсорам робот может получать информацию о нахождении препят-
ствий в пространстве, определяемом следующими пространственными отноше-
ниями относительно направления его движения:
• «объект (препятствие) находится прямо перед роботом» (сенсор РСО);
• «объект (препятствие) находится спереди слева от робота» (сенсор РЮ);
• «объект (препятствие) находится спереди справа от робота» (сенсор РАО);
• «объект находится слева» (сенсор ЗЮ);
• «объект находится справа» (сенсор 8В0);
• «объект находится сзади слева» (сенсор 81_1);
• «объект находится сзади справа» (сенсор 8В2).
Для решения задачи передвижения с обходом препятствий строят базу знаний,
состоящую из множества специальных правил-стратегий, например, таких:
1. ЕСЛИ «препятствие находится слева от робота и робот находится близко
к нему», ТО выполняй действие «быстро поверни направо».
2. ЕСЛИ «препятствие находится слева от робота и робот находится далеко
от него», ТО выполняй действие «двигайся прямо с нормальной скоростью».
3. ЕСЛИ «препятствие находится справа от робота и робот находится близко
к нему», ТО выполняй действие «быстро поверни налево».
4. ЕСЛИ «препятствие находится справа от робота и робот находится далеко
от него», ТО выполняй действие «двигайся прямо с нормальной скоростью».
5. ЕСЛИ «препятствие находится впереди робота и робот находится близко
к нему», ТО выполни действие «8ТОР-остановись».
6. ЕСЛИ «препятствий поблизости НЕТ», ТО «двигайся к цели».
Важное замечание
Для задач управления движением роботов в реальных пространственных сре-
дах нужны интеллектуальные системы управления движением. Такие си-
стемы управления работают на основе нечётких логик. Об этом вам может
рассказать мой коллега, Профессор Умнов, когда вы посетите его лабораторию
моделей нечётких вычислений.
На этом мы закончим наш разговор о разных моделях человеческих рассужде-
ний.
— Есть вопросы? — спросил Логик.
— Я даже не подозревала, что есть так много разных способов рассуждений.
Они такие интересные... — задумчиво произнесла Аня. — Так всё же, какая логи-
ка лучше, то есть, я хочу спросить, какая из них даст роботу больше «ума»?
— Дальновиднее всего использовать ту или иную логику в зависимости от ре-
шаемой задачи, — ответил Логик. — Использование различных моделей может
обеспечить достаточно высокую степень интеллекта роботов и систем искусствен-
ного интеллекта.
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 2
1. Что такое умозаключение?
2. Что такое силлогизм?
3. Все птицы летают. Соловей - птица. Летает ли соловей?
4. Почему суждение «Иван - молодой старик» нарушает третий
закон классической логики?
5. Что такое «модус поненс»?
6. Событие А происходит одновременно с событием В. Событие В
позже события С. Как связаны во времени события А и С?
7. Допиши правило:
ЕСЛИ «препятствие находится впереди робота и робот находится
далеко от препятствия», ТО выполни действие «какое?».
БЕСЕДА С ПРОФЕССОРОМ В ЛАБОРАТОРИИ
«МОДЕЛИ НЕЧЁТКИХ ВЫЧИСЛЕНИЙ»
В которой Артём и Аня посещают в Технопарке искусственного интеллекта лаборато-
рию моделей нечётких вычислений. Они знакомятся с Профессором, который посвящает
их в таинства нечёткой математики. Ребята узнают, что такое лингвистическая перемен-
ная, нечёткое множество и как можно строить такие множества. Знакомятся с нечёткими
высказываниями и нечёткой логикой, а также начинают понимать, какая связь существу-
ет между управлением движением роботов и беспилотных машин, стратегией челове-
ческого поведения и нечёткой логикой. Узнают, как можно создавать нечёткие системы
управления движением роботов и беспилотных машин.
нечеткие
системы
правило
«модус
поненЬ
- (Ас»)
нечеткие вычисления
нечёткие системы
алгоритмы нечётких вычислений
нечёткие высказывания нечёткие
множества нечёткая логика
правило «модус поненс»
нечёткий вывод нечёткие правила
нечёткое управление
ЛЩчет
КМ.
ГЛАВА 3. БЕСЕДА С ПРОФЕССОРОМ В ЛАБОРАТОРИИ
«МОДЕЛИ НЕЧЁТКИХ ВЫЧИСЛЕНИЙ» (106)
ЗНАКОМСТВО С ПРОФЕССОРОМ НЕЧЁТКИХ СИСТЕМ (108)
ВПЕРЁД, К ПОЗНАНИЮ МОДЕЛЕЙ И АЛГОРИТМОВ
НЕЧЁТКИХ РАССУЖДЕНИЙ И ПРИНЯТИЯ РЕШЕНИЙ! (109)
ЧТО ТАКОЕ НЕЧЁТКИЕ ВЫСКАЗЫВАНИЯ,
ЛИНГВИСТИЧЕСКИЕ ПЕРЕМЕННЫЕ И НЕЧЁТКИЕ МНОЖЕСТВА? (110)
ОТ КЛАССИЧЕСКИХ МНОЖЕСТВ К НЕЧЁТКИМ МНОЖЕСТВАМ (111)
Поговорим немного о классике (111)
Как построить множество «молодых людей»? (114)
ОТ НЕЧЁТКИХ МНОЖЕСТВ К НЕЧЁТКИМ ВЫСКАЗЫВАНИЯМ И НЕЧЁТКОЙ ЛОГИКЕ (120)
Е022У Ю61С. Нечёткие логические операции (121)
ОТ НЕЧЁТКИХ ВЫСКАЗЫВАНИЙ К НЕЧЁТКОМУ ВЫВОДУ.
ОБОБЩЁННОЕ ПРАВИЛО «МОДУС ПОНЕНС» (122)
Что такое нечёткий вывод и нечёткие вычисления? (124)
Нечёткий вывод в случае нескольких нечётких правил (126)
Какая связь между человеческой стратегией принятия решений
и нечёткой логикой? (127)
ОТ НЕЧЁТКОЙ ЛОГИКИ К НЕЧЁТКОМУ УПРАВЛЕНИЮ (131)
Общая структура нечёткой системы управления движением (132)
Перевод числовых значений от датчиков в нечёткий формат (133)
Перевод результата нечёткого вывода в числовой формат (134)
Как уложить процесс принятия решений человеком
в рамки вычислительного процесса? (135)
Основные идеи нечёткого управления движением (137)
СКОРО ЛИ АВТОМОБИЛИ СМОГУТ ЕЗДИТЬ ПО ДОРОГАМ САМИ БЕЗ ШОФЁРА? (137)
ВОТ ТАКАЯ ЭТА НАУКА Е022У Ю61С
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 3
(139)
(139)
ЗНАКОМСТВО С ПРОФЕССОРОМ НЕЧЕТКИХ СИСТЕМ
Спустя некоторое время Аня с Артёмом снова поехали в технопарк — на встре-
чу с Профессором в его лабораторию нечётких вычислений.
Подойдя к двери лаборатории, ребята постучали и, услышав приглашение,
вошли.
— Уважаемый Профессор! Здравствуйте! — обратилась к нему школьница. —
Меня зовут Аня, я учусь в восьмом классе, а это — мой друг Артём, он десяти-
классник. Мы интересуемся наукой искусственного интеллекта и робототехникой.
Не могли бы вы рассказать нам о том, как создаются умные роботы и что для
этого нужно знать.
— Очень рад, добрый день! — произнёс Профессор. — Прошу вас, присаживай-
тесь! Я вас жду. Мой друг Логик очень хвалил вашу любознательность и умение
слушать. Постараюсь рассказать вам о том, что такое нечёткая логика, нечёткие
системы управления и как они используются в системах искусственного интеллек-
та и робототехнике.
Профессор начал издалека.
— Я вот всё думаю: любую ли мысль, а вернее ход мысли, можно запрограмми-
ровать? И всё ли человеческое мышление поддаётся моделированию в виде ал-
горитмов? Пока я знаю лишь, что компьютеры — очень способные вычислители.
А искусственный интеллект воплощается в программах. Верно?
— Ну да, — согласился Артём.
— Так что же, можем мы или нет создать искусственный, программный, разум,
схожий с человеческим? Вот в чём вопрос! Как вы думаете?
— Мы за этим ответом и пришли к Вам, уважаемый Профессор, — заметил
школьник.
Профессор улыбнулся и ответил:
— И правильно сделали.
ВПЕРЕД, К ПОЗНАНИЮ МОДЕЛЕЙ И АЛГОРИТМОВ
НЕЧЁТКИХ РАССУЖДЕНИЙ И ПРИНЯТИЯ РЕШЕНИЙ!
ВОЗРАСТ в годах
Диалог в метро:
- Молодой человек, вы выходите?
-Я - молодой человек? Вы мне льстите.
— Для меня самым впечатляющим у человеческого интеллекта, — начал свой
рассказ Профессор, — является его способность принимать правильные решения
в условиях неполной и приближённой информации'. Для того чтобы моделировать
эти способности, нам понадобились новые математические модели.
Так возник новый раздел в математике, который называется «нечёткая мате-
матика». Причиной её появления стало желание формализовать приближённые
рассуждения, которыми пользуются люди.
— Что такое формализовать — тебе понятно, Аня? — спросил Профессор.
— Да. Это значит — описать эти рассуждения строгим математическим язы-
ком, — ответила девочка.
— Правильно мыслишь, молодец. Этим мы и займёмся.
Историческая справка
Нечёткая математика появилась сравнительно недавно, в 1965 году. Её осно-
вателем стал американский математик Лотфи Заде, который опубликовал пер-
вую научную статью про нечёткие множества (по-английски Тиггу зе1з). С тех
пор нечёткие вычисления используются во многих современных системах ИИ
и робототехнике.
Нечёткая математика состоит из нескольких разделов. Это теория нечётких
множеств, нечёткая логика и нечёткие системы.
ЧТО ТАКОЕ НЕЧЁТКИЕ ВЫСКАЗЫВАНИЯ,
ЛИНГВИСТИЧЕСКИЕ ПЕРЕМЕННЫЕ
И НЕЧЁТКИЕ МНОЖЕСТВА?
В нашей повседневной жизни мы сталкиваемся с нечёткими высказываниями
постоянно. Например, к ним относятся следующие высказывания: «чай горячий»,
«в комнате холодно», «если при переходе дороги без светофора ты видишь, что
расстояние от тебя до движущегося автомобиля — большое, то переходи дорогу
не спеша».
В приведённых примерах мы имеем дело с понятиями «температура», «рассто-
яние», «скорость», значения которых описываются с помощью слов естественного
языка!
— Так нам гораздо удобнее рассуждать, верно? — спросил Профессор.
— Действительно, проще сказать «горячий», чем говорить, что «температура
чая — 70 градусов», — произнесла Аня. — Я как-то раньше об этом не задумыва-
лась.
— А как вам «не спеша переходи дорогу» — что это означает? — спросил Про-
фессор.
— Видимо, это означает «двигайся медленно», не торопись, — ответил Артём.
— Верно. Люди успешно пользуются подобными стратегиями во многих жиз-
ненных ситуациях.
Как такие стратегии поведения объяснить компьютеру или роботу? Для этого
мы будем использовать новые понятия: лингвистическая переменная, нечёткое
множество и нечёткое высказывание.
НОВЫЕ ПОНЯТИЯ ДЛЯ ОБЪЯСНЕНИЯ СТРАТЕГИЙ
ЧЕЛОВЕЧЕСКОГО ПОВЕДЕНИЯ
Понятия, значения которых люди описывают не числами, а словами, будем
называть лингвистическими переменными (например, возраст, температу-
ра, скорость и так далее).
Высказывания, в которых используются лингвистические переменные, назо-
вем нечёткими высказываниями (суждениями).
Истинность нечётких высказываний будем описывать с помощью нового по-
нятия, которое называется нечётким множеством.
ОТ КЛАССИЧЕСКИХ МНОЖЕСТВ К НЕЧЁТКИМ МНОЖЕСТВАМ
Поговорим немного о классике
— Вот вам задание: опишите множество, которое показывает кошечка
на рис. 3.1. Кто из вас готов ответить? — спросил Профессор.
Рис. 3.1
— Это множество точек, лежащих на окружности заданного радиуса, — ответил
Артём.
— Совершенно верно, Артём. Ещё говорят, что множество А является подмно-
жеством универсального множества X (в данном случае множества всех точек
плоскости).
— Какие ещё могут быть множества, что скажешь, Анна?
— Да какие угодно! Множество звёзд на небе, множество цветов в саду, множе-
ство людей на Земле.
— Действительно. Множества могут состоять из самых различных элементов:
чисел, точек, окружностей, кошек, рыб, домов, городов, людей, звёзд и так да-
лее.
Именно поэтому теория множеств используется в самых разных областях зна-
ний (математике, механике, физике, биологии, лингвистике и других).
Множество - это совокупность некоторых предметов
или объектов произвольной природы.
Объекты, составляющие множество, называются
его элементами. Множество может состоять из одного,
двух, трёх и так далее элементов, или быть пустым,
то есть не содержать ни одного элемента.
Наиболее известные примеры множеств в математике — это множество целых
положительных чисел Л/ = {1,2, 3,п,...} (бесконечное) или конечное, например,
Л/ = {1, 2, 3, ..., 256}; множество всех чисел; множество всех точек на плоскости,
или множество всех точек в трёхмерном пространстве.
Множество А может содержать конечное или бесконечное число элементов и
задаваться двумя способами.
1. Методом списка, при котором перечисляются все элементы данного множе-
ства. Формально это записывается так: А = {а1; а2, ..., ап}. Этот метод приме-
ним к конечным множествам.
2. В тех случаях, когда множество нельзя задать с помощью списка, использу-
ется следующее правило. В данное множество объединяются все элементы,
имеющие определённое свойство (одно или несколько).
Формально это записывается так:
А = {а I каждый а имеет свойства Рг Р2,..., Рт}.
Что такое отношение принадлежности и функция
принадлежности?
В математике отношение принадлежности некоторого элемента х к множест-
ву А описывают с помощью так называемой характеристической функции р(х) (чи-
тается «мю от икс»). В классической математике эта функция очень простая. Она
равняется 1 для тех х, которые принадлежат множеству А, и 0 для тех х, которые
не принадлежат А .
Пример функции принадлежности показан на рис. 3.2. Посмотрите на него.
А теперь вопрос к вам: точка х = 10,5 принадлежит множеству А?
(х) "
1
! Множество А !
---------------------------►
123456789 10 х
Множество А: множество всех точек от 1 до 10
на множество положительных чисел х
Рис. 3.2
— Нет, — ответил Артём.
— А почему?
— По определению характеристической функции, которая показана на этом ри-
сунке. Только числа от 1 до 10. Для них эта ваша функция «мю» равна 1. А для
остальных 0. Поэтому точка х = 10,5 не принадлежит множеству А.
— Молодец! Всё правильно. Мы видим, что по определению классическое мно-
жество имеет чётко заданные границы. И ни шагу влево или вправо!
А теперь отвлечёмся от классики и прочитаем хитрую притчу.
«Физику, биологу и математику предлагают объяснить, как могло случиться,
что в пустой дом вошли два человека, а через некоторое время вышли три.
Физик задумался и сказал:
— Такого не может быть. Это ошибка наблюдения.
Биолог радостно ответил:
— Да это же естественный процесс размножения — у двоих родился третий.
А математик воскликнул:
— Да нет ничего проще! Определим пустой дом как дом, в котором не более
одного человека».
— Кто прав в этой притче? — улыбнувшись, спросил Профессор.
Аня, подумав немного, ответила:
— Я согласна с биологом. Если подождать, то у двоих может появиться тре-
тий.
Артём думал-думал и сказал:
— Я всё-таки согласен с физиком. Если эксперимент идёт в реальном времени,
то это может быть ошибкой наблюдения. А вы как считаете, Профессор?
— А я считаю, что если ввести понятие нечёткого множества как множества с
размытыми, или нечёткими, границами, то математик окажется прав.
Ребята посмотрели друг на друга и расхохотались.
— Профессор, Вы всегда найдёте нестандартное решение! — воскликнула
Аня.
— 01 соигзе! А как иначе?!
Итак, подходим ближе к идее нечётких множеств и рассмотрим пример.
Как построить множество «молодых людей»?
— С чего начнём? Как ты, Анна, определяешь: «данный человек молодой или
нет»? — спросил Профессор.
— Да я просто это вижу, молодой человек или нет, — ответила девочка.
— А как определить это формально, математически?
— Не знаю... — задумалась Аня. — Ну, например: все люди до 25 лет — моло-
дые, по-моему. Как-то так.
— Артём, помоги Ане построить классическое множество «молодые люди».
— Сейчас. Выберем шкалу, на которой будем откладывать года, соответствую-
щие возрасту людей. Отметим на этой шкале совокупность точек, обозначающих
возраст людей от 15 до 25 лет. И назовём эту совокупность точек множеством
«молодых людей» А.
Получилось вот так (рис. 3.3).
Точка Точка
14,5 лет 25,5 лет
Рис. з.з
— У меня вопрос, — хитро поглядывая на ребят, спросил Профессор. — А что?
Люди в возрасте 14,5 лет или в 25,5 лет — это уже не молодые люди?
— Действительно, что-то тут не так, — произнёс Артём.
— Вот и я так считаю, — сказал Профессор. — Интуитивно хочется, чтобы гра-
ницы множества молодых людей были немного размыты и не задавались таким
строгим образом.
В этом случае люди поступают по-другому. Они любят рассуждать прибли-
жённо!
Почему кто-то в свой 25-летний юбилей — молодой, а сразу на следующий день
уже не молодой? Как избежать этого противоречия?
Для этого вместо классического множества рассмотрим нечёткое множество
«молодые люди», у которого характеристическая функция р(х) может иметь зна-
чения не только 0 или 1, но и значения из интервала (0, 1). Построим его следую-
щим образом.
Прежде всего расширим возрастной интервал, который мы будем рассматри-
вать. Для этого заполним табличку — это будут наши экспертные знания о возрас-
те молодости (табл. 3.1).
ПРИМЕЧАНИЕ. Для того чтобы не перегружать восприятие идеи нечёткости, ав-
тор намеренно не стала вводить понятие «подростки» (с 14 до 18 лет), включив
их в множество молодых людей.
Таблица 3.1
Кто без сомнений молодой? Людей от 15 до 25 точно будем считать молодыми. Их степень принадлежности к «множеству молодых» равна 1. То есть р(х) =1 для всехх= 15, 16,.., 25
Молодые ли младенцы и дети? Люди от 1 дня и до 2 лет — младенцы. Мы не будем включать их в наше множество. Люди 2-12 лет — дети. Мы их тоже не будем включать в наше множество. Люди в 13-14 лет — уже не совсем дети. Включим их в наше новое множество с некоторой долей достоверности (уверенности), например, равной значениям 0,3 и 0,65. То есть р(х) = 0,3 для х = 13 и р(х) = 0,65 для х = 14
Молодые ли ваши родители? Люди от 30 до 35 лет — уже не совсем молодые. Поступим так. 30-летних людей включим в наше множество с долей уверенности равной 0,5. То есть р(х) = 0,5 для х = 30. А вот 35-летних в наше множество молодых мы не включим
Нечёткое множество «молодые люди»
— Обозначим наше нечёткое множество как А (эта запись читается как «Д с
тильдой»). На шкале возраста X укажем те точки, которые мы выбрали в таблич-
ке. Покажем зелёными точками значения их функции р(х). Соединим зелёные точ-
ки линией и продолжим эту линию до пересечения со шкалой. В результате мы
получим картину на рис. 3.4. Полюбуйтесь!
— И что это означает? — спросила Аня.
— Как что?! — произнёс Профессор. — Мы с вами построили множество А
молодых людей с размытыми границами («молодости»). Это и есть нечёткое мно-
жество А.
— А где эти размытые границы? — спросила Аня.
— Да вот же они — смотрите. Наше нечёткое множество имеет размытые гра-
ницы слева — это интервал (12; 15) и размытые границы справа — интервал (25;
35).
Нечёткое множество А представляет собой совокупность
упорядоченных пар, составленных из элементов х
универсального множества X и их степеней
принадлежности {р(х)} (значения из интервала от 0 до 1)
к множеству А. Формально это записывается
следующим образом:
А = {(М(х)} х)}, х е X.
Множество точек с ц(х) > 0 называется
базисом нечёткого множества.
Задание нечёткого множества эквивалентно заданию функции принадлежно-
сти на его базисе.
Сделаем дополнительно несколько важных замечаний. При желании их можно
пропустить при первом чтении.
Важные замечания
Если базисом нечёткого множества является дискретное множество (то есть
состоящее из конечного числа элементов), то нечёткое множество называется
дискретным.
Если базисом нечёткого множества является непрерывное множество (напри-
мер, состоящее из числового интервала действительных чисел), то такое не-
чёткое множество называется непрерывным.
Непрерывное нечёткое множество задаётся также выбранной непрерывной
функцией принадлежности.
Сравнение двух типов множеств
Сравним два типа множеств, которые мы построили.
Поставим рядом рисунок классического множества (слева) и рисунок нечёткого
множества (справа), как это показано на рис. 3.5.
Рис. 3.5
— Что ты можешь сказать, Анна, глядя на эти два рисунка? — спросил Про-
фессор.
Аня внимательно посмотрела и ответила.
— Да они совсем не похожие! В классическое множество молодых людей по-
пали люди только от 15 до 25 лет. А в нечёткое множество молодых людей попали
люди от 12 до 35 лет.
— Верно. Это совершенно разные множества!
Что это нам даёт? Сделаем важные выводы.
Важные выводы
1. Классическое множество имеет чётко определённые границы. На рис. 3.5,
слева - это точки 15 и 25. Нечёткое множество имеет размытые, нечёткие гра-
ницы слева и справа. На рис. 3.5, справа - это интервалы (12; 15) и (25; 35).
2. График функции принадлежности р (зелёная линия) нечёткого множе-
ства «молодые люди» уже не прямая линия! А это значит, что мы имеем
дело с различными значениями принадлежности элементов к множеству!
Эти значения степени принадлежности (на вертикальной оси) находятся в
интервале между 0 и 1.
3. Там, где значения функции ц равны единице, мы имеем классическое мно-
жество А, как на рис. 3.5, слева. Если же рассматривать точки со значением р
меньшим единицы, то получим нечёткие границы множества молодых людей
(рис. 3.5, справа).
4. Таким образом, нечёткое множество содержит классическое множество, но
при этом за счёт размытости границ включает больше элементов по срав-
нению с классическим представлением. Это даёт большие преимущества в
решении многих задач искусственного интеллекта.
Дискуссия про нечёткие множества
Первый важный момент: у разных людей получаются разные нечёткие мно-
жества.
— Почему? — удивилась Аня.
— Степень принадлежности к нечёткому множеству (функция р(х)) является
субъективной мерой. Она описывает степень уверенности человека (эксперта) в
том, насколько данный элемент х принадлежит к данному нечёткому множеству.
А эта уверенность у разных людей разная.
Поэтому часто про нечёткие множества и нечёткую логику говорят, что они свя-
заны со знанием экспертов и экспертными оценками.
Для того чтобы уйти от субъективности, в некоторых системах ИИ тип функции
принадлежности нечёткого множества и его границы выбираются автоматически
по заданным критериям (например, с помощью генетических алгоритмов).
Я надеюсь, что вы познакомитесь с ними в нашем технопарке.
Второй важный момент: форма (или тип) графика функции принадлежности
нечёткого множества может быть разной. В нашем представлении множества
«молодые люди» эта функция имеет трапециевидную форму. Но могут быть и дру-
гие, например треугольная форма, как показано на рис. 3.6, или в виде гауссовой
функции, как на рис. 3.7.
С помощью треугольных функций описываются, например, нечёткие числа.
Рис. 3.6
ОТ НЕЧЁТКИХ МНОЖЕСТВ К НЕЧЁТКИМ
ВЫСКАЗЫВАНИЯМ И НЕЧЁТКОЙ ЛОГИКЕ
Вернёмся к началу нашей беседы. Мы обсуждали, что люди часто говорят, на-
пример, так: «чай — горячий», «у ребёнка высокая температура», «расстояние до
метро небольшое», «Сергей — молодой». Это примеры нечётких высказываний.
Рассмотрим простой пример.
Допустим, у нас есть нечёткое высказывание «Сергей — молодой», истинность
которого будем вычислять следующим образом. Пусть значение «молодой» линг-
вистической переменной «возраст» описывается нечётким множеством «молодые
люди», которое мы построили. Пусть возраст Сергея равняется 32 годам. Значе-
ние истинности нечёткого высказывания «Сергей — молодой» вычисляется про-
сто: берётся значение рд(х) = рд(32) = 0,25. Это показано на рис. 3.8. Как видите —
это значение не ноль и не единица!
ВОЗРАСТ — 32 года
Рис. 3.8
Формально простое нечёткое высказывание представляет
собой следующее высказывание: х есть А В этой формуле х
представляет собой лингвистическую переменную (например,
«расстояние», «скорость», «температура», «возраст» и так далее),
а нечёткое множество А описывает значения этой переменной.
Мы с вами выяснили важный факт: истинность нечётких высказываний может
быть любым значением из интервала [0,1], а не ноль или единица, как в классиче-
ской логике!
Е1122У 1-061 С. Нечёткие логические операции
В нечёткой логике (Тиггу 1одю) так же, как и в классической логике, вводятся ло-
гические операции, которые позволяют из простых суждений строить сложные.
— Вспомните, как в классической логике вычисляется истинность сложных вы-
сказываний? — спросил Профессор.
Анна задумалась, и Артём ответил первым:
— Логик рисовал таблицу истинности для логических операций. И там всё было
написано.
— Правильно! А вот в нечёткой логике вместо таблицы истинности задаются
формулы, по которым мы будем вычислять значения истинности сложного выска-
зывания.
Формулы вычисления истинности сложных высказываний я вам покажу вот в
этой таблице (табл. 3.2).
Таблица 3.2
Нечёткая конъюнкция АлВ (А и В) М ДлВ (х) = т'п (Мд (х)> Ме (х)) или М ДлВ (х) = Мд (х) • МВ (х) Здесь «•» означает операцию умножения
Нечёткая дизъюнкция АчВ (А или В) м ДлВ (х) = тах (Мд (х)- Мв (х))
Нечёткое отрицание Д (не А) Мд(х) = 1-Мд(х)
Нечёткая импликация /?= А^В. Здесь А и В — нечёткие высказыва- ния со своими функциями принадлеж- ности Мя(х,у) = Мд(х)лре(у) (импликация Мамдани). Замечу, что существует несколько интерпретаций нечёткой импликации. Я привёл ту, которая нам будет нужна
Итак, в нечёткой логике по аналогии с классической логикой вводятся следую-
щие операции: нечёткая конъюнкция (или нечёткое умножение), нечёткая дизъ-
юнкция (или нечёткое сложение), нечёткое отрицание и нечёткая импликация (или
нечёткое следствие).
Для того чтобы понять, как работают эти формулы, проще посмотреть на
рис. 3.9, на котором графически показано, как строятся функции принадлежности
нечётких высказываний (А и В), (А или В), (не А) и «из А следует В».
ПРИМЕЧАНИЕ. На рис. 3.9 в качестве примера функций принадлежности
нечётких множеств А, В выбраны треугольные функции.
М(х)а
М(х)м
Рис. 3.9
ОТ НЕЧЁТКИХ ВЫСКАЗЫВАНИЙ К НЕЧЁТКОМУ ВЫВОДУ.
ОБОБЩЁННОЕ ПРАВИЛО «МОДУС ПОНЕНС»
— Вспомним основную задачу логики, — продолжил свой рассказ Профес-
сор. — Она состоит в... чём? В том, чтобы разработать правила вывода, с по-
мощью которых из истинных суждений можно получать (выводить) новые истин-
ные суждения.
В нечёткой логике возникает та же самая проблема: как получать новые выска-
зывания из имеющихся нечётких высказываний и как оценивать их истинность?
Об этом мы сейчас будем говорить.
Давайте вспомним, как работает процедура вывода в классической логике.
Воспользуемся одним из классических правил вывода, которое называется
правилом «модус поненс».
Классическое правило «модус поненс»
Если А является истинным высказыванием и верно, что из А всегда следует
В, то тогда В тоже является истинным высказыванием:
Посылка 1 (входной факт): А
Посылка 2:А—>В
Заключение (вывод): В
А теперь сделаем обобщение на нечёткий случай следующим образом.
Обобщённое правило «модус поненс»
Нечёткая посылка 1 (входной факт): (х есть Д')
Нечёткое правило (посылка 2): ЕСЛИ (х есть А), ТО (г есть В)
Заключение (нечёткий вывод): (г есть В')
Символьная запись Д': читается как «Д штрих». В этом правиле Д', Д, В, В'
представляют собой нечёткие множества.
— Уважаемый Профессор, не могли бы Вы привести какой-нибудь понятный
пример? — попросила Аня.
— Да, конечно. Вот, например, такие рассуждения, про ягоду-малину. Посмо-
три.
Эта ягодка малины (х) — слегка красная (х есть Д').
Если «малина — красная» (х есть Д), то «малина — спелая» (х есть В).
Заключение: «Эта ягодка малины (х) — слегка спелая» (х есть В').
— Понимаешь идею, Анна?
— Понимаю, — задумавшись, ответила Аня. — А если я скажу, например, так:
«этот банан — немного жёлтый. Если бананы — жёлтые, то они — спелые. Значит,
этот банан — немного спелый». Это будет нечёткий вывод?
— Ты правильно уловила идею, — похвалил Профессор. — Да. Это нечёткий
вывод.
А теперь идёмте дальше. Посмотрим, как нам вычислять истинность нечёткого
заключения.
Ещё раз посмотрим внимательно на обобщённое правило вывода в нечёткой
логике. Мы видим, что результатом нечёткого вывода является некоторое нечёт-
кое высказывание (х есть В'), которое называется нечётким заключением, или
нечётким выводом.
Что представляет собой это множество В'? Другими словами, как построить его
функцию принадлежности? Вот о ней мы сейчас и поговорим.
— А зачем о ней говорить? — удивилась Анна.
— Ты упускаешь главное! Нам надо понять, какова истинность нечёткого за-
ключения, полученного с помощью обобщённого правила вывода?
Что такое нечёткий вывод и нечёткие вычисления?
Рассмотрим простой случай нечёткого вывода, когда у нас есть один входной
факт (нечёткая посылка 1: «х есть Д'») и одно нечёткое правило «ЕСЛИ (х есть А),
ТО (г есть В)».
В нечётком выводе мы будем использовать обобщённое правило вывода «мо-
дус поненс».
В теории нечёткого вывода доказываются формулы, согласно которым можно
вычислить функцию принадлежности нечёткого заключения (множества В'), зная
функции принадлежности нечётких множеств А', А и В.
Вот эта формула — полюбопытствуйте!
ре, (2) = тах [щ,(х) л рл(х)] лрв(2) = ®л ре (г). (3.1)
— Уважаемый Профессор, извините, что перебиваю, — произнес Артём. — Но
нам с Аней пока не очень понятно, что означает эта ваша формула.
— Сейчас всё объясню. Вы главное помните, как нужно относиться к формуле.
Если сразу не ясно, не пугайтесь! Для того чтобы процедура вычисления формулы
(3.1) была более понятной, я нарисую схему, на которой покажу, как это проис-
ходит. Хотите?
— Конечно!
Нечёткие вычисления — это процесс нечёткого вывода на основе нечётких пра-
вил и нечёткой входной информации.
Итак, допустим пока, что у нас есть один входной факт. Он называется также
нечёткой посылкой 1:
(х есть А').
И у нас есть одно нечёткое правило:
ЕСЛИ (х есть А), ТО (г есть В).
Задача нечёткого вывода — вычислить функцию принадлежности нечёткого за-
ключения (г есть В'). Другими словами, построить нечёткое множество нечёткого
вывода.
Алгоритм нечёткого вывода
Шаг 1. На первом шаге осуществляем операцию нечёткой конъюнкции двух не-
чётких высказываний: (х есть А') л (х есть А). Для этого пользуемся формулой вы-
числения (3.1) и формулами из табл. 3.2.
Результат этой операции (нечёткой конъюнкции) показан на рис. 3.10, слева
красной линией. Это функция принадлежности данной операции нечёткой конъ-
юнкции.
Шаг 2. Определяем максимальное значение этой функции (точка со) и получаем
константу со. Это тоже показано на рис. 3.10.
Шаг 3. Берём правую часть нашего нечёткого правила «...ТО (г есть В)» и вы-
числяем операцию нечёткой конъюнкции (со л цв(г)). Результат этой операции —
нечёткое множество Вкоторое и является заключением нечёткого вывода.
На рис. 3.10, справа зелёной линией показана функция принадлежности нечёт-
кого множества В', которую мы построили.
Левая часть нечёткого правила Левая часть правила
ЕСЛИ (х есть А) ЕСЛИ (г есть В)
Нечёткая посылка 1 (входной факт): Заключение (нечёткий выход):
(х есть А') (х есть В')
Рис. 3.10
Нечёткий вывод в случае нескольких нечётких правил
Мы познакомились с простейшей вычислительной процедурой нечёткого выво-
да, которую представляет формула (3.1). Она показывает, как можно вычислять
нечёткое заключение, если у нас есть одно нечёткое правило «если-то».
Однако в системах нечёткого вывода таких нечётких правил может быть мно-
го. В этом случае результат нечёткого вывода вычисляется следующим образом.
В соответствии с обобщённым правилом вывода «модус поненс» и согласно фор-
муле (3.1) по каждому правилу строят заключение, представляющее собой нечёт-
кое множество.
Затем все нечёткие заключения «складывают» по правилу нечёткой логиче-
ской дизъюнкции (нечёткого сложения). Получают результат нечёткого вывода в
виде нечёткого множества.
Этот процесс я покажу на примере нечёткого вывода на основе четырёх нечёт-
ких правил. Вот посмотрите на мой рис. 3.11, справа.
— Уважаемый Профессор, всё-таки хотелось бы посмотреть на какой-нибудь
пример, как работает эта ваша нечёткая логика, — попросил Артём.
— Обязательно. Об этом мы сейчас и поговорим.
Какая связь между человеческой стратегией принятия
решений и нечёткой логикой?
у — скорость
г — ускорение
----►
х—расстояние между автомобилями
Человек на автомобиле едет по своей полосе дороги и следит за движущимся
впереди него транспортом. Какими стратегиями управления автомобилем в дан-
ной ситуации пользуется человек-водитель?
Обсудим, как рассуждает и принимает решения в данной ситуации человек-
водитель.
Человек оценивает расстояние между своим автомобилем и автомобилем впе-
реди и в зависимости от этого расстояния принимает решение увеличить или
уменьшить свою скорость движения. Например, если расстояние между автомо-
билями маленькое, то он тормозит.
Обычно свои стратегии поведения люди описывают с помощью правил, напри-
мер таких (для нашей ситуации).
Правило 1. Если расстояние между автомобилями короткое и скорость авто-
мобиля — маленькая, то сохраняй свою скорость. (Ускорение движения около
нуля.)
Правило 2. Если расстояние между автомобилями короткое и скорость автомо-
биля — большая, то быстро тормози. (Ускорение — отрицательное.)
Правило 3. Если расстояние между автомобилями большое и скорость — ма-
ленькая, то постепенно увеличивай свою скорость. (Ускорение — положитель-
ное.)
Правило 4. Если расстояние между автомобилями большое и скорость — боль-
шая, то сохраняй свою скорость. (Ускорение около нуля.)
Как формализовать человеческую стратегию принятия решений?
На помощь нам приходит нечёткая логика!
— Посмотрите внимательно на эти правила-стратегии. Что скажешь, Артём?
Пока Артём думал, Аня, разглядывая правила, заметила:
— Правила как правила. А вот что с ними будет делать наш робот?
— Роботу надо иметь интеллектуальную систему управления движением,
которая будет использовать эти правила.
— А как её создать? — спросил Артём.
— Сейчас расскажу. Пусть вместо человека машину ведет робот-шофёр. До-
пустим, что система управления будет использовать базу знаний, в которой со-
держатся правила 1,2, 3, 4, которые я привёл. Что делать дальше? Будем строить
интеллектуальную систему управления на основе нечёткой логики.
Для этого сделаем следующие шаги.
Шаг 1. Введём следующие лингвистические переменные: х обозначает «рас-
стояние» (между автомобилями), у — «скорость» автомобиля, т. — «ускорение»
автомобиля.
Шаг 2. Значения этих лингвистических переменных будем описывать с по-
мощью нечётких множеств. В этом случае наши правила «если-то» представляют
собой не что иное, как сложное нечёткое высказывание , А /\ В С, где л — опе-
рация нечёткой конъюнкции, а — операция нечёткой импликации.
Шаг 3. Запишем приведённые правила-стратегии математическим языком.
Введём следующие обозначения для нечётких множеств.
Для лингвистической переменной «расстояние»:
• Д1 — нечёткое множество «короткое»;
• А2 — нечёткое множество «большое».
Для лингвистической переменной «скорость»:
• В— нечёткое множество «маленькая»;
• В2 — нечёткое множество «большая».
Для лингвистической переменной «ускорение»:
• С1 — нечёткое множество «почти ноль»;
• С2 — нечёткое множество «отрицательное»;
• С3 — нечёткое множество «положительное».
Теперь наши правила будут выглядеть очень компактно и понятно. В общем
виде их можно записать следующим образом:
ЕСЛИ (х есть А) и (у есть В), ТО (г есть С).
Перепишем наши правила так:
Правило 1: ЕСЛИ (х есть А^ И (у есть В^), ТО (г есть Ц.
Правило 2: ЕСЛИ (х есть А^ И (у есть В2), ТО (г есть С2).
Правило 3: ЕСЛИ (х есть А2) И (у есть В^), ТО (г есть Ц.
Правило 4: ЕСЛИ (х есть А2) И (у есть В2), ТО (г есть Ц.
Теперь они выглядят компактно и понятно.
— Попробуйте проверить, правильно ли я записал эти правила, — сказал учё-
ный. — Возьмём, например, правило 2. Кто из вас? Артём, прошу.
— Хорошо. В правиле 2 написано, что если расстояние—короткое, и скорость —
большая, то быстро тормози. Так. «Короткое» — это множество Аг «Большая» —
это множество В2, «быстро тормози» означает, что ускорение движения — отри-
цательное. Это нечёткое множество С2. Значит, в формальном виде это правило
можно записать так:
ЕСЛИ (х есть А^ и (у есть В2), ТО (г есть С2).
Мой ответ: да, верно.
— Молодец! Хвалю. Идёмте дальше. Теперь нам надо определить все эти не-
чёткие множества. Как ты думаешь, Артём, что значит «короткое расстояние» в
заданной (в нашем примере) ситуации?
— Не знаю. Обычно, если я, например, перехожу дорогу без светофора, то смо-
трю на дорогу и вижу, большое или маленькое расстояние до движущегося транс-
порта. Я даже не задумываюсь точно, сколько это значит.
— Всё правильно. За тебя решает твой мозг, который уже научился это делать
(то есть оценивать расстояние в той или иной ситуации принятия решения). А вот
роботу надо весь этот процесс описать.
— Понимаю.
— Опишем все нечёткие множества, которые используются в наших правилах,
с помощью рис. 3.12. Для простоты вместо формул для функций принадлежности
воспользуемся их графиками.
короткое^
«большое»
«маленькая»
«большая»
О 10 20 30 40 50 ... 500
Расстояние,м
0 10 20 30 40 50 70... 120
Скорость, км/ч
мФ
«ПОЧТИ 0»
«отрицательное»
-20 -10 0 10 20 Ускорение
км/ч2
Рис. 3.12
— Посмотри на графики, Анна. Можешь сказать, что значит «короткое расстоя-
ние»? Это сколько метров? — спросил Профессор.
Аня внимательно разглядывала рисунки функций принадлежности нечётких
множеств на рис. 3.12, а затем сказала:
— Глядя на первый рисунок, я вижу, что 10 метров — это точно короткое рас-
стояние. Значение функции р(10) = 1. А вот если посмотреть на значение 20 ме-
тров, то получается, что это может быть как короткое расстояние, так и большое.
Тут какое-то противоречие!
— Молодец! Хорошее замечание. Отвечаю. Если бы мы рассуждали в рамках
классич еской логики, то это было бы противоречивым суждением. Однако в
рамках нечёткой логики такие высказывания допустимы. И более того, использо-
вание таких суждений позволяет находить хорошие решения в условиях неполной
и неточной информации.
— Артём, можешь объяснить, что показано на последнем, третьем, рисунке? —
спросил Профессор.
— Насколько я понимаю, нечёткое множество «почти 0» описывает значение
лингвистической переменной «ускорение» (для действия «сохраняй скорость»).
Нечёткое множество «отрицательное» (ускорение) используется для действия
«тормози», а нечёткое множество «положительное» — для действия «ускоряйся».
Так, Профессор?
— Совершенно верно.
ОТ НЕЧЁТКОЙ ЛОГИКИ К НЕЧЁТКОМУ УПРАВЛЕНИЮ
— Я вот всё думаю, — продолжил беседу Профессор, — любую ли человече-
скую стратегию принятия решений можно запрограммировать? Как эти процес-
сы уместить в рамки логически последовательного вычислительного процесса?
Сводится ли одно к другому? В чём загвоздка? Другими словами, я хочу понять,
всякое ли мышление есть вычисление?
— Хитрый вопрос, Профессор! — задумчиво сказал
Артём. — Я пока не знаю ответа, но надеюсь найти его,
когда закончу университет.
— Прекрасная цель! — воскликнул Профессор. — Од-
нако я опять увлёкся! Займёмся делом и продолжим рас-
сматривать пример, связанный с ездой по дороге.
Обсудим, как робот может использовать эти
правила-стратегии для управления своим движе-
нием.
— Я не понимаю, как из каких-то словесных правил
можно вычислить силу управления?! — спросила Аня.
— Управляющий сигнал вычисляется не из как-то
слов, а из экспертных знаний! — ответил Профессор и
улыбнулся. — А вот как — послушайте, я к этому и веду.
Робот — сложное механическое устройство, а меха-
низму надо точно указать, какую силу мотора следует
произвести, чтобы сделать следующий шаг. Следова-
тельно, роботу нужно уметь вычислять конкретную силу мотора, необходимую для
передвижения во внешней среде. Для этого нужна система управления, которая
бы управляла движением робота не хуже человека.
Это умение реализуется в интеллектуальных системах управления, в кото-
рых используются базы знаний (правил), описывающих стратегии управления.
Система управления с базой знаний это уже не просто система автоматическо-
го управления движением (их называют ещё САУ), а интеллектуальная система
управления движением.
Если в базе знаний используются нечёткие правила, то система управления на-
зывается нечёткой системой управления.
Обсудим, как устроены такие системы.
Общая структура нечёткой системы управления
движением
Общая структура нечеткой системы управления движением показана на
рис. 3.13. Посмотрите, друзья.
Рис. 3.13
— Что это за слова такие, — шепнула Аня Артёму, — «фаззификация», «дефаз-
зификация»? Язык сломаешь...
— Да, интересные слова, — ответил Артём. — Подожди, сейчас всё узнаем.
— Готовы слушать? — глядя на них и улыбаясь, произнёс Профессор.
— Готовы! — смутилась Аня и замолчала.
— Ну что ж, сейчас будем говорить о том, как устроены нечёткие системы управ-
ления движением.
• В любой системе управления движением используются показания от раз-
личных датчиков. В нашем примере для управления движением это показания
датчика скорости движения автомобиля и датчика расстояния, фиксирующего
расстояние до машины впереди в той же полосе движения.
• В каждый такт управления (например, через каждые 10 секунд) датчики из-
меряют значения скорости и расстояния. Например, пусть в какой-то момент вре-
мени 10 датчики измерили значения расстояния до идущего впереди автомобиля
х0 = 22 м и скорость управляемого автомобиля у0 = 28 км/ч.
• Эти показания поступают на вход нечёткой системы управления, структура
которой показана на рис. 3.13.
• На выходе формируется значение управляющего сигнала.
Посмотрим, как это реализуется в нечёткой системе.
База правил содержит множество нечётких правил, описывающих стратегию
управления движением.
База данных содержит описания всех функций принадлежности всех нечётких
множеств, присутствующих в нечётких правилах.
ПРИМЕЧАНИЕ. Стратегии управления движением могут быть получены либо от
человека-эксперта, либо в результате обучения, либо с помощью специальных
методов поиска стратегий, например, с помощью генетических алгоритмов.
Перевод числовых значений от датчиков
в нечёткий формат
Если мы ещё раз посмотрим на графическую схему нечёткого вывода (рис. 3.10),
то увидим, что входной факт представляет собой некоторое нечёткое высказыва-
ние. А в нашей задаче управления движением мы имеем на входе в нечёткую си-
стему управления не нечёткое высказывание, а числовые значения от датчиков.
— Получается, что делать нечёткий вывод нельзя? — спросил Артём.
— Не совсем так. Для того чтобы использовать алгоритм нечёткого вывода в та-
ких задачах, учёные придумали две специальные процедуры. Одну назвали фаз-
зификацией, вторую — дефаззификацией.
С помощью процедуры фаззификации числовые значения от датчиков х и у
переводятся в нечёткий формат, то есть представляются в виде некоторого не-
чёткого множества.
Существуют два возможных варианта такого отображения.
Синглетон-фаззификатор
(от английских слов 51пд1еЬоп /игп'рег).
В этом случае нечёткое множество А' для входного
числового значения х = а определяется очень просто:
. . [ 1, X = О;
^(ХНо,х=о.
Во многих приложениях, включая управление динамическими
объектами, используется синглетон-фаззификатор.
Несинглетон-фаззификатор
(от английских слов поп51‘пд1е(:оп [ихдрег).
В этом случае в качестве функции принадлежности используется,
например, функция
рд, (х) = ехр - (х ,
где о2 - параметр, характеризующий форму рд, (х).
Несинглетон-фаззификатор может быть полезен там,
где данные подвержены искажению шумом.
Замечание
В этом случае я так же, как и во всех других главах, прошу вас спокойно по-
смотреть на формулы и обратить свой взор на следующий за формулами
текст, который проясняет суть этих формул.
После процедуры фаззификации осуществляется процедура нечёткого вывода
так, как она показана на графической схеме нечёткого вывода (см. рис. 3.10).
Перевод результата нечёткого вывода
в числовой формат
Результатом процедуры нечёткого вывода является нечёткое высказывание
«г есть С», где С — нечёткое множество, задающее управляющий сигнал (смо-
трим снова на графическую схему нечёткого вывода, рис. 3.10).
Однако для задач управления движением нам нужно иметь на выходе нечёт-
кой системы управления конкретное значение выходной переменной 7, которая
определяет управляющий сигнал. В нашем примере это ускорение (для действия
«тормози», например). Для этого используется вторая специальная процедура,
которая называется дефаззификацией. Она переводит результат вычисления
в виде нечёткого множества в числовое значение переменной г.
Существует несколько вариантов такой процедуры. Например, во многих за-
дачах управления используется дефаззификатор, который называется «средний
максимум». Он показан на рис. 3.14.
Рис. 3.14
А теперь посмотрим на весь вычислительный процесс, который происходит в
нечёткой системе управления движением.
Как уложить процесс принятия решений человеком
в рамки вычислительного процесса?
Профессор сделал паузу и продолжил.
— Помните, мы рассуждали о том, как уложить процесс принятия решений че-
ловеком в рамки логически последовательного вычислительного процесса? —
спросил Профессор. — Так вот он, этот вычислительный процесс! Посмотрите на
рис. 3.15. Мы с вами его обсудили!
ТОРМОЗИ!!! *
х = 22 м у = 28 км/ч г = -3 км/ч2 -------->1
Рис. 3.15
Выходные данные от датчиков
Выходные данные нечёткого вывода
Анна с Артёмом разглядывали новую картинку.
— Неужели, чтобы двигаться, роботу надо столько вычислять? — задумчиво
спросил Артём.
— Да, это так, — ответил Профессор. — Мы, люди, делаем это каждый день
и час. Наш мозг привык выполнять различные движения, и у людей это проис-
ходит на бессознательном уровне, автоматически. Природа трудилась над этим
многие миллионы лет.
А вот для роботов процесс передвижения — сложная задача. И тут без новых
интеллектуальных вычислений не обойтись! Чем мы собственно и занимаемся.
Основные идеи нечёткого управления движением
Сформулируем основные идеи нечёткого управления движением в некоторой
заданной ситуации управления.
1. Можно описать словами стратегию человеческого поведения, то есть вы-
бора действий по управлению движением в данной ситуации (в нашем при-
мере при езде по дороге). Например, что делать, если расстояние между
машинами быстро уменьшается? Что делать, если машина впереди быстро
тормозит? И так далее. Примеры таких правил были приведены на стра-
нице 127.
2. Потом записать все эти правила как нечёткие, а значения всех лингвистиче-
ских переменных, которые присутствуют в этих правилах, описать с помощью
нечётких множеств.
3. Затем можно написать программу (для компьютера) нечёткого управления
движением, которая реализует схему управления, показанную на рис. 3.15.
Результатом работы этой программы будет вычисление управляющего сиг-
нала в каждый момент времени (такт) управления. Подавая этот сигнал на
вход исполнительных органов, робот может выполнять различные типы пере-
движения.
СКОРО ЛИ АВТОМОБИЛИ СМОГУТ ЕЗДИТЬ ПО ДОРОГАМ
САМИ БЕЗ ШОФЁРА?
— А расскажите, пожалуйста, напоследок, где все эти идеи нечёткого управле-
ния применяются? — попросил Артём.
— С удовольствием. Сразу скажу, что нечёткая логика принесла огромную
пользу во многих практических областях современного мира, и с каждым годом
количество практических применений нечёткой логики только увеличивается. По-
говорим о том, скоро ли автомобили смогут сами без шофёра ездить по дорогам
и перевозить грузы?
Аня задумалась, потом озадаченно посмотрела на Артёма, и он пришёл ей на
помощь.
— Как мы только что видели, эта задача имеет решение, — ответил Артём. —
А ещё я читал, что некоторые автомобильные компании уже представляют на вы-
ставках свои прототипы беспилотных автомобилей.
— Совершенно верно, будущее с беспилотными автомобилями — не за гора-
ми, — заметил Профессор.
— Вот, например, прототип беспилотного автомобиля без руля и педалей от
компании 6оод!е. Посмотрите.
— Правда, симпатичная машинка? —
спросил Профессор.
— Да, — воскликнула Аня, — действи-
тельно симпатичная и маленькая. Инте-
ресно, а что она умеет?
— Как вы понимаете, пока это прото-
тип, и он тестируется. Такая машина ка-
тается только по специальному полигону
с небольшой скоростью. Умеет повора-
чиваться и старается избегать препят-
ствий.
— А вот вам ещё один интересный пример. Это робошатл — маленький бес-
пилотный автобус (японской компании ОеЫА), который может перевозить шесть
пассажиров. В удалённых от крупных городов горных районах Японии такие ав-
тобусы — незаменимые помощники для пенсионеров, которым нужно иногда вы-
бираться в больницы или магазины. Одним из экспериментальных пунктов стал
посёлок Нисиката. Пока проводятся испытания такого маршрута, а к 2020 году
планируется запустить этот робошатл по маршруту. Правда, здорово?
— Здорово! Вот бы нам с Артёмом прокатиться на таком робошатле! — вос-
кликнула Аня.
— Да, я согласен, и особенно по горным дорогам Японии, — добавил Артём.
— Однако не все беспилотные машины могут ездить по любым дорогам и в
любых условиях, — заметил Профессор и продолжил: — Но это вопрос времени.
Учёные в области искусственного интеллекта, проектировщики, инженеры робо-
тотехнических и мехатронных систем работают над этим, и уже есть хорошие ре-
шения. Научная мысль не стоит на месте.
ВОТ ТАКАЯ ЭТА НАУКА Р022У Ю61С
— Это что же получается? — спросила
Аня. — Скоро будут одни беспилотные автомо-
били. И что тогда делать людям, у которых про-
фессия — шофёр?
— Например, заниматься любимым хобби,
творчеством, при этом получая свою зарпла-
ту за ту работу, которую за него выполнила
машина-робот, — предложил Профессор.
— Ух ты! Как здорово! — обрадовалась де-
вочка.
— Конечно, это пока из области фантасти-
ки, — заметил Профессор. — Нам предстоит
ещё многое понять и сделать. При этом усилия
новых поколений учёных нам очень пригодят-
ся! Поэтому учитесь, друзья, и приходите к нам на смену! А на сегодня, пожалуй,
всё. И вот вам напоследок фото автора нечёткой математики профессора Лотфи
Заде — познакомьтесь! (Он в центре, с Профессором и автором читаемой вами
книги.)
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 3
1. Значения какой лингвистической переменной описывают
следующие нечёткие высказывания: «Иван - молодой»,
«Анна Петровна - старая», «От моего дома до школы близко»,
«Станция метро - далеко», «Черепаха ползёт медленно»?
2. Опишите нечёткие значения «близко», «далеко» в виде нечётких
множеств.
3. Постройте нечёткое множество для нечёткого высказывания
«не далеко и не близко».
4. Какое правило вывода используется в нечёткой логике?
5. Опишите нечёткие правила принятия решений при переходе
человеком проезжей дороги в отсутствии светофора.
6. Что такое нечёткое управление движением робота?
В ГОСТЯХ У ДЖОНА, РАЗРАБОТЧИКА
ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ
В которой Артём и Аня вместе с Профессором оказались в гостях у очень интересного
учёного — разработчика генетических алгоритмов. Ребята беседуют с двумя учёными,
которые рассказывают удивительные вещи об алгоритмах эволюции в природе. Оказы-
вается, что идеи эволюции в природе можно применить для решения задач ИИ. Учёные
рассказали, как возникло новое направление в ИИ, которое называется мягкими вычис-
лениями, и почему они «мягкие». Школьники узнали, как можно использовать идеи ге-
нетических алгоритмов для поиска хороших баз знаний для нечётких систем управления
движением. Ребята с удивлением узнали, что идеи ГА используются в разработке систем
управления автоматической парковкой беспилотного автомобиля.
ГЛАВА 4. В ГОСТЯХ У ДЖОНА, РАЗРАБОТЧИКА ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ (140)
ЧТО ТАКОЕ МЯГКИЕ ВЫЧИСЛЕНИЯ И ЧТО В НИХ МЯГКОГО? (142)
В ГОСТЯХ У РАЗРАБОТЧИКА ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ. РАЗГОВОР С АЛИСОЙ (144)
ЗНАКОМСТВО С ДЖОНОМ И ЕГО ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ (145)
КАКАЯ СВЯЗЬ МЕЖДУ ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ,
ГЕНЕТИКОЙ И ОПТИМИЗАЦИЕЙ? (146)
Основные алгоритмические идеи эволюции,
которые математик подсмотрел у природы (147)
ЭВОЛЮЦИЯ КАК ПОИСК ЛУЧШИХ РЕШЕНИЙ В ЗАДАЧЕ ОПТИМИЗАЦИИ (148)
СЕЛЕКЦИЯ В ПРИРОДЕ (149)
РАЗГОВОР О ЦЕЛЯХ БИОЛОГИЧЕСКОЙ И МАТЕМАТИЧЕСКОЙ ЭВОЛЮЦИИ
И ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ (150)
ОСОБЕННОСТИ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ (152)
ГЕНЕТИЧЕСКИЙ АЛГОРИТМ НА ПРИМЕРЕ ПРОСТЕЙШЕЙ ЗАДАЧИ (153)
Предварительный этап: выбор способа кодирования хромосом (153)
Шаг 1: создаём начальную популяцию хромосом (решений) (155)
Шаг 2: оцениваем качество каждой хромосомы в популяции (156)
Шаг 3: селекция, или выбор родителей (158)
Шаг 4: генерация потомков (150)
ПРОЦЕДУРА МУТАЦИИ (162)
ЦИКЛ ЭВОЛЮЦИИ. КРИТЕРИЙ ОСТАНОВА В ГЕНЕТИЧЕСКОМ АЛГОРИТМЕ (163)
ВАЖНАЯ ТЕОРЕМА О СХОДИМОСТИ ГЕНЕТИЧЕСКОГО АЛГОРИТМА (164)
РАССКАЗ ДЛЯ ГИКОВ. ЗАДАЧА АВТОМАТИЧЕСКОЙ ПАРКОВКИ МАШИНЫ (165)
ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ ДЛЯ ЗАДАЧ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА (166)
Задача автоматической парковки машины (166)
Построение модели управления в задаче парковки (166)
Интеллектуальная система управления движением парковки машины (168)
Построение нечёткого контроллера с использованием генетического алгоритма (169)
Определение нечётких значений для входных и выходных переменных (170)
Построение базы знаний (173)
Переход к хромосомам (174)
Способ бинарного кодирования базы правил нечёткого контроллера (175)
Декодирование хромосом (176)
Оценка качества хромосом (177)
ИНТЕЛЛЕКТУАЛЬНАЯ ПАРКОВКА «ПАРК-АССИСТ» ДЛЯ ФОЛЬКСВАГЕНА (180)
ПОДВОДИМ ИТОГИ (182)
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 4 (183)
ЧТО ТАКОЕ МЯГКИЕ ВЫЧИСЛЕНИЯ
И ЧТО В НИХ МЯГКОГО?
В следующий раз Аня и Артём снова приехали в лабораторию Профессора. Ре-
бята договорились с ним обсудить новое направление, которое называется «мяг-
кие вычисления».
— Здравствуйте, уважаемый Профессор. Вы обещали рассказать нам с Артё-
мом, что такое мягкие вычисления! — произнесла Аня. — Вы сказали, что без этих
знаний мы не сможем создавать умных роботов.
— Помню-помню, — обрадовался приезду школьников Профессор. — Расскажу
с большим удовольствием. Прошлый раз мы с вами обсудили, какие идеи лежат в
основе нечётких вычислений и как они используются в системах ИИ. Верно?
Ребята кивнули, и он продолжил.
— Нечёткие вычисления стали большим достижением в АйТи-технологиях
XX века. Однако довольно быстро выяснилось, что для создания интеллектуаль-
ных систем одних нечётких моделей недостаточно.
— Почему? — спросил Артём. — Ведь они как раз реализуют человеческие
стратегии поведения в системах искусственного интеллекта. Мы же об этом не-
давно говорили.
— Всё так. Мы об этом говорили. Но... Нечёткие системы предполагают нали-
чие базы знаний. А вот откуда её брать? Не всегда под рукой человек-эксперт,
который всё знает о своей предметной области и может сформулировать нечёт-
кие правила, нужные для решения поставленной задачи. Особенно это касается
систем управления движением.
В сложных ситуациях движения никакой эксперт не поможет. Нужны новые под-
ходы к решению задач управления сложных типов движения. (Примеры такого
управления вам могут показать мои молодые коллеги из нашей лаборатории.)
Для того чтобы создавать базы знаний для решения проблем управления во
многих ситуациях, включая непредсказуемые, потребовались новые модели вы-
числений и новые программные «инструменты» (рис. 4.1).
— Так возникло новое направление в ИИ, которое стало называться зоП
сотриНпд. В нашей научной литературе этот термин перевели как «мягкие вы-
числения».
— Странное какое-то название. Что «мягкого» в мягких вычислениях? — спро-
сила Аня.
Профессор улыбнулся и ответил.
— Мягкие — в смысле гибкие. «Мягкие вычисления» по смыслу более всего
подходят к понятию «гибкие способы поиска решений» — то, что характерно че-
ловеческому умению поиска решений. Обычно это способы работы с неточной,
приближённой, неполной информацией.
Со временем под термином «мягкие вычисления» стали иметь в виду совокуп-
ность нескольких видов вычислений: нечёткие вычисления, генетические алго-
ритмы (сокращённо ГА) и вычисления, проводимые на искусственных нейронных
сетях (нейровычисления). Но обо всем по порядку.
Историческая справка
Впервые термин «мягкие вычисления» (по-английски он пишется как зоН
сотриНпд) появился в 1994 году в научной статье американского учёного Лотфи
Заде, того самого, который изобрёл понятие нечётких множеств. В этой статье
он высказал идею дальнейшего развития нечётких моделей поиска и принятия
решений в системах ИИ на основе новых видов вычислений. И предложил тер-
мин «зоП сотриНпд».
— А почему алгоритмы назвали генетическими? — спросил Артём.
— Если вам это интересно, то приглашаю вас обсудить этот вопрос с моим хо-
рошим другом, — предложил Профессор. — На следующей неделе я собираюсь к
нему в гости. Он занимается генетическими алгоритмами и любит любознатель-
ных гостей. Хотите?
— Конечно, с удовольствием пойдём! — воскликнула Аня. — Правда, Артём?
— Договорились. А сейчас пообщайтесь с моими коллегами, вам будет полезно.
В ГОСТЯХ У РАЗРАБОТЧИКА ГЕНЕТИЧЕСКИХ
АЛГОРИТМОВ. РАЗГОВОР С АЛИСОЙ
Скоро ребята в сопровождении Профессора оказались в гостях у очень инте-
ресного учёного. Оказавшись перед дверью дома, Артём позвонил, и дверь от-
крыла симпатичная старушка, которая оказалась мамой учёного.
Она ласково промолвила:
— Добро пожаловать! Вы, наверное, зашли в гости к моему сыну. Он у нас увле-
кается генетикой. Но сейчас его нет. Он ушёл в гости к какому-то Борису. Скоро
будет дома. Вы случайно, не знаете, кто такой Борис? — спросила она.
Быстро сообразив, что делать, Аня подошла к старушке и сказала:
— Конечно, мы знаем Бориса, мы сами только что от него. Он нам очень сове-
товал посетить вас!
— Да?! Я польщена! Тогда давайте знакомиться. Меня зовут Алиса. А вас как
величать? — обратилась старушка к Ане.
— Я — Аня. А — это мой друг Артём. А привёл нас к вам друг вашего сына. Мы
его зовём Профессор.
— О, сколько гостей! Рада, рада! Ну что ж, располагайтесь, мой сын должен
быть с минуты на минуту. А пока приглашаю вас выпить со мной чаю. Пройдёмте
в столовую на втором этаже.
Чаепитие прошло очень весело. Гости рассказали Алисе, кто они и чем зани-
маются. А она, в свою очередь, целый час рассказывала о том, как в школьной
юности играла Алису в спектакле «Алиса в Стране чудес». Старушка вспоминала
яркие моменты о том, как её угораздило попасть в Страну чудес, а затем в За-
зеркалье, и сколько трудностей ей пришлось преодолеть, чтобы превратиться в
королеву. А зачем ей это было нужно — так и не поняла и думает об этом всю
оставшуюся жизнь.
— Вот хотя бы эта история. Я её всегда вспоминаю, когда удаётся поболтать и
попить чай в приятной компании.
— Очень необычная старушка, — прошептала Аня.
— Это точно, — подтвердил Артём.
Тем временем Алиса, поглядывая на Профессора, продолжала:
— Я вспоминаю один очень интересный разговор с Королевой про «завтра, ко-
торое никогда не бывает».
«...Помолчав, Алиса робко промолвила:
— Я уже отчаялась...
Но Королева не дала ей договорить.
— От-ЧАЯ-лась? — повторила она. — Разве ты пьёшь чай, а не молоко? Не
знаю, как это можно пить чай! Да ещё утром!
Алисе не хотелось начинать знакомство спором. Она улыбнулась и сказала:
— Если Ваше Величество скажет мне, когда нужно пить чай, я постараюсь всег-
да следовать вашему совету.
— Детям пить чай совсем не надо! — сказала Королева. — Пусть пьют молоко!
Другое дело — взрослые... Я вот сейчас, к примеру, битых два часа отчаивалась...
с вареньем и сладкими булочками...
— Спасибо, но сегодня мне, право, варенья не хочется.
— Сегодня ты бы его всё равно не получила, даже если б захотела, — ответила
Королева. — Правило у меня твёрдое: варенье на завтра. И только на завтра!
— Но ведь завтра когда-нибудь будет сегодня!
— Нет, никогда! Завтра никогда не бывает сегодня!»
ЗНАКОМСТВО С ДЖОНОМ И ЕГО ГЕНЕТИЧЕСКИМ
АЛГОРИТМОМ
— Ия тогда ничего не поняла, — продолжила свой рассказ старушка. — Так что
прежде, чем желать превратиться в королеву, подумайте, нужно ли вам это?
И, улыбнувшись, добавила:
— Что такое завтра? Все мы живём или в прошлом, или в будущем. А в настоя-
щем мы будем когда-нибудь жить? Что ты думаешь, Аня?
— А разве сейчас мы с вами беседуем не в этом самом «настоящем»? — за-
метила Аня.
Хитроумная Алиса кивнула головой, взглянула на часы и добродушно промол-
вила:
— О, уже половина первого! Мне пора отдыхать. А вы подождите немного. Ско-
ро вернётся мой сын, уж он вам обо всём расскажет, что вас интересует. Он на
все ноги, ой, нет, на все руки — мастер. Хотя вы не по этой части... Но всё равно.
Завтра разберётесь, — сказала старушка и отправилась к себе, шепча «завтра,
всё будет завтра»...
Гости пожелали Алисе приятного отдыха и спустились в холл. Наконец пришёл
и хозяин этого дома. Это был высокий худощавый мужчина с копной вьющихся
волос и добродушной улыбкой.
Профессор подошёл первым и произнёс:
— Простите нас, дорогой друг, за вторжение в ваш дом. Нам любезно предоста-
вила свой дом ваша матушка.
— Рад вас приветствовать. Наш друг, Программист Борис, много рассказывал
о любознательных школьниках Ане и Артёме. Друзья, меня зовут Джон. Я к вашим
услугам. Что вас волнует?
— Мы очень рады познакомиться с Вами, Джон, — произнес Артём. — Меня зо-
вут Артём. А это Аня. Мы ещё учимся в школе, но уже сейчас хотим познакомиться
с наукой «искусственный интеллект», чтобы научиться создавать умных роботов.
Нам хотелось бы узнать, что такое генетические алгоритмы. Алиса сказала, что
вы генетик и во всём разбираетесь.
Джон улыбнулся и произнёс:
— Конечно, я помогу вам. Только моя матушка, как всегда, всё перепутала.
Я не генетик. Я специалист по генетическим алгоритмам. А это разные вещи. Но
я именно тот, кто вам нужен. И с радостью помогу вам. С чего начнём?
— Может, начнём с истории вопроса? — предложил Профессор.
— Хорошо. Давайте начнём с истории появления генетических алгоритмов на
свет.
КАКАЯ СВЯЗЬ МЕЖДУ ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ,
ГЕНЕТИКОЙ И ОПТИМИЗАЦИЕЙ?
— Знаете, что такое оптимизация? — спросил Джон.
— Я не знаю... — смутилась Аня.
— Это просто. Например, есть некоторая функция. Надо найти её максималь-
ное (или минимальное) значение. Это и есть задача оптимизации, или ещё гово-
рят «задача поиска оптимума». Так вот, Холланд создал метод поиска оптимума
на основе специального алгоритма, который назвал генетическим.
— А какая связь между алгоритмом и генетикой, почему он называется генети-
ческим алгоритмом? — спросил Артём.
— Замечательный вопрос! Сейчас объясню. Генетический алгоритм называет-
ся так потому, что он использует идеи естественной эволюции, которая связана
с генетикой.
— Хм, а ещё вопрос можно? — спросил Артём.
— Давай.
— А какое отношение этот алгоритм имеет к искусственному интеллекту?
— Вижу, что вы не зря прошли классы Логика, Программиста Бориса и нашего
уважаемого Профессора. Молодцы! — похвалил Джон и продолжил: — Для того
чтобы понять, какое отношение генетические алгоритмы имеют к искусственному
интеллекту, нам придётся начать с самого начала. Не будем пока забегать вперёд,
и начнём с основных идей, которые используют генетические алгоритмы.
Историческая справка
Понятие генетического алгоритма (сокращенно ГА) появилось в 1975 году
благодаря работам американского учёного Джона Холланда. Он изучал об-
щие законы эволюции в природе с точки зрения математика. И нашёл много
удивительного и полезного для своих математических задач. Джон Холланд по-
строил специальный ГА, идеи которого он подсмотрел у природы. Эти ГА можно
использовать для решения задач оптимизации, особенно в тех ситуациях, где
невозможно применить методы классической математики.
Оптимизация (в математике) - это нахождение экстремума
(максимума или минимума) целевой функции в некоторой
области конечного пространства значений аргументов функции.
Оптимизация в широком смысле - модификация системы
для улучшения её эффективности.
Основные алгоритмические идеи эволюции,
которые математик подсмотрел у природы
В общих чертах естественная эволюция — это процесс, который оперирует хро-
мосомами. Хромосомы кодируют живой организм с помощью специальных орга-
нических носителей, которые называются ДНК (сокращённо от слов дезоксирибо-
нуклеиновая кислота).
— Дезоксирибонуклеиновая... Выговорить это слово не очень просто, — заме-
тила Аня. — Прямо скороговорка какая-то.
— Согласен, поэтому обычно используется сокращённое название, ДНК, — за-
метил Джон. — Итак. Учёные-биологи установили, что каждый вид живого орга-
низма имеет своё определённое количество хромосом, которые кодируют всю
наследственную информацию данного живого организма. Например, у человека
имеется 46 хромосом.
В подробности ДНК мы вдаваться не будем. Для нас, учёных в области искус-
ственного интеллекта, важны идеи, которые математики подсмотрели у генети-
ков, изучающих эволюцию.
Первая идея. Поведение некоторого организма может быть закодировано с по-
мощью некоторой цепочки хромосом.
Вторая идея. Процесс естественной эволюции в природе основан на биологи-
ческом законе.
Третья идея. Биологический закон можно сформулировать следующим обра-
зом: эволюция в природе представляет собой выбор лучших представителей жи-
вых существ (то есть лучших решений) и их многократное воспроизводство.
— Благодаря эволюции на свет, между прочим, появились мы — представители
хомо сапиенс, — заметил Профессор.
— Конечно. Эволюция — великая вещь! — подтвердил Джон и продолжил: —
Так вот, мы хотим использовать идеи естественной эволюции для поиска лучших
решений в своих математических задачах.
Именно это и сделал Джон Холланд.
ЭВОЛЮЦИЯ КАК ПОИСК ЛУЧШИХ РЕШЕНИЙ В ЗАДАЧЕ
ОПТИМИЗАЦИИ
Для математического моделирования процесса эволюции нам важно — повто-
рю ещё раз — уяснить три важные мысли.
• Хромосомы кодируют структуру индивидуума, то есть живого организма.
• Множество индивидуумов (то есть популяция) развивается во времени бла-
годаря соревнованию: выживает наиболее подходящий — сильнейший, умнейший
или красивейший (то есть согласно некоторому критерию отбора).
• Наиболее успешные индивидуумы участвуют в процессе размножения
чаще, чем неуспешные.
— Аня, тебе это должно быть особенно интересно — ведь ты же любишь био-
логию! — заметил Артём.
— Да, я люблю изучать, как всё в природе устроено. И это очень интересно:
генетика, математика и теория искусственного интеллекта! — ответила Аня.
Джон улыбнулся и продолжил свой рассказ.
— «Возьмём быка за рога». И скажем так: процесс эволюции — это поиск и
дальнейшее воспроизводство наилучших решений природы.
Эволюция в природе характеризуется тремя основными процессами:
• селекцией;
• рекомбинацией;
• мутацией.
Обсудим, как работают эти процессы с точки зрения математика.
СЕЛЕКЦИЯ В ПРИРОДЕ
Естественная селекция работает по следующей схеме.
1. Каждая хромосома оценивается с точки зрения некоторой функции пригод-
ности индивидуума с данной хромосомой. Критериями оценки, например, могут
быть показатели силы, ума или красоты живого существа (индивидуума).
2. Выбираются те хромосомы, которые кодируют успешные структуры хромо-
сом, то есть имеющие максимальное значение функции пригодности.
3. Запускается механизм более частой рекомбинации (размножения) успеш-
ных хромосом, чем остальных хромосом (с более низким значением пригод-
ности).
В результате процесса эволюции создаётся множество новых индивидуумов.
Множество индивидуумов называётся популяцией.
Популяция развивается во времени благодаря соревнованию (биологическому
закону): выживает наиболее «успешный».
Вот основные идеи процесса эволюции.
Эти идеи можно описать с помощью алгоритма. Так родилась идея создать ГА,
который затем реализуется в компьютерных программах для решения различных
задач оптимизации.
Процесс рекомбинации комбинирует материал хромосом
двух «родителей» и создаёт различные хромосомы в «детях».
Для того чтобы «детские» хромосомы отличались 0*^
от «родительских», используется процесс мутации.
кот
котята
РАЗГОВОР О ЦЕЛЯХ БИОЛОГИЧЕСКОЙ
И МАТЕМАТИЧЕСКОЙ ЭВОЛЮЦИИ И ГЕНЕТИЧЕСКИХ
АЛГОРИТМОВ
Целью биологической эволюции в природе является выживание данного вида
живых организмов. Другими словами, природа стремится порождать всё больше
наилучших представителей каждой биологической популяции. Говоря «наилучше-
го», я имею в виду — с точки зрения некоторой функции пригодности. Например,
выбираются и размножаются больше всех индивидуумы с наибольшими показа-
телями силы и выносливости, или адаптации, или красоты, или какого-то другого
критерия.
— А, я вспомнила! — воскликнула Аня. — Я читала про животных, которых био-
логи называют альфа-самцами. Они размножаются больше других.
— Ну, типа того, — согласился Джон и продолжил: — А цель генетического
алгоритма — найти оптимальное (или близкое к оптимальному) решение постав-
ленной задачи оптимизации. Например, выбрать наилучшую «базу правил» для
задачи нечёткого управления движением робота.
Вот посмотрите, какой рисунок я сделал. Он иллюстрирует аналогию между
целями естественной биологической эволюции и поиском лучших решений с по-
мощью ГА (рис. 4.2).
По аналогии
Цель биологической
эволюции — породить
как можно больше
лучших представителей
популяции, например,
сильных тигров
Цель генетического
алгоритма — сгенерировать
популяцию наилучших
решений, например, в задаче
поиска оптимальной базы
знаний для управления
движением
Рис. 4.2
Аня с Артёмом с большим интересом рассматривали картинку.
— Постойте! — воскликнула Аня. — Я правильно поняла, с помощью генетиче-
ского алгоритма можно найти лучшую базу знаний?! Это как?
— Мы обязательно посмотрим, как это можно сделать, — ответил Джон, — но
чуть позднее, ещё не время. Не торопитесь, ладно? Сначала обсудим, как работа-
ет математический генетический алгоритм. А работает он по аналогии с механиз-
мами биологической эволюции.
Цель биологической эволюции — породить как можно больше лучших пред-
ставителей популяции того или иного биологического вида.
По аналогии, цель ГА — сгенерировать популяцию наилучших решений в за-
данной задаче оптимизации.
По аналогии с естественной эволюцией ГА тоже работает с «хромосомами»,
которые кодируют решения заданной задачи (оптимизации). Природа работает с
популяцией индивидуумов. А генетические алгоритмы — с популяцией решений.
Таким образом, аналогом индивидуума в ГА является решение задачи.
Природа порождает всё больше лучших индивидуумов, а генетический алго-
ритм — всё больше решений, близких к оптимальному. Вот такая аналогия!
— Интересно, но необычно! — произнёс Артём.
— К такому методу поиска решений надо привыкнуть, но зато он даёт хорошие
результаты там, где классическая математика не работает! — ответил Джон и,
сделав паузу, произнёс: — Я приведу пример, и вы всё поймёте.
ОСОБЕННОСТИ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ
ГА работают с популяцией хромосом (рис. 4.3). Для своей работы им нужно
знать две вещи:
• как кодировать хромосомы;
• как оценивать качества хромосом (а для этого должна быть задана
специальная функция пригодности).
Всё! Далее ГА выполняет операции с решениями задачи без малейшего пред-
ставления о том, что же при этом происходит. Процедура селекции берёт две хро-
мосомы (решений) и создаёт из них два новых решения, смешивая части первого
и второго, реализуя это случайным образом. Единственное, что нужно знать, —
это длину хромосомы. Благодаря этому свойству ГА можно использовать для ре-
шения самых разнообразных задач. ГА можно отнести к классу алгоритмов целе-
направленного поиска максимума функции пригодности со случайным выбором.
рекомбинация,
мутация
Механизм
случайного
выбора
Хромосома с максимальным
значением пригодности
декодирование
(лучшее решение)
Рис. 4.3
ГА-хромосома - строка символов из некоторого алфавита,
кодирующая решение задачи. Решения обычно кодируются
на основе двоичного алфавита {0,1}. Длина ГА-хромосомы
определяется размером пространства поиска.
Функция пригодности (ФП) - это единственная часть
программы, которая должна понимать, что же на самом деле
кодирует хромосома. Поэтому для каждой задачи надо писать а 5
свои функции пригодности.
ГЕНЕТИЧЕСКИЙ АЛГОРИТМ НА ПРИМЕРЕ
ПРОСТЕЙШЕЙ ЗАДАЧИ
Предварительный этап: выбор способа кодирования
хромосом
Рассмотрим простейшую задачу оптимизации (поиск максимума функции).
Пример задачи оптимизации
С помощью генетического алгоритма найти целое число х из интервала [0; 31],
при котором функция /(х) = х2 = х х будет иметь максимальное значение на дан-
ном интервале.
Символом «•» обозначена операция умножения.
Сразу замечу. Задача очень простая, и её решение очевидно. Я взял этот
пример потому, что с его помощью очень легко понять идею ГА и того, как он ра-
ботает.
Обсудим, как её можно решать с помощью ГА.
Предварительный этап работы ГА — это конструирование (или кодирование)
«хромосом», которые будут представлять решения нашей задачи.
В чём суть предварительного этапа для нашей задачи? Прежде всего нам надо
задать способ кодирования решений нашей задачи с помощью хромосом. Это де-
лается очень просто: будем представлять ГА-хромосомы в виде строк, состоящих
из последовательности некоторых символов. Обычно в ГА используются символы
0 или 1. Строки символов из нулей и единиц называются бинарными строками.
Конструирование хромосомы для нашей задачи состоит в том, чтобы предста-
вить целые числа из интервала [0; 31] с помощью бинарных строк.
ГЛАВА 4
Ж Заданный в задаче интервал [0; 31] называется
пространством поиска генетического алгоритма.
Процесс записи хромосомы в виде бинарных строк
- называется бинарным кодированием.
ПРИМЕЧАНИЕ. Здесь и далее мы будем использовать термин «хромосома»,
имея в виду ГА-хромосому.
Для кодирования решений в нашей задаче мы будем рассматривать строки, со-
стоящие из пяти битов. Это будут следующие строки: {00000}, {00001}, {00010}, ...,
{00101} и так далее до {11111}. Например, строка 01101 представляет число 13.
— Почему из пяти битов? — спросила Аня.
— Посмотрите на нужную формулу. Согласно формуле наш интервал поиска
(все целые числа от 0 до 31) можно описать бинарными строками длиной л = 5.
НУЖНАЯ ФОРМУЛА
Бинарная строка длины п может представлять 2П = 2 • 2 • 2 ••• 2 (2, помножен-
ная на 2 п раз) целых чисел, включая 0.
25 = 32.
— Что, Артём, мы будем искать в этой задачке? — спросил Джон.
— Как что? Мы будем искать число, которое даёт максимум заданной функции
/(х), — ответил Артём.
— Правильно. Таким образом, решениями нашей задачи оптимизации будут
числа из интервала [0; 31]. Верно?
— Ну, да.
— Хорошо. А теперь перейдём к следующему шагу генетического алгоритма.
154
Шаг 1: создаём начальную популяцию хромосом
(решений)
— Вот посмотрите, ребята. На рис. 4.4 показан первый этап работы ГА — по-
строение начальной популяции хромосом (решений).
Аня внимательно посмотрела сначала на таблицу, а потом на Джона.
— И что это означает — не пойму. Откуда берётся эта ваша начальная популя-
ция? — спросила она и, улыбнувшись, заметила: — От кошки?
— Кошку я тут пририсовал для того, чтобы вам не было скучно. Теперь отвечаю
на твой вопрос. Начальная популяция задаётся из каких-либо соображений, если
они есть. Если нет, то случайным образом. В этом случае начальная популяция
строится с помощью механизма случайного выбора.
Таблица 4.1
Этап 1
Построение начальной
популяции хромосом
Механизм случайного
выбора (чисел)
Рис. 4.4
На рис. 4.4 программу случайной генерации начальной популяции из простран-
ства поиска я изобразил в виде кошечки. (Это просто программа случайной гене-
рации чисел.)
В нашем примере (табл. 4.1) для простоты начальная популяция состоит из че-
тырёх строк («хромосом»).
Вот с этой популяцией ГА и продолжит следующий этап своей работы.
Важное замечание
Число строк-хромосом в популяции называется размером популяции. Раз-
мер популяции ГА задаётся извне, пользователем.
Шаг 2: оцениваем качество каждой хромосомы
в популяции
Этот этап я объясню с помощью табл. 4.2 на рис. 4.5. Посмотрите.
Таблица 4.2
Этап 2
Оценка пригодности
Начальная текущая популяция X Функция пригодности / (х) = Х2 = Х • X Относительная пригодность, процент от общего
01101 13 169 14,4
11000 24 576 49,2
01000 8 64 5,5
10011 19 361 30,9 А
Сумма всех значений пригодности Р = 1170 (100%)
Рис. 4.5
Аня, разглядывая рисунок, спросила:
— Получается, что 01101 — это число 13, а 11000 — число 24. Так?
— Совершенно верно. На этом шаге работы генетического алгоритма каждая
бинарная хромосома из текущей популяции декодируется, то есть превращается
в десятичное число. Такое превращение называется декодированием. Это де-
сятичное число представляет собой не что иное, как некоторое решение нашей
задачи оптимизации.
Во второй колонке табл. 4.2 (колонки считаем слева направо) показаны резуль-
таты декодирования бинарных хромосом, то есть числа в десятичном виде.
Третья колонка табл. 4.2 представляет значения функции пригодности (ФП).
В нашем примере ФП = /(х). Например, для решения х = 13 функция пригодности
равна /(13) = 13 • 13 = 169. И так далее. Затем все эти значения пригодности сум-
мируются. В конце третьей колонки показана также сумма всех значений пригод-
ности в данной популяции. Она обозначается символом Р, и эта сумма у нас равна
Р = 169 + 576 + 64 + 361 = 1170.
После этого каждую хромосому из популяции оценивают с точки зрения её при-
годности для дальнейшей эволюции, то есть дальнейшего воспроизводства. Для
этого вводят меру пригодности хромосомы в виде так называемой относитель-
ной пригодности.
Ещё одна нужная формула — правило перевода бинарного числа (абсс1е) в де-
сятичное.
НУЖНАЯ ФОРМУЛА
а Ь с б е = а • 24 + Ь • 23 + с 22 + с! • 21 + е • 2°.
43 2 1 0
номер позиции символа в бинарной строке справа налево.
Например,
01101 = 0 • 24 + 1 • 23+1 • 22 + 0 • 21+1 • 2°= 0 + 8 + 4 + 0 + 1 = 13.
Относительная пригодность (ОП) каждой хромосомы выражается в процен-
тах и вычисляется по следующей простой формуле:
ОП = (/(%)//=)• ЮО.
Здесь / означает деление, а точка — умножение.
Это и есть мера пригодности, выраженная в процентах. Все эти вычисления и
показаны в табл. 4.2.
Чем больший процент относительной пригодности, тем лучше данная хромосо-
ма с точки зрения эволюции (генетического алгоритма).
— Артём, посмотри внимательно на эту таблицу. Какая хромосома лучшая, или
успешная, в данной популяции? — спросил Джон.
— Успешная в каком смысле?
— С точки зрения её пригодности в качестве лучшего решения. Другими слова-
ми, успешна та хромосома, у которой больше относительная пригодность, — до-
бавил Джон.
Артём понял вопрос и тут же ответил:
— Это хромосома «11000». У неё самая большая мера пригодности 49,2%. Пра-
вильно?
— Да, именно так. После оценки хромосом переходим к третьему этапу работы
генетического алгоритма — процедуре селекции'. < — > < \ . > Критерий красоты По способностям К «В < - , —.. ’В > Критерий силы ЗДйф Г57
— На этом шаге вычислений — продолжил свой рассказ Джон, — с помощью
оператора селекции формируется так называемое множество возможных роди-
телей. Для этого надо выбрать пары хромосом, которые будут выступать в роли
родителей.
— И как же, интересно, выбирается такая пара родителей? — поинтересова-
лась Аня.
— А ты, как думаешь? — спросил Джон. — Вот в природе, например, как это
происходит?
Аня задумалась немного, а потом ответила:
— Я люблю смотреть документальные фильмы о природе. В одном из них были
интересные сценки о том, как птицы привлекают внимание друг друга. Журавли,
например, танцуют. И если партнёрше понравится, она его выбирает для спарива-
ния. Или, например, экзотические птички раскрывают веером свои изумительные
оперенья и прохаживаются перед самочкой. Это забавно.
— Действительно, в природе есть много способов привлечения (выбора)
партнёра для размножения.
Шаг 3: селекция, или выбор родителей
— Однако в ГА для этой цели используются процедуры случайного выбора типа
«колеса фортуны» (или метод рулетки). Как это работает, сейчас объясню.
Посмотрите внимательно на рис. 4.6. На нём нарисован круг (колесо рулетки),
разделённый на сегменты, в которых лежат хромосомы из заданной популяции.
Размер сегмента, который занимает хромосома, определяется величиной отно-
сительной пригодности. Поэтому самый большой сегмент занимает хромосома
11000.
«Кошечка» представляет механизм вращения колеса рулетки, на которой изо-
бражены сегменты с хромосомами начальной (текущей) популяции. Оно крутится,
и мы смотрим, у какого сегмента остановится флажок (стрелка) колеса удачи. Вы-
бирается та хромосома, около которой останавливается флажок колеса рулетки.
Всё это делает специально запрограммированная процедура.
Очевидно, что чем больше сегмент круга, тем больше шансов, что стрелка ру-
летки остановится напротив этого сегмента и соответствующая хромосома будет
выбрана.
Хромосома 11000 занимает большую площадь на колесе рулетки. А значит, при
раскрутке колеса у такой хромосомы больше шансов, что стрелка остановится на
этом сегменте. Обычно делается несколько вращений колеса рулетки.
А это значит, что скорее всего (вероятнее всего) эта хромосома будет чаще вы-
бираться в качестве «родителя».
Начальная популяция оп
01101 14,4%
11000 49,2%
01000 5,5%
10011 30,9%
Рис. 4.6
В нашем примере в качестве «родителей» выбраны следующие хромосомы:
одна копия строки 01101, две копии строки 11000 и одна копия строки 10011.
Множество родителей показано на рис. 4.7.
Процедура выбора множества «возможных родителей» реализуется в ГА с по-
мощью случайной процедуры типа колеса фортуны. При этом каждая хромосо-
ма копируется то число раз, которое пропорционально её относительной пригод-
ности.
После того как определено множество «родителей», вызываются генетические
операторы, которые создают множество потомков, или «детей».
— У алгоритмов тоже могут быть дети? — засмеялась Аня. — Вот не думала!
— Это же генетический алгоритм, — ответил, улыбнувшись, Джон. — И про-
цесс воспроизводства ГА-хромосом можно вполне запрограммировать. Для этого
существуют два важных механизма: скрещивание и мутация. Это происходит на
следующем, четвёртом, этапе работы ГА.
Множество хромосом родителей 01101 11000 11000 10111 Рис. 4.7
Шаг 4: генерация потомков
На этом шаге происходит генерация потомков с помощью процедур скрещива-
ния и мутации.
Процедура (или оператор) скрещивания выполняет следующие задачи:
• выбирает двух «родителей»;
• комбинирует гены (черты) родителей;
• формирует двух потомков («детей»).
Оператор «скрещивания» ещё называют кроссинговером. Этот термин исполь-
зуется в генетике.
В ГА существует много типов скрещивания. Рассмотрим простейший вариант,
который описывается следующим алгоритмом.
Алгоритм скрещивания
Пара родителей выбирается случайным образом. Для каждой пары также слу-
чайно выбирается так называемая «точка скрещивания» (одна, или две, или не-
сколько). Эта точка указывает, какое число бит с правого конца каждой хромосо-
мы должно обменяться друг с другом.
На рис. 4.8 представлено пояснение алгоритма скрещивания.
Пусть у нас будет следующая пара родителей, которую мы представим в виде
их строк-хромосом:
Родитель 1: (а1 а2а3 а4 а5) и Родитель 2: (Ь1 Ь2Ь3 Ь4 Ь5).
Пусть точка скрещивания, выбранная случайным образом, равна 3.
Точка скрещивания показана на рисунке символом «ф». Тогда у нас будет сле-
дующая схема обмена:
(а1 а2ф а3 а4 а5) и (Ь1 Ь2ф Ь3 Ь4 Ь5).
Кроссинговер поменяет местами правые части в хромосомах родителей, а за-
тем сгенерирует двух «потомков» («детей») — так, как показано на рис. 4.8.
— Процесс скрещивания для нашего примера показан в табл. 4.3. Тут пред-
ставлены две пары родителей: первая пара с порядковыми номерами в популяции
1 и 2 и вторая пара — с номерами 2 и 4. Эти пары скрещиваются между собой по
алгоритму, который мы только что обсудили.
Таблица 4.3
Множество возможностей родителей Порядковый номер строки в популяции Скрещивание Промежуточная популяция
01101 1 0110[ 1 ] . 01100
11000 2 1100 [0] 11001
11000 2 11 [ 000 К 11011
10011 4 10 [011 ] 10000
В квадратных скобках в третьей колонке таблицы показаны точки скрещива-
ния. Для пары строк-родителей с номерами 2 и 4 в популяции точка скрещивания
равна 3. А для пары с номерами 1 и 2 эта точка равна 1. Понятно, Аня?
— Кажется, поняла.
— Почему кажется? — засмеялся Джон.
— Потому что это всё надо переварить. Сразу очень много нового.
— Согласен. В этом нет ничего страшного. Со временем и при желании всё
можно усвоить, — произнёс Джон. — Просто нужно несколько раз прочитать этот
материал, если вы хотите понять алгоритм как следует.
А мы идём дальше. Смотрим на последнюю колонку табл. 4.3. Тут показаны
результаты скрещивания. Это — то, что называется промежуточной популяцией.
Другими словами, это множество возможных потомков'.
— Почему возможных? — удивилась Аня.
— Объясняю. Пока это только потомки с генами родителей. А природе надо раз-
виваться и искать более жизнеспособные варианты.
Для того чтобы внести изменения в гены родителей, тем самым создавая но-
вые свойства в потомках, на этапе скрещивания потомки подвергаются процедуре
мутации.
Важное замечание
Мутация реализует способ, с помощью которого вносится новая информация
в новое поколение! И только после этого формируется новое поколение по-
томков.
ПРОЦЕДУРА МУТАЦИИ
Посмотрим, как работает процедура мутации. Она случайным образом меняет
один или несколько битов в выбранной хромосоме (табл. 4.4). Смотрите. Мутация
выбранной хромосомы показана в табличке красным цветом.
Мы видим, что в промежуточной популяции только одна хромосома подверглась
мутации, остальные остались без изменения.
— А почему только одна хромосома подверглась мутации? — спросил Артём.
— Процесс мутации реализуется с помощью специальной процедуры случайно-
го выбора. В этой процедуре значение вероятности мутации задаётся пользовате-
лем, и оно, как правило, очень маленькое. Это сделано специально, чтобы управ-
лять процессом поиска в генетическом алгоритме и не терять хорошие решения.
Но это детали, в которые мы вдаваться пока не будем.
После процедуры мутации сгенерированные потомки возвращаются в популя-
цию, замещая «родителей».
В последней (считая слева направо) колонке табл. 4.4 мы видим сгенерирован-
ную новую популяцию хромосом. На этом один полный цикл работы генетического
алгоритма заканчивается. Затем этот цикл повторяется.
Таблица 4.4
Промежуточная популяция Мутация X Новая популяция
01100 12 01101
11001 25 11000
11011—> 11111 31 11111
10000 16 10000
ЦИКЛ ЭВОЛЮЦИИ. КРИТЕРИЙ ОСТАНОВА
В ГЕНЕТИЧЕСКОМ АЛГОРИТМЕ
Этапы 1, 2, 3 и 4 генетического алгоритма моделируют так называемый один
виток эволюции в ГА. Ещё раз уясним себе, что является целью эволюции в ГА?
Цель ГА-эволюции — поиск оптимальной хромосомы для заданной задачи опти-
мизации. В нашем примере это поиск х, который даёт максимум функции /(х).
На первом витке эволюции мы построили новую популяцию решений. Затем эта
новая популяция становится очередной начальной (текущей) популяцией, и цикл
ГА (этапы 1-4) снова повторяется. Вот смотрите (табл. 4.5). Новый цикл к дальней-
шей эволюции готов!
Таблица 4.5
Новая текущая популяция Функция пригодности Относительная пригодность, %
01100 12 144 7,25
11001 25 625 31,47
11111 31 961 48,38
10000 16 256 12,89
Артём, задумавшись, спросил:
— Только я не понимаю, а когда же наступит конец работы генетического алго-
ритма? Как мы узнаем, нашёл ГА лучшее решение или нет?
— Очень хороший вопрос, Артём! — обрадовался Джон. — Быть тебе програм-
мистом! Зришь в корень! Отвечаю на твой вопрос.
Прежде чем перейти к новому циклу работы ГА, проверяется критерий останова
алгоритма. Он задаёт условия окончания ГА. Обычно это либо заданное общее
число генераций поколений (например, 200), либо общее время работы (напри-
мер, 3 часа), либо если популяция содержит одни и те же одинаковые хромосомы,
то ГА останавливается.
Если критерий останова пока не достигается, то запускается новый цикл рабо-
ты ГА, то есть этапы 1-4 работают снова.
По окончанию работы генетического алгоритма индивидуумы последней попу-
ляции представляют решение заданной задачи оптимизации.
Посмотрим на табл. 4.5. Мы видим, что ГА довольно быстро (только двумя гене-
рациями популяций решений) находит максимум функции /(х) при х = 31.
Напомню ещё раз, что я специально взял очень простой пример, чтобы «на
пальцах» рассказать вам идею того, как работает алгоритм.
Итак, мы уяснили себе идею вычислений, которые реализуются в генетических
алгоритмах. А теперь важный вопрос: а насколько полученное решение является
оптимальным?
ВАЖНАЯ ТЕОРЕМА О СХОДИМОСТИ ГЕНЕТИЧЕСКОГО
АЛГОРИТМА
Разработчик ГА математик Джон Холланд доказал теорему о так называемой
сходимости ГА. Он показал, что при генерации достаточно большого числа поко-
лений решение ГА приближается к оптимальному. Как говорят математики, «ГА
асимптотически сходится к оптимальному решению». Другими словами, хромо-
сома с максимальным значением функции пригодности в последней популяции и
будет представлять искомое решение. Чем больше число поколений, тем ближе к
оптимальному решению. Вот так работает ГА.
— Есть вопросы, ребята?
Пока Артём думал, Аня решила спросить первой:
— Это очень интересно! — сказала она. — Мне бы хотелось узнать, как эти ге-
нетические алгоритмы используются в искусственном интеллекте?
— Рад вашему здоровому любопытству! Так вот. При разработке систем ис-
кусственного интеллекта возникают задачи, для решения которых классической
математики недостаточно. Например, генетические алгоритмы очень полезны при
создании интеллектуальных систем управления движением. А это области, где
классическая математика или плохо работает, или не работает вообще! Мы по-
просим Профессора рассказать нам о применении генетических алгоритмов. Он
большой мастер в использовании мягких вычислений в робототехнике! — произ-
нёс Джон, обращаясь к Профессору.
В это время Профессор, внимательно слушавший рассказ Джона, сказал:
— Друзья, обращаю ваше внимание ещё раз на важный момент и повторю
мысль Джона: надо понимать, что этот пример ГА-оптимизации — очень простой.
Найти его решение не представляет никакого труда и без всякого генетического
алгоритма. Джон намеренно упростил пример, чтобы объяснить суть, основную
идею генетических алгоритмов. А применять их мы будем для решения совсем
других задач.
— Каких, например? — спросила Аня.
— С помощью генетических алгоритмов можно строить оптимальные базы зна-
ний для систем интеллектуального управления, например, движением автономно-
го робота.
— А можно узнать, как это происходит? — спросил Артём.
— Ну что ж, расскажу с большим удовольствием, но только после перерыва, —
сказал Профессор.
— О’кей, Профессор!
— Джон, спасибо за очень интересный рассказ, — продолжил Профессор. —
А сейчас идёмте пить чай, то есть отчаиваться, как говорит Ваша матушка.
РАССКАЗ ДЛЯ ГИКОВ. ЗАДАЧА АВТОМАТИЧЕСКОЙ
ПАРКОВКИ МАШИНЫ
Ничто не мешает человеку завтра стать умнее, чем он был вчера.
Пётр Капица
Сделаем объявление для наших читателей.
Дорогой читатель! Эту тему можно просмотреть, или оставить на потом, или
просто пробежать глазами. Если сразу не удаётся вникнуть во все идеи — не беда.
Со временем, если это вам будет нужно, вернитесь к ней снова. И тогда к вам при-
дёт полное понимание — и красота идеи применения генетических алгоритмов
откроется перед вами и засияет!
ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ ДЛЯ ЗАДАЧ
ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Задача автоматической парковки машины
— Посмотрим, как использовать ГА для решения наших задач в области ин-
теллектуального управления движением (беспилотных машин, роботов и других
объектов). Мы уже знаем, что такое нечёткое управление. В нашем технопарке вы
познакомились с нечёткой логикой — не забыли, ребята?
— Нет, не забыли, — ответил Артём. — Мы ещё залезали в дебри нечёткого
вывода. Действительно, дебри. Но было интересно!
— Я рад это слышать! Вот и попробуем сейчас соединить нечёткий вывод и
генетический алгоритм для поиска хороших баз знаний при проектировании ин-
теллектуальных систем управления.
Я расскажу вам об одной очень красивой задаче, которая решалась методом
ГА-поиска. Речь идёт о задаче автоматической парковки.
Как известно, парковка автомобиля является довольно трудной частью вожде-
ния. Не все водители умеют это делать аккуратно. Почти у каждого водителя, а
особенно у новичка, есть риск совершить ошибку и поплатиться за неё. Поэтому
понятно, почему многие автопроизводители обратились к идеям ИИ!
Они стали разрабатывать интеллектуальные системы управления автоматиче-
ской парковкой автомобиля. И вполне успешно. Обсудим, как это можно сделать.
Построение модели управления в задаче парковки
Нам понадобится система координат (оси х и у) на плоскости, где происходит
парковка. В этой системе координат мы будем задавать положение движущей-
ся машины. Я изобразил автомобиль в виде прямоугольника, указав переднюю
и заднюю части машины. Потом я нарисовал две красные точки. Посмотрите
(рис. 4.9).
Эти точки показывают начальное и целевое положение машины. Целевое по-
ложение — это положение машины в заданной точке парковки.
Целевая точка задаётся тремя значениями (хц, у, ср ):
• хц — координата целевого положения на оси х;
• уц — координата целевого положения на оси у;
• % — Угол поворота (читается как «фи») корпуса машины относительно оси х.
На рис. 4.9 (хц, у, (рц) = (50, 100, 90) — красная точка. Видите эту точку?
Разделим нашу задачу управления на две подзадачи:
• управление движением при развороте;
• управление движением центровки и останова машины в целевой точке.
Важное замечание
Цель нашей интеллектуальной системы управления - привести и правильно
поставить машину в целевую точку (хц, у, <рц) с минимальной погрешностью
и за минимальное время
у, м
Целевое
положение
<Рц=(50, 100, 90”)
К’Уо’ Фо)
Начальное положение
Интеллектуальная система управления движением
парковки машины
— Что значит интеллектуальная система, Аня, Артём? — спросил Профессор.
Ребята задумались, и через минуту Артём ответил:
— Я думаю, что это система, которая может с помощью своих знаний решать
сложные задачи.
— Совершенно верно. Любая интеллектуальная способность системы так или
иначе связана с теми знаниями, которые у неё есть, и, конечно, с механизмами об-
работки этого знания. Давайте подумаем, как можно создать умную систему управ-
ления для нашей задачи. Для этого обсудим, как это делает человек-водитель.
Водитель, находясь в начальном положении, оценивает расстояние от машины
до центральной линии парковки (помечена на рис. 4.9 красным пунктиром). Затем
он оценивает, на какой угол поворачивать руль так, чтобы плавно вписаться в эту
линию. Пусть, например, после разворота водитель привёл машину в точку у*. На
рисунке — это синяя точка. Видите?
— Синюю точку вижу. И что это означает? — спросил Артём.
— То, что машина развернулась задом и находится на центральной линии под
углом в 90 градусов относительно оси х. В этом случае условие ф = 90 выполня-
ется.
— А-а-а, кажется, понимаю: машина развернулась и встала перпендикулярно
оси х. Потом ей надо пятиться задом к точке парковки, так? — спросила Аня.
— Да, потом надо плавно подъехать задом к заданной целевой точке.
— Понимаю...
— Вот эти две стратегии управления будем описывать с помощью нечётких пра-
вил. А затем на их основе создадим систему управления движением машины при
выполнении операции парковки.
Итак, мы будем создавать (ещё говорят «проектировать») систему управления
для поставленной перед нами задачи, как нечёткую систему управления.
Интеллектуальная система - это система, имеющая
базу знаний и способная находить оптимальные решения
на основе своих знаний.
Нечёткие системы управления движением ещё называют
нечёткими контроллерами.
Построение нечёткого контроллера с использованием
генетического алгоритма
Посмотрим на схему структуры нечёткого контроллера (рис. 4.10).
Вход:
данные
от сенсоров
(датчиков)
Выход:
значение
сигнала
управления
Рис. 4.10
Наша система управления будет состоять из двух нечётких контроллеров: назо-
вём их НК1 и НК2. Первый будет решать задачу управления плавным разворотом
машины задним ходом из начального положения на полосу центровки (на рис. 4.9
она показана красной пунктирной линией). Второй — задачу плавного перемеще-
ния задним ходом и останова в целевой точке.
Для того чтобы не усложнять объяснение идеи использования ГА в задаче
управления движением, упростим наш пример. Я предлагаю рассмотреть задачу
управления, которую решает второй контроллер. Это задача центровки и останов-
ки машины в заданной точке парковки. Она сводится к тому, чтобы осуществить
управление движением машины из некоторой начальной точки у* (см. рис. 4.9) в
целевую точку (50; 100), в которой машина должна остановиться.
Начнём проектировать нечёткий контроллер для этой задачи. Мы его обозна-
чили НК2. Нам понадобятся датчики, измеряющие показания скорости движения
машины и текущего положения машины по оси у (расстояние до цели).
Далее нам нужно будет осуществить некоторые шаги.
Первый шаг проектирования — это определение входных и выходных перемен-
ных нечёткой системы управления.
В качестве входных переменных для НК2 будем рассматривать две лингвисти-
ческие переменные:
• ошибка управления по расстоянию
• ошибка управления по скорости е2.
Ошибка е1 определяется как разность между целевым и текущим положением
машины, ошибка е2 — как разность между целевой и текущей скоростью маши-
ны.
Входные переменные нечёткого контроллера
Итак, ошибка управления по расстоянию:
е1 = (Уц- У)>
где у обозначает положение корпуса машины относительно оси у в данный мо-
мент времени 1-, уц — целевое положение корпуса машины (у = 100).
Ошибка управления по скорости е2 определяется так:
е2=(\-^
где V — скорость движения в момент времени I, которая измеряется датчиком ско-
рости; уц —скорость машины в точке парковки (она задаётся и равна 0).
Выходная переменная нечёткого контроллера
Это сила управления движением машины Р(1). Её значение показывает, какую
силу управления нужно приложить к машине в момент времени I, чтобы она пере-
местилась в следующее положение.
Определение нечётких значений для входных
и выходных переменных
На втором шаге проектирования нам нужно описать значения входных и выход-
ных лингвистических переменных ег е1 и Р с помощью нечётких множеств.
Для этого разработчик определяет области изменения наших переменных на
практике, то есть из эксперимента. Например, пусть, исходя из условий задачи,
ошибки расстояния меняются в диапазоне от -3 до +3 метров. Посмотрите на
рис. 4.11.
Значения ошибок управления е1 и е2 показывают, насколько близко машина на-
ходится к целевой точке. Положительное значение ошибки е1 означает «недолёт».
Отрицательное значение ошибки е1 — «перелёт» за целевую точку. Это показано
на рис. 4.11.
Разработчик оценивает, какое количество нечётких множеств может покрыть
этот диапазон [-3; 3] метров. Для нашей задачи выбрано пять нечётких множеств
для каждой переменной.
У 4
50 м
Целевая
точка
Ошибка
управления
недолёт
перелет
50 м
Рис. 4.11
Дадим названия нашим нечётким множествам:
• ММ (педайуе тесПит) — средняя отрицательная ошибка;
• № (педайуе зтаП) — малая отрицательная ошибка;
• 2Е — ошибка близка к нулю;
• РЗ (розЮуе зтаП) — малая положительная ошибка;
• РМ (розШуе шесЛит) — средняя положительная ошибка.
Нам осталось описать ещё лингвистические переменных е2 и Р. Они показаны
на рис. 4.12.
Рис. 4.12
Важное замечание
Описания нечётких множеств на рис. 4.11 и 4.12 носят качественный демон-
страционный характер.
Забегая вперёд скажем, что с помощью обучения можно настраивать пара-
метры этих функций принадлежности, добиваясь более точного управления
движением в задаче парковки. Как это делается, мы рассмотрим в главе 5 про
машинное обучение.
Построение базы знаний
Теперь делаем следующий шаг. После того как все значения лингвистических
переменных представлены нечёткими множествами, перейдём к построению базы
знаний (правил) нашего нечёткого контроллера.
База правил для нашей задачи состоит из следующих нечётких правил:
ЕСЛИ (е1 есть ИМ) {или одно из Ы8, 2Е, Р8, РМ} и
(е2 есть ММ) {или одно из Ы8, 2Е, Р8, РМ},
ТО (Г есть ММ) {или одно из М8, 2Е, Р8, РМ}
— Можно вопрос? — спросил Артём. — Не понимаю, что значит «как постро-
ить». Вы же только что нам показали, как выглядит эта база правил.
— Именно. Ты сам сказал «как выглядит». Да, мы можем перечислить все ле-
вые части правил — это все возможные комбинации из пяти нечётких значений
для е1 и пяти нечётких значений для е2. Общее число таких комбинаций равно
5 • 5 = 25. А вот правые части правил — вопрос открытый. Именно знание о правых
частях в правилах содержится в опыте человека водителя. Ответ на этот вопрос
и есть одна из задач построения базы знаний. Теперь понимаете, ребята?
— Интересно... Хотя, да, понятно, — ответил Артём.
— Эти правые части мы и будем искать с помощью генетического алгоритма, —
продолжил Профессор.
— Итак, перейдём к следующему шагу — использование ГА для поиска опти-
мальной базы правил. Сделаю важное замечание.
Важное замечание
Прежде чем использовать стандартную программу ГА (или создавать про-
грамму самим), нам надо сделать две вещи: 1) задать способ кодирования
хромосом, представляющих решения нашей задачи поиска лучшей базы пра-
вил; 2) определить функцию пригодности для оценки наших хромосом, пред-
ставляющих решения.
Переход к хромосомам
Начнём с первого пункта. Нам надо закодировать множество нечётких правил
с помощью бинарных хромосом. Посмотрим, как это можно сделать. Идея постро-
ения такой хромосомы довольно оригинальная.
В теории нечёткого управления множество нечётких правил удобно представ-
лять в виде табл. 4.6. Каждая клетка таблицы описывает одно нечёткое правило.
Таблица 4.6
ф/ /ф ММ М3 2Е РЗ РМ
мм 1 4 3 2 1
М3 5 2 ‘ 4 3 2
2Е 1 2 4 5 1
РЗ 4 3 1 2 2
РМ 4 1 3 4 5
— Однако тут в таблице какие-то цифры. Никаких правил я пока не вижу, —
удивилась Аня.
— Сейчас объясню. Таблица состоит из строк (по горизонтали) и столбцов (по
вертикали). Самая верхняя строка таблицы фиксирована и задаёт значения (ИМ,
№, 2Е, Р8, РМ) лингвистической переменной ег так же как и самый левый стол-
бец таблицы, который задаёт значения лингвистической переменной е2. Отмечу,
что лингвистические значения е1 и е2 входят в левую часть нечёткого правила
«ЕСЛИ».
Обозначим нечёткие значения лингвистической переменной «сила управления»
Е следующими цифрами: 1 — ММ, 2 — М8, 3 — 2Е, 4 — Р8, 5 — РМ. Эти цифры
стоят во внутренних клетках нашей таблицы.
Клетки таблицы с цифрами описывают правую часть нечётких правил («ТО»).
Поясню это на примере. Рассмотрим клетку, закрашенную красным цветом в
табл. 4.6. В ней стоит цифра 2, которая обозначает значение М8 лингвистической
переменной Е. Смотрим, куда ведут стрелочки от красной клетки. Наверх, по вер-
тикали — к М8, а по горизонтали налево — к 2Е. Следовательно, красная клетка
с цифрой 2 описывает следующее нечёткое правило:
ЕСЛИ (е1 есть №) и (е2 есть 2Е) ТО (Г есть №).
Таким образом, всё содержимое таблицы (25 клеток) описывает все нечёткие
правила, содержащиеся в базе правил. Следите за моей мыслью, Аня, Артём?
— Следим. Но что это нам даёт? — в свою очередь спросил Артём.
— А вот смотрите — интересный ход!
Теперь вытянем все строки с цифрами таблицы в одну длинную строку. Полу-
чим следующую строку из 25 позиций:
{14321 52432 12451 43122 11345}.
Способ бинарного кодирования базы правил
нечёткого контроллера
Строку {14321 52432 12451 43122 11345} легко можно превратить в бинарную
строку!
Окончательно бинарная строка-хромосома, представляющая базу правил, бу-
дет иметь вид:
{001100011010001...101}
Всего 75 битов.
— Почему 75 битов? — спросила Аня.
— Объясняю. Это просто, — сказал Профессор. — В таблице правил всего
25 клеток. В каждой клетке стоит цифра 1,2, 3, 4 или 5. Число 5 в бинарном виде
записывается как 101, то есть для его записи нужно три бита. Следовательно, все-
го нам надо 3 • 25 = 75 битов, чтобы записать все правила в двоичном коде.
Вот полюбуйтесь изящным способом кодирования баз правил нечётких кон-
троллеров на рис. 4.13!
— Здорово! — воскликнула Аня. — Вроде бы и просто. Но ведь надо было до-
гадаться такой код придумать! Прямо код да Винчи!
— Согласен. Это кажущаяся простота. Но код, действительно, получился кра-
сивым!
1 4 3 2 1
5 2 4 3 2
1 2 4 5 1
4 3 1 2 2
1 1 3 4 5
{14321 52432 12451 43122 11345}
{001100011010001 ......101}
(всего 75 бит)
Рис. 4.13
Декодирование хромосом
— Обсудим обратный процесс — декодирования хромосом: как из бинарного
кода хромосомы получить базу правил. Этот процесс показан на рис. 4.14. Пони-
маете, Аня, Артём?
— Нет, пока не понятно, — ответил Артём.
— Хорошо. Давайте ещё раз. Мы выяснили, что каждая хромосома описывает
значения правых частей в правиле 1, правиле 2 и так далее до правила 25.
В процедуре декодирования считываются первые три бита хромосомы. Это
101 — двоичное представление числа 5. (Если нужно указать, что двоичное, то
записывают так: 1012.)
Значит, в правиле 1 в правой части будет стоять нечёткое множество, которое
обозначено цифрой 5. Это — РМ. Таким образом, в таблице правил в первой клет-
ке будет стоять число 5. А само правило показано на моём рис. 4.14.
Далее берём вторые три бита, переводим в десятичное число и ставим во вто-
рую клетку и так далее, пока не заполним все клетки. Таким образом получим
базу правил, которую кодирует данная хромосома. Понимаете?
— Стараемся, — ответила Аня.
Правило 1 ЕСЛИ (е1 есть ИМ) И (е2есть ИМ) ТО (Еесть РМ)
----------------------------------► 1012 = 5 (РМ)
Хромосома< ф
Правило 15 ЕСЛИ (е1 есть 2Е) И (е2есть РМ) ТО (Еесть—)
Правило 25 ЕСЛИ (е1 есть РМ) И (е2есть РМ) ТО (Еесть —)
Рис. 4.14
— Тогда слушайте дальше. С кодированием мы разобрались. Нам осталось
ещё ввести функцию пригодности для такой задачи. И мы можем запускать стан-
дартную программу генетического алгоритма.
Оценка качества хромосом
Мы будем использовать следующий критерий оптимизации базы правил: база
правил должна быть такой, чтобы в процессе нечёткого управления движением
машина пришла в целевую точку с минимальной ошибкой и за минимальное чис-
ло шагов управления. Чем меньше ошибка, тем точнее машина приходит в целе-
вую точку парковки.
— А минимальное число шагов управления — это что такое? — спросил Ар-
тём.
— Сейчас объясню. Вспомним устройство системы нечёткого управления.
Через каждый такт времени управления (шаг управления) сигналы от датчиков
поступают на вход нечёткой системы управления, которая вычисляет значение
управляющего сигнала. Таким образом, шаг управления — это время, через кото-
рое происходит обновление управляющего сигнала Е(1).
Обозначим шаг управления движением как (читается «дельта тэ»). Пусть
14 Л? будет равно 1 секунде. В нашей задаче мы зададим также (заранее, как па-
раметр) максимальное число шагов управления. Этот параметр определяет мак-
симально допустимое значение времени осуществления парковки. Пусть это бу-
дет, например, 175 шагов. Тогда максимальное время процесса парковки машины
вычисляется как 1 секунда х 175 = 175 секунд (2,9 минут). Задача ГА — найти
решения (то есть такие правила управления), которые приводят машину в
точку парковки за время, меньшее 2,9 минут.
Чем меньше ошибка, тем точнее машина приходит в целевую точку парковки,
тем больше должно быть значение функции пригодности хромосомы, представ-
ляющей определённую базу правил. Это и делается в процедуре оценки пригод-
ности хромосом.
Критерий оптимизации
База правил должна быть такой, чтобы в процессе нечёткого управления дви-
жением машина пришла в целевую точку с минимальной ошибкой и за минималь-
ное число шагов управления.
Важное замечание
В нашем примере функция пригодности не имеет аналитического представле-
ния, она отображена в виде некоторой вычислительной процедуры.
Функция пригодности хромосом:
(Н|е1(Л/)|< и I е2(Л/) I < с/21Иеп Жпезз = 10 • 175/Л/
е1зе ТИпезз = -1),
где е^Л/), е2(Л/) — ошибки управления на шаге Л/ управления; и с/2 — заданные
допустимые значения ошибки управления. Переменная Л/ описывает число шагов
управления, например, 175 — это заданное заранее максимальное число шагов
управления. Переменная Жпезз содержит значение функции пригодности.
Для того чтобы оценивать пригодность решений ГА, нам понадобится упрощён-
ная математическая модель движения машины. Для этого воспользуемся законом
Ньютона.
Обозначим массу машины как т, ускорение движения машины — как а, а управ-
ляющую силу, действующую на машину (сила нажатия педали газа) во време-
ни I, — как Е(1).
Закон Ньютона в символьном виде записывается — всем известно — как:
Е = т • а,
и, следовательно,
Е
а = —.
т
Используя этот закон, запишем формулы для упрощённой математической мо-
дели движения:
у(1 + Д1) = у(0 + ДГи(0;
Г(0 (4.1)
у(1 + ДГ) = у(0 + Д1а(0 = к(0 + т-.
Здесь используются следующие обозначения:
• У(0 — положение машины относительно оси у в момент времени I;
• у(0 — скорость машины в момент времени О
• АГ — заданный шаг управления;
• Г(0 — значение управляющей силы (сила нажатия на педаль газа).
Эти формулы нам пригодятся при вычислении значений пригодности хромосом
в нашем генетическом алгоритме.
Вернёмся к нашей задаче управления. У нас происходит управление движени-
ем машины к целевой точке по оси у (см. рис. 4.9). Формулы (4.1) используются
в процессе оценки пригодности хромосомы, представляющей определённую базу
правил. Насколько она хороша?
Для этого нам надо вычислить результат работы системы нечёткого управления
с данной базой правил. Блок-схема этого процесса и показана на рис. 4.15.
Рис. 4.15
Итак, способ кодирования хромосом, функцию пригодности и процедуру оценки
хромосом мы определили. Теперь можно запустить программный пакет ГА.
После каждого цикла работы генетического алгоритма будут выбираться толь-
ко те хромосомы, которые имеют всё большее значение функции пригодности.
А это значит, что кодируемые этими хромосомами базы правил будут порождать
такое управление, которое приводит машину всё точнее и точнее (то есть с малой
ошибкой) и за меньшее время в целевую точку.
— Вот не знал, что так можно строить базу правил! Это очень интересно! — вос-
кликнул Артём.
— Действительно, красивое решение нашей задачи. Обычно в таких задачах
критерием останова генетического алгоритма является задаваемое число генера-
ций популяций. Во многих случаях для таких задач достаточно задать генерацию
ста популяций. Из этой последней популяции выбирается хромосома с наиболь-
шим значением функции пригодности. Она-то и будет представлять наилучшее
решение задачи.
Раскодировав эту хромосому, мы получим оптимальную базу правил для нашей
задачи управления. Уловили идею?
— Да, — ответил Артём.
— Прямо волшебный трюк какой-то! — сказала Аня.
— Может быть, и трюк. Но математический и строго доказанный. Вот так!
А теперь мне осталось показать вам это решение, найденное с помощью ГА.
Вот оно: лучшая хромосома — 5444255511553115511142221.
Её легко отобразить в виде табл. 4.7, представляющей собой оптимальную базу
правил нашей нечёткой системы управления.
Таблица 4.7
ММ № 2Е РЗ РМ
ИМ 5 4 4 4 2
№ 5 5 5 1 1
2Е 5 5 3 1 1
Р8 5 5 1 1 1
РМ 4 2 2 2 1
Получив в результате работы генетического алгоритма оптимальную базу зна-
ний, мы спроектировали систему управления движением для задачи центровки
и останова машины.
ИНТЕЛЛЕКТУАЛЬНАЯ ПАРКОВКА
«ПАРК-АССИСТ» ДЛЯ ФОЛЬКСВАГЕНА
— Далее система нечёткого управления может быть реализована в виде про-
граммы на специальном языке программирования для микрокомпьютера, который
устанавливается на борт движущегося устройства (машины, робота и так далее).
После этого можно проводить реальный эксперимент — посмотреть, как проис-
ходит движение машины в задаче автоматической парковки (с помощью нечётко-
го управления на основе найденной базы правил). Это так называемый процесс
тестирования спроектированной базы правил.
В заключение скажу ещё несколько слов.
Я привёл простейший пример задачи парковки, чтобы показать, как исполь-
зовать идеи генетического алгоритма для таких задач. Мы обсуждали решение
задачи парковки в условиях отсутствия других машин на парковке. В реальных
разработках количество датчиков, которые нужны интеллектуальной системе
управления парковкой, может быть различным. Как правило, используется по че-
тыре спереди и сзади машины и четыре по бокам (всего 12).
С их помощью система парковки осуществляет поиск места, вычисление целе-
вой точки парковки с учётом габаритов машины и рядом стоящих авто.
Проектирование базы знаний для таких задач и её оптимизация требует усилий
команды разработчиков. Однако такие системы уже созданы и успешно работа-
ют. Пример — система «рагк-азз!з1» для фольксвагена (рис. 4.16).
Рис. 4.16
подводим итоги
По-настоящему понимаешь что-то
только тогда, когда можешь выразить
это в виде алгоритма.
Педро Домингос.
«Верховный Алгоритм»
Мы любим всё оптимизировать в жизни. Благодаря возникновению генетиче-
ских алгоритмов у нас появилась возможность оптимизировать даже навыки и
умения своих машин. Напоследок отметим важные особенности ГА.
• Замечательная черта генетических алгоритмов состоит в том, что они мо-
гут решать задачу оптимизации там, где классическая математика не работа-
ет. Классическая математика умеет искать максимум у непрерывных функций
Е(х, у, х). И чем больше аргументов, тем сложнее задача. Ну как, скажите, описать
функцию пригодности для поиска лучшей базы знаний нечёткого контроллера в
виде непрерывной функции Е(х, у, х)? Классическая математика разводит руками,
а генетический алгоритм отлично справляется. Они могут использоваться как для
непрерывных, так и для дискретных оптимизационных задач.
• Генетический алгоритм работает с бинарными строками-хромосомами, дли-
на которых определяется размером пространства поиска, а их качество — функ-
цией пригодности (фитнес-функцией).
• Самое интересное — то, что генетический алгоритм ничего не знает о смыс-
ле той задачи, которую он решает. Про смысл знают лишь процедуры декодирова-
ния и оценки качества хромосом, которые задаются пользователем.
• Генетический алгоритм производит с хромосомами операции скрещивания
и мутации, порождая всё большее количество хромосом с лучшими значениями
пригодности. При этом ГА эффективно просматривает пространство поиска, со-
храняя хороших родителей, которые чаще, чем плохие, дают хорошее потомство.
Поэтому такой алгоритм с большей вероятностью находит оптимальное или близ-
кое к оптимальному, то есть хорошее, решение задачи.
• Генетические алгоритмы дали начало новым типам вычислений, таким как
эволюционное программирование и мягкие вычисления.
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 4
1. Какие идеи биологической эволюции использует генетический
алгоритм?
2. Какие основные процедуры используются в генетическом
алгоритме?
3. Что такое кодирование в генетическом алгоритме?
4. Что ищет генетический алгоритм в процессе своей работы?
5. Опишите процесс кодирования для решения задачи поиска
с помощью генетического алгоритма максимума функции
[(х) = х2 = х • х на интервале целых чисел [0; 63]. Приведите
пример ГА-хромосомы для этой задачи.
БЕСЕДА С ВЕДУЩИМ УЧЁНЫМ В ЛАБОРАТОРИИ
МОДЕЛЕЙ ОБУЧЕНИЯ И НЕЙРОВЫЧИСЛЕНИЙ
В которой Артём и Аня в Технопарке искусственного интеллекта посещают новую ла-
бораторию моделей обучения и нейровычислений. В беседе с ведущим учёным школьни-
ки узнают о том, что такое умение «обучаться», и как обучаются системы ИИ и роботы.
Они узнают, что такое обучение с учителем и без учителя и какие алгоритмы для этого
используются. Ребята знакомятся с новым направлением в ИИ, которое называется «ней-
ровычисления». Учёный рассказывает, что такое искусственные нейронные сети и зачем
они нужны системам ИИ. Ребята знакомятся с различными архитектурами нейронных се-
тей. С интересом узнают о том, что такое нечёткие нейронные сети, как они обучаются и
как используются в робототехнике.
ГЛАВА 5. БЕСЕДА С ВЕДУЩИМ УЧЁНЫМ В ЛАБОРАТОРИИ
МОДЕЛЕЙ ОБУЧЕНИЯ И НЕЙРОВЫЧИСЛЕНИЙ (184)
ОБУЧЕНИЕ С УЧИТЕЛЕМ И САМООБУЧЕНИЕ (187)
СПОСОБЫ ОБУЧЕНИЯ В ПРИРОДЕ (188)
ОБУЧЕНИЕ КОПИРОВАНИЕМ И ОБУЧЕНИЕ С ПОДКРЕПЛЕНИЕМ (189)
СХЕМА ОБУЧЕНИЯ С ПОДКРЕПЛЕНИЕМ (192)
ЗНАКОМСТВО С ИСКУССТВЕННЫМИ НЕЙРОННЫМИ СЕТЯМИ (193)
ОТ ЗАДАЧИ РАСПОЗНАВАНИЯ К ИСКУССТВЕННЫМ НЕЙРОСЕТЯМ (195)
КАК УСТРОЕНА ЖИВАЯ НЕЙРОННАЯ КЛЕТКА? (196)
УСТРОЙСТВО И ПРИНЦИП РАБОТЫ ИСКУССТВЕННОГО НЕЙРОНА (197)
Как работает искусственный нейрон? (198)
От одного нейрона к сетям параллельно работающих нейронов (199)
ПРОСТЕЙШИЙ ПРИМЕР НЕЙРОННОЙ СЕТИ. ПЕРСЕПТРОН (200)
ОТ ПЕРСЕПТРОНА К МНОГОСЛОЙНОМУ ПЕРСЕПТРОНУ И СЕТЯМ С ПРЯМЫМ
РАСПРОСТРАНЕНИЕМ СИГНАЛА (201)
Пример вычислений в многослойном персептроне (202)
Нейронная сеть Кохонена (204)
НЕЙРОСЕТИ С ОБРАТНЫМ РАСПРОСТРАНЕНИЕМ СИГНАЛА (205)
Что делает сеть Хопфилда? (206)
ОБУЧЕНИЕ НЕЙРОННЫХ СЕТЕЙ (209)
СУПЕРВИЗОРНОЕ ОБУЧЕНИЕ, ИЛИ ОБУЧЕНИЕ С УЧИТЕЛЕМ (209)
Обучение многослойного персептрона распознаванию букв (209)
Построение нейросети для распознавания букв (211)
Общая схема алгоритма супервизорного обучения нейросетей (212)
Как нейросеть учится на своих ошибках? (213)
Алгоритм обратного распространения ошибки (214)
НЕСУПЕРВИЗОРНОЕ ОБУЧЕНИЕ, ИЛИ ОБУЧЕНИЕ БЕЗ УЧИТЕЛЯ (215)
Пример обучения без учителя в сети Хопфилда (216)
ЧТО ТАКОЕ НЕЧЁТКИЕ НЕЙРОННЫЕ СЕТИ? (219)
Особенности нечётких нейросетей (220)
Задача интеллектуального управления движением
и взаимодействием двух роботов (223)
ПОДВОДИМ ИТОГИ (225)
ПРИЛОЖЕНИЕ ДЛЯ ГИКОВ: АЛГОРИТМЫ ОБУЧЕНИЯ НЕЙРОСЕТЕЙ (226)
Алгоритм супервизорного обучения
нейросетей на примере обучения персептрона (227)
Алгоритм обучения нейросети Кохонена (228)
Обучение без учителя в сети Хопфилда (229)
Как работает ассоциативная память сети Хопфилда? (230)
Пример нечёткой нейросети и вычислений в ней (231)
Пример вычислений в каждом слое нечёткой нейросети (232)
Обучение нечётких нейронных сетей (233)
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 5 (235)
Итак, Аня с Артёмом отправились в новое путешествие. На этот раз им пред-
стояла встреча с доктором физико-математических наук Александром, ведущим
научным сотрудником Технопарка ИИ, работающим в лаборатории моделей обу-
чения и нейровычислений.
Профессор, как и обещал, договорился со своим коллегой, и Александр ребят
уже ждал.
— Добрый день! — произнесла Аня, постучав и приоткрыв дверь лаборатории.
Учёный оторвался от своих бумаг и поднялся с приветствием.
— Добрый день, друзья! Я вас поджидаю. Мой коллега предупредил меня. Про-
ходите, располагайтесь.
— Здравствуйте, уважаемый учёный, — сказала Аня. — Меня зовут Аня. А это
мой друг Артём. — Я учусь в 8-м классе и интересуюсь всем на свете.
— А я учусь в 10-м классе и увлекаюсь робототехникой, — сказал Артём. — Мне
хотелось бы понять, могут ли роботы стать умнее человека.
— О! Серьёзный вопрос. Очень рад. Обязательно обсудим. Зовите меня просто,
Александр, можно Алекс.
— А ещё нам хотелось бы узнать, могут ли роботы учиться и как они это дела-
ют, — сказала Аня.
— То есть, вы хотите узнать, могут ли роботы достичь такой же способности
к обучению, какая есть у людей?
— Ну да.
— Похвально. Давайте разберёмся, что это такое «умение обучаться»? «Мы
все учились понемногу чему-нибудь и как-нибудь», — произнёс, улыбнувшись,
Алекс. — Предлагаю начать наш разговор с обсуждения того, что вообще значит
«обучаться, учиться»? Что думаете?
— По-моему, учиться — это значит получать новую информацию, — ответила
Аня.
— Не совсем так. Процесс обучения, конечно, связан с получением новой ин-
формации. Однако простое её накопление ещё не означает обучения. Вот пред-
ставьте себе ученика, который просто запоминает решение каждого конкретного
уравнения вместо того, чтобы понять (найти) общий принцип его решения. Такую
«зубрежку» с большой натяжкой можно назвать обучением. Разве что его самой
примитивной формой. Верно?
— Верно, — согласился Артём. — Нам очень интересно узнать, как это проис-
ходит в системах искусственного интеллекта.
— Отлично. Давайте об этом поговорим.
ОБУЧЕНИЕ С УЧИТЕЛЕМ И САМООБУЧЕНИЕ
Природа так обо всём позаботилась,
что повсюду ты находишь, чему учиться.
Леонардо да Винчи
Способность обучаться является одним из фундаментальных свойств любого
интеллекта. Это способность действующего существа (будь то человек, животное
или робот) приобретать знания, взаимодействуя со средой.
Учёные в области ИИ пытаются моделировать эту способность, и уже есть хоро-
шие результаты не только в теории, но и в реальных приложениях.
Существует два основных типа обучения: это обучение с учителем и обучение
без учителя (самообучение).
— Кто, по-твоему, Аня, может быть учителем для тебя?
— Как кто? — удивилась Аня. — Например, бабушка. А ещё мои родители и
школьные учителя, само собой. И книжки, и учебники, конечно.
— Согласен. В жизни каждого человека есть много учителей. Учитель обучает
с помощью примеров, объяснений, инструкций, правил и домашних заданий для
закрепления обучения. Верно?
— Ну да. Только этих домашних заданий бывает очень много! — ответила Аня.
— А как без этого? Иначе ты не усвоишь и не запомнишь новые знания. А без
них ты не поймёшь другие новые.
— И что, всю жизнь учиться? — задумалась Аня.
Машинное обучение - класс методов искусственного
интеллекта, характерной чертой которых является
не прямое решение задачи, а обучение в процессе о; '
применения решений сходных задач.
— Почему бы и нет? Помнишь поговорку «век живи — век учись»?
— А как быть с роботами. Они тоже должны следовать этой пословице? Или
как? — спросил Артём.
— Обучение у систем искусственного интеллекта и роботов зависит от их задач,
предназначения и возможностей современных технологий. Эта область исследо-
ваний называется машинным обучением. Его иногда путают с искусственным
интеллектом, однако это всего лишь подраздел науки ИИ. Давайте познакомимся
с этим популярным и очень востребованным сегодня направлением исследова-
ний.
А начнём мы с того, что посмотрим, какие способы обучения существуют в при-
роде.
СПОСОБЫ ОБУЧЕНИЯ В ПРИРОДЕ
В природе обучение происходит как с учителем, так и без учителя, когда в его
роли выступает она сама (природа). Тогда мы говорим о самообучении.
Простейшими формами такого обучения обладают многие живые существа, на-
пример животные. Их учит среда, в которой они выживают, а природа — жестокий
учитель.
Наблюдая за поведением животных, учёные-зоопсихологи (например, извест-
ный этолог Эдвард Ли Торндайк) открыли способ самообучения, который назвали
методом проб и ошибок. Такое обучение — важнейшее условие выживания в
природе.
В математике этот метод проб и ошибок тоже хорошо известен. Он представ-
ляет собой поиск решения той или иной задачи в виде случайного перебора неко-
торых «пробных» действий, с проверкой полезности этих действий и выработкой
соответствующей реакции («успех» либо «неудача»).
Знания, полученные в процессе самообучения, хорошо запоминаются. Их в
шутку называют «горячими» знаниями.
— Согласна, Аня? — спросил, улыбнувшись, Александр.
— Конечно. Есть даже такая пословица «обжёгшись на молоке, дуют на воду», —
ответила бойкая школьница.
— Да, Аня, ты за словом в карман не полезешь! — засмеялся учёный.
Хорошо известны опыты с самообучением у лабораторных мышей. В течение
этого процесса поиска мышь «учится» и запоминает план лабиринта. В следую-
щий раз она будет использовать запомненный путь для скорейшего выхода из
этого лабиринта.
Выход
Эксперимент с мышью
Мышь поместили в незнакомый лабиринт, в котором не было никакой пищи, и
проследили за поведением грызуна. Так как еды в лабиринте не было, то первей-
шая задача выживания для мышки — это поскорее найти выход из него. Вначале
в поисках выхода мышь мечется по лабиринту случайным образом, туда-сюда.
Побегав (например, минут десять) по лабиринту и не достигнув цели, выхода из
лабиринта, мышь отбрасывает эти ходы и ищет другие. Если она не будет быстро
искать новые пути, то просто сдохнет. Так что мышь продолжает свой поиск вы-
хода. В какой-то момент она случайно находит выход из лабиринта и запоминает
его.
ОБУЧЕНИЕ КОПИРОВАНИЕМ
И ОБУЧЕНИЕ С ПОДКРЕПЛЕНИЕМ
Более высокоорганизованные животные и люди используют различные спосо-
бы самообучения. Например, обучение копированием. Биологи мне рассказывали
вот такую историю про японских макак.
Зоологи, изучавшие поведение японских макак, часто оставляли на песчаном
берегу реки клубни сладкого картофеля — батата.
Как-то раз одна молодая самка решила, прежде чем съесть клубень, обмыть
его в речке. Она направилась с клубнем к воде и, держа его в одной лапе, другой
стала мыть. До тех пор обезьяны ели клубни прямо с налипшим на них песком.
По-видимому, обнаружив, что мытые клубни гораздо вкуснее, она и дальше
продолжала поступать таким же образом. Спустя некоторое время одна из её под-
руг стала ей подражать. Через несколько месяцев к ним присоединились ещё не-
сколько макак. В конце концов, вся стая научилась мыть клубни.
Современные роботы тоже используют этот метод, чтобы научиться у человека
многим полезным движениям. Робот Асимо, например, умеет хорошо копировать
жесты и движения людей. На это интересно посмотреть. (Кстати, рекомендую вам
посетить нашу лабораторию интеллектуальных роботов.)
Есть интересный способ обучения, который называется обучением с подкре-
плением (или с поддержкой). Это разновидность самообучения.
Рассмотрим пример. Вы ведёте диалог с учителем на некотором символиче-
ском языке, которого не знаете. Другими словами, вы не знаете правил построе-
ния правильных ответов на этом языке.
Ваша задача — найти эти правила, исходя из взаимодействия с учителем, ко-
торый может давать только оценку «правильно» или «неправильно» (и больше
никаких подсказок!).
Это взаимодействие можно описать с помощью таблицы следующим образом.
Учитель записывает в таблицу свой вопрос на данном языке. Вы читаете вопрос
из таблицы, и через некоторое время (принятия решений) помещаете в таблицу
свой ответ на этот вопрос. Затем смотрите, какую оценку выставляет учитель.
Если учитель ставит «+», то ответ правильный, если «-», то ответ неправильный.
— Пока не очень понимаю, — задумчиво произнесла Аня. — Это что, игра?
— Можно и так сказать. Давайте поиграем в такую игру. Вот смотрите.
Рисую таблицу, в которой в первой колонке будут мои вопросы на некотором
символическом, не известном вам языке. На каждый вопрос вы будете отвечать
некоторым образом, исходя из каких-то своих соображений. Я буду оценивать
ваши ответы значками «-» (неправильно) и «+» (правильно). Давайте будем за-
писывать мои вопросы и ваши ответы с моей оценкой в табличку.
Ваша задача — понять (найти) те общие правила, по которым даются правиль-
ные ответы.
Итак, мой первый вопрос: «ар»? Кто из вас ответит?
— Ну, пусть будет «ар», — ответила Аня.
— Неправильный ответ. Оценка — минус. Это показано в первой строке
табл. 5.1.
Играя с учителем в «вопрос-ответ», ребята построили табл. 5.1.
Таблица 5.1
№ Вопрос Ответ Оценка
1 ар ар —
2 Р Р +
3 ар Р +
4 ас С +
5 асе1_ 1 —
6 асе1_ се1_ +
7 а] се ]се —
8 а] се се —
9 а] се а] се —
10 а] се се1_ +
11 а] ре ре1_ +
12 аре1_ ре1_ +
13 асе!_В се1_В +
— Аня, посмотри внимательно на нашу табличку. Попробуй увидеть в ней не-
которые закономерности.
— Ничего я не вижу. И мне это ни о чём не говорит, — разочарованно ответила
Аня.
— А ты, Артём?
— Мне что-то тоже трудно что-либо увидеть разумное...
— Хорошо. Я сейчас введу словарь значений для используемых в обучении
символов. Думаю, что теперь вы сможете увидеть смысл этого языка.
Вот посмотрите. Пусть наши символы обозначают следующее:
а — скажи; р — мама; с — Света; ) — чтобы; е1_ — иди; е — шла, В — домой.
Что значат строчки в нашей таблице?
Например, на седьмой вопрос «а)се» («скажи чтобы Света шла») ты, Аня, отве-
тила «)се», что было неправильно.
— Действительно, — ответила Аня. — Вы говорили мне «а)се», что значит «ска-
жи чтобы Света шла». А я отвечала «чтобы Света шла», и это было неправильно.
А правильно было сказать: «Света иди», то есть се1_. Ну, теперь ясно. Когда появ-
ляется смысл, совсем другое дело! Тогда понять легче и ответить быстрее.
— Конечно, в этом случае ты уже опираешься на свои знания (о языке в данном
случае).
СХЕМА ОБУЧЕНИЯ С ПОДКРЕПЛЕНИЕМ
— Да уж! — воскликнула Аня. — При таком обучении придётся прилично «по-
потеть». Ох, боюсь, что если вопросов будет много, то я не справлюсь с этой за-
дачей. Пусть уж лучше компьютер, или робот, сам разбирается, что к чему.
— В любом случае, чтобы робот мог хорошо разбираться, как ты говоришь, Аня,
нам надо сначала понять, как работает тот или иной способ (алгоритм) обучения.
А потом уже встроить этот алгоритм в программу поведения робота.
Во многих задачах ИИ используется обучение с подкреплением. Например, при
игре в шахматы самообучающаяся программа запоминает серию ходов в случае
выигрыша. Сыграв тысячи игр, программа может научиться выигрывать, то есть
уметь определять, какие шаги, скорее всего, приведут к победе.
Сейчас я нарисую общую схему такого обучения, она нам пригодится в даль-
нейшем. Вот она (рис. 5.1). Посмотрим внимательно, что тут изображено. Большой
блок, который называется системой обучения, представляет собой некоторую под-
систему (программу), которая встроена в робота или в систему ИИ, выполняющую
некоторую задачу (например, победить в игре в шахматы или распознать входной
зрительный образ и так далее).
На вход этой программы поступают обучающие примеры. Обычно такие обу-
чающие примеры называются обучающей выборкой. В результате обработки
каждого примера выдается некоторый ответ. На рис. 5.1 этот ответ обозначается
словом (переменной) «выход». Этот выход ещё называется реакцией, или дей-
ствием. «Учителем» в этой схеме является специальный блок оценки правильно-
сти реакции (действия) на поступивший вход.
Вход: стимулы
Рис. 5.1
Этот блок оценивает, насколько правильно обучающаяся система научилась
распознавать пример 1, пример 2 и так далее и выдавать нужные реакции.
Чем больше примеров, тем точнее обучение, например, языку.
После обучения система готова распознавать и правильно реагировать на вход-
ные сигналы.
В случае с мышкой в лабиринте обучающими примерами будут различные пути
в нём, а в качестве учителя выступает природа. Она, как известно, строгий учи-
тель.
В результате такого обучения мышка запоминает тот путь в лабиринте, который
ведёт к выходу из лабиринта.
ЗНАКОМСТВО С ИСКУССТВЕННЫМИ
НЕЙРОННЫМИ СЕТЯМИ
Обучение в природе тесно связано с задачей распознавания внешних образов
(сигналов) окружающей среды. Важную роль при этом играют зрительные образы.
Например, при обучении детей чтению и письму их прежде всего обучают умению
распознавать буквы (символы) алфавита русского языка. А в животном мире де-
тёнышей учат распознавать те или иные виды опасности, которые представляют
собой зрительные образы других животных.
Рассмотрим, например, следующую ситуацию.
Мышонок вылез из норы и увидел животное на четырёх ногах. Что делать? Нуж-
но побыстрее сообразить — кто это? А потом либо спрятаться, либо рискнуть вый-
ти погулять.
Как мышонок решает эту задачу? Прежде всего, он учится распознавать возни-
кающие перед ним образы. Кто это? Кошка, собака, бурундук или кто-то другой?
В математике эта задача называется задачей распознавания образов.
Используя свой механизм распознавания, мышонок почти мгновенно узнает, кто
перед ним. Если это — кошка, то его прогноз о действиях кошки вполне очевиден:
кошка попытается его схватить и съесть. И в ответ на этот внешний образ мышка
быстро убегает в свою норку. Она уже научена своим опытом — ничего хорошего
от кошек ждать не приходится! Скорость реакции у животных поразительна!
— Как животным это удаётся? Что вы думаете, ребята? — спросил Александр.
— Просто мышка умеет быстро бегать, — задумчиво произнесла Аня.
— Она умеет не просто быстро бегать, она умеет очень быстро (почти мгно-
венно) распознавать врага и реагировать на опасность. Все животные это умеют
делать, — сказал Артём.
— Вот учёные и задумались над этим вопросом.
Каким образом реализуется быстрое распознавание и почти мгновенная реак-
ция? Роботам такое умение тоже бы очень пригодилось!
Ученые нейробиологи выяснили, что мозг живых существ, и особенно челове-
ка, содержит порядка 1011 (то есть 10 с одиннадцатью нулями) нейронов и имеет
порядка 1015 связей между нейронами. Это очень большие числа. Для сравнения,
такое же количество звёзд в нашей галактике Млечный Путь.
Именно наличие такого количества нейронов и их взаимосвязей в мозге опре-
деляет высокую скорость реакции, например, в задачах узнавания.
Исследования в нейробиологии подтолкнули исследования в теории ИИ. Так
появилась простейшая математическая модель восприятия в живой природе,
с помощью которой устанавливаются связи между входными стимулами и необхо-
димыми реакциями. (Например, мышонок увидел кошку и спрятался в норку.)
Это дало толчок к развитию нового направления в ИИ — искусственным ней-
ронным сетям и решению задач на основе их обучения.
ОТ ЗАДАЧИ РАСПОЗНАВАНИЯ
К ИСКУССТВЕННЫМ НЕЙРОСЕТЯМ
Прежде чем об этом говорить, послушаем одну притчу.
Однажды Ученик пришёл к Учителю и спросил:
— Учитель, чем умный человек отличается от глупца?
Было тихое солнечное утро. Учитель пил зелёный чай и предавался размышле-
ниям о сути вечности. Однако ради Ученика он отставил пиалу с недопитым чаем,
прекратил свои размышления, встал и повёл Ученика за собой.
Он привёл Ученика к горе, к тому её склону, где недавно был небольшой обвал,
и у подножия горы лежали камни разной величины. И Учитель сказал Ученику,
чтобы тот отнёс все камни на вершину горы. Камней было много, и Ученик таскал
их целый день.
Ученик очень устал, но к закату он, наконец, перетаскал все камни. Потом подо-
шёл к Учителю, полный гордости за выполненную работу, и спросил:
— Учитель, теперь я могу узнать ответ на свой вопрос?
— Нет, — покачал головой Учитель, — ты ещё не готов.
— А зачем тогда мне надо было таскать все эти камни? — возроптал Ученик.
— Вот, — поднял Учитель указательный палец, — умный человек задал бы этот
вопрос до того, как начал их таскать...
— Ик чему эта притча, что вы думаете, ребята? — спросил Александр.
— Ну, я думаю, что прежде чем таскать камни, надо понять, нужно ли тебе это
делать, — ответил Артём.
— Вот и я об этом. Будем таскать камни? То есть я хочу спросить: готовы изу-
чать способы обучения в системах искусственного интеллекта?
— Конечно, готовы. Иначе я не смогу запрограммировать умный электронный
мозг для моего робота. А мозги ему очень нужны, — ответил Артём.
— Хорошо! Начнём с самого начала и проследим путь, который проделали ис-
следования в области машинного обучения и искусственных нейронный сетей.
По аналогии с живой нервной системой, искусственные нейронные сети так же,
как и в живой природе, состоят из множества нейронов, но только искусственных,
объединённых между собой разными связями.
Что умеют вычислять подобные структуры? Мы об этом и будем говорить.
Сначала нам надо понять, как устроен живой нейрон, а затем посмотрим, как по
аналогии с ним была создана математическая модель формального (искусствен-
ного) нейрона.
КАК УСТРОЕНА ЖИВАЯ НЕРВНАЯ КЛЕТКА?
Живая нервная клетка, или биологический нейрон, представляет собой особый
вид клеток в живых организмах, назначение которых заключается в оперативном
управлении организмом.
Биологический нейрон состоит из тела и нескольких ветвей-отростков.
Отростки, проводящие информацию (стимул) в тело, называются дендритами.
(Дендриты — как правило, короткие и сильно разветвлённые отростки.)
Отростки, проводящие информацию (реакцию) из тела, называются аксонами.
Аксон — обычно длинный отросток, приспособленный для проведения возбужде-
ния от тела нейрона к другим нейронам.
Место контакта между двумя нейронами называется синапсом. Это определён-
ные участки в нервных окончаниях, с помощью которых происходит передача ин-
формации (нервного импульса) между нейронами.
Увидеть живую нервную клетку удалось не так давно, каких-то несколько десят-
ков лет назад. Это стало возможным благодаря появлению специальных лазер-
ных микроскопов.
— Интересно! Я даже и не подозревала, что у меня такие нервные клетки! —
воскликнула Аня. — Красиво!
— Действительно, красиво.
А теперь посмотрим, как устроена и работает модель искусственного нейрона.
УСТРОЙСТВО И ПРИНЦИП РАБОТЫ
ИСКУССТВЕННОГО НЕЙРОНА
Модель искусственного, или формального, нейрона показана на рис. 5.2. Ис-
кусственный нейрон представляет собой некоторую вычислительную процедуру,
у которой есть вход и выход.
Вход задаётся некоторой последовательностью символов, например хг х2, ...,
хп. Выход простого искусственного нейрона — один. Он обозначается у.
вход 2
тело
Рис. 5.2
У
-----► выход
«Тело» нейрона (показанное в виде круга) вычисляет заданную функцию акти-
вации у =1(8, И). Таким образом, активность формального нейрона описывает-
ся его функцией активации Л
Историческая справка
Модель формального нейрона была разработана в 1943 году двумя автора-
ми — нейропсихологом Мак-Каллоком и математиком Уолтером Питтсом.
Каждый входной сигнал х. имеет некоторое числовое значение. Обычно это О
или 1. Эти сигналы описывают, например, то, что видит мышка.
— Простите, уважаемый Алекс, подождите. Не понимаю. Как то, что видит мыш-
ка, можно представить какими-то сигналами? — спросила Аня.
— Не торопись. Мы до этого тоже дойдём. Позже я приведу пример, и ты пой-
мёшь, как это делается. А пока продолжим наш разговор, как работает формаль-
ный нейрон.
Вход в «нейрон» — не простой, а «взвешенный»! Другими словами, каждому
входному сигналу х. приписывается некоторый синаптический вес — ил.
На рисунке это показано с помощью стрелочек, над которыми указан синапти-
ческий вес. Эти веса играют важную роль. Они определяют реакцию нейрона на
входные значения! Посмотрим, как это делается.
Как работает искусственный нейрон?
Функция активации нейрона у = /(8, Ц) зависит от двух параметров — 8 и I/.
Параметр 1У называется порогом активации нейрона. Он задаётся заранее (го-
ворят «априори»).
А параметр 8 вычисляется согласно следующей простой формуле:
8=иух^ + ш^2+ ... + \л/пхп. (5.1)
Параметр 8 называется взвешенной суммой всех входных сигналов, идущих
в тело нейрона. Запомним формулу (5.1), она нам пригодится.
Функции активации / могут быть разными, но в простейшем случае использу-
ются так называемые пороговые функции. Пример простой пороговой функции
Могут быть другие виды функций активации, например гауссовы, треугольные
и так далее.
График гауссовой функции, например, показан на рис. 5.4.
Вычисление выходного значения нейрона с пороговой функцией активации
задаётся следующей процедурой.
Процедура 5.1
1. Вычисляется взвешенная сумма 8 всех входов.
2. Если взвешенная сумма 8 превышает заданный порог активации С/, то вы-
ходное значение функции активации нейрона генерируется равным 1 (/"= 1).
3. Если взвешенная сумма 8 не превышает заданный порог и (5 < Ц), то гене-
рируется выходное значение, равное 0 (/= 0).
4. Полученный результат посылается на единственный выход у.
От одного нейрона к сетям параллельно
работающих нейронов
По аналогии с живыми системами объединим искусственные нейроны в искус-
ственные нейронные сети, соединив выходы одних нейронов с входами других.
Объединять нейроны в сети нейронов можно различными способами. При этом,
как говорят учёные, создаются различные архитектуры нейронных сетей.
Обсудим, как можно объединить в сеть несколько нейронов, взаимодействую-
щих между собой.
— Что значит «взаимодействующих»? — спросила Аня.
— Взаимодействующих — значит решающих совместно некоторую задачу, на-
пример, распознавания, кто перед тобой — «кошка или не-кошка», как это умеет
делать нервная система мышонка.
Нейронные сети разной структуры (архитектуры) могут решать различные
задачи. Например, нейронная сеть может обучиться и решать задачу классифи-
кации-. определить, принадлежит ли входной сигнал некоторому заданному клас-
су? Если ответ сети равен 1, то принадлежит. Если ответ сети равен 0, то не при-
надлежит.
Задачу классификации может успешно решать нейронная сеть, которая назы-
вается персептроном. На заре ИИ это была первая программа так называемых
нейровычислений. Сейчас это направление бурно развивается.
Искусственная нейронная сеть - система соединённых
/XX и взаимодействующих между собой простых
вычислительных процессоров (искусственных нейронов).
Архитектура нейронной сети показывает, из какого числа
и какого типа нейронов состоит нейросеть,
и как устроены связи между нейронами.
Нейровычисления - вычисления, проводимые /124.
в искусственных нейросетях.
Задача классификации
Определить, принадлежит ли входной сигнал к некоторому заданному классу?
Если ответ сети равен 1, то принадлежит. Если ответ сети равен 0, то не принад-
лежит.
ПРИМЕЧАНИЕ. Здесь и далее мы будем использовать термин «нейросеть», под-
разумевая при этом искусственную нейронную сеть.
простейшим пример нейронной сети, персептрон
Историческая справка
Персептрон (от английского слова регсерИоп — восприятие) — простейшая
нейронная сеть, которую в 1957 году придумал один из первых создателей ис-
кусственных нейронных сетей — Фрэнк Розенблатт. С её помощью он попытал-
ся описать процесс восприятия зрительных образов человеческим мозгом.
Фрэнк Розенблатт разработал алгоритм обучения персептрона, с помощью
которого эта нейросеть могла решать задачу классификации. Например, пер-
септрон мог распознать, является ли входной сигнал кошкой или нет.
Архитектура персептрона показана на рис. 5.5.
5-элементы А-элементы Я-элементы
„ „ (сенсоры, (ассоциативные) (реагирующие)
Входной сигнал — рецепторы)
изображение
кошки
Реакция действия:
мышка спряталась
в норку
веса ил
Рис. 5.5
Классический персептрон состоял из нейронов трёх типов:
• нейроны, воспринимающие сигналы внешнего мира (например, зрительные
нейроны, воспринимающие образ кошки); в модели они называются 5-элементы;
• нейроны, участвующие в задаче распознавания; они называются ассоциа-
тивные нейроны (А-элементы);
• нейроны, формирующие выходной сигнал (реакцию сети); в модели это —
реагирующие элементы (Я-элементы).
В такой структуре выделяются входной слой — 5-элементы, внутренний слой
(или активный слой) и выходной слой — Я-элементы.
Важным свойством любой нейросети является способность обучаться.
Модель первого, классического, персептрона стала первым камнем в фунда-
менте современных разработок искусственных нейронных сетей. К знакомству
с ними мы и перейдём.
ОТ ПЕРСЕПТРОНА К МНОГОСЛОЙНОМУ ПЕРСЕПТРОНУ
И СЕТЯМ С ПРЯМЫМ РАСПРОСТРАНЕНИЕМ СИГНАЛА
От персептрона перейдём к многослойному персептрону, который является
простейшим представителем класса так называемых нейросетей с прямым рас-
пространением сигнала.
Пример архитектуры многослойного персептрона показан на рис. 5.6.
Нейросети с прямым распространением сигнала -
это сети, в структуре которых нет петель (циклов).
Другими словами, входной сигнал в таких сетях
обрабатывается, следуя от входа к следующему слою
и так далее до выхода, не возвращаясь назад.
В такой структуре выделяются входной слой, два внутренних слоя (их называют
скрытыми активными слоями) и выходной слой.
Таким образом, в этой сети имеется четыре слоя нейронов.
Входной слой состоит из четырёх нейронов. Число нейронов во входном слое
соответствует длине входного сигнала X = (х1 х2 х3 х4).
Обычно входной сигнал представляется в виде бинарной строки определённой
длины. В нашем примере X = (х1 х2х3х4) = (1010).
Этот входной сигнал поступает во входной слой нейросети.
Поступившие значения снабжаются «синаптическими весами» и передаются во
внутренний, скрытый, слой активных нейронов. На рис. 5.6 синаптические веса
обозначены числами над красными стрелочками.
Каждый активный нейрон слоя 1 (на рисунке это нейроны, помеченные пг п2)
вычисляет выходное значение (уг у2) по формуле (5.1), используя процедуру 5.1
вычисления математического нейрона у = /(8, Ц). Эти вычисления мы недавно
обсудили.
Особенности таких сетей:
€-О"/ • используется такое понятие, как «слой» нейронов;
• нейроны в «слое» не взаимодействуют друг с другом;
• взаимодействие осуществляется только между нейронами
Ц соседних «слоёв»;
• входной сигнал в таких сетях обрабатывается от входа
к следующему слою и так далее до выхода, не возвращаясь
назад.
Пример вычислений в многослойном персептроне
Рассмотрим пример вычисления в сети, показанной на рис. 5.6. Пусть на вход
этой нейронной сети поступают следующие входные данные: х1 = 1, х2 = 0, х3 = 1,
х4 = 0.
Пусть для простоты функции активации нейронов будут пороговыми, а порого-
вое значение параметра 1У равно 0 во всех нейронах нашей сети.
Согласно формуле (5.1) и процедуре 5.1 нейроны л1 и п2 выполняют следующие
вычисления.
Нейрон пг Считается взвешенная сумма всех входных сигналов, идущих
в тело нейрона п^.
8(п,) = 1 • (-5) + 0- 3+1 - 2 + 0- 4 =-3.
Эта сумма отрицательная. Следовательно, согласно вычислению пороговой
функции активации с и = 0 выход из нейрона л1 будет равен: = у1 = 0.
Нейрон п2. Считается взвешенная сумма всех входных сигналов, идущих
в тело нейрона л2:
8 (п2) = 1 • 6 + 0 • (-1) + 1 • (-2) + 0-5 = 4.
Сумма положительная. Следовательно, выход / (л2) = у2 = 1.
Нейрон п3 выдаёт ответ сети. Результаты вычисления в нейронах л1 и п2 по
стрелочкам (связям) передаются в нейрон п3.
Он вычисляет свой результат тоже согласно формуле (5.1) и процедуре 5.1
и с учётом и = 0 получается:
8(п3)=у1-(-1)+у2-2 = 0(-1) + 1 -2 = 2.
Эта сумма положительная. Следовательно, выход /(л3) = у3 = 1.
Этот выход и будет результатом вычисления в сети, то есть ответом сети.
— Значение у (равное 1) и есть конечный результат вычисления в данной ней-
росети. Понимаете, Аня, Артём? — спросил учёный.
— Как-то странно, — спросила Аня. — Ну, вычислила ваша нейросеть, чтоу = 1.
И что это означает?
— Это означает следующее. Если сеть обучить, то она сможет определить, при-
надлежит ли входной сигнал (описывающий некоторое изображение) к заданно-
му классу, например, кошек. Если ответ равен 1, то это кошка. Если ответ равен
нулю, то это не кошка.
— Так её ещё надо обучать? Интересно, как? — удивилась Аня.
— Об этом мы и будем говорить. Изменяя значения синаптических весов, ней-
ронная сеть может обучаться!
К обучению нейросетей мы скоро подойдём. А сейчас посмотрим ещё на один
важный класс нейронных сетей.
Нейронная сеть Кохонена
А вот ещё один интересный пример нейросети с прямым распространением сиг-
нала — это сеть Кохонена. Её архитектура показана на рис. 5.7.
Рис. 5.7
Сеть Кохонена умеет разделять множество входных данных на группы (класте-
ры), не схожие между собой. Так что она вполне может разложить по полочкам
вашу свалку данных. А это очень важная и полезная задача.
Такая сеть вполне может разложить по полочкам вашу свалку данных.
Странность сети в том, что у неё нет функции активации как таковой. Она воз-
никает только при обучении.
По своему виду эта нейросеть похожа на персептрон, однако принцип её рабо-
ты отличается от персептрона. В чём её отличие от персептрона?
В сети — один активный слой (слой 1 на рис. 5.7), количество нейронов в этом
слое равно количеству полочек-кластеров, на которые надо разложить данные.
У нейронов сети Кохонена нет функции активации как таковой. Она возникает
только при обучении.
— Хм, интересно... Так тоже бывает? — удивился Артём.
— Да. В разделе обучения мы об этом поговорим. На этом мы пока эту сеть
оставим в покое и пойдём дальше. Посмотрим на архитектуру другого важного
класса нейросетей.
Это нейросети с обратным распространением сигнала.
НЕЙРОСЕТИ С ОБРАТНЫМ
РАСПРОСТРАНЕНИЕМ СИГНАЛА
Наряду с сетями прямого распространения сигнала есть нейросети с обратным
распространением сигнала. Познакомимся с известным примером таких сетей —
сети Хопфилда. Они используются для решения задач запоминания, ассоцииро-
вания и распознавания. И могут служить основой для ассоциативной памяти, на-
пример, робота или некоторой системы ИИ. Посмотрим на рис. 5.8.
Нейросети с обратным распространением сигнала -
это сети, в структуре которых
есть обратные связи (или петли).
— Странная какая-то сеть... — сказала Аня, разглядывая картинку, — всего
один слой и куча стрелочек туда-сюда.
— Не «странная», а сеть с обратными связями в структуре. Давайте разбе-
рёмся.
Сеть имеет внешний входной слой, один скрытый слой и внешний выходной
слой. На вход сети в общем случае поступает входной бинарный сигнал. Он коди-
рует тот образ, который надо распознать системе.
— Какая-то странная путаница из входов-выходов, — заметил Артём. — Для
чего?
— Обсудим особенности сети Хопфилда.
• Сеть Хопфилда имеет внешний входной слой и внешний выходной слой.
• Число нейронов в скрытом слое сети равно числу входов.
• В скрытом слое каждый нейрон связан с каждым другим нейроном.
• Каждый нейрон имеет два типа входов и выходов. На вход в нейрон идут
сигналы от внешнего входного слоя и от других нейронов скрытого слоя (по об-
ратным связям).
• Точно так же каждый нейрон посылает результат своего вычисления по
двум направлениям: всем другим нейронам в скрытом слое и во внешний выход-
ной слой.
• Нейроны в сети Хопфилда не воздействуют сами на себя.
Что делает сеть Хопфилда?
Функция активации нейронов в сети Хопфилда — простая. Вычисляется взве-
шенный вход в данный нейрон. Если его значение положительное, то выход ней-
рона (ещё говорят состояние нейрона) равен +1, если взвешенный вход — отри-
цательный, то состояние нейрона равно -1.
Таким образом, каждый нейрон сети может принимать одно из двух состояний
(выходных значений): +1 или -1.
Процесс взаимодействия между нейронами в сети Хопфилда задаётся матри-
цей связи (или взаимодействия), которая описывает синаптические веса всех свя-
зей между нейронами в сети.
Теперь поговорим о том, что может делать такая нейросеть. Главная её зада-
ча — это задача распознавания входных образов.
— Мы же только обсуждали персептрон, который тоже решает задачу распо-
знавания. Так в чём тут фишка? Зачем нужна ещё одна сеть? — спросил Артём.
— Хороший вопрос, Артём. Смотришь в корень. А фишка тут в том, что персеп-
трон может решать задачу распознавания строго только тех входных образов, на
которые он обучен, причём входной образ не должен отличаться от обученного.
А сеть Хопфилда может распознавать (узнавать) как обученные образы, так и
образы, близкие к обученным, например образы с искажениями.
Задача распознавания в этом случае становится более сложной.
Задача распознавания, решаемая данной сетью в качестве ассоциативной
памяти, формулируется следующим образом: известен набор бинарных сигналов
(изображений, звуковых оцифровок, прочих данных, описывающих некие объек-
ты), которые считаются образцами.
Нейросеть должна уметь из произвольного необразцового сигнала, поданного
на её вход, выделить («вспомнить» по частичной информации) соответствующий
образец (если такой есть) или «дать заключение» о том, что входные данные не
соответствуют ни одному из образцов.
— Рассмотрим простой пример. Представьте себе, ребята, что ваш робот ещё
совсем маленький, и вы с помощью сети Хопфилда учите его распознавать раз-
личные объекты окружающей среды, например собаку.
Допустим, на вход системы распознавания подаётся некоторое двумерное изо-
бражение собаки. Для того чтобы понять, как работает сеть, мы возьмём очень
упрощённое изображение «собаки» (рис. 5.9).
Рис. 5.9
А вот теперь задача: как двумерное изображение собаки (зрительный входной
образ) представить в виде входного сигнала, поступающего на вход нейросети.
Как это можно сделать? Как правило, сети Хопфилда так же, как и персептрон,
работают с бинарными входными сигналами (бинарными строками).
Обсудим, как можно представить наш входной образ собаки в виде бинарной
строки Х= {хг х2, х3,х100}.
Закодируем чёрные клеточки на рис. 5.9 как -1 (минус 1), а белые клеточки
как +1.
Запишем первую строку таблицы как
(11111-11111).
Вторую строку как
(-11111-11111),
и так далее до самой последней, десятой строки:
(1-1-11-1-11111).
А затем вытянем все строки таблицы в одну строку.
Получим строку из 100 символов (11111-11111 ...), которая будет представлять
входное изображение собаки, поступающее на вход нейронной сети.
Для распознавания таких изображений нам понадобится нейронная сеть, со-
стоящая из 100 нейронов (размер сети равен размеру входной строки).
Число нейронов сети Хопфилда равно размеру входной бинарной строки.
Для того чтобы использовать данную сеть для задач ассоциативной памяти, её
прежде всего надо будет обучить. Поэтому оставим пока этот пример и обсудим
алгоритмы обучения в нейросетях.
ОБУЧЕНИЕ НЕЙРОННЫХ СЕТЕЙ
Необученная нейросеть подобна ребёнку — её можно научить чему угодно.
В теории нейронных сетей так же, как и в природе, используются два типа обуче-
ния: обучение с учителем (его называют супервизорным обучением) и обучение
без учителя (или самообучение). Его называют несупервизорным обучением
(рис. 5.10).
Многослойные персептроны обучаются по первому способу. А сети Хопфилда
обучаются по второму способу. Сейчас я вас познакомлю с основными идеями
такого обучения.
Рис. 5.10
«Обучить» выбранную нейронную сеть означает подобрать значения её синап-
тических весов, чтобы она работала нужным образом.
СУПЕРВИ30РН0Е ОБУЧЕНИЕ,
ИЛИ ОБУЧЕНИЕ С УЧИТЕЛЕМ
Обучение многослойного персептрона
распознаванию букв
— Давайте построим нейросеть для задачи распознавания букв русского алфа-
вита и научим её решать эту задачу с помощью алгоритма супервизорного обуче-
ния.
С чего начнём?
Первое, что нам нужно, — это решить, в каком виде подавать изображения букв
на вход сети. Поступим следующим образом. Вот вам, ребята, бумага в клеточку
и фломастеры. Возьмите по листу бумаги и выделите область клеток размером,
например, 6 х 7 = 42 клеточки.
В этой области нарисуйте изображение буквы А, закрашивая чёрным цветом
определённые клеточки. Чёрные клеточки закодируем как 1, а белые — как 0. Это
означает, что в каждую клеточку таблицы мы поместим один бит информации:
1 или 0.
Вот что получилось у Ани и Артёма (рис. 5.11).
Рисунок Артёма
Рисунок Ани
Рис. 5.11
Возьмём, например, рисунок Артёма в качестве обучающего примера входного
образа буквы А. Вытянем все строчки его таблицы-рисунка в одну строку. Полу-
чим следующую строку, которая и будет описывать входной образ буквы А:
(001100 001100 010010 111111 100001 100001 100001)
— Проверь, Артём. Правильно?
— Сейчас. Так, первая строка таблицы — это 001100. Вторая строка — это
001100. Третья — это 010010. И так далее. Да, правильно.
— Хорошо. Запишем теперь наш входной сигнал следующим образом:
Х=(х1х2х3 ... х42) = (001100001100010010111111100001100001100001).
Аналогично все буквы русского алфавита можно описать в виде соответствую-
щих бинарных строк длиной 42 бит.
Теперь создадим структуру нейросети для распознавания всех букв русского
алфавита.
Для этого мы будем строить нейросеть, структура которой похожа на структуру
многослойного персептрона, только при этом выходной слой содержит то количе-
ство нейронов, которое нужно для решения заданной задачи распознавания.
ПРИМЕЧАНИЕ. Для простоты мы взяли всего 42 клеточки, поэтому буква А у нас
получилась не очень красивая. Если взять гораздо больше клеточек (пикселов),
как на фотографиях, то буква А будет более привычной глазу и красивой.
Построение нейросети для распознавания букв
Число нейронов во входном слое будет равно длине входного сигнала, то есть
количеству битов во входной бинарной строке. Следовательно, для решения на-
шей задачи (распознавание букв) нам понадобятся 42 нейрона входного слоя.
Для решения задачи распознавания всех букв русского алфавита нам понадо-
бится 33 активных нейрона и 33 выходных нейрона (на каждую букву алфавита).
— Почему 33? — спросила Аня.
— Мы же хотим распознавать все буквы русского алфавита. А их всего 33.
— А-а-а, понятно. Так бы сразу и сказали, уважаемый Учитель!
— Я и говорю, — улыбнулся Александр и продолжил: — Слушайте дальше.
Пометим нейроны разных слоев разными цветами, чтобы показать их разли-
чия.
Активные нейроны на рисунке обозначим жёлтыми кружочками с числами от 1,
2 и так далее до 33. В слое активных нейронов будут происходить вычисления'.
Число нейронов в выходном слое будет равно числу букв русского алфавита.
Обозначим значение, которое выдаёт первый выходной нейрон, как Уг вто-
рой — как У2 и так далее, значение последнего нейрона будет У33.
Вот какая сеть у нас получилась. Она показана на моём рис. 5.12. Посмотрите
и скажите, что вы видите?
Рис. 5.12
— Эта сеть похожа на многослойный персептрон, — сказал Артём.
— Совершенно верно. Эта структура повторяет структуру многослойного пер-
септрона. Только вместо одного выхода у нас их 33.
Особенности выбранной архитектуры нейросети
• Число нейронов во входном слое равно длине входного сигнала.
• Число активных нейронов равно числу образцов для распознавания (числу
букв в русском алфавите).
• Каждый выходной нейрон отвечает за распознавание своей буквы.
Общая схема алгоритма супервизорного обучения
нейросетей
Начнём со схемы обучения с учителем, которая показана на рис. 5.13, и рас-
смотрим пример обучения нейросетей типа «многослойный персептрон».
Что такое обучающая выборка? Обучающий пример состоит из двух частей:
{X, У}.
X представляет собой входные обучающие данные, а У — выходные обучаю-
щие данные.
У представляет собой правильный (или желаемый) ответ сети.
Смысл этой пары такой: если на вход нейросети подаётся сигнал X, то на вы-
ходе сети должен быть ответ У.
Множество пар «вход — выход» называется обучающей выборкой.
Обучение сети сводится к процессу настройки синаптических весов путем мно-
гократного предъявления сети входного образца.
велика
Главной особенностью такой схемы является наличие обучающих примеров
входных и выходных данных, которые задаются учителем.
Как известно, в реальном мире мы довольно часто учимся на своих ошибках.
Это касается и нашей нейросети. Она тоже, в буквальном смысле, учится на своих
ошибках.
В начальный момент обучения в сети произвольным образом устанавливаются
малые значения весов, например с помощью программы генерации случайных чи-
сел. Образно говоря, в начальный момент обучения сеть является как бы «чистым
листом».
В результате прогона входного образца по сети вычисляется ошибка сети.
Что такое ошибка сети? Разность между реальным ответом сети и правильным
ответом сети называется ошибкой сети.
Как нейросеть учится на своих ошибках?
В процесс обучения сети алгоритм обучения стремится сделать ошибку сети
как можно меньшей. Для этого сеть перенастраивает свои синаптические веса
так, чтобы правильно узнавать входной образец.
Сделав первые изменения в весах сети, процесс обучения повторяется в цикле.
На вход сети снова подаётся заданный «входной образ», вычисляются выход сети
и новая ошибка.
Таким образом, одна и та же буква предъявляется нейросети много раз!
И так происходит до тех пор, пока ошибка сети не станет меньше заранее за-
данной малой величины. В этом случае обучение заканчивается, и говорят, что
«нейросеть обучена».
Пример обучающей пары для буквы А
Входной обучающий образец буквы А:
Х=(Х1Х2Х3 ...х42) = (001100001100010010111111100001100001100001).
Правильный ответ сети на входной обучающий пример задаётся выходным обу-
чающим примером.
Выходной обучающий образец буквы А:
У = (Уг У2, ..., У33) = (100000000000....0000).
Почему такой выходной образец? Каждый выходной нейрон должен распозна-
вать свою букву. Следовательно, если на входе изображение буквы А, то выходной
нейрон под номером 1 должен выдавать значение, равное 1, и значение, равное 0,
если это другие буквы (не А). Поэтому «правильный ответ сети» для распознава-
ния буквы А должен быть следующим: У1 = 1, У2 = 0, У3 = 0, ..., У33 = 0.
Александр сделал паузу и спросил:
— Ну как, понятно?
— Да, понимаю. Получается, как в поговорке: «повторение — мать учения»'. —
ответила Аня.
— Совершенно верно. Как видите, обучение сети сводится к процессу настрой-
ки синаптических весов путём многократного предъявления сети входного образ-
ца. Вот и вся идея алгоритма обучения с учителем.
ПРИМЕЧАНИЕ. Глубоко заинтересованные читатели могут ознакомиться с ша-
гами алгоритма супервизорного обучения нейросетей в разделе «Приложение
для гиков: алгоритмы обучения нейросетей» далее в этой главе.
А мы перейдём к ещё одному важному алгоритму, который имеет большое
практическое применение.
Алгоритм обратного распространения ошибки
В заключение хочу сказать несколько слов ещё об одном алгоритме суперви-
зорного обучения, который называется алгоритмом обратного распростране-
ния ошибки. Он используется для настройки весов нейросетей с прямым распро-
странением сигнала, в структуре которых имеется несколько активных слоев.
В этом случае для обновления весов применяется более сложная формула вы-
числения изменения весов, в которой используется не только ошибка сети, но и
скорость изменения этой ошибки.
Я не буду здесь приводить сложные формулы. Пытливые и любознательные
читатели смогут в дальнейшем изучить этот вопрос, заглянув в соответствующую
литературу. Эта тема изучается в университетских курсах.
А мы тем временем закончим рассматривать супервизорное обучение.
При программировании обучения на нейросетях возникает много трудностей,
с которыми приходится справляться. Чем больше весов, тем больше требуется
времени на обучение. Процесс обучения таких сетей может занять день-два рабо-
ты компьютера и даже больше.
Аня задумчиво потёрла лоб, посмотрела на Артёма, а потом спросила:
— Неужели, чтобы распознавать изображения, нужно столько вычислять? Что-
то не верится, чтобы животные и люди так поступали... По-моему, мой мозг узнаёт
мгновенно, кто выскочил из кустов: кошка, собака или кто-то другой.
— Согласен. Распознавание изображений для людей — один из основных на-
выков, который они начинают осваивать с самого рождения. Постепенно мы овла-
деваем этим навыком настолько, что пользуемся им естественно, не думая и без
всяких усилий (другими словами, подсознательно).
Человек может мгновенно и легко распознать пространство, которое его окру-
жает. Но вот нашим электронным созданиям навыки мгновенного распознавания
образов пока не доступны. И мы над этим работаем.
А сейчас давайте обсудим другой способ обучения — без учителя.
В этом случае есть только входные обучающие примеры.
НЕСУПЕРВИ30РН0Е ОБУЧЕНИЕ,
ИЛИ ОБУЧЕНИЕ БЕЗ УЧИТЕЛЯ
Часто бывает, что правильного ответа нейросети никто не знает, и задача обу-
чения усложняется: надо извлечь из входных данных что-то полезное или нуж-
ное.
В этом случае имеются только входные обучающие данные, а процесс обуче-
ния называется обучением без учителя, или несупервизорным обучением
(рис. 5.14).
Рис. 5.14
— Это как в сказке: пойди туда — не знаю куда, найди то — не знаю что, — за-
метила Аня.
— Да, похоже, — ответил Александр и продолжил: — Однако способы решения
таких задач есть. Обычно первое, что нужно сделать, — это разделить набор вход-
ных данных на группы, другими словами, разложить их по полочкам (кластерам).
При этом схожие данные должны попадать в одну группу. Это известная классиче-
ская задача кластеризации — разбиение множества объектов на непересекаю-
щиеся подмножества (группы, кластеры) так, чтобы каждый кластер состоял из
схожих объектов, а объекты разных кластеров существенно различались.
Задача кластеризации данных очень интересно решается с помощью обучен-
ных нейронных сетей Кохонена. Любознательных и не боящихся математических
формул читателей отсылаю к разделу «Приложение для гиков: алгоритмы обуче-
ния нейросетей» далее в этой главе.
А сейчас я сделаю важное замечание.
Важное замечание
В отличие от супервизорного обучения общего универсального алгоритма не-
супервизорного обучения не существует.
Разные нейросети решают свой круг задач. И под каждый тип задачи надо
создавать свой алгоритм обучения.
Поскольку общего алгоритма несупервизорного обучения нет, то в каждом слу-
чае надо разрабатывать новый алгоритм. Рассмотрим интересные примеры алго-
ритмов такого обучения.
Пример обучения без учителя в сети Хопфилда
Обучение в сети Хопфилда относится к типу обучения без учителя. Здесь про-
цесс обучения сводится к записи (запоминанию) входного образа в структуре сети.
При этом обучающие данные просматриваются только один раз.
Процедура обучения сети для одного входного образца представляет собой
расчёт синаптических весов ил по заданной формуле. (Любознательных отсылаем
к разделу «Приложение для гиков: алгоритмы обучения нейросетей» далее в этой
главе.)
Затем диагональные элементы полученной матрицы обнуляются.
— Почему? — спросил Артём.
— Вспомним, что нейроны в сети Хопфилда не воздействуют сами на себя. Зна-
чит, чтобы обеспечить выполнение этого условия, нам необходимо обнулить диа-
гональные элементы в матрице весов, полученной в результате вычисления по
приведённой формуле. Ясно?
— Да, вполне. И что это даёт?
— Сейчас увидишь. Посмотрим, как работает обученная сеть Хопфилда
(рис. 5.15).
— Размер матрицы для нашего примера: 100 строк на 100 столбцов. Поэтому я
привёл только фрагмент такой матрицы.
Обучение в сетях Хопфилда равно запоминанию входного образа в структуре
сети.
На вход нейросети Хопфилда подаётся искаженный образ «собаки», например
такой, как показано на рис. 5.16, слева. На выходе представлен результат процес-
са распознавания — восстановленный образ собаки.
Матрица синаптических весов
0 ^1,2 ^1,3
УУ = ^2,1 0 ^2,3
^3,1 %,2 0
0
Рис. 5.15
ПРИМЕЧАНИЕ. Шаги алгоритма распознавания искажённого входного образа и
приведённые формулы можно посмотреть в разделе «Приложение для гиков:
алгоритмы обучения нейросетей» далее в этой главе. При первом знакомстве
их вполне можно пропустить.
— Ну, как вам, ребята, понятно? — спросил Алекс.
— Удивительно! — воскликнула Аня. — Я и не подозревала, что для узнавания
моей собаки мой мозг так много вычисляет?!
— Конечно, удивительно. Процесс узнавания у человека поддерживается ней-
ронной сетью, расположенной в головном мозге в области затылка. Природа
трудилась над этим вопросом многие тысячи лет и отшлифовала процесс почти
мгновенного узнавания, потому что человеку с эволюционной точки зрения было
очень важно уметь узнавать своё ближайшее окружение, например лица матери и
отца, братьев и сестёр, дедушек-бабушек, распознавать лица друзей и даже своих
собак.
А вот роботам и системам ИИ для этого приходится очень много вычислять.
А теперь обсудим важный момент. Мы с вами разобрали простейший пример
распознавания образа собаки с помощью нейронной сети Хопфилда, состоящей
из 100 нейронов в одном скрытом слое. А если поставить более сложную зада-
чу распознавания, например, фотографий из Интернета — представляете, какого
размера должна быть нейронная сеть? И что делать?
Для этого нужны большие вычислительные мощности и новые технологии.
Настоящий прорыв в распознавании сложных образов (например, фотографий
из Интернета или сложных изображений в реальной среде) произошёл пример-
но после 2011-2012 годов. В это время были разработаны мощные графические
процессоры, которые стали активно использоваться для решения задач распозна-
вания.
Сейчас нейросети известных компаний, например 6оод1е, хорошо справляются
с такой задачей. Для этого используются новые типы нейронных сетей и алгорит-
мов машинного обучения.
Современные системы распознавания изображений (а также речи, текстов) ра-
ботают на основе так называемых свёрточных нейронных сетей, которые умеют
преодолевать многие трудности.
Свёрточная нейросеть умеет распознавать не только стандартные изображе-
ния, которым она обучена. Сеть устойчива к небольшим сдвигам, поворотам, или
изменению масштаба входного изображения, а также в случае его искажений.
Свёрточные сети имеют многослойную (говорят «сверхглубокую») архитектуру,
в которой имеется много скрытых слоёв, при этом разные слои нейронов выполня-
ют различные функции. Для обучения таких сетей разрабатываются специальные
методы так называемого глубокого обучения. И уже есть хорошие результаты.
Например, после просмотра десятки тысяч видеороликов на Ютуб, нейросеть
компании 6оод1е Вга!п научилась распознавать такой образ, как «кошка», не имея
никакого предварительного представления о том, кто такая кошка. А это значит,
что разработанная нейросеть научилась обобщать и строить абстрактные поня-
тия. Это уже существенный вклад на пути создания ИИ.
В перспективе стоит задача распознавания лиц и предметов на миллионах фото
и видео, загружаемых в Интернет. И эта задача уже имеет свои первые решения.
Ну а мы закончим наш разговор о классических нейросетях и задачах распозна-
вания и перейдём к знакомству с ещё одним важным классом нейронных сетей,
используемых в робототехнике. Это нечёткие нейронные сети.
ЧТО ТАКОЕ НЕЧЁТКИЕ НЕЙРОННЫЕ СЕТИ?
Нечёткими нейросети называются по той простой причине, что в них реализу-
ются нечёткие вычисления.
Вы уже знаете, что во многих задачах управления движением роботов исполь-
зуются нечёткие системы управления. Большое внимание в этих задачах уделя-
ется скорости вычисления управляющего сигнала. Ведь в реальных приложениях
нужно, чтобы эти вычисления происходили очень быстро, то есть в режиме реаль-
ного времени.
— Если робот будет долго думать-вычислять, то его собьёт машина, напри-
мер, — заметил Артём.
— Совершенно верно. Вот тут-то на помощь разработчикам систем управле-
ния и пришли нечёткие нейросети. Посмотрите, друзья, на рисунок простейшей
архитектуры нечёткой сети для задачи управления движением робота (рис. 5.17).
В чём отличия от предыдущих примеров нейросетей?
— Да во всём! — заметила Аня. — Никаких синаптических весов я не вижу.
— Молодец, Аня, — похвалил Александр. — Ты увидела главное отличие.
— Артём, а ты что думаешь? Посмотри внимательно — к какому типу нейро-
сетей относится приведённая архитектура нечёткой нейросети? — спросил Алек-
сандр.
Нечёткая нейронная сеть представляет собой нейронную сеть, выполняющую
вычисления нечёткого вывода.
Вход слой 1 слой 2 слой 3 слой 4 слой 5 Выход
Рис. 5.17
— Минуту, — произнёс Артём и задумался: — Я вижу пять слоев в этой сети.
Обратных связей нет. Значит, это сеть с прямым распространением сигнала. Но
это не персептрон, так как синаптических весов нет.
— Ну что ж. Всё правильно, молодцы! Пока просто смотрим на картинку и об-
суждаем особенности таких сетей.
Особенности нечётких нейросетей
Для понимания этого раздела прошу вас вспомнить, что такое нечёткая система
управления движением. (Загляните в главу 3 и посмотрите на рис. 3.11 и 3.13.)
Нечёткая нейросеть реализует нечёткие вычисления в системе управления дви-
жением. Для этого была предложена новая модель нейрона — нечёткий нейрон
(или фаззи-нейрон, от английских слов Тиггу пеигоп).
Посмотрим на первый слой сети на рис. 5.17. В нём находятся нечёткие ней-
роны, вычисляющие значения их функций активации. Другими словами, первый
слой нейронов осуществляет процедуру «фаззификации» входных числовых зна-
чений хи у. Остальные этапы нечёткого вывода распределяются далее по сети.
В нечётких нейронах в качестве функций активации нейронов выступают функ-
ции принадлежности нечётких множеств, описывающих значения входных пере-
менных х и у.
На рис. 5.17 и 5.18 это функции р/х), р2(х), ц^), ц2(у).
Рис. 5.18
Р Нечёткий нейрон для задач управления представляет собой
процедуру вычисления значений функций принадлежности
нечётких лингвистических переменных.
Нечёткие нейросети обладают следующими отличительными свойствами:
• входные сигналы являются числовыми значениями нечётких лингвистиче-
ских переменных (например, скорости и расстояния; это значения от датчиков);
• в качестве функций активации используются функции принадлежности не-
чётких множеств, описывающих нечёткие лингвистические переменные;
• пороговое значение в этих функциях отсутствует;
• вместо весов используются параметры функций принадлежности в нечёт-
ких правилах управления, которые настраиваются в процессе обучения;
• нейроны разных слоев имеют различные функции активации;
• нечёткая нейросеть принадлежит к классу сетей с прямым распространени-
ем сигнала.
ПРИМЕЧАНИЕ. Тех, кому интересны подробности работы сети на рис. 5.17, от-
сылаем к разделу «Приложение для гиков: алгоритмы обучения нейросетей»
далее в этой главе.
— Вот и вся схема вычисления в нашей нечёткой нейросети. Что скажете? —
спросил Александр.
— Получается, что нечёткая нейронная сеть просто делает шаги алгоритма не-
чёткого вывода. И что тут особенного? — спросила Аня.
— Да, именно так. А особенность тут вот в чём.
На обычном компьютере вычисления осуществляются последовательно для
каждого нечёткого правила (то есть в цикле по всем правилам). В отличие от обыч-
ного компьютера в нейросети все вычисления в каждом слое происходят одновре-
менно сразу для всех нечётких правил (в базе знаний), то есть параллельно.
В реальных приложениях таких правил довольно много. В этом случае скорость
вычисления возрастает во много раз, что нам и нужно. За счёт свойства паралле-
лизма вычисление сигнала управления движением робота происходит за секунды,
то есть в реальном времени. Создав на основе такой нейросети нейрочип и встро-
ив его в систему управления поведением робота, мы получим робота, способного
автономно выполнять те или иные движения в реальной среде.
Чип - это некоторый микрокомпьютер, который вычисляет
заданную программу.
Нейрочип - это чип, реализующий работу нейросети.
Обучающий пример «вход-выход» в задаче управления
называется обучающим сигналом.
Следующий важный вопрос состоит в том, как обучать нечёткие нейросети и
в чём собственно состоит обучение таких сетей?
Отвечу кратко. Нечёткая нейросеть обучается с учителем с помощью алгорит-
ма обратного распространения ошибки, о котором мы с вами уже говорили.
В качестве учителя может выступать генетический алгоритм! С его помощью
находится обучающий сигнал, который затем аппроксимируется (заменяется) не-
чёткой нейронной сетью.
— Александр, а можно привести какой-нибудь пример? Как работают эти ваши
нечёткие сети? — спросил Артём.
— Конечно. Сейчас расскажу об одной задаче интеллектуального управления
движением роботов, которую мы решали с помощью спроектированной нечёткой
нейросети.
Задача интеллектуального управления движением
и взаимодействием двух роботов
Рассмотрим задачу построения нечёткой системы управления движением и
взаимодействием двух роботов.
Один из них — робот-манипулятор — установлен на неподвижной платформе.
Другой — мобильный двухколёсный робот. На его борту установлен небольшой
столик, на котором находится бокал с водой.
Задача управления: мобильному роботу надо аккуратно подъехать к роботу-
манипулятору, не расплескав воды в стакане и не уронив его, и встать в удобную
позицию для взятия вторым роботом этого бокала с водой (рис. 5.191).
Рис. 5.19
Для решения этой задачи нам надо спроектировать две разные системы управ-
ления движением. И для каждой нужно построить соответствующую нечёткую
нейронную сеть.
— Для того чтобы разработать нечёткие нейросети для решения задачи взаи-
модействия двух роботов и обучить эти нейросети, — продолжил свой рассказ
Александр, — понадобился новый программный продукт. Он был создан коллек-
тивом разработчиков под руководством нашего Профессора.
Сделав паузу, Александр спросил:
— Вы у него были в гостях, помните, ребята?
— Конечно, — ответил Артём.
1 Фото сделано с видеоролика и с разрешения исследовательской группы профессора
С. В. Ульянова.
— Отлично. В следующий раз вы можете поучиться у его инженеров, как поль-
зоваться таким программным инструментарием. А я продолжу свой рассказ. При
проектировании таких нейросетей решались две основные задачи.
Первая—это нахождение обучающего сигнала управления движением роботов.
Эта задача решалась с помощью генетического алгоритма. И вторая — построе-
ние и обучение двух нечётких нейросетей, управляющих движением роботов.
Я покажу вам, как выглядит обученная и оптимизированная структура нечёткой
нейросети, управляющая движением мобильным роботом, на котором установлен
бокал с водой. Вот она — на рис. 5.20.
На рис. 5.20, а показана обученная и оптимизированная структура нечёткой
нейронной сети мобильного робота. Оптимизация такой сети заключается в выбо-
ре с помощью специального алгоритма (из полного множества всех правил) опти-
мального числа нечётких правил для управления. А затем в настройке параметров
правых и левых частей этих нечётких правил с помощью алгоритма обучения.
На рис. 5.20, б показаны функции принадлежности входной переменной с на-
строенными в процессе обучения нейросети параметрами.
4етЬегзЬ|р Юпсьопь
10
1прит_3_1 Оевсепдтд 000990008 0 0197999
1при1_3_2 Тпалди1аг 0 0901949 0140787 0140787
1при1_3_3 Тпалди1аг 0.253397 0185612 0185612
1при!_3_4 Тпалди1аг 0418426 0144441 0144441
1при!_3_5 Тпалди1аг 0503975 0 026654 0 026654
1при!_3_6 Тпапдм1аг 0 545009 0 0554132 0 0554132
1при1_3_7 Тлалди1аг 0604459 00634848 00634848
11при1_3_8 А$сепдшд 0 818101 0363792
б
Спроектированная нейросеть встраивается в нейрочип, который управляет
плавным движением мобильного робота таким образом, чтобы бокал не падал
при подходе к роботу-манипулятору. Другой нейрочип спроектирован для робота-
манипулятора, который управляет движением руки, осуществляющей операцию
«схвата».
ПОДВОДИМ итоги
Итак, друзья! Подводим итоги.
Мы с вами познакомились с основными моделями (способами) обучения в си-
стемах ИИ, которые распадаются на два больших класса: обучение с учителем
и обучение без учителя (самообучение).
Обучение с учителем широко используется в задачах распознавания образов
(изображений, речевых сигналов, рукописных текстов и так далее) и в задачах ин-
теллектуального управления движением роботов. Мы с вами обсудили, как устро-
ены такие алгоритмы.
Обучение без учителя (самообучение) охватывает как простые схемы обучения
типа метода проб и ошибок, так и более сложные схемы, связанные с запомина-
нием и узнаванием, как это делают сети Хопфилда.
Однако есть и другие алгоритмы обучения, основанные на статистическом ана-
лизе большого объёма данных. Последний тип обучения связан с извлечением
знаний из огромного массива данных. Это — то, чем занимается любая наука,
которая действует по схеме обобщения, проверки, исключения и уточнения ги-
потез.
В последнее время алгоритмы извлечения полезной информации из огромно-
го массива данных в Интернете стали тоже называться алгоритмами машинного
обучения.
И именно они используются во многих поисковиках типа 6оод1е.
Эти алгоритмы изучают ваши данные и историю вашего поиска в Интернете с
тем, чтобы определить ваши вкусы и предпочтения, а затем навязывают вам свою
рекламу.
Чем чаще пользователь щелкает по ссылке или изображению с рекламой, тем
больше вероятность, что он что-то купит, а значит, тем больше вероятность вы-
ручки от продажи. Это и определяет ценность для компании данного алгоритма
обучения. Такие алгоритмы существенно подняли прибыль таких компаний, как
6оод1е, Атагопе (Амазон) и других. Что дальше?
За последние годы благодаря наличию Всемирной паутины (Интернету) и со-
временным запросам бизнеса появился спрос на огромное количество систем
машинного обучения. Именно их всё чаще стали называть системами искусствен-
ного интеллекта.
Прямо на глазах стали происходить качественные изменения в технологиях
создания систем ИИ. Появляются всё новые алгоритмы и технологии программи-
рования искусственных нейронных сетей.
Поток программ, связанных с машинным обучением, оказался столь огромным,
что системы образования просто не успевают за спросом специалистов в области
машинного обучения. Поэтому так важно усвоить основы нейровычислений. И чем
раньше, тем лучше. Я рад, что вас это заинтересовало и вы пришли к нам в лабо-
раторию.
ПРИЛОЖЕНИЕ ДЛЯ ГИКОВ: АЛГОРИТМЫ ОБУЧЕНИЯ
НЕЙРОСЕТЕЙ
То, что я понял, — прекрасно. Из этого
я заключаю, что и остальное, чего я не
понял, — тоже прекрасно.
Сократ. IV век до нашей эры
Тем, кому захочется ещё что-то узнать о нейронных сетях, посоветуем заглянуть сюда:
М1р://итш.а81тоу|П8Ши1е.огд/пеига1-пе№огк-2ОО/.
Алгоритм супервизорного обучения нейросетей
на примере обучения персептрона
Обученный персептрон решает задачу распознавания образов: принадле-
жит ли входной образ X = (хг х2,..., хп) к заданному классу образов или нет.
Основная идея алгоритма обучения — «чем больше ошибка, тем больше надо
изменить значения весов».
Напомню пример обучающей пары для распознавания буквы А (см. пример
распознавания букв русского алфавита).
Входной обучающий образец буквы А:
Х=(Х1Х2Х3 ...Х42) = (001100001100010010111111100001100001100001).
Выходной обучающий образец ответа сети для буквы А:
У = (^ У2... У33) = (100000000000...0000).
Алгоритм обучения состоит из нескольких шагов.
В начальный момент обучения нейросеть является «чистым листом». Это моде-
лируется следующим образом.
Шаг 0. В начальный момент обучения в сети произвольным образом устанавли-
ваются малые значения весов, например, с помощью программы генерации слу-
чайных чисел.
Шаг 1. Выбирается первый обучающий образец из базы данных. Например, это
обучающий сигнал, описывающий букву А. Этот сигнал поступает на вход сети.
Шаг 2. Сеть производит вычисления с имеющимися (изначально заданными)
синаптическими весами.
На выходе получается некоторый ответ сети:
У = (У.У2...У...У33).
Пока сеть не обучена, ответ сети неправильный, то есть не совпадает с выход-
ным обучающим образцом.
Шаг 3. Далее этот сигнал У поступает на вход блока «Расчет ошибки», в кото-
ром вычисляется разность между реальным и желаемым ответами сети. Эта раз-
ность называется ошибкой сети.
На шаге 3 работы алгоритма вычисляется разность между желаемым ответом
и реальным ответом сети.
Для сети, содержащей 33 выхода (на каждую букву алфавита), значение ошиб-
ки будет состоять из 33 чисел. Это так называемый вектор ошибки.
Если эта ошибка велика, то происходит переход к шагу 4. Если мала, то про-
цесс обучения заканчивается. Затем шаги 1-4 повторяются для следующего об-
разца из базы данных. (Например, для буквы Б и так далее.)
Шаг 4. Настройка весов сети. Изменение весов по правилу Дельты.
ПРАВИЛО ДЕЛЬТЫ НАСТРОЙКИ ВЕСОВ ПЕРСЕПТРОНА
Для персептрона с одним активным слоем для изменения весов использу-
ется так называемое правило Дельты. С его помощью обновляются значения
весов следующим образом:
ил. (И-1) = ил. (О + ^ • Егг V.',
где 2, - некоторый заданный коэффициент обучения (число между 0 и 1);
Егг = (У. - У.) - ошибка сети, вычисляемая для у-го активного нейрона; С - но-
мер итерации (цикла) обучения.
Алгоритм обучения нейросети Кохонена
Напомню: роль функции активации в сетях Кохонена сводится к вычислению
евклидова расстояния между двумя векторами — вектором входа и вектором ве-
сов.
Как это расстояние вычислять, показывает следующая формула:
/т Вход Слой 1 Выход _ IV. . у 1,1 у—► У”» / т,1 У О -^)2 На рисунке жёлтым цветом по- мечен нейрон-победитель у, кото- рый в наибольшей степени близок по значениям с входным вектором. Нейроны Кохонена действуют, как набор электрических лампочек. Для любого входного вектора загорает- ся только одна из них. Рис. 5.21
В начале обучения синаптические веса задаются случайным образом.
Шаг 1. При обучении на вход подаётся один из обучающих примеров, который
выбирается произвольным образом.
Шаг 2. В процессе самообучения происходит расчёт евклидовых расстояний
между входным вектором и вектором весов для каждого нейрона.
Шаг 3. Затем по наименьшему значению расстояния И выбирается нейрон-
победитель /, который в наибольшей степени близок по значениям с входным век-
тором.
Шаг 4. Только для него выполняется коррекция синаптических весов.
Критерий останова. Затем шаг 1 повторяется до тех пор, пока веса не стаби-
лизируются. Другими словами, если изменение весов находится в пределах зара-
нее заданной малой величины, то процесс обучения заканчивается. Могут быть и
другие критерии останова.
Обучение без учителя в сети Хопфилда
Процесс обучения в этой сети сводится к записи (запоминанию) входного об-
раза в структуре сети. При этом обучающие данные просматриваются только один
раз.
Процедура обучения сети для одного входного образца представляет собой
расчёт синаптических весов ил по заданной формуле:
УУ = X7 X,
где УУ — матрица весов; X — входной образец (вектор); X7 — так называемый транс-
понированный вектор (получается из исходного вектора заменой строк на столбцы), а
операция «•» представляет собой произведение вектора-столбца на вектор-строку.
Для тех, кому любопытно, вот формула, по которой вычисляется операция «•»:
а • Ь = 1 1- см •[Ь,Ьг . ьп] = а2&1 а^г а2Ь2 .. .. аД- .. аД
а а Ьч а .. .. а Ь
п п 1 п 2 п п
ПРИМЕЧАНИЕ. Запись а1Ь1 означает простое умножение а1 на
Вспомним, что нейроны в сети Хопфилда не воздействуют сами на себя. Для
того чтобы обеспечить выполнение этого условия, нам необходимо обнулить диа-
гональные элементы в матрице весов, полученной в результате вычисления по
приведённой формуле.
Матрица синаптических весов
0 %,2 %,з -
УУ = ^2,1 0 И/2 з
^3,1 ^3,2 0
0
Обучение в сетях Хопфилда — запоминание входного образа в структуре сети.
Как работает ассоциативная память сети Хопфилда?
Посмотрим, как обученная сеть Хопфилда распознаёт искажённый образ «со-
баки», например, такой, как показано на рис. 5.16.
Состояние нейросети на шаге распознавания I задаётся вектором
Х(0 = [х1(0,х2(Г), ...,х.(Г),
где х.(0 — выход от /-го активного нейрона, / = 1, ..., Л/.
В конечном результате (на выходе алгоритма распознавания) выходной век-
тор Х(0 будет представлять собой образец, наилучшим образом сочетающийся
с входными данными.
В нашем примере ответом сети на распознавание входного (искажённого) об-
раза будет восстановленное изображение собаки.
Алгоритм распознавания (искажённого) входного образа
Шаг 1. Нулевой цикл работы сети. I = 0. Выходное значение сети устанавлива-
ется равным входным значениям сети.
Шаг 2.1 = I + 1. Рассчитывается новое состояние сети. Другими словами, вычис-
ляются новые выходы от всех активных нейронов согласно следующей формуле:
х.(Г+1) = 31дп ^ил.х.(0 ,
где 1/иу — синаптический вес между нейронами / и /; х.(0 — значение выхода нейро-
на / в предыдущий момент 1-, а функция 51дп означает взятие знака её аргумента.
Шаг 3. Проверяется: изменились выходные значения сети? Если ответ— «да»,
то переход к шагу 2. Если ответ — «нет», то конец работы сети.
Критерий останова. Сеть работает до тех пор, пока Х(? + 1) и Х(0 не совпадут.
Полученное устойчивое состояние Х(0 называется статическим аттрактором и
является ответом сети на данный входной образ.
Пример нечёткой нейросети и вычислений в ней
Нечёткая нейросеть на рис. 5.17 реализует известный метод нечёткого вывода
на основе так называемой модели нечёткого вывода Сугено. Этот метод широко
используется в нечётких системах управления движением роботов, где применя-
ются так называемые нечёткие ПИД-регуляторы (пропорционально-интегрально-
дифференцирующие).
ПИД-регулятор - устройство с обратной связью
в составе системы автоматического управления.
Используется для формирования управляющего сигнала
на основе вычисления ошибки управления, её скорости
и суммарной (интегральной) ошибки.
Формула вычисления управляющего сигнала 1/(0 ПИД-регулятора в момент
времени I:
ЦО = КР(Г) • е(0 + К,(Г) • I е(0 + Ко (0 • ё(г),
где е(0 — ошибка управления, равная разности между целевым и текущим поло-
жениями объекта управления; запись | е(/) означает суммарную (интегральную)
ошибку управления; ё(1) — скорость изменения ошибки управления; Кр, Кр Ко на-
зываются коэффициентами усиления ПИД-регулятора.
ПРИМЕЧАНИЕ. В классической теории управления эти коэффициенты усиления
являются константами (постоянными величинами). В нечётких ПИД-регуляторах
они не являются константами. Мы не будем здесь вдаваться в детали ПИД-
регуляторов: это отдельная от ИИ тема.
Нечёткий ПИД-регулятор - ПИД-регулятор
с настраиваемыми коэффициентами усиления
на основе нечёткой модели Сугено.
Пример вычислений в каждом слое
нечёткой нейросети
Рассмотрим пример нечётких правил, которые используются в модели Сугено,
и формулу, по которой вычисляется конечный результат нечёткого вывода. Для
понимания вычислений сети этого нам будет достаточно.
База правил в нечётких системах вывода Сугено состоит из следующих нечёт-
ких правил.
Правило 1. ЕСЛИ х есть р^х) И у есть ^(у), Т0 7 = 2г
Правило 2. ЕСЛИ х есть р2(х) И у есть р2(у), ТО г = г2.
Здесь г2 — конкретные числа (коэффициентов усиления ПИД-регулятора).
В модели Сугено результат нечёткого вывода рассчитывается по формуле:
% + и/2 г2
2~ + и^2
А теперь посмотрим, как эта формула вычисляется в сети на рис. 5.17. Обсудим
вычисления в каждом слое этой нечёткой нейросети.
Слой 1 состоит из так называемых нечётких нейронов. В них в качестве функ-
ций активации нейронов выступают функции принадлежности нечётких множеств,
описывающих значения входных переменных х и у. Это функции ц/х), р2(х), ^(у),
р2(у). Первый слой нейронов осуществляет процедуру «фаззификации» входных
значений х и у.
Слой 2. Выходные значения от нейронов первого слоя поступают на вход ней-
ронов второго слоя. В этих нейронах реализуются следующие вычисления:
• результат вычисления в первом нейроне второго слоя:
у21 = р/х) • рД) = и/;
• результат вычисления во втором нейроне второго слоя
У2,2 = М2(х) • М2(К) =
ПРИМЕЧАНИЕ. Посмотрите определение операции нечёткого умножения (нечёт-
кой конъюнкции) в главе 3.
Значения и и/2 называются степенями активации нечёткого правила. Если
степень активации правила (и/) не равна 0, то правило называется активным.
Далее эти значения поступают на вход нейронов третьего слоя.
Слой 3. В третьем слое нейронов осуществляются следующие вычисления:
У3,1 = • X-
У3,2 ~ ^2 ' ^2’
а также
= ^ + и/2.
Слой 4. В данном слое вычисляется сумма Е2 = у31 + у32.
Слой 5. В данном слое формируется выходное значение сети. Оно вычисляется
как
2 = ^/^.
Здесь символ / означает обычную операцию деления.
Выходное значение г используется затем для вычисления силы управления
движением робота. Вот и вся схема вычисления в нашей нечёткой нейросети.
Обучение нечётких нейронных сетей
Обучение нечёткой сети представляет собой процесс настройки параметров
сети в соответствии с заданными обучающими примерами.
Давайте вспомним, как происходит супервизорное обучение в нейросетях с
прямым распространением сигнала. Для этого используется метод обучения с
учителем. Учитель задает сети обучающий пример (пара «вход — выход»), и сеть
с помощью специального алгоритма настраивает свои веса таким образом, чтобы
ошибка между реальным и желаемым выходами сети была минимальной.
Такой же алгоритм (обратного распространения ошибки) используется и для
обучения нечёткой нейронной сети. Только здесь вместо весов настраиваются
параметры сети.
Посмотрим ещё раз на структуру сети на рис. 5.17 и определим параметры дан-
ной сети, которые мы будем настраивать в процессе обучения.
На вход первого слоя сети поступают числовые значения х и у. Мы видим, что в
первом слое есть два нейрона, каждый из которых вычисляет степень принадлеж-
ности входного значения х к нечётким множествам ц^х), ц2(х). И есть два нейрона,
каждый из которых вычисляет степень принадлежности входного значения у к не-
чётким множествам ^(у), ц2(у).
Мы знаем, что такие функции принадлежности могут описываться по-разному.
Например, они могут быть треугольными функциями.
Посмотрите на мой рисунок (рис. 5.22), на котором я изобразил треугольные
функции принадлежности и указал их параметры — а, б, с. Точка А указывает
левый угол треугольника, точка В — правый угол, а точка С — центр треугольника
на оси х. Эти точки А, В и С (значения параметров а, 1э и с) можно двигать по оси
х, то есть настраивать их значения так, чтобы ошибка при обучении сети была
минимальной.
М А (х) “
Обучение нечёткой нейросети —
настройка параметров а, Ь и с
функций принадлежности
Рис. 5.22
Параметрами нечёткой нейронной сети будем называть параметры функций
принадлежности в нечётких нейронах.
В начале обучения нечёткой нейросети произвольно устанавливаются задан-
ные (в некотором диапазоне) значения параметров а, Ь, с.
Программа обучения использует алгоритм обратного распространения ошибки.
О нём мы говорили, когда обсуждали супервизорное обучение. На вход сети по-
ступает входной сигнал из обучающей выборки. Сеть вычисляет конечный резуль-
тат, который не совпадает с правильным образцом «выхода».
— Почему?
— Потому что точно так же, как и при обучении персептрона, в начальной ста-
дии обучения выбираются произвольные значения параметров сети.
Задача обучения сети как раз в этом и состоит, чтобы подобрать (настроить) так
параметры сети, чтобы разность между желаемым результатом (выходом) сети и
реальным выходом сети была минимальной.
Для этого вычисляется ошибка сети, которая представляет собой эту разность.
Чем больше ошибка, тем больше надо изменить значения параметров. Существу-
ют специальные формулы для изменения значений параметров. Этот процесс на-
зывается настройкой параметров сети, или обучением нечёткой нейронной
сети.
Вот и всё. Как видите, нейросети — совсем не страшные, и вы вполне можете
разобраться и понять, что же они собой представляют и что можно с их помощью
делать.
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 5
1. Какой алгоритм обучения использует мышь в лабиринте?
2. Что такое супервизорное обучение?
3. Чем отличается несупервизорное обучение от супервизорного?
4. Какой алгоритм обучения использует обучающие примеры?
5. Постройте нейронную сеть для распознавания буквы У.
6. Что такое нечёткие нейронные сети и где они применяются?
БЕСЕДА С ДОКТОРОМ ТЕХНИЧЕСКИХ НАУК
В ЛАБОРАТОРИИ ИНТЕЛЛЕКТУАЛЬНОЙ РОБОТОТЕХНИКИ
В которой Артём и Аня посещают лабораторию интеллектуальной робототехни-
ки. Школьники знакомятся с её руководителем и помощниками, молодым инженером-
робототехником Андреем и экспериментальным роботом Элом. В беседе с ними ребята
узнают, что общего у роботов, людей и животных, и обсуждают принцип Винера. Они
выясняют, в чём различия между роботом и мехатронным устройством. Школьники в со-
провождении Андрея посещают выставку роботов и обсуждают с ним типы роботов и
их способности. Ребята беседуют с руководителем лаборатории о проблемах создания
интеллектуальных роботов и узнают о том, что такое целесообразное поведение и как
наделять такой способностью роботов.
ГЛАВА 6. БЕСЕДА С ДОКТОРОМ ТЕХНИЧЕСКИХ НАУК
В ЛАБОРАТОРИИ ИНТЕЛЛЕКТУАЛЬНОЙ РОБОТОТЕХНИКИ (236)
ЗНАКОМСТВО С РОБОТОМ ЭЛОМ (238)
ЗАКОНЫ ДЛЯ РОБОТОВ, КОТОРЫЕ ПРИДУМАЛ АЙЗЕК АЗИМОВ (239)
ИСТОРИЯ РОБОТА ЭЛА (240)
ЗНАКОМСТВО С ХОУП И РАЗГОВОР О ТОМ, КАК ОПРЕДЕЛИТЬ ПОНЯТИЕ «РОБОТ» (241)
Что такое робот? (242)
Что такое мехатроника? (243)
Является ли роботом стиральная машина? (244)
ЧТО ОБЩЕГО У РОБОТОВ, ЛЮДЕЙ И ЖИВОТНЫХ? ПРИНЦИП ВИНЕРА (245)
ОБЩАЯ КИБЕРНЕТИЧЕСКАЯ СХЕМА УПРАВЛЕНИЯ ПОВЕДЕНИЕМ (246)
ЧТО ТАКОЕ СИСТЕМА ОЧУВСТВЛЕНИЯ РОБОТОВ? (248)
МАШИННОЕ И КОМПЬЮТЕРНОЕ ЗРЕНИЕ (249)
Что видит робот? (250)
Сколько глаз у робота? (251)
Задача анализа сцен (252)
Как робот различает цвета и определяет параметры предметов? (253)
РОБОТ ЭЛ ИЩЕТ МОБИЛЬНЫЙ ТЕЛЕФОН В КОМНАТЕ (254)
ЗНАКОМСТВО С ОБРАЗЦАМИ РОБОТОВ В ТЕХНОПАРКЕ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА (255)
Робот Асимо (256)
Что умеет Асимо? (257)
Как Асимо стал родоначальником нового вида роботов (259)
Робот-малыш Нао (260)
Как робот Пеппер попробовал работать продавцом-консультантом,
и что из этого вышло? (261)
УМНЫ ЛИ ПРОМЫШЛЕННЫЕ РОБОТЫ-МАНИПУЛЯТОРЫ? (262)
ЭРА МОБИЛЬНЫХ РОБОТОВ И ДРОНОВ. УМНЫ ЛИ ДРОНЫ? (263)
РОБОТЫ-ЖИВОТНЫЕ (265)
РАЗГОВОР О РОБОТАХ И ИХ БУДУЩЕМ (266)
РОБОНАВТ «КЬЮРИОСИТИ» (269)
НОВОЕ ПОСЕЩЕНИЕ ТЕХНОПАРКА. РАЗГОВОР ОБ ИНТЕЛЛЕКТУАЛЬНЫХ РОБОТАХ (270)
Обезьяна и бананы (272)
Как моделировать стратегии достижения цели? (273)
Пример дерева принятия решений (275)
Что такое решатель задач? (276)
Способы поиска в деревьях решений (277)
Первые решатели задач, или как компьютер играет в шахматы (280)
Можно ли создать универсальный решатель задач? (282)
От задачи об обезьяне и банане к целенаправленному поведению робота (283)
Что внутри подсистемы управления целенаправленным поведением робота? (286)
С какими структурами знаний работает планировщик действий? (286)
Пример работы планировщика действий робота (287)
Какой план действий построил робот? (289)
Робота, так же как и ребёнка, надо учить (289)
Насколько выполнимы законы робототехники Айзека Азимова? (290)
ПОСТРОЕНИЕ ПЛАНА ДЕЙСТВИЙ РОБОТОМ (292)
Шаги алгоритма планировщика действий робота (292)
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 6 (295)
ЗНАКОМСТВО С РОБОТОМ ЭЛОМ
В следующий раз Аня и Артём отправились в Технопарк ИИ в лабораторию
интеллектуальной робототехники, которой руководила доктор технических наук
Надежда Павлова.
Отыскав дверь лаборатории, ребята заглянули внутрь. Аня с Артёмом, конечно,
слегка волновались. А вы бы не волновались перед встречей с руководителем на-
учных проектов по интеллектуальным роботам?
Лаборатория была огромных размеров, и везде по углам, на стеллажах, на сто-
лах были разбросаны различные модели роботов, разные детали, провода, стояли
компьютеры и ЗО-принтеры.
Навстречу им подъехал симпатичный робот, который тут же представился:
— Здравствуйте. Меня зовут Эл. Я помогаю нашему боссу встречать гостей
и проводить экскурсии по выставке роботов. Слушаю вас.
— Меня зовут Артём. А это моя подруга Аня. Мы хотели бы познакомиться с ми-
ром роботов. Какие они, сколько их, что они умеют и что нам нужно знать, чтобы
создавать умных роботов? — выпалил Артём.
— О! Сразу столько вопросов! Мы рады любознательным гостям! — произнёс
робот. — Доктор Павлова пока занята, но скоро
освободится. Я уверен, она с удовольствием отве-
тит на все ваши вопросы. А пока можно пообщаться
со мной, — предложил робот.
— Мы мечтали познакомиться с таким роботом,
как Вы! — сказала Артём.
Робот весело покрутил головой и повернулся к
Ане.
Аня улыбнулась и сказала:
— Какое странное у вас имя — Эл! Оно с чем-то
связано?
— Конечно. Это интересная история. Она связана
с автором трёх знаменитых законов робототехники.
Кстати, тебе известно, Аня, кто написал эти зако-
ны? — спросил робот Эл.
— Нет, — смутилась Аня.
— Как же так?! — воскликнул Эл. — В мире люби-
телей роботов их каждый знает. Их создателем яв-
ляется Айзек Азимов, живший ещё в прошлом веке. Представляете, какая древ-
ность? Пойдёмте, я вам кое-что покажу.
ЗАКОНЫ ДЛЯ РОБОТОВ, КОТОРЫЕ ПРИДУМАЛ
АЙЗЕК АЗИМОВ
Робот Эл подъехал к большому стенду, висящему на стене, и показал рукой:
— Вот законы о роботах, принятые во всём мире.
И добавил:
— Хотите, я вам их озвучу?
— Да, было бы здорово услышать это от робота! — воскликнула Аня.
— Тогда слушайте. Они звучат так. И робот своим искусственным голосом про-
изнёс...
ЗАКОНЫ ДЛЯ РОБОТОВ АЙЗЕКА АЗИМОВА
Закон первый. Робот не может причинить вред Человеку или своим бездей-
ствием допустить, чтобы Человеку был причинён вред.
Закон второй. Робот должен повиноваться всем приказам Человека, если это
не противоречит первому закону.
Закон третий. Робот должен заботиться о своей безопасности, не нарушая
при этом первого и второго законов.
1942 год
— Ну, и как они вам, ребята? Нравятся? — спросил Эл.
— Красиво звучат! Но неужели их никто не нарушал? — спросила Аня.
— Смотря, в каком мире. В мире фантастики эти законы нарушались неодно-
кратно. А в мире науки они действуют неукоснительно, пока, — заметил Эл.
— Знаете, — сказал Артём, — однажды я просматривал Интернет и случайно
наткнулся на один интересный персонаж. Он посылал привет всем роботам, и это
меня заинтересовало. Назвался он Рыжим Кысем, живущим в пещере.
— Какой милый аватар, Рыжий Кысь, мне нравится! — заметил робот Эл. —
И что дальше?
— Он размышлял о законах робототехники, и я решил почитать, что он думает
об этом. Он придумал свои законы для роботов, которые, наверное, ему были
близки.
Один закон такой: «Робот может жить как хочет, если это не обижает дру-
гих».
Робот Эл, внимательно прослушав, сказал:
— Меня заинтересовал этот закон, только объясните мне, пожалуйста, что это
значит «живи как хочешь, только не обижай других». Можете мне объяснить это с
помощью алгоритма?
Аня с Артёмом переглянулись и покачали головой.
— Ладно. Подумайте об этом. А я возвращаюсь к ответу на твой вопрос, Аня,
почему меня так назвали.
ИСТОРИЯ РОБОТА ЭЛА
Это в честь робота ЭЛ-76 из рассказа Айзека Азимова «Робот ЭЛ-76 попадает
не туда». Вот — познакомьтесь с моей историей.
«ЭЛ-76 был спроектирован учёными в специальном конструкторском бюро для
работы на Луне. Его модель внешнего мира описывала только лунные условия. На
Земле ему находиться было строго запрещено.
Но по случайному стечению обстоятельств робот оказался за пределами кон-
структорского бюро, на воле. И вдруг он увидел совсем другой мир. ЭЛ-76 был в
полной растерянности. Под ногами было что-то зелёное... Небо, которое должно
быть чёрным, оказалось голубым. Солнце было — круглое, жёлтое и горячее. Но
где же пыльная, похожая на пемзу порода, которая должна быть под ногами? Где
огромные скалистые кольца кратеров? Под ногами у него была только зелень, над
головой — голубое небо. Окружавшие его звуки тоже были незнакомыми...
И тогда ЭЛ захотел исследовать этот новый мир и ушёл навстречу новым от-
крытиям. А учёные его потеряли».
— Спустя много лет я появился в лаборатории доктора Павловой. Объясните
мне, — продолжил беседу Эл, — каким образом робот, имеющий совсем другую
модель внешнего мира, может понять мир землян?
— Каким образом? — рассмеялась Аня. — Да простым! Робот должен уметь
обучаться.
— Мой алгоритм самообучения пытается понять, но ваш мир очень сложный...
Однако я увлёкся. А знаете, ребята, кто придумал слово «робот»? — спросил Эл.
— Это слово придумал писатель Карел Чапек, — ответил Артём.
— Совершенно верно, Артём! — откликнулся робот. — И было это в 1920 году.
Его пьесу многие уже и не помнят, а вот понятие «робот» прочно вошло в совре-
менные языки. В чешском языке, так же как и в русском, это слово похоже на
слово «работа», и недаром. По замыслу Чапека, роботы могли самостоятельно
выполнять работу, которую обычно умел делать человек. А вы сегодня кого на-
зываете роботом?
— По-моему, робот — это техническое устройство, которое может самостоя-
тельно двигаться и выполнять нужную человеку работу, — ответил Артём.
— Неплохое определение, — заметил Эл. — Однако я опять увлёкся. Пойдём-
те. Я провожу вас в лабораторию, которой заведует доктор Павлова. Она вам всё
расскажет сама.
ЗНАКОМСТВО С ХОУП И РАЗГОВОР о том,
КАК ОПРЕДЕЛИТЬ ПОНЯТИЕ «РОБОТ»
Школьники вышли из лаборатории и в сопровождении робота Эла двинулись
дальше по коридору к табличке с надписью «доктор технических наук Надежда
Павлова. Проект — роботы будущего».
Эл распахнул перед гостями дверь кабинета и пропустил их вперёд. У компью-
тера сидела женщина и говорила по телефону. Положив трубку, она повернула в
сторону вошедших голову и поднялась им навстречу.
— Добро пожаловать, друзья, проходите! Мне уже позвонили и предупредили,
что вы на пути к нам, — сказала доктор Павлова и продолжила: — Очень рада по-
общаться с любознательными школьниками.
— Меня зовут Аня, — представилась школьница. — А это мой друг Артём.
— Что бы вы хотели узнать, друзья? — спросила доктор Павлова.
— Я учусь в десятом классе и увлекаюсь робототехникой, — сказал Артём. —
Я хочу научиться создавать умные электронные мозги для роботов. Не могли бы
вы нам рассказать, как вы создаёте своих умных роботов?
— С удовольствием отвечу на все ваши вопросы, — ответила, улыбнувшись,
доктор Павлова и добавила: — И, кстати, зовите меня просто Хоуп. Так меня зовут
мои сотрудники. Пойдёмте в нашу комнату для совещаний и семинаров.
Ребята вошли в просторную комнату, в центре которой располагался круглый
стол. На столе стояли компьютеры, подключённые к общей сети, и у каждого ком-
пьютера находилось удобное кресло.
На стене висел большой экран, а недалеко стояла доска и лежали флома-
стеры.
Артём с Аней удобно расположились в креслах, с интересом разглядывая всё
вокруг. В это время отворилась дверь, и в комнату въехал уже знакомый робот Эл,
толкая впереди себя стол-тележку с чаем, кофе и булочками.
— Прошу вас, угощайтесь, — сказала Хоуп. — А я пока выведу на большой
экран нужные мне для нашей научной беседы картинки.
Спустя пару минут на экране появилась картинка, которую ребята с интересом
разглядывали.
Посмотрев на ребят, Хоуп продолжила:
— Прежде чем говорить о робототехнических устройствах, давайте определим-
ся с тем, «кого» мы будем называть роботом. Знаю, что Эл уже рассказал вам
историю появления роботов и даже озвучил законы, которые сочинил для них Ай-
зек Азимов. Все любят смотреть фильмы и читать про роботов, и тем не менее ни
у кого до сих пор нет ясного и чёткого понимания «что же такое робот».
Что такое робот?
— Посмотрим на определения, которые встречаются в различной научно-
технической и справочной литературе.
Хоуп вывела на большой экран наиболее распространённые толкования поня-
тия робота.
Определение 1. Кембриджский словарь
(СатЬпс^е 11п|уег51ку Ргезз)
/ЛЬ Робот - управляемое компьютером устройство, которое
ХыУ используется для выполнения работы.
«О Определение 2. Википедия
Робот - это автоматическое устройство, созданное
по принципу живого организма. Робот получает информацию
о внешнем мире от датчиков
(аналогов органов чувств живых организмов)
и самостоятельно осуществляет операции,
обычно выполняемые человеком.
Определение 3. Словарь по естественным наукам
Робот - электронно-механическое устройство, способное
к целесообразному поведению в условиях изменяющейся
внешней обстановки и выполняющее рабочие операции
со сложными пространственными перемещениями.
— Какое, на ваш взгляд, наиболее подходит к вашему представлению о робо-
тах? — спросила Хоуп.
Аня просмотрела определения и заметила:
— Первое определение — самое короткое.
Артём, прочитав все три, сказал:
— По-моему, второе самое правильное. А третье — не очень понятное. Что та-
кое целесообразное поведение?
— Хорошие замечания, друзья. На твой вопрос, Артём, я отвечу чуть позже.
А сейчас хочу обратить ваше внимание, что понятие «робот вообще» — неодно-
значное, как мы видим. Поэтому к слову «робот» мы будем всегда добавлять уточ-
няющее слово, например «промышленный робот», или «бытовой робот», или «ме-
дицинский робот», или «робот-игрушка», или «мобильный робот» и так далее.
Что такое мехатроника?
Хоуп включила компьютер и вывела на большой экран картинку с сайта «Хабр»
(рис. 6.1), которую ребята стали с интересом разглядывать.
Рис. 6.1
— Посмотрите внимательно. Что за устройство показано на этом рисунке? —
спросила Хоуп. — Что ты тут рассмотрела, Аня?
— Вижу прозрачный цилиндр, который стоит на двух колесиках. Сбоку есть на-
бор батареек. Внутри цилиндра виднеются какие-то провода и схемы, — ответила
школьница.
— Как вы думаете, что это такое?
— Это простой мобильный робот, который может двигаться и что-то делать, —
ответил Артём.
— Всё так. Только можно ли такое устройство назвать «роботом»?
— А почему — нет?
— Отвечаю. Сейчас многие школьники увлекаются робототехникой, собирая
своими руками простейшие модели механических устройств, похожих на наш при-
мер, — произнесла Хоуп и продолжила: — Эти простейшие мобильные устрой-
ства часто называют роботами. Но так ли это? Давайте вместе разберёмся, какие
устройства относятся к классу роботов, а какие — нет. Согласен, Артём?
— Конечно.
— Начнём с того, что устройство на этом рисунке точно относится к классу так
называемых мехатронных устройств. Мехатроника — сравнительно молодая
наука. Она изучает способы создания движущихся механических устройств,
управляемых с помощью встроенных микропроцессоров (очень маленьких ком-
пьютеров).
Мехатронная система состоит из двух частей:
• механической части, обеспечивающей движение;
• электронной части — в виде встроенного в систему микропроцессора (чипа)
с некоторой программой управления движением.
Является ли роботом стиральная машина?
— В современном мире грань между понятиями «робот» и «мехатронная систе-
ма» довольна размыта. Существует очень много приборов и машин, снабжённых
микропроцессорами, которые могут хорошо выполнять некоторую рутинную рабо-
ту человека. Вы с ними, ребята, не раз сталкивались. Как вы думаете, стиральная
машина, например, является роботом или мехатронным устройством?
— Я не слышала, чтобы кто-то называл стиральную машину роботом. Если б
она умела ходить... — ответила Аня.
— Ты отчасти права. Но давайте разбираться. Стиральная машина тоже вы-
полняет определённую работу (стирку) вместо человека. И всё же стиральная
машина — мехатронное изделие, автомат с жёстко запрограммированной по-
следовательностью действий. Подобные автоматы (к ним можно отнести также
банкоматы, принтеры и так далее) проектируются таким образом, чтобы надёжно
выполнять в течение всего срока эксплуатации одни и те же операции в одних и
тех же условиях, для которых они предназначены.
— Для того чтобы осуществлять разнообразные операции, которые умеет де-
лать человек, — продолжила свой рассказ доктор Павлова, — нужны устройства,
обладающие способностью самостоятельно производить сложные пространствен-
ные перемещения, необходимые для выполнения заданной работы, а также спо-
собностью подстраиваться под те условия внешней среды, которые возникают
в процессе работы.
Именно такие устройства мы будем называть роботами.
А сейчас давайте обсудим важный принцип поведения любых действующих
систем, будь то робот, животное или человек.
ЧТО ОБЩЕГО У РОБОТОВ, ЛЮДЕЙ И ЖИВОТНЫХ?
ПРИНЦИП ВИНЕРА
Роботы, в отличие от людей и животных, сделаны из другой материи, и поэтому
роботам совсем не обязательно походить на них. Они могут выглядеть по-разному
в зависимости от того, где и для чего они используются. Например, есть роботы,
напоминающие пауков или гусениц, есть антропоморфные, то есть человекопо-
добные роботы. А могут быть роботы такой конструкции, у которой нет аналогов
в живом мире.
Однако у всех роботов, животных и людей есть нечто общее. Это впервые раз-
глядел и сформулировал ещё в 1948 году основатель науки кибернетики Норберт
Винер. Он сформулировал важнейший принцип управления в природе, который
впоследствии назвали принципом Винера.
Этот принцип дал начало развитию новой науки кибернетики, изучающей за-
кономерности между информацией, связью (передачей информации) и управле-
нием. Само слово происходит от древнегреческого «кибернетес», что означает
управляющий, или кормчий. Вот такая связь времён.
Историческая справка
Норберт Винер (1894-1964) — американский учёный, выдающийся матема-
тик, основоположник кибернетики и теории искусственного интеллекта. Он пер-
вым создал предпосылки того мира, в котором мы живём — мира компьютеров,
автоматов и роботов.
Принцип Винера
Для какой бы работы ни предназначался автомат, какой бы
ни была нервная система животного или человека, и автомат,
и нервная система всегда имеют дело с сигналами,
с сообщениями. Нервная система представляет собой
не что иное, как управляющий орган (или систему управления), у
и принцип действия такой системы, как у автоматов (у роботов), ч
так и у человека или у животного одинаков.
ОБЩАЯ КИБЕРНЕТИЧЕСКАЯ СХЕМА
УПРАВЛЕНИЯ ПОВЕДЕНИЕМ
— Нарисуем в соответствии с принципом Винера общую кибернетическую схе-
му управления поведением, которая одинакова как для животных и человека, так
и для автоматов, роботов. Она показана на рис. 6.2.
Рис. 6.2
Посмотрите, друзья. На вход органов чувств действующего существа (будь то
животное, человек или робот) поступают сигналы или сообщения от внешней сре-
ды. Каждый орган чувств улавливает свой сигнал внешнего мира. Например, гла-
за зайца увидели лису. Орган зрения передаёт в управляющий орган (мозг зайца)
зрительный сигнал.
Управляющий орган (мозг действующего существа) непрерывно сравнивает
входную информацию с образцами в памяти и решает, в какую сторону и насколь-
ко поступающие сигналы отклоняются от этих образцов.
Для этого используется «Память», которая состоит из двух важных частей:
«Знания» и «Программы» (рис. 6.3).
Рис. 6.3
Знания хранятся в памяти в виде образцов, которые накопились в результате
всего предшествующего опыта действующего существа.
Как использовать эти знания — вот задача, которую решает управляющий
орган.
Программы работы (поведения существа) задают последовательность дей-
ствий, которые надо произвести в ответ на входной сигнал или сообщение.
После того как управляющий орган сопоставил входные сигналы с образцами,
он выбирает определённую программу действий и посылает исполнительному ор-
гану команду её выполнить. Например, действие «убегай» для зайца, увидевшего
лису.
Назначение четвёртого органа на схеме 6.2 очевидно: действующему существу
нужна энергия, чтобы жить и действовать.
Основную роль в поведении разных существ играет их система управления
поведением, или мозг. Его качеством определяется то, на что способно действу-
ющее существо, будь то животное, человек или робот.
Чем сложнее система управления (или нервная система), тем сложнее поведе-
ние организма. И наоборот, чем сложнее поведение робота, которого мы хотим
создать, тем сложнее должна быть его система управления.
— Идёмте дальше. Что ещё есть общего у роботов, животных и человека? Как
вы думаете?
— У них есть система датчиков, то есть сенсоров, с помощью которых они могут
получать информацию из внешнего мира, — ответил Артём.
— Совершенно верно. У роботов есть так называемая система очувствления.
ЧТО ТАКОЕ СИСТЕМА ОЧУВСТВЛЕНИЯ РОБОТОВ?
Роботам, для того чтобы получать информацию об окружающей среде, тоже
необходимы свои «органы чувств». Это датчики и различные чувствительные
устройства. Совокупность таких устройств называется системой очувствления
робота.
В общем случае эта система довольно сложная. Она включает множество раз-
личных измерительных устройств, в том числе видеокамеры, микрофоны, даль-
номеры, акселерометры, гироскопы, магнитометры, датчики температуры, давле-
ния, освещённости и так далее.
— Как их много, — удивилась Аня. — А что такое дальномеры?
— Это приборы, с помощью которых измеряются расстояния до объектов в
сцене.
— А акселерометры?
— Они измеряют ускорение движения.
— А гироскопы что делают? — не унималась Аня.
— Гироскопы измеряют положение объекта в угловой системе координат. С их
помощью также измеряются угловые скорости вращения (колёс, например).
— Удивительно, сколько всяких приборов существует, чтобы робот мог чувство-
вать, — произнесла Аня.
— Я бы сказал, что робот не чувствует, он просто измеряет, — заметил Артём
и спросил: — А как используется вся эта информация от датчиков?
— Согласна. Робот измеряет, а не чувствует. На то он и робот. У мобильных
роботов (способных перемещаться в рабочем пространстве) есть две важные под-
системы, которые обрабатывают данные с датчиков и видеокамер. Это система
навигации (передвижения в пространстве) и система машинного зрения.
Информация от акселерометров, дальномеров и гироскопов поступает на вход
системы навигации. С её помощью автономный мобильный робот может опреде-
лить своё местоположение и ориентацию на местности. Кроме того, с помощью
системы навигации мобильный робот также может вычислять местоположение и
ориентацию в пространстве объектов (предметов), которые находятся в текущей
местности.
А ещё с её помощью робот может строить маршрут из заданной точки А в точ-
ку Б. Алгоритм построения маршрута определяет участки текущей сцены (некото-
рой местности), по которым возможно движение, а затем вычисляется оптималь-
ная траектория пути.
Так что, видите, система навигации является важным блоком в архитектуре мо-
бильного робота.
Другой важной подсистемой у роботов является машинное зрение. Задумыва-
лись ли вы, друзья, о том, как вы сами видите мир, что в нём различаете?
— Ну как? Я вижу цвет, форму, размер, могу узнать предмет, сказать, к какому
классу он относится, описать, где он находится.
— Верно. Но оказывается, что это всё делает твой мозг вместе с системой
зрения. То есть система зрения человека является интеллектуальной.
— Чтобы видеть, тоже нужен интеллект? — удивилась Аня.
— Конечно. Решать задачу восприятия в полном объёме, как это умеет чело-
век, без интеллектуальных способностей невозможно.
— А как выглядит электронный глаз робота? — спросил Артём.
— Вижу, вас эта тема увлекла, — сказала, улыбнувшись, доктор Павлова. —
Давайте поговорим об этом.
МАШИННОЕ И КОМПЬЮТЕРНОЕ ЗРЕНИЕ
— Взгляни на дорогу! Кого ты там видишь?
— Никого, — сказала Алиса.
— Мне бы такое зрение! — заметил король
с завистью. — Увидеть никого! Да ещё на таком
расстоянии!
Л. Кэрролл. «Алиса в Зазеркалье»
— Зрение — один из важнейших органов у живых организмов в природе.
У некоторых животных, особенно у птиц, органы зрения превосходят человече-
ские возможности.
Системы машинного (технического) зрения тоже обладают разными способно-
стями. Однако они совершенствуются с каждым годом. В современных исследо-
ваниях понятия машинного и компьютерного зрения различаются. Это различие
хорошо видно в их определениях. Посмотрите.
Компьютерное зрение - научная дисциплина,
разрабатывающая теорию и алгоритмы обработки
зрительной информации.
Машинное (техническое) зрение - инженерная
дисциплина, разрабатывающая технологии (способы)
применения компьютерного зрения для задач
промышленности и производства.
— Создатели компьютерного зрения стремятся разрабатывать алгоритмы ре-
шения задач восприятия так, как это умеет человек (и даже больше). А создатели
машинного зрения разрабатывают различные устройства для машинного зрения.
Качество восприятия роботом окружающего мира зависит от алгоритмов обра-
ботки визуальной информации и быстродействия используемой вычислительной
техники. Именно они обеспечивают качество того, что и как может увидеть зри-
тельная система роботов.
Что видит робот?
— В качестве глаз робота обычно используются видеокамеры (рис. 6.4). Это
или ССЭ-камера, или веб-камера, или 8таг1-камера, снабжённые микропроцессо-
ром, который проводит предварительную обработку поступающего входного изо-
бражения.
Программы микропроцессора чистят изображения, убирая шум и помехи, и вы-
деляют один или несколько зрительных образов. После этого изображение в циф-
ровом (в простейшем случае — бинарном) поступает в систему обработки зри-
тельной информации.
Умные камеры умеют решать разные задачи:
• выделение и подсчёт объектов;
• выделение контура объекта;
• поиск заданных объектов;
• сопоставление с образцом;
• распознавание;
• определение типа объекта;
• слежение за объектом
и так далее.
Изображение — двумерный (20)
массив данных (цифр)
Пиксел — элемент изображения
Рис. 6.4
Робот видит двумерный массив (20) данных (таблицу) (рис. 6.5).
Рис. 6.5
Глаза робота «видят» путём изучения отдельных пикселов изображения, обра-
батывая их и пытаясь сделать выводы с помощью базы знаний и набора функций
обработки изображений.
Сколько глаз у робота?
— Интересно, а сколько у робота может быть глаз? — спросила Аня.
— Глаз у робота может быть столько, сколько нужно для решения задач в опре-
делённой области. Как правило, системы машинного зрения состоят из двух ви-
деокамер, которые подключаются к роботу. Это обеспечивает его бинокулярным
зрением (как у человека), или стереозрением.
— А зачем ему это нужно? — спросила Аня.
— Ты хочешь спросить, зачем вообще бинокулярное зрение?
— Ну да.
— Зрение одним глазом даёт представление о высоте, ширине, форме пред-
мета. Однако такое зрение не позволяет воспринимать глубину и объём рассма-
триваемого объекта. А ещё зрение с одним глазом не даёт возможности судить о
взаимном расположении предметов. Чтобы устранить такие дефекты, природа на-
делила человека двумя глазами. Так что с помощью своих глаз человек ощущает
себя живущим в трёхмерном пространстве.
Разработчики машинного зрения стараются наделить такой способностью и ро-
ботов. Эта способность нужна роботам для решения следующей важной задачи.
Задача анализа сцен
— Важная задача любой зрительной системы — это задача анализа сцен.
— Мне не очень понятно, что значит сцена. Это что? — спросила Аня.
— Вспомни, Аня, как выглядит сцена в театре.
— Ну, в театре это ясно. Это небольшое пространство, где происходит действие.
На сцене есть декорация: различные предметы, интерьер, и актёры...
— Верно. Для робота понятие сцены — похожее. Это совокупность объектов,
рассматриваемых с какой-либо точки наблюдения. Размеры сцены ограничен-
ны — так же, как в театре или на экране телевизора. Зрительная система робота
изучает характерные линии, которые присутствуют в рассматриваемом кадре изо-
бражения сцены. Линии бывают разными: граничные, внутренние, или выпуклые,
вогнутые. Посмотрите — они показаны на рис. 6.6.
— Граничные линии отделяют области, принадлежащие объектам. Внутренние
линии показывают области, относящиеся к одному и тому же объекту. Выпуклые и
вогнутые линии говорят о форме объекта. Глаза робота изучают граничные линии
выделенных объектов и выделяют контур, который присутствует в рассматривае-
мом изображении.
Этот контур сравнивается с их эталонами в базе образов. Используя алгоритм
распознавания образов, система зрения робота определяет тип объекта. В ре-
зультате анализа сцены робот может определить, сколько объектов присутствует
в сцене и к какому классу они относятся.
И это ещё не всё. Робот с умной системой зрения может распознавать челове-
ческие лица, жесты и даже эмоции на лице, например, смеёшься ты, грустишь или
плачешь.
Как робот различает цвета и определяет
размеры предметов?
— Интересно, а как робот разли-
чает цвета? — спросила Аня.
— Видеть мир цветным позволя-
ют видеокамеры с цветными филь-
трами. В систему машинного зрения
входят специальные программы раз-
личения цвета, которые обрабаты-
вают информацию от системы све-
тофильтров. Свет, отражённый от
объекта, проходит через красный,
зелёный и голубой фильтры. По их
характеристикам и определяется
цвет предмета. Так что робот вполне
может выполнить команду: «найди
красный куб в комнате».
— Да. Сложная это задачка — ви-
деть! — заметила Аня.
— Конечно. Природа трудилась
над этим миллионы лет. Зато чело-
век может видеть сказочно красивый
мир! Роботы пока видят по-своему.
— А как робот определяет разме-
ры предметов?
— Для этого существуют специальные программы. Например, есть программы
измерения размера объекта по фотографии. Они используют идею оценки раз-
меров объектов с помощью маркеров. В качестве маркеров могут быть любые
предметы с известными размерами. Благодаря сравнению с ними оцениваются
габариты нужных объектов. Чтобы понять и разобраться со всеми алгоритмами
машинного зрения, нужно серьёзно изучать их в рамках университетских курсов.
Это отдельная тема. А мы пойдём дальше.
РОБОТ ЭЛ ИЩЕТ МОБИЛЬНЫЙ ТЕЛЕФОН В КОМНАТЕ
— Подождите! — воскликнула Аня. — А давайте зададим вашему роботу Элу за-
дачку. Пусть поищет, есть ли в этой комнате... например... мобильный телефон.
— Ну что ж, хорошая задача для системы зрения, — ответила Хоуп. — Замечу,
что при этом важно обнаружить не только сам объект, но и указать его местополо-
жение в сцене (то есть в системе координат, привязанной к сцене). Вид мобильно-
го телефона в базе образцов может быть описан как небольшой параллелепипед
толщиной с палец. Если сцена простая и объектов в ней не очень много (напри-
мер, как наша семинарская комната), то робот быстро справится с этой задачей.
Сейчас позову моего помощника Эла. Он вам это и продемонстрирует.
Прошло немного времени, и робот Эл вкатился в комнату, где ребята беседо-
вали с Хоуп.
— Эл, — обратилась Хоуп к своему роботу-помощнику, — покажи нашим друзь-
ям своё умение отыскивать предметы в сцене. Вот тебе задача: «найди в этой
комнате мой мобильный телефон». С чего ты начнёшь?
— Прежде чем сканировать сцену, я включу «свои мозги» и загляну в свои базы
образов и знаний, — ответил Эл. — Из базы образов возьму обобщённое графи-
ческое описание мобильного телефона. А из базы знаний вытащу информацию
о том, где обычно могут находиться мобильные телефоны. Например, рядом с
хозяином.
— Вот, ты, Аня, — обратился к гостье Эл, — скажи, где ты обычно хранишь свой
мобильный телефон?
— О нет, это знание тебе не поможет. Телефон у меня может валяться где угод-
но, — засмеялась девочка.
— И что ты делаешь в таком случае? — удивился Эл. — Как ты его находишь?
— В этом случае я прошу маму или сестру позвонить на мой телефон и по звуку
быстро нахожу.
— Интересный способ поиска телефона. Запомню, — произнёс робот. — Одна-
ко сейчас я буду действовать по своему плану. Итак, всю предварительную инфор-
мацию об объекте поиска я собрал. Теперь начну поиск-сканирование с обычных
мест нахождения мобильного телефона.
Робот отснял несколько кадров стола, за которым школьники сидели во главе с
Хоуп. На минуту-другую «задумался» и быстро определил местонахождение теле-
фона, который лежал рядом с блокнотом Хоуп.
— Да вот же он! Лежит рядом с блокнотом моего босса.
— Вот здорово! — воскликнула Аня. — С таким зрением робот нигде не про-
падёт!
— Молодец, Эл! Хорошая демонстрация. Благодарю, — сказала Хоуп и про-
должила: — Как видите, задача поиска заданного объекта в сцене требует нема-
ло умственных (вычислительных) усилий: найти контуры объекта, распознать его,
определить расположение в пространстве и так далее. А теперь, друзья, сделаем
перерыв и отправимся на выставку роботов.
ЗНАКОМСТВО С ОБРАЗЦАМИ РОБОТОВ В ТЕХНОПАРКЕ
ИСКУССТВЕННОГО ИНТЕЛЛЕКТА
Робот Эл проводил ребят в специальный выставочный павильон, где находи-
лись образцы современных роботов, и познакомил с инженером-исследователем
Андреем.
— Андрей, тут с тобой хотят побеседовать наши гости, школьники Аня и Ар-
тём, — произнёс Эл. — Босс просила уделить ребятам внимание. Пока, друзья, до
новых встреч!
Аня помахала Элу, и он покатился по своим делам. Андрей приветливо посмо-
трел на ребят и сказал:
— Добро пожаловать! Давайте пройдём к подиуму роботов-андроидов и с них
начнём знакомство с миром роботов.
Ребята подошли к группе роботов. Аня увидела среди них знакомого робота и,
указав на него, сказала:
— Да это же японский робот Асимо! Я его знаю, мне бабушка о нём рассказы-
вала.
— Совершенно верно, — произнёс Андрей. — Это робот Асимо в компании дру-
гих человекоподобных роботов.
— Они очень симпатичные! — заметила Аня.
— Действительно, симпатичные, — улыбнувшись, сказал Андрей и продолжил:
— По своему внешнему виду современные роботы делятся на два основных
класса:
• человекоподобные роботы-андроиды (ещё говорят роботы-гуманоиды, или
антропоморфные роботы);
• роботы — не андроиды.
Робот Асимо
— Асимо — один из ярких представителей роботов-гуманоидов, — продолжил
свой рассказ Андрей. — Первый прототип такого робота был создан японскими
инженерами компании «Хонда Роботикс» ещё 19 лет назад, в 2000 году. Он уме-
ет ходить как человек, жестикулировать как человек и во многом вести себя как
человек.
Андрей подошёл ближе к роботу и озвучил команду:
— Асимо! «Поприветствуй наших гостей!»
И тут все увидели очень забавные приветствия робота Асимо, адресованные
гостям. Он махал руками, то прижимая их к груди, то поднимая вверх. А на про-
щание помахал своей правой рукой.
Аня с интересом разглядывала его смешное выступление, а в конце его задум-
чиво произнесла:
— Подумаешь, всего лишь махание руками. И что здесь такого особенного?
— Вот тут ты ошибаешься! — заметил Андрей. — Это совсем непростые задачи
движения. Во-первых, робот Асимо умеет устойчиво стоять, а во-вторых, жести-
кулируя, он может одновременно управлять движением рук и ног. Это сложные
задачи управления динамическим движением робота.
Для того чтобы создать систему управления движением всех звеньев «ног» ро-
бота (звенья бедра, коленей, голени, ступни), нужно провести сложное математи-
ческое моделирование движений этих частей. Если просто написать уравнения
движений всех этих звеньев, то они займут около двух страниц в школьной тет-
ради.
— Вот это да! А нельзя ли как-нибудь обойтись без этих уравнений движе-
ний? — удивилась Аня. — Не думаю, что природа занимается решением ваших
уравнений!
— Конечно. Природа, в том виде, как это делают математики, не действует. Она
ищет лучшие решения путём генетического отбора и обучения нейросетей. Знае-
те, что это такое? — спросил Андрей.
— Да, знаем, — ответил Артём. — Мы были в лабораториях у Профессора и
Александра.
— Молодцы! Правильно сделали. Так вот, в отличие от природы мы создаём
системы управления движением интеллектуальных роботов, не дожидаясь, когда
пройдут тысячи лет эволюции. Мы просто используем математическую модель
движения роботов и прогоняем через неё генетический алгоритм, который нахо-
дит нам наилучшие решения по управлению.
Что умеет робот Асимо?
— Уже создано несколько видов роботов, перемещающихся на двух ногах. Но
пока эти роботы не могут достичь такого же устойчивого движения, какое прису-
ще человеку.
— Если это так сложно, то зачем же тогда их делать? — спросила Аня.
— Но тебе же понравился Асимо, верно?
— Понравился.
— Вот поэтому его и сделали. Проверить, насколько оправдан такой проект.
Роботы, использующие две ноги, как правило, хорошо передвигаются по полу
или по другой гладкой поверхности. Робот Асимо, например, умеет ходить, под-
ниматься и опускаться по лестнице, и даже немного танцевать.
Он вполне комфортно может передвигаться в доме. Однако перемещение по
пересечённой местности является сложной задачей для роботов такого типа.
С ней лучше справляются роботы, у которых много ног.
— А-а, это, наверное, роботы типа сороконожки, — заметила Аня. — Но зато
такой робот будет с трудом подниматься и спускаться по лестнице в доме. Как он
будет перетаскивать все свои ноги со ступеньки на ступеньку?
— Хорошее замечание, Аня, в пользу Асимо, — похвалил школьницу Андрей и
продолжил: — Видите, рост Асимо не мал и не велик, поэтому ему вполне удобно
функционировать в обычной человеческой среде, например в доме или в офисе.
— А что, интересно, ещё умеет делать такой робот? — спросил Артём.
— Асимо умеет распознавать движущиеся объекты, в том числе людей. Он мо-
жет воспринимать голосовые команды даже среди шума. Робот слышит, когда его
зовут по имени, и поворачивается к зовущему.
А ещё он может носить вещи, а также толкать тележку в магазине или столик
на колёсиках с ужином для хозяина. Кроме того, он может разговаривать с визи-
тёром через домофон, а потом докладывать хозяину, кто пришёл. Робот умеет
открывать двери, пользоваться выключателем света, он может также сопрово-
дить посетителя до нужного места. Он умеет «приветствовать» человека, когда
тот войдёт в дом.
— Умный «парень», — заметил Артём.
— Да, умный помощник и даже друг, — ответил Андрей. — Вот вы мечтали о
том, чтобы такой робот принёс вам утром кофе в постель? А Асимо может! У таких
роботов большое будущее.
Как Асимо стал родоначальником нового вида роботов
— Сейчас уже разработано третье поколение роботов Асимо. Они умеют бе-
гать, у них более совершенные и гибкие руки, так что робот Асимо не боится те-
перь что-нибудь сломать. И самое интересное, что на основе разработок Асимо,
компания «Хонда» вывела в свет новый прототип человекоподобного робота. Это
робот-спасатель, и зовут его Нопба ЕВ-ОВ.
— Смешное имя «Хонда ИР-ДР», — заметила Аня.
— Ну, может быть, со временем ему дадут новое имя, когда доработают и вы-
пустят в свет, — ответил Андрей и продолжил: — Робот-спасатель выше ростом,
он тоже может ходить, подниматься по лестнице, способен проползти через узкий
коридор. Кроме того, такой робот умеет работать в большом диапазоне темпера-
тур от -10 до +40 градусов по Цельсию. Такие роботы-спасатели очень важны для
Японии. Особенно это стало очевидным после катастрофы на фукусимской атом-
ной электростанции. Пока этот образец в стадии разработки. Пожелаем успехов
японским инженерам и учёным!
А мы посмотрим на другие образцы роботов-андроидов.
Робот-спасатель
Робот Асимо 3
Робот-малыш Нао
— Вот посмотрите — ещё один интересный экземпляр робота-гуманоида, —
сказал Андрей. — Его зовут Нао, и он создан инженерами французской компании
«Альдебаран Роботикс». Первый прототип Нао появился в 2004 году.
— Какой милый Роботёнок! — заметила Аня. — Малыш прямо.
— Согласен. Этот робот ростом всего 58 сантиметров, а его масса равна
4,3 килограмма.
— А что этот малыш умеет делать? — спросил Артём.
— Нао, так же как и Асимо, умеет ходить. А ещё он умеет наклоняться, падать
и подниматься, сидеть, вставать из положения сидя, брать в руки разные неболь-
шие предметы.
Нао может, находясь на этаже в офисе, вызвать лифт, войти в него и спуститься
на нужный ему этаж. А ещё с этим роботом приятно общаться. Он умеет распозна-
вать речь человека и выполнять его команды.
Нао заводится от лёгких похлопываний по голове. Там находится тактильный
сенсор, реагирующий на прикосновения. Кроме сенсора, в голове робота есть две
камеры, сканирующие и изучающие предметы.
Нао умеет распознавать объекты или лица. Например, он вполне научился узна-
вать меня.
Сейчас уже существует пятая версия (или пятое поколение) таких роботов, и
они успешно продаются. Их приобретают многие университеты для дальнейшего
исследования и создания программ обучения и поведения роботов. Так что по-
смотрим, какие ещё новые поколения роботов Нао появятся.
— Прямо как робот Асимо. Интересно, а кто умнее: Асимо или Нао? — спросила
Аня.
— Хороший вопрос, Аня. Действительно, робот Нао по некоторым своим спо-
собностям похож на робота Асимо. Для того чтобы понять, насколько один робот
умнее другого, надо посмотреть на архитектуру каждого робота и сравнить их си-
стемы управления поведением.
На мой взгляд, робот Асимо среди своих сородичей роботов-андроидов самый
умный и способный, а малыш Нао — самый милый и дружелюбный.
Давайте познакомимся с ещё одним роботом-андроидом, которого зовут Пеп-
пер.
Как робот Пеппер попробовал работать
продавцом-консультантом, и что из этого вышло
— Робот Пеппер тоже предназначен для
жизни с людьми. Он разработан совмест-
но японскими и французскими инженерами.
Впервые этот робот появился на выставке в
Токио сравнительно недавно, в 2014 году.
Аня подошла поближе к роботу и заме-
тила:
— А вот у этого робота вместо ног — какая-
то тумбочка на колёсах. И зовут его стран-
но — Пеппер. Перец, что ли?
Андрей кивнул головой.
— Действительно, в переводе с английско-
го его имя означает «перец». Почему его так
назвали? Не знаю. Можно долго дискутиро-
вать. Но мы лучше обсудим более важный
вопрос: почему вместо ног у него колёса?
В ряде случаев движущаяся платформа мо-
жет оказаться более удобным средством пе-
редвижения, чем две ноги.
— В каких случаях, интересно? — спросил
Артём.
— Например, при движении по дорожкам
и тротуарам такой робот может обладать
большей скоростью и манёвренностью. Да и
управлять движущейся платформой проще,
чем ногами.
— А что умеет делать этот «Перец»? — спросила Аня.
— Пеппер, как Асимо и Нао, умеет быть другом. Он понимает, вернее, стара-
ется понять, человеческие эмоции. Например, если ты будешь плакать, он тебя
утешит, а если тебе станет скучно, может тебя развлечь. Он умеет разговаривать
с людьми на их языке, воспринимать их мимику и даже тон голоса. Он также спо-
собен анализировать жесты и эмоции людей. Кроме того, Пеппер умеет обучаться
в процессе общения с людьми, при этом он изучает и запоминает человеческое
поведение.
— Так это что, настоящий интеллектуальный робот? — спросила Аня.
— До сильного интеллекта ему ещё далеко, но учёные работают над этим! —
заметил Андрей и добавил: — Хочу обратить ваше внимание на то, что робот Пеп-
пер уже вышел на рынок продаж и тоже пользуется спросом.
— А я недавно читал, что один из супермаркетов взял на работу одного такого
робота, — произнёс Артём. — Правда, он быстро научился у клиентов использо-
вать в разговоре грубые шуточки, и его уволили.
— Ну что ж, это лишний раз говорит о том, что надо быть осторожным в том,
чему мы учим своих младших братьев по разуму.
УМНЫ ЛИ ПРОМЫШЛЕННЫЕ РОБОТЫ-МАНИПУЛЯТОРЫ?
— А теперь давайте поговорим о другом классе роботов — не андроидов.
Важное место среди них уже давно завоевали так называемые промышленные
роботы-манипуляторы.
— Я видела их на выставке на ВДНХ, — заметила Аня. — Правда, они совсем
не такие, как роботы-андроиды.
— Да, они другие, — согласился Андрей. — Их тело — это массивное основа-
ние и длинная «рука» со охватом, как клешня. «Рука» такого робота (её называют
манипулятором) может поворачиваться, сгибаться, вращаться, сжимать и разжи-
мать клешню.
Промышленные роботы появились не так давно, лет двадцать пять назад.
А сейчас они продаются в развитых странах десятками тысяч в месяц. Такие ро-
боты — отличные сварщики, сборщики, упаковщики, маляры и так далее, всех не
перечислить. В общем, прекрасные помощники.
Роботы-сварщики, например, могут работать на роботизированном автомобиль-
ном заводе. Они стоят двумя шеренгами, а между ними по конвейеру движутся
кузовы легковых автомобилей. Остановится конвейер на секунду-другую, роботы
повернут свои «руки», прикоснутся к кузову, быстро выполнят сварку, и конвейер
движется дальше. В цехе ни одного человека. Только роботы.
— Наверное, такие роботы могут работать очень долго и не устанут, — замети-
ла Аня.
— Совершенно верно, — сказал Андрей. — Роботы-сварщики не знают уста-
лости, они могут трудиться много часов без отдыха. Так что они все — хорошие
работники. Но особым интеллектом они не блещут. Это автоматы с заданной про-
граммой под те задачи, для которых их разрабатывали.
— Получается, что для каждого вида работ нужен специальный робот? — спро-
сил Артём.
— Да, для выполнения работ в каждой прикладной области разрабатывается
свой специализированный робот. Универсальных роботов пока не существует, —
ответил Андрей. — Да и нужны ли они?
ЭРА МОБИЛЬНЫХ РОБОТОВ И ДРОНОВ.
УМНЫ ЛИ ДРОНЫ?
— Мобильных роботов в современном мире очень много. Это направление в ро-
бототехнике сейчас переживает настоящий бум. Такие роботы могут быть шагаю-
щими, колёсными, гусеничными, ползающими, плавающими и даже летающими.
В сочетании с установленными на мобильную платформу манипуляторами, та-
кие роботы становятся весьма востребованными. Это и роботы-пожарные, и ро-
боты, работающие в опасных, заражённых зонах, например на атомных станциях,
и всевозможные бытовые роботы, и роботы-полицейские, и роботы-гиды и так
далее — всего не перечислить.
Среди них особо хочу выделить новое семейство мобильных роботов, которое
назвали дронами.
— Что означает это слово «дрон»? — спросила Аня.
— По-английски с/гопе означает жужжать. Дроны ещё называют беспилотника-
ми. Другими словами, это — беспилотные летающие устройства.
— Летающие жужжалки, — засмеялась Аня.
— Можно и так сказать. В современном мире дроны могут выполнять много по-
лезной работы. Например, они успешно доставляют грузы из интернет-магазинов
к дверям домов своих заказчиков.
— А ещё они могут успешно шпионить за кем-нибудь, — добавил Артём.
— Не без этого, конечно. Наш мир не совершенен. Хочу заметить, что дроны,
как правило, являются дистанционно пилотируемыми летательными аппаратами.
Они относятся скорее к классу мехатронных устройств, чем к роботам. Хотя грань
между роботами и мехатронными аппаратами размытая. Одни считают их робота-
ми, другие — нет.
— Что это значит «дистанционно пилотируемые», Андрей? — спросила Аня.
— Это значит, что они управляются человеком-оператором с помощью радио-
волн, — ответил инженер.
— А! То есть самостоятельно двигаться они не могут? Тогда, хотя они и полез-
ные, но глупые создания, — решила Аня.
— С точки зрения теста Тьюринга, они, конечно, глупые, — ответил Андрей, —
но с точки зрения полезности очень нужные человеку. Ведь человек не может за-
глянуть сверху на объект своего интереса, а дрон может.
Артём внимательно слушал разъяснения инженера, а затем спросил:
— Я читал, что есть такой робот-курьер, который не летает, а едет, и не по до-
роге, а по тротуарам.
— Да, есть и такие роботы. Их можно назвать «приземлённые» дроны, — от-
ветил Андрей. — Они тоже успешно доставляют товар к дому потребителя, напри-
мер, пиццу.
— Нам ещё этого не хватало! — воскликнула Аня. — Иной раз гуляешь по тро-
туару, а мимо тебя проносится велосипедист, чуть тебя не сбивая. А тут теперь
ещё и дроны-курьеры под ногами будут путаться!
РОБОТЫ-ЖИВОТНЫЕ
— Да, мир всё усложняется! Не успеешь оглянуться, как на тебя какой-нибудь
робот наскочит! — задумчиво произнёс Артём.
Андрей улыбнулся и спросил:
— Что бы вы ещё хотели узнать?
— А какие ещё роботы у вас есть? — спросила Аня.
— Пойдёмте, покажу. Я предлагаю вам заглянуть в павильон роботов-животных,
в котором гидом работает девушка-робот. И её зовут Эва.
Ребята подошли к небольшому павильону, в котором работала приятная
девушка-андроид. Она встречала гостей и показывала им видео с демонстрацией
роботов.
Подойдя к Эве, Андрей произнёс:
— Эва, покажи моим друзьям демонстрацию известных роботов-животных от
компании «Бостон Дайнэмикс».
Эва кивнула в знак понимания, провела пальчиком по сенсорному экрану ком-
пьютера. Тут же на большом экране появилась картинка. Ребята увидели, как не-
что железное на четырёх ногах тащило на своей спине какие-то мешки, поднима-
ясь по тропке в горы.
— А это что за чудище? — спросила Аня.
— Это не чудище. Это одна из первых разработок компании «Бостон Дайнэ-
микс» — робот-собака, которую назвали Биг Дог. Этот пёс умеет передвигаться по
сложной местности со скоростью около 6 километров в час и тащить на себе груз
почти 150 килограмм, — ответила Эва.
Андрей кивнул головой, глядя на Эву, и добавил:
— Этой компанией создана целая линейка экспериментальных образцов: робот-
гепард, робот-кошка, робот-таракан и даже пара антропоморфных роботов.
На большом экране появился ряд образцов таких роботов. Андрей прокоммен-
тировал эти разработки:
— Инженеры-исследователи этой компании поставили себе задачу создать
роботов-животных, умеющих двигаться так, как это делают живые животные. Эти
роботы умеют ходить, бегать, прыгать через барьер, подниматься в гору и спу-
скаться.
Воспроизвести такое динамическое движение — очень сложная задача, как с
точки зрения механики и динамики, так и с точки зрения управления движением.
Разработка и тестирование алгоритмов управления таким движением — очень
интересное и нужное дело.
РАЗГОВОР О РОБОТАХ И ИХ БУДУЩЕМ
Ребята поблагодарили Эву за интересную презентацию роботов-животных и
отправились в сопровождении Андрея в небольшое кафе, чтобы выпить кофе и
обсудить увиденное.
Сделав заказ и усевшись за столик, Андрей сказал:
— На этом моя экскурсия по нашей выставке роботов завершена. Понравился
ли вам современный мир роботов?
— Очень понравился! — восторженно ответила Аня. — Столько удивительных
роботов! Я даже не подозревала об их существовании. Спасибо большое за такую
интересную экскурсию!
— Я рад, — ответил инженер. — Артём, а что понравилось тебе?
— Мне понравилась девушка-андроид, — ответил Артём. — И особенно мне
были интересны механические движения животных-роботов. Ведь природа отта-
чивала мастерство движений человека миллионы лет. А тут роботы так здорово
умеют их имитировать. Представляю сложность их систем управления движени-
ем. Хотелось бы узнать, как это сделано.
— Хорошо. Оставим твой вопрос на будущее и обязательно его обсудим.
— Аня, а кто тебе понравился больше всего? — спросил Андрей.
Аня подумала минутку и ответила:
— Мне больше всего понравился робот Нао, с которым можно разговаривать,
играть и дружить.
— Согласен, Нао — интересная разработка, и главное — можно совершенство-
вать модель его поведения, добавляя свои программы. Эта модель покупается
университетами для изучения и создания новых моделей поведения роботов.
— Я бы тоже хотела добавить роботу Нао что-нибудь новенькое, например эмо-
ций! — размечталась Аня.
— Я только «за»! — улыбнулся Андрей и продолжил: — Хочу с вами обсудить
следующий важный момент. Людям, и особенно молодым людям, всегда любопыт-
но познавать новое. Поэтому молодёжи интересно знакомиться с самыми послед-
ними новинками роботов, компьютеров и всевозможных гаджетов. Согласны?
— Конечно! — ответил Артём.
— Что-то новое может вначале произвести впечатление «разумности». Правда,
до тех пор, пока оно не станет обыденным, — продолжил свою мысль Андрей. —
Именно поэтому даже пылесос, ползущий по полу, люди без всяких сомнений на-
зывают роботом, да ещё и с искусственным интеллектом. Но всё не так просто.
Верно? Я, надеюсь, что вы убедились в этом. Чтобы создавать роботов, обладаю-
щих искусственным интеллектом, надо иметь серьёзную команду учёных, инжене-
ров, разработчиков и программистов.
На сегодняшний день, на мой взгляд, самым интересным и талантливым робо-
том является Асимо. Хотя, конечно, я не умаляю достоинств и полезности множе-
ства других роботов.
— И ещё, — произнёс Андрей. — Давайте обсудим ближайшее будущее робо-
тов. Какие новые роботы на подходе? Как вы думаете?
— Появляется много военных роботов, — заметил Артём.
— К сожалению, ты прав, — сказал Андрей. — Но кроме них, это, в первую оче-
редь, медицинские роботы, включая нанороботов, а также роботы-космонавты,
или робонавты.
Что касается разработки медицинских роботов, то это очень нужное и полезное
дело. Эта ветвь робототехники реализует большой спрос на роботов-хирургов,
обладающих точными, безошибочными движениями при выполнении рутинных
операций, и — главное — не подвластных влиянию эмоций. Естественно, роботы
никогда не заменят полностью опытного человека-хирурга, особенно в сложных
ситуациях, где нужно мыслить нестандартно. Однако помощь таких роботов очень
пригодится во многих других ситуациях.
— А что такое нанороботы? — спросила Аня.
— Нанороботы — это роботы микроскопического размера. Их размер сопоста-
вим с молекулой, а это менее 100 нанометров. При этом они могут передвигать-
ся, передавать информацию и даже исполнять некоторые программы, — ответил
Андрей.
— А нанометр — это сколько? — спросила Аня.
— Это одна миллиардная доля метра.
— Неужели уже есть такие супер-супер-маленькие роботы? Не представляю,
как это возможно? — удивилась школьница.
— Пока есть только первые исследования в этом направлении. Но за ними боль-
шое будущее. Представьте, что кто-то идёт к врачу за лечением своей болезни.
Вместо того чтобы дать ему таблетку или сделать укол, врач направляет его в
специальную лабораторию. Здесь команда врачей имплантирует крошечного на-
норобота (размера бактерии) в его кровь. Наноробот распознаёт причину болез-
ни, отправляется в соответствующую систему организма и обеспечивает доставку
необходимой дозы лекарства непосредственно в больную зону.
— Звучит фантастично! — заметил Артём.
— Да, однако команды учёных по всему миру уже активно работают над этой
задачей. Возможно, в ближайшие десятки лет появятся первые экземпляры ме-
дицинских нанороботов, плывущих по нашим венам, — добавил инженер. — Так
что, поживём — увидим.
РОБОНАВТ «КЬЮРИОСИТИ»
— А что с робонавтами? — спросила Аня. — Скоро они появятся?
— Они уже давно есть и исследуют просторы космоса. Это, конечно, не роботы-
андроиды, а мобильные космические аппараты, например, марсоход «Кьюрио-
сити». Он прибыл на Марс 6 августа 2012 года и продолжает свою работу даже
сейчас, спустя 7 лет. Это робот-геолог. На борту марсохода установлена науч-
ная лаборатория, с помощью которой он изучает химический состав марсианской
почвы.
— Интересно, а что он там сейчас делает? — воскликнула Аня.
— Как что? Продолжает работать. За время с августа 2012 года по январь
2017 года марсоход прошёл чуть более 15 километров.
— А почему так мало? — удивился Артём.
— Первое время он управлялся с Земли, — ответил Андрей. — Пока сигнал с
Земли долетит до Марса и обратно — это долгий процесс. Вот поэтому «Кьюрио-
сити» так мало километров и прошёл за всё это время. Однако в 2015 году учёные
добавили ему «интеллекта», и он стал более автономным. В условиях чужой пла-
неты это многое значит.
— Здорово! А где этот марсоход сейчас? — поинтересовалась Аня.
— Как сообщали учёные из НАСА, в середине декабря 2017 года марсоход
Сипозйу остановился на несколько дней в одной из точек на поверхности склона
горы Шарп. Его научили самостоятельно выбирать марсианские камни для про-
ведения над ними экспериментов. Так что, скорее всего, он там до сих пор и ко-
пается.
— Очень интересно! — сказал Артём. — Надо будет мне побольше почитать про
этого марсианского робота-геолога.
— Согласен. Почитай, посмотри снимки, они очень прикольные, — сказал
Андрей и продолжил: — У космической робототехники огромные перспективы.
В настоящее время ещё нет ни лунных, ни других космических баз, обслуживае-
мых роботами. Но они в ближайшем будущем могут появиться. И представляете,
сколько новых открытий нас ещё ожидает!
Что касается военных, боевых роботов, то тут я полный нигилист. То есть я
хочу сказать, что мне претят разработки военных роботов, или так называемого
«автономного оружия», которое может автоматически выбирать цели без челове-
ческого вмешательства. И я полностью согласен с британским учёным Стивеном
Хокингом, который призывал мировое сообщество запретить разработку таких
проектов. Согласны со мной?
— Согласны, — ответил Артём.
А Аня, кивнув головой, заметила:
— Мы недавно всей семьёй смотрели последний фильм про звёздные войны.
Там огромные шагающие и стреляющие машины-роботы приводили меня в ужас.
Я знаю, многим мальчикам это нравится, но, по-моему, это идиотизм.
— Знаете, есть такая испанская поговорка: «Сон разума порождает чудо-
вищ», — сказал Андрей. — Не будем потакать таким фантазиям... Ну, всё, друзья!
На этом я вас оставляю. Отдыхайте и до новых встреч!
— Спасибо, Андрей, за такую увлекательную беседу! — сказал Артём.
— До новой встречи!
НОВОЕ ПОСЕЩЕНИЕ ТЕХНОПАРКА.
РАЗГОВОР ОБ ИНТЕЛЛЕКТУАЛЬНЫХ РОБОТАХ
В следующее воскресенье ребята снова приехали в Технопарк в лабораторию
доктора Павловой, чтобы обсудить, как должен быть устроен электронный мозг
умного робота.
— Сегодня мы будем говорить об интеллектуальных роботах и их способно-
сти к целенаправленному (целесообразному) поведению, — начала свой рассказ
Хоуп. — Эта способность является важнейшим критерием интеллектуальных спо-
собностей действующего существа. Ею обладают все живые организмы. Но каж-
дый по-разному.
— А как по-разному? — спросила Аня.
— Обычно целью поведения живого организма является удовлетворение его
потребностей, например, в пище и воде.
— А ещё, кроме голода и жажды, у живых существ есть потребность в размно-
жении, — добавила Аня.
— Всё правильно. У живых существ есть также потребности во сне, в сохране-
нии целостности и температуры своего тела и так далее. А также у них есть любо-
пытство — потребность в получении внешней информации.
Целенаправленное поведение - это вид поведения,
управляемый потребностью и мотивом (целью).
Целенаправленное поведение подразумевает умение ставить
цели и достигать их путём планирования своих действий.
— А какие потребности есть у роботов, как вы считаете?
— По-моему, у них всего одна потребность — в энергии, то есть в электриче-
ском токе, — ответил Артём.
— Конечно. Им нужна подзарядка энергией. А проще говоря, розетка питания.
Однако вы забыли о безопасности тела робота. При движении ему надо заботить-
ся о равновесии и сохранности своего тела, чтобы не свалиться куда-нибудь, на-
пример, в яму.
Рассуждаем дальше.
Любое действующее существо удовлетворяет свои насущные потребности, вза-
имодействуя с окружающей средой. И чем более развит мозг живого существа,
тем больше у него приобретённого опыта взаимодействия с этой самой средой.
Другими словами, приобретённого опыта для осуществления целенаправленного
поиска (поведения). Вот вам известный в научной литературе пример.
Обезьяна и бананы
— Хорошо известен следующий опыт с обезьянкой.
На потолке комнаты, в которой находится обезьянка по кличке Зойка, подве-
сили гроздь бананов. Зойка подпрыгивает, но безуспешно: достать банан ей не
удаётся. Она беспокойно ходит по комнате взад-вперёд. Вдруг останавливается
перед ящиком, который находился в комнате, хватает его, быстренько притаски-
вает под связку бананов, залезает на ящик и, прыгнув изо всех сил, срывает ба-
наны. Уф! Получилось!
(Это известная задача «обезьяна и бананы».)
— Учёные-этологи установили, что высшие животные с хорошей наблюдатель-
ностью, памятью и способностью к дрессировке проявляют умение строить план
действий и использовать предметы для достижения своей цели. Однако только
человек может строить множество планов достижения цели и выбирать наилуч-
ший, а также обобщать свои конкретные наблюдения и использовать их в других
ситуациях. Именно эти способности представляют интерес для разработчиков мо-
делей целенаправленного поведения систем ИИ и роботов.
Целенаправленная деятельность всех живых существ строится по едино-
му принципу: мотивация — целенаправленное поведение — оценка результа-
та действия.
На стадии «мотивация — целенаправленное поведение» решаются вопросы
«что делать, когда делать и как делать». Это стадия принятия решений. Она за-
канчивается принятием решения к действию и формированием плана действий.
Талантливый мозг — тот, который может быстро принять правильный план дей-
ствий! Понимаете, друзья?
— Понимаем, — ответил Артём. — Только как всё это можно запрограммиро-
вать?
— Учёные работают над этой проблемой, создавая модели целенаправленного
поведения и поиска решений. На их основе создаются алгоритмы, с помощью ко-
торых роботы могут планировать свои действия и достигать поставленных целей.
Так появились программы, которые называются «решающими системами», или
«решателями задач» и «планировщиками действий».
Как моделировать стратегии достижения цели?
— Рассмотрим следующую простую задачу. Пусть, например, Анина тётя живёт
в городе Сочи и приглашает вас приехать к ней в гости и провести у неё одну-две
недельки. Она уезжает за город в ближайшее время и просит поскорее приехать к
ней, чтобы вместе отправиться к морю. Что вы будете делать, ребята? — спросила
Хоуп.
— Как что? Составим план действий и поедем, — ответил Артём.
— Вот. Об этом мы сейчас и поговорим.
Интеллектуальным роботам тоже необходимо умение строить план действий
для заданной цели и выполнять его. Обсудим, как это можно формализовать.
Для этого мы будем использовать знания (свой опыт), представленные в виде
дерева принятия решений.
— О деревьях я уже что-то слышала, — задумчиво произнесла Аня.
— Об этом нам рассказывал Программист, когда объяснял работу лингвистиче-
ских процессоров, — напомнил Артём. — Только там было дерево зависимостей
слов в предложении.
— Всё правильно, — сказала Хоуп и продолжила: — Математическое понятие
«дерево» используется во многих математических моделях.
— И как поездка к морю связана с Вашим математическим деревом? — хитро
улыбаясь, спросила Аня.
— Очень просто. Для того чтобы составить план достижения твоей цели, мы
будем использовать дерево принятия решений. Сейчас я его вам нарисую, —
сказала Хоуп, а пока ответь: что является твоей целью, Аня, в данном случае?
— Как что? Добраться до тётушки, а потом к морю! — радостно ответила школь-
ница.
— Давайте обсудим, как мы будем решать эту задачу. Пусть вначале состав-
ления плана ты, Аня, находишься в некотором исходном (начальном) состоянии.
Это как в школьной задачке. Начальное, или исходное, состояние задачи — это
то, что «дано».
Целевое состояние тоже описывается в виде совокупности фактов, которые
должны иметь место при достижении цели. Как можно описать целевое состояние
в нашем примере, что думаешь, Артём?
— Это просто. Аня находится в пункте Б (город Сочи). Верно?
— Да. Итак, нам надо построить план действий, переводящих начальное со-
стояние субъекта действий (Ани) в конечное, целевое состояние.
Начальное состояние.
Задачи планирования
План действий
©Целевое состояние.
Задачи планирования
— Какие действия нам надо предпринять, Аня? — спросила Хоуп.
— Как какие? Купить билет и поехать! — ответила школьница.
— Какой билет? Можно поехать поездом, самолётом или махнуть своим ходом,
на автомобиле. Видите, вариантов достижения твоей цели может быть много.
Все возможные варианты достичь цели описываются с помощью дерева при-
нятия решений. Оно содержит наши знания (опыт) о том, что нужно делать, чтобы
достичь той или иной цели. Понимаете, друзья?
— Понимать-то я понимаю, но не представляю, как такое дерево может выгля-
деть?! — сказала Аня.
— Хорошо. Сейчас мы его нарисуем. Напомню, деревом в математическом
смысле называется определённая структура (представляющая некоторую инфор-
мацию), которая состоит из одной начальной вершины и связанных с ней других
вершин.
Вершины соединяются между собой стрелочками (дугами), которые задают
связи между вершинами. Эти связи разные, и каждая из них имеет своё имя. В на-
шем случае это будут имена физических действий, выполнение которых приводит
к изменению состояния.
Пример дерева принятия решений
— Для нашей задачи путешествия из пункта А в пункт Б можно построить вот
такое дерево принятия решений. Посмотрите на рис. 6.7. Здесь показаны воз-
можные варианты действий, переводящих начальное состояние Ани в её целевое
состояние.
ДЕЙСТВИЕ 1
Купить билет (на поезд)
ДЕЙСТВИЕ 3
С1 к. Ехать поездом
Ехать на машине*'к у нахождение
в пункте Б
ДЕЙСТВИЕ 1
Купить билет (на самолёт)
ДЕЙСТВИЕ 3
Лететь самолётом
Рис. 6.7
— А что означают вершины С1, С2 и СЗ? — спросил Артём.
— Эти вершины означают состояния, которые описывают результат действий,
указанных на стрелочках. Вершины С1 и СЗ представляют результаты действия 1.
Эти состояния описывают следующие результаты «действия 1» — «наличие у Ани
билета на поезд (самолёт)».
Состояние С2 задаёт факт «наличия автомобиля».
А само дерево принятия решений, которое показано на этом рисунке, задаёт
три плана действий, с помощью которых можно достичь своей цели.
— Артём, можешь сказать, какие это планы? — спросила Хоуп.
— Да, конечно.
План 1: купить билет на поезд и поехать в Сочи поездом. План 2: поехать в Сочи
на автомобиле, если он есть. И план 3: купить билет на самолёт и полететь само-
лётом.
— Совершенно верно. Идёмте дальше.
Что такое решатель задач?
— Дерево принятия решений, которое мы обсудили для нашего примера, —
очень простое. Мы не учли всевозможные детали этого плана. В реальных за-
дачах вариантов перехода от вершины ИС к вершине ЦС может быть большое
количество, например, как показано на рис. 6.8.
Каждое такое дерево решений представляет собой некоторый фрагмент зна-
ний о физических действиях (так называемые сценарии поведения), с помощью
которых робот может достигать поставленных целей.
Рис. 6.8
Задача планирования действий робота — это поиск пути в дереве решений,
ведущего от начального состояния к целевому состоянию. Если таких вариантов
несколько, происходит выбор лучшего пути в соответствии с имеющимся крите-
рием.
Историческая справка
Одной из первых программ, моделирующих человеческую стратегию дости-
жения целей, была программа, которая называлась общим решателем проблем
(задач).
Идея общего решателя задач была предложена американскими учёными ещё
на заре развития искусственного интеллекта. В 1959 году американские учёные
Г. Саймон и его коллеги (А. Ньюэлл и Дж. Шоу) разработали компьютерную
программу, которая, по их мнению, была универсальным решателем задач. Они
назвали свою программу Оепега/ РгоЫет 8о1уег.
Программы, работающие с деревьями принятия решений
? «© и отыскивающие в них путь от начальной вершины к целевой,
называются решателями задач.
— А что такое лучший путь? — спросила Аня.
— Могут быть разные критерии «лучшести». В нашей задаче это может быть
критерий минимального времени в пути, например, или минимальная стоимость
билета.
Способы поиска в деревьях решений
— Рассмотрим задачу поиска по дереву решений в общем виде. Такая задача
характеризуется наличием множества состояний. Одно из состояний определя-
ется как исходное и одно (или несколько) как целевое. Переход из состояния в
состояние задаётся некоторыми операторами (действиями). А все варианты пере-
ходов задаются с помощью дерева решений (переходов).
Результатом поиска по дереву решений является нахождение пути от начально-
го, исходного, состояния к конечному, целевому, состоянию.
Если дерево решений огромное, то поиск по такому дереву становится большой
проблемой. И тем не менее она вполне решаема, а методы поиска успешно опро-
бованы в различных задачах.
— Интересно, а как компьютер находит путь, ведущий к цели? — спросил Ар-
тём.
— Существует несколько способов. Они связаны с исследованиями наших де-
ревьев, то есть с вариантами перебора, поиска, в них.
Рассмотрим, например, следующую ситуацию. Представьте себе, что злой вол-
шебник Низачто похитил у Ани её сокровище и поместил его на одну из ветвей
своего огромного и раскидистого дерева решений.
Пусть, например, твоё сокровище, Аня, — это твой любимый котёнок. Твоя за-
дача — передвигаясь каким-то образом по дереву, отыскать, куда его спрятали.
В начале поиска ты, Аня, находишься в исходной позиции дерева и видишь только
ближайшие ветви. Ты не можешь видеть всё дерево целиком. Каждая ветка дере-
ва заканчивается вершиной, которая либо пуста, либо в ней спрятан твой котёнок.
Таких веток огромное количество. Всё дерево тебе не видно, и придётся передви-
гаться вслепую, как в лабиринте. Итак, в путь, Аня. Куда ты пойдёшь?
— Ну, не знаю... — задумалась Аня. — Пойду, куда глаза глядят. Авось, как-
нибудь найду путь, ведущий к моему котёнку. Вдруг он мяукнет, и я услышу.
Поиск в «глубину»
— А как в этом случае поступил бы ваш «решатель задач»? — спросил Артём.
— Давайте посмотрим. Один из методов поиска на деревьях решений называ-
ется поиском «в глубину». Он показан на рис. 6.9.
Этот способ поиска состоит в том, что ты выбираешь одну из ветвей и идёшь
по ней вниз до самого конца ветви. Другие ветви при этом полностью остаются
без внимания до тех пор, пока сохраняется какая-то надежда прийти в искомое
место.
— А если выбранная ветвь дерева ведёт к тупику, что тогда? — спросил Ар-
тём.
— В этом случае вернёмся назад к ближайшей развилке и пойдём по другой
ветви, как это показано на рисунке.
— Я вижу, что можно потратить много сил, и всё же проскользнуть мимо той
ветви, в которой спрятан мой котёнок, — заметила Аня.
— Такая ситуация и показана на этом рисунке, — заметила Хоуп.
— Да, вижу. Мы проскочили мимо, — произнесла Аня. — Нет, такой способ не
годится. Что будем делать?
Поиск в «ширину»
— Есть другой способ поиска в дереве решений, который называется поиском
«в ширину». При таком поиске всем ветвям уделяется равное внимание.
Допустим, ты, Аня, очутилась на одной ветви. Сразу не спускайся по ней даль-
ше, а исследуй и другие ветки, находящиеся на том же уровне с той, на которой
ты находишься. Посмотрите на рис. 6.10. В нём красными стрелочками показаны
направления поиска. Если на других ветвях ничего нет, спустись ниже по первона-
чальной ветке и проделай то же самое.
Вот твой путь на рисунке (показан красными стрелочками).
— Вижу. Таким способом я быстрее найду своего котёнка, — заметила Аня.
— Да, но этот способ тоже не гарантирует успех, — заметила Хоуп.
— Так что же делать? — спросила Аня.
— Да перебрать все варианты, и дело с концом, — предложил Артём.
Хоуп улыбнулась и спросила:
— А если дерево космического размера?
И добавила:
— Существуют и другие способы поиска. Например, комбинация поисков в глу-
бину и ширину. Кроме того, есть поиск с отсечением бесперспективных путей с
помощью знаний, основанных на опыте решения похожих задач. Это так назы-
ваемые эвристики (то есть подсказки), куда лучше идти. Эвристики, например,
может подсказать учитель, или они могут возникнуть в процессе самообучения,
когда в результате тысячи проходов по дереву программа сама находит хорошие
решения.
Первые решатели задач, или как компьютер
играет в шахматы
— Первые решатели использовались в задачах автоматического доказатель-
ства теорем, в логических задачах типа «обезьяна и банан» и в задачах компью-
терной игры в шахматы.
— Чтобы уметь играть в шахматы, надо иметь дерево решений? — спросил
Артём.
— Совершенно верно. Программы игры в шахматы работают с деревьями при-
нятия решений.
Каждая вершина дерева в шахматной задаче обозначает позицию в игре, на-
чиная с исходной позиции и заканчивая последней. Последняя позиция задаёт
выигрыш одного из игроков или ничью. Каждая стрелочка задаёт определённое
действие и показывает переход к следующему шагу игры.
На каждом шаге игры участник просматривает дальнейшие варианты игры и
выбирает наилучший ход — тот, который приведёт его к победе.
— А ваш робот Эл может играть в шахматы? — спросила Аня.
— Нет, Эл не предназначен для игры в шахматы.
— Почему?
— Потому что, чтобы создать достойного партнёра по игре в шахматы, надо
иметь мощный вычислительный ресурс, которого у Эла нет. Сейчас поясню.
Для игры в шахматы дерево принятия решений — огромного размера. Число
различных вариантов ходов в игре оценивается огромным числом, равным 2x10116.
Для просмотра всех ветвей (вариантов) шахматной игры не хватило бы време-
ни работы обычного компьютера, даже если б он работал в течение всей своей
жизни.
— Как же тогда компьютер сумел обыграть Гарри Каспарова? — удивился Ар-
тём.
— Для этого был создан специальный суперкомпьютер, у которого было не-
сколько мощных процессоров, работающих параллельно. Он назывался Веер
В1ие.
Кроме того, шахматные программы не используют полное дерево всех вариан-
тов игры. Это невозможно. Есть деревья, описывающие начало игры (дебют). Есть
деревья, описывающие конец игры. Шахматный компьютер может очень быстро
перебирать варианты решений (намного быстрее человека!) и находить путь, ве-
дущий к победе.
И ещё. Хочу сказать несколько слов в защиту людей. В поединках с компьюте-
ром гроссмейстеры изначально были поставлены в неравные условия. Во время
игры сотни процессоров обеспечивали анализ текущего состояния игры, они про-
сто обладали огромными вычислительными мощностями. Именно поэтому шах-
матный компьютер может анализировать миллионы позиций в секунду! А человек
в это время даже одну позицию не сможет.
— Что же это получается? Что мощный компьютер всегда обыграет челове-
ка? — спросил Артём.
— Не совсем. Да, компьютер может быстрее перебирать варианты, но он мо-
жет делать только то, что в него заложили разработчики программы. И ни на что
другое такая программа не способна. Компьютер не способен к творческому ре-
шению, авантюре, непредсказуемым комбинациям — вот что делает человека на-
много сильнее машины!
Однако мы увлеклись. Вернёмся к нашей теме.
Первые успехи в решении шахматных задач компьютером привели исследова-
телей к некоторой эйфории относительно возможностей ИИ и «общего решателя
задач». И на этом пути нас подстерегало много сложностей.
Можно ли создать универсальный решатель задач?
— Давайте вспомним задачу про бананы, которую решала обезьянка. Как вы
думаете, роботу она по силам? — спросила Хоуп.
— Не знаю... если он «сообразит», то может справиться, — ответила Аня.
— Чтобы соображать, роботу понадобится программа «Планировщик дей-
ствий», — ответила Хоуп. — Однако её создатели столкнулись с серьёзными про-
блемами.
Мы знаем, что люди и высшие животные, казалось бы, без всяких усилий умеют
создавать план действий в этой ситуации. В то же самое время программисты, ко-
торые разрабатывают такие программы, прикладывают огромные усилия, чтобы
описать процесс планирования действий даже в таком простейшем трёхмерном
мире, как «обезьяна и бананы». В чём тут дело?
Впервые решение этой задачи с помощью «Общего решателя задач» описал в
1963 году известный учёный в ИИ Джон Маккарти. В этом решении рассматривал-
ся ограниченный набор действий. Например, обезьяна (или робот) может выпол-
нять всего четыре действия: «перейти из одного места в другое», «передвинуть
ящик», «залезть на ящик», «схватить бананы».
Используя дерево всех возможных состояний, решатель находил в нём путь,
ведущий от начального состояния задачи к конечному. Этот путь и представлял
совокупность действий, которые надо совершить, то есть план действий робота.
— А если, например, робот залез на ящик, и ящик сломался? — спросила
Хоуп. — Что тогда? А ничего — этого в дереве состояний просто не может быть!
— Ау, Решатель, что делать?! — воскликнула Аня.
— Он не знает, — улыбнулась Хоуп и продолжила: — Выяснилось, что в реаль-
ных задачах планирования действий робота в физическом мире алгоритм общего
решателя задач просто не работает. А это значит, что идея универсального реша-
теля проблем оказалась несостоятельной.
— Почему? — спросил Артём.
— Потому что в формальном, логическом, виде невозможно описать решение
задачи планирования действий робота в физическом мире. Другими словами, не-
возможно априори (заранее) описать полное дерево принятия решений, то есть
всё множество состояний и всё множество переходов (действий) между состоя-
ниями. Понимаете?
— Да. И что делать?
— Искать новые решения. Поэтому на смену общему решателю пришли спе-
циализированные «решатели задач», в которых реализуется тот или иной способ
поиска решения задач в заданной предметной области. При этом некоторые идеи
общего решателя проблем оказались полезными. Например, разбиение цели на
несколько подцелей успешно используется и до сих пор.
От задачи об обезьяне и банане к целенаправленному
поведению робота
— Я не понял, так может робот решить задачу об обезьяне и банане? — спро-
сил Артём.
— Может. И мы скоро увидим, как это можно сделать. А пока обсудим общие
вопросы устройства интеллектуального мобильного робота, способного к целе-
сообразному поведению и выполнению задач (целей), поставленных перед ним
человеком или им самим.
Для решения перечисленных задач робот должен обладать развитым электрон-
ным мозгом.
«Мозг» интеллектуального робота — это сложная система управления поведе-
нием и движением робота, которая состоит из множества подсистем.
Учёные долго ломали голову над этим вопросом. В результате родилась сле-
дующая общая архитектура такого робота. Она показана на рис. 6.11.
Рис. 6.11
— Начнём разбор структуры снизу вверх.
Исполнительные механизмы — это те устройства, с помощью которых роботы
передвигаются в пространстве и осуществляют рабочие операции. Они ещё назы-
ваются эффекторами. В мобильных роботах применяется целый ряд механизмов
для перемещения, включая колёса, гусеницы и «ноги».
Архитектура устройства - это общее описание
основных частей (или блоков) данного устройства, их связей
между собой и принцип их работы.
— Для того чтобы робот мог двигаться, ему недостаточно иметь только датчики
и исполнительные механизмы. Ему необходим источник энергии для своих испол-
нительных механизмов. Чаще всего в мобильных роботах используются так назы-
ваемые сервоприводы — механизмы с электромотором. Такой механизм может
управлять движением, например, колёс робота.
Артём оказался в своей стихии и тут же задал вопрос:
— Я тут вижу две системы управления движением робота. А в чём различие
между ними?
— Ты верно подметил, Артём, что есть две подсистемы управления движением.
Они работают в паре. Одна вычисляет управляющую силу, исходя из своих стра-
тегий, основанных на знаниях. Именно первая система реализует интеллектуаль-
ное управление движением робота в различных ситуациях (например, при обходе
препятствий).
Вторая приводит в исполнение полученный управляющий сигнал, и робот пере-
двигается.
Во многих разработках в качестве «интеллектуальной системы управления дви-
жением робота» используются нечёткие системы управления. Они работают со
знаниями, в которых стратегии поведения представлены в виде нечётких правил.
При этом с помощью нечёткого вывода вычисляются значения нужного сигнала
управления. Далее эти сигналы поступают на вход системы управления исполни-
тельными механизмами робота. Понимаешь, Артём?
— Да, понимаю. Мы были в лаборатории Профессора, и он нам рассказывал,
как нечёткое управление работает.
— Молодцы! Хорошо. А мы идём дальше. Посмотрите на подсистему управле-
ния целенаправленным поведением робота на рис. 6.12. Это тоже довольно слож-
ная система со своей структурой. В ней мы видим то, что находится внутри этой
подсистемы.
Система
навигации
Система
зрения
Рис. 6.12
Что внутри подсистемы управления
целенаправленным поведением робота?
Внутри подсистемы управления целенаправленным поведением робота нахо-
дятся ещё подсистемы, как в матрёшке:
• «Генерация целей»;
• «Планировщик действий»;
• «Управление исполнением плана действий»;
• «Блок коррекции плана»;
• «Обучение с учителем»;
• «Самообучение и адаптация».
Все эти блоки работают в тесном взаимодействии с базой знаний, системой
машинного зрения, системой навигации, системой обработки сенсорных данных и
системой управления движением.
Начну свой рассказ с главного — с базы знаний. Обсудим, какими знаниями
должен обладать робот, чтобы уметь планировать свои действия для достижения
поставленной цели.
С какими структурами знаний работает
планировщик действий?
В базе знаний робота содержится описание физических действий, которые мо-
жет выполнить человек. Среди них выделяются базовые действия (операции), ко-
торые умеет выполнять робот. Знания о физических действиях удобно представ-
лять с помощью фреймовых структур, которые имеют следующие слоты.
Знания о физических действиях:
• «на какой объект направлено данное действие» (это должен быть заданный
физический объект);
• «место действия» (должно быть указано (или определено) местоположение
заданного объекта действия);
• «инструмент действия» (то есть с помощью какого инструмента осущест-
вляется данное действие, например, с помощью схвата манипулятора робота или
посредством некоторого орудия труда);
• «необходимые условия для выполнения действия» (например, для действия
«взять» необходимо находиться рядом с заданным объектом);
• «базовая операция» (для действия «взять», это «схватить объект рукой-
манипулятором»);
• «результат», к которому приводит выполнение данного действия (напри-
мер, для действия «взять» задаётся результат действия в виде факта «наличие
физического объекта в руке или манипуляторе робота);
• «прикреплённые процедуры» (конкретные программы, которые должны
быть запущены).
С этими структурами знаний работает блок «Планировщик действий», на вход
которого поступает команда выполнить действие «взять связку бананов».
Пример фрейма физического действия
(«взять»
(18А: «физическое-Действие»;
что: «физический_объект»;
где: #ОПРЕДЕЛИТЬ местоположение (физический_объект);
инструмент действия: «рука_робота»;
необходимые условия для выполнения действия: #Ф1;
базовая операция: #ОВА8Р;
результат действия: («объект находится в руке»);
прикреплённые процедуры: #(Ф2, ФЗ, Ф4, ...)
(конкретные программы, которые должны быть запущены))
ПРИМЕЧАНИЕ. Запись #(Ф2, ФЗ, Ф4, ...) указывает на то, что значением слота
является список имён прикреплённых процедур.
6АА8Р — название базовой операции робота, которую он умеет выполнять
(«схватить объект рукой-манипулятором»).
Пример работы планировщика действий робота
На вход программы «Планировщик действий» поступает команда «взять связку
бананов». Это цель поведения робота в текущий момент.
В базе знаний отыскивается фрейм с именем «взять», и его описание пере-
сылается в рабочую память. Далее считывается и запоминается значение слота
«базовая операция». В данном случае это базовая операция — 6АА8Р («схватить
объект рукой-манипулятором»).
Затем считывается значение слота «прикреплённые процедуры» в описании
действия «взять». Это следующие прикреплённые процедуры:
• с помощью зрительной системы распознать искомый объект (связка бана-
нов) в текущей сцене (комнате);
• определить местоположение (координаты) связки бананов в сцене;
• определить начальное местоположение (координаты) робота в данной
сцене.
Формируется начальное состояние задачи достижения цели «взять бананы».
ПРИМЕЧАНИЕ. Дорогой читатель! Шаги алгоритма построения плана действий
робота показаны в конце главы. Их можно просмотреть или оставить на потом
в зависимости от степени вашей заинтересованности. А мы пойдём дальше.
Начальное состояние задачи планирования.
Месторасположение робота — точка А (координаты на
плоскости пола); точка прикрепления связки бананов
к потолку—точка В (высота от пола Н); местоположение
связки бананов в проекции на пол — точка В';
местоположение ящика на полу — точка С.
План действий = ?
Целевое состояние задачи планирования задано
поставленной целью: «связка бананов находится
в руке-манипуляторе робота».
Какой план действий построил робот?
— Планировщик действий использует идею общего решателя задач, а именно:
он разбивает основную цель на подцели и находит план действий для каждой под-
цели, а затем строит общий план.
План действий робота: «переместиться в местоположение В'», «искать допол-
нительные инструменты», «переместиться в местоположение ящика С», «схва-
тить ящик», «вернуться в точку В'», «сбить связку бананов с помощью ящика»,
«определить новое местоположение связки бананов», «переместиться к новому
местоположению связки бананов», «0ВА8Р (связка бананов)».
После исполнения плана посылается сообщение о его выполнении в блок «Ге-
нерации целей».
— Вот такой алгоритм планирования действий для робота, — закончила свой
рассказ доктор Павлова. — Проверьте, ребята, правильно ли робот спланировал
свои действия?
— Хм, это совсем другой план. Он отличается от плана обезьянки, — заметила
Аня.
— Правильно заметила! — ответила Хоуп. — Тут срабатывает ещё одна цель,
связанная с безопасностью робота. Робот не всегда может залезть на ящик. Если
ящик небольшой, то это положение для робота неустойчивое. В этом случае воз-
никает запрет на выполнение действия.
Как видите, робот стремится достичь не только заданной цели, но и своей вну-
тренней цели сохранения безопасности собственного тела.
— Да, — задумчиво произнесла Аня, — это же сколько вычислений нужно про-
делать роботу?! Сначала создать план действий, потом выполнить каждое дей-
ствие, просчитать каждый шаг...
— Конечно. Это значит, что система управления движением робота должна
уметь просчитывать управляющие сигналы для всех типов движений тела робота,
связанных с данными действиями. Однако в случае затруднений «Планировщик
действий» может выйти на связь с человеком-оператором и запросить помощь.
Робота, так же как и ребёнка, надо учить
— Получается, что всё надо объяснять роботу до малейших деталей, — заметил
Артём. — На это уйдёт уйма времени!
— Конечно, робота, так же как и ребёнка, надо учить. Знание основных планов
поведения (сценариев), связанных с выполнением базовых действий и достиже-
ния целей, закладывается в систему на этапе обучения. Родители ведь тоже учат
своих детей! Для этого используются специально разработанные приложения для
обучения алгоритмам целесообразного поведения в диалоге с учителем.
При разработке модели определённого робота выбираются те базовые планы,
которые понадобятся данному роботу в его конкретной деятельности.
Кроме того, у робота есть механизм самообучения, при котором он методом
проб и ошибок может учиться сам. Но это долгий процесс. Поэтому используются
два типа обучения роботов, как с учителем, так и без него — по ситуации.
А теперь обсудим ещё один важный момент. После того как план составлен,
робот начинает его исполнять, например, передвигается из точки А в некоторую
точку В. Он начинает идти и обнаруживает яму, которой не было в описании на-
чального состояния. И что тогда?
— Наверное, надо поменять план действий, — ответил Артём.
— Верно. В сложной обстановке, особенно в так называемой динамической
среде, без этого не обойтись. Данную задачу решает блок коррекции планов.
В это время Аня, размышляя о поведении робота, спросила:
— Я что-то не очень понимаю. Ну, выполнил робот команду «взять» и остано-
вился. А что же он будет делать дальше? Так и будет всё время ждать каких-то
новых команд от человека? Всё-таки, как он будет себя вести в самостоятельной
жизни?
— Хороший вопрос, Аня! — заметила доктор Павлова. — Действительно, когда
задача решена, робот как бы теряет мотив для своего функционирования.
За установкой целей и их сменой следит система «Генерации целей». Она реа-
лизует умение приспосабливаться к изменяющимся условиям среды. Это одно из
важных свойств разумного поведения.
У мобильного разумного робота должны быть заложены как исследовательские
цели, так и внутренние (в частности, цель самосохранения). Робот исследует окру-
жающую среду, но не «забывает» и о том, чего нужно избегать: чрезмерного исто-
щения источников энергопитания, близкого приближения к трещинам и обрывам,
действий, приводящих к потере равновесия, и тому подобное.
Вот, вкратце, о том, как реализуется целесообразное поведение роботов.
Насколько выполнимы законы робототехники
Айзека Азимова?
— А знаете что, — сказала, улыбнувшись Хоуп. — Давайте ещё раз вернёмся к
законам робототехники. Помните их, ребята?
— Конечно, — ответила Аня.
— В чём их смысл?
— В том, что роботы должны служить людям, не нанося им вреда, — ответил
Артём.
— Давайте обсудим, насколько эти законы выполнимы? — предложила Хоуп.
— А что тут такого невыполнимого? — удивилась Аня.
— Рассмотрим такой случай. Команда учёных разработала робота, система
управления поведением которого позволяет ему отказываться выполнять прика-
зы человека-оператора при наличии на то достаточных оснований.
Получив от человека приказ, робот приступает к проверке условий его выпол-
нения. К этим условиям относятся: наличие необходимых навыков, физическая
возможность исполнения приказа вообще, а также такое требование, как «субор-
динация». Последнее связано с проверкой того, обязан ли робот выполнять при-
каз, поступивший именно от данного оператора. Другими словами, имеет ли дан-
ный оператор необходимые полномочия.
Если робот обнаруживает причины, по которым приказ не может быть выпол-
нен, он сообщает об этом человеку и останавливает свои действия.
Возникает вопрос: не приведёт ли способность ослушаться человеческих при-
казов к так называемому «восстанию машин»? В литературе любят этот сюжет.
А в реальности?
— Как вы думаете? — спросила Хоуп, обращаясь к ребятам.
— Ну, мне кажется, что просто робот заботится о безопасности людей, и в слож-
ных ситуациях он может не слушать приказов посторонних людей, — ответил Ар-
тём.
— Наверное, дело тут ещё в том, — заметила Аня, — что роботу не всегда объ-
яснишь, как поступать в том или ином случае.
— Согласна. Соблюдая законы, роботы могут ограничивать свободу людей. Так,
например, роботы могут лишать людей-учёных возможности совершать рискован-
ные действия, направленные на изобретения и открытия.
В каком-то смысле эти законы робототехники являются идеалом. Со временем
к ним придётся добавлять новые законы.
Это, пожалуй, всё, что я хотела рассказать вам для первого знакомства. И кста-
ти, у нас в конце года будет конференция по искусственному интеллекту. Будет
интересно. Приходите. До встречи, друзья!
ПОСТРОЕНИЕ ПЛАНА ДЕЙСТВИЙ РОБОТОМ
Вспомним сцену, в которой происходили действия обезьянки. Она находилась в
комнате, к потолку была подвешена связка бананов, а в углу комнаты стоял ящик.
Пусть теперь в этой ситуации находится робот Нао.
Зададим роботу задачу, озвучив следующее задание: «Эй, Нао, возьми связку
бананов, которые находятся в комнате».
Что будет делать робот?
Робот должен понять, что ему надо выполнить конкретное действие «взять связ-
ку бананов», то есть надо сообразить три вещи:
• что входное сообщение на естественном языке — это команда, а не вопрос
или утверждение некоторого факта;
• что эта команда задаёт конкретную цель поведения робота: «схватить рукой-
манипулятором связку бананов»;
• что для выполнения поставленной цели надо построить план действий.
Шаги алгоритма планировщика действий робота
Программа «Планировщик действий» робота выполняет следующие шаги.
Шаг 1. В базе знаний отыскивается фрейм с именем «взять», и его описание пе-
ресылается в рабочую память. Далее считывается и запоминается значение слота
«базовая операция». В данном случае это базовая операция 6ВА8Р («схватить
объект рукой-манипулятором»).
Затем считывается значение слота «прикреплённые процедуры» в описании
действия «взять».
Шаг 2. Для действия «взять объект» выполняются следующие прикреплённые
процедуры:
• с помощью зрительной системы распознать искомый объект (связка бана-
нов) в текущей сцене (комнате);
• определить местоположение (координаты) связки бананов в сцене;
• определить начальное местоположение (координаты) робота в данной
сцене.
Шаг 3. Формируется начальное состояние задачи достижения цели «взять
бананы». Оно состоит из описания местоположения объектов в текущей сцене
(комнате).
Шаг 4. Запускается процедура Ф1 проверки необходимых условий, связанных
с целевым действием. Она проверяет, совпадает ли местоположение робота (точ-
ка А) с местоположением бананов в проекции на пол (точка В'): А = В'?
Если координаты А и В' не совпадают (то есть робот не находится на полу точно
под связкой бананов на потолке), то это означает, что необходимые условия для
исполнения базовой операции не удовлетворены.
В этом случае создаётся новая подцель (действие): «переместиться в место-
положение В'». Переход к шагу 5.
Шаг 5. Проверяются необходимые условия, связанные с базовым действием
«схватить».
Это следующее условие: «равна ли высота вытянутой руки-манипулятора робо-
та высоте комнаты (Л) в точке В, где находятся бананы».
Если необходимые условия для действия «схватить» не выполнены, то соз-
даётся новая подцель «изменить местоположение связки бананов» и переход
к шагу 6. Если выполнены, то переход к шагу 9.
Шаг 6. В базе знаний отыскиваются физические действия, в описании которых
слот «результат действия» имеет значение «изменение местоположения объек-
та». Например, это действие «сбить объект с помощью дополнительного инстру-
мента».
Создаётся новая подцель (действие): «искать дополнительные инструменты».
Шаг 7. В качестве присоединённой процедуры для действия «искать дополни-
тельные инструменты» используется процедура сканирования объектов в сце-
не, которые могут служить в качестве инструмента для действия «достать» или
«сбить».
В результате сканирования робот обращает внимание на ящик в комнате, опре-
деляет его размеры и решает, можно ли провести операцию «схвата» ящика.
На этом шаге создаются подцели: «переместиться к ящику», «схватить
ящик», «вернуться в точку В'», «сбить связку бананов с помощью ящика».
Шаг 8. Для действия «сбить» выполняется присоединённая процедура, которая
определяет «новое местоположение предмета действия».
Создаётся новая подцель (действие): «переместиться к новому местоположе-
нию связки бананов».
Шаг 9. Выполнить действие 6ВА8Р («схватить объект рукой-манипулятором»).
Шаг 10. Соединить все подцели (действия) в общий план действий. В результа-
те для нашей задачи будет сгенерирован окончательный план.
Затем «Планировщик действий» передаёт команду на исполнение построенно-
го плана действий в систему управления исполнением плана.
ПРИМЕЧАНИЕ. Представленный алгоритм показывает идею разработки алго-
ритмов планирования действий для роботов. Тем, кому это интересно, на до-
суге могут усовершенствовать данный алгоритм. Это приветствуется.
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 6
1. В чём отличие робота от мехатронного устройства?
2. Является ли посудомоечная машина роботом?
3. Как устроена система управления движением мобильного
робота?
4. Что такое целенаправленное поведение?
5. Что такое дерево принятия решений?
6. Объясните роботу план действий для задачи «собери
пирамидку».
7. Нужны ли роботу эмоции?
8. Какие законы поведения нужны роботам?
МЕСТО
ЗАКЛЮЧЕНИЯ
В котором Аня и Артём побывают на конференции по искусственному интеллекту и послушают
умные разговоры учёных о том, что такое сильный и слабый ИИ, можно ли реализовать способности
разума вычислительными процедурами, каковы перспективы развития умных созданий и смогут ли
они превзойти человека? Узнают, чем сильный ИИ может грозить человечеству. И главное - в каком
направлении будет развиваться ИИ дальше.
ВМЕСТО ЗАКЛЮЧЕНИЯ (296)
КРУГЛЫЙ СТОЛ ПО ИСКУССТВЕННОМУ ИНТЕЛЛЕКТУ (298)
ВОПРОСЫ КРУГЛОГО СТОЛА ПО ИСКУССТВЕННОМУ ИНТЕЛЛЕКТУ (299)
ЯВЛЯЕТСЯ ЛИ ИНТЕЛЛЕКТ КАКИМ-ТО ЕДИНЫМ УНИВЕРСАЛЬНЫМ МЕХАНИЗМОМ
ИЛИ ОН ОБЪЕДИНЯЕТ НАБОР ОТДЕЛЬНЫХ МЕХАНИЗМОВ? (299)
КАК БУДЕТ ДАЛЬШЕ РАЗВИВАТЬСЯ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ?
БУДЕТ ЛИ ОН КОПИЕЙ ЧЕЛОВЕЧЕСКОГО РАЗУМА, ОСТАНЕТСЯ
В ЕГО ПОДЧИНЕНИИ ИЛИ ПРЕВЗОЙДЁТ ЕГО? (300)
В ЧЁМ СИСТЕМЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА УЖЕ СЕГОДНЯ
ПРОЯВЛЯЮТ ЧЕРТЫ СИЛЬНОГО ИНТЕЛЛЕКТА? (301)
ЧТО ТАКОЕ РАЗУМ? ЭТО ИНТЕЛЛЕКТ? (301)
СМОГУТ ЛИ РОБОТЫ ПРОЯВЛЯТЬ ЭМОЦИИ? (302)
ЕСТЬ ЛИ В РАЗУМЕ ЧТО-ТО ТАКОЕ, ЧТО НЕ ВЫЧИСЛИМО? (302)
МОЖЕТ ЛИ РОБОТ ВОСПРОИЗВОДИТЬ СЕБЯ? (303)
ЧЕМ СИЛЬНЫЙ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ МОЖЕТ ГРОЗИТЬ ЧЕЛОВЕЧЕСТВУ? (304)
ПОСЛЕСЛОВИЕ (305)
ЛИТЕРАТУРА (306)
КРУГЛЫЙ СТОЛ ПО ИСКУССТВЕННОМУ ИНТЕЛЛЕКТУ
— Может ли машина стать умнее человека?
— Может, — ответил Норберт Винер, — если люди станут глупыми.
Что такое сильный ИИ? Чем он грозит человечеству?
А какой у современных роботов интеллект: сильный или слабый? Сила есть —
ума не надо?
В конце года в Технопарке, как обычно, проводилась конференция по искус-
ственному интеллекту, на которую пригласили школьников. На неё Аня с Артёмом
и отправились в назначенное время.
Ребята отыскали Дом конференций Технопарка ИИ и вошли в большой про-
сторный холл, где уже было довольно многолюдно. Оглядевшись, они увидели
своего знакомого робота Эла. Он приветливо помахал им рукой, и ребята подош-
ли к роботу поближе.
— Приветствую вас, мои дорогие друзья! — сказал Эл. — Скоро начнётся кру-
глый стол по искусственному интеллекту. Присоединяйтесь к нашей дискуссии.
Это будет интересно.
Круглый стол - название одного из способов ведения
обсуждения некоторых вопросов, при котором все участники
обсуждения равноправны, и никто не имеет права диктовать О л
свою волю и решения.
— Что такое круглый стол? —
шёпотом спросила Аня.
— Это когда все сидят за кру-
глым столом, как рыцари короля
Артура, и обсуждают важную про-
блему, — ответил Артём.
— Пойдём, послушаем.
Так ребята оказались в компа-
нии учёных, обсуждающих важ-
ные вопросы ИИ.
ВОПРОСЫ КРУГЛОГО СТОЛА
ПО ИСКУССТВЕННОМУ ИНТЕЛЛЕКТУ
Вопросы круглого стола озвучил учёный секретарь конференции. Вот их
список.
• Является ли интеллект каким-то единым универсальным механизмом или
он объединяет набор отдельных механизмов?
• Как будет дальше развиваться искусственный интеллект? Что такое силь-
ный и слабый интеллект? Могут ли системы ИИ и роботы превзойти человека?
• Что такое разум? Это интеллект?
• Смогут ли роботы проявлять эмоции?
• Есть в разуме что-то такое, что не вычислимо?
• Чем сильный ИИ может грозить человечеству?
Ребята с интересом прослушали выступления ведущих учёных на эту тему
и даже составили краткий конспект вопросов и ответов.
Итак...
ЯВЛЯЕТСЯ ЛИ ИНТЕЛЛЕКТ КАКИМ-ТО ЕДИНЫМ
УНИВЕРСАЛЬНЫМ МЕХАНИЗМОМ ИЛИ ОН ОБЪЕДИНЯЕТ
НАБОР ОТДЕЛЬНЫХ МЕХАНИЗМОВ?
Учёные разных наук до сих пор спорят о том, что такое разум и интеллект. Это
одна из величайших загадок человечества.
Учёные-патриархи искусственного интеллекта заложили фундамент теории ИИ.
Он состоит из моделей, методов и алгоритмов создания систем, обладающих ба-
зовыми интеллектуальными способностями.
Это способности познания окружающего мира и построения его моделей, ал-
горитмы поиска решений и обучения, умения логически мыслить, способности к
общению и пониманию мира. Эти основы ИИ успешно развиваются и сегодня.
Одновременно с этим учёные в ИИ (и не только) пытаются понять, как устроен
человеческий интеллект. Недаром институты изучения мозга есть во многих стра-
нах мира. Согласно их последним концепциям в коре головного мозга человека
имеется универсальный алгоритм самообучения, который формирует его интел-
лект.
Разработчики систем ИИ пытаются придерживаться аналогичного принципа для
создания своих систем. Он основан на использовании алгоритмов самообучения в
искусственных нейронных сетях. Уже разработаны алгоритмы решения некоторых
сложных задач, основанные на нейронных сетях с глубокой структурой и методах
глубокого обучения. Благодаря этому достигнуты хорошие результаты в решении
задач, трудных для традиционного ИИ. Это задачи компьютерного зрения, рас-
познавания речи, машинного перевода и другие.
С помощью глубокого обучения система может самостоятельно учиться и «ду-
мать». Правда, неконтролируемое обучение неизвестно к чему может привести.
Это тоже надо иметь в виду.
Насколько удастся продвинуться вперёд — покажет время.
КАК БУДЕТ ДАЛЬШЕ РАЗВИВАТЬСЯ ИСКУССТВЕННЫЙ
ИНТЕЛЛЕКТ? БУДЕТ ЛИ ОН КОПИЕЙ ЧЕЛОВЕЧЕСКОГО
РАЗУМА, ОСТАНЕТСЯ В ЕГО ПОДЧИНЕНИИ
ИЛИ ПРЕВЗОЙДЁТ ЕГО?
На сегодняшний день созданы системы ИИ, в том числе робототехнические,
которые в той или иной мере проявляют способности, схожие с базовыми интел-
лектуальными способностями человека. Другими словами, в той или иной мере
копируют их. Эти способности реализуются в рамках вычислительной парадигмы,
то есть в виде алгоритмов и программ для компьютеров.
Однако универсальных систем с интеллектом, подобным человеческому, не су-
ществует, и пока не видно подходов к решению такой сложной задачи.
Могут ли системы ИИ и роботы превзойти человека?
Этот вопрос связан с двумя понятиями, которые любят обсуждать в научно-
популярных кругах: слабый ИИ и сильный ИИ. Это две полярные точки зрения на
возможности систем с искусственным интеллектом.
Позиция сильного ИИ. Настанет время, когда соответствующим образом за-
программированные суперкомпьютеры и роботы догонят, а затем перегонят чело-
века в его интеллектуальных способностях.
Позиция слабого ИИ. Компьютеры и роботы навсегда сохранят подчинённое
по отношению к человеку положение, какими бы мощными и быстрыми они не
были.
Истина, как известно, всегда посередине.
В ЧЁМ СИСТЕМЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА УЖЕ
СЕГОДНЯ ПРОЯВЛЯЮТ ЧЕРТЫ СИЛЬНОГО ИНТЕЛЛЕКТА?
Черты сильного интеллекта проявляют, например, программы сложнейшей
игры в Го или шахматы, либо программы, предсказывающие погоду, или програм-
мы, решающие сложные экологические, бизнес-задачи, и так далее.
Эти программы сильнее человека в своей способности быстро вычислять и ре-
шать сложные задачи, требующие огромной вычислительной мощности.
Но сильный — не всегда самый умный.
Эти же программы не обладают другими способностями, например, умением
воспринимать человеческую речь или распознавать образы, или писать сами про-
граммы прогнозирования. Всё вместе это умеет делать только человек. Он обла-
дает универсальным интеллектом, над которым природа трудилась миллионы лет,
создавая человеческий разум.
Итак, ответ на вопрос «могут ли системы ИИ превзойти человека?» таков: да,
могут, но в частных конкретных случаях, да и то под контролем человека.
Робот, например, может научиться в совершенстве делать что-то одно, и в этом
деле превзойти человека ещё и потому, что он не устаёт, не отвлекается и не под-
вержен эмоциям. Однако это не значит, что такой робот превосходит человека
по интеллекту в целом. Поэтому даже сильный ИИ в этом понимании становится
слабым.
Да, человек не может рассчитать все возможные последствия развития со-
бытий в сложных системах, требующих огромных вариантов перебора решений.
Зато он может создавать множество разнообразных помощников, в том числе и
интеллектуальных.
ЧТО ТАКОЕ РАЗУМ? ЭТО ИНТЕЛЛЕКТ?
Свои мысли по этому поводу высказал Логик:
— Я понимаю, — сказал он, — что на протяжении всей истории развития ис-
кусственного интеллекта учёные пытаются поместить человеческий разум в
компьютер. Но возможно ли это? Утверждения о том, что разум определяется
интеллектуальным поведением, грубо говоря, логическим, алгоритмическим, по-
ведением, — на мой взгляд, ошибка. Разум включает также способность к твор-
честву и к воображению. Поэтому я считаю, что до создания действительно ра-
зумных машин ещё очень далеко.
Пока современные компьютерные системы и роботы способны лишь успешно
имитировать человеческий интеллект. Сами программы, по сути, пока не могут
проявлять разум. Да и нужно ли нам это?
СМОГУТ ЛИ РОБОТЫ ПРОЯВЛЯТЬ эмоции?
Интересную точку зрения высказала доктор Павлова:
— Научить роботов проявлять и понимать эмоции — сложная и интересная за-
дача. Прототипы таких роботов уже есть. Правда, пока они могут проявлять лишь
ограниченный диапазон человеческих эмоций. Робот Пеппер, например, умеет
воспринимать некоторые человеческие эмоции и адекватно на них реагировать.
Если вы грустите, он может вас утешить и развеселить.
Однажды наш коллега Логик, глядя на этого робота, заметил: «Это не проявле-
ние эмоций, а их имитация».
Друзья мои, давайте всё же понимать, чего мы хотим от роботов. Не обязатель-
но же делать их своими копиями! Если робот научится понимать эмоции человека
и поддерживать его, как добрый друг, что плохого в такой имитации? Это же за-
мечательно!
ЕСТЬ ЛИ В РАЗУМЕ ЧТО-ТО ТАКОЕ,
ЧТО НЕ ВЫЧИСЛИМО?
— Многие современные учёные исследовали концепцию «разума» в рамках
физических, логических и вычислительных (то есть алгоритмических) моделей
разума. Они обратили особое внимание на то, что человеческая способность «по-
нимать» не имеет отношения к тому пониманию, которое проверяется на уровне
теста Тьюринга.
Известный физик, популяризатор науки, Роджер Пенроуз1 (и не только он) счи-
тает, что понимание является свойством, которое зависит от нашего сознания. Он
утверждает, что способность понимать не может сводиться к некоторому набору
правил (то есть к алгоритму). И делает вывод, что подлинное (человеческое) пони-
мание не может быть представлено некоторой вычислительной процедурой на со-
временном компьютере, то есть не вычислимо. Что вы думаете, друзья, это так?
На этот вопрос ответил Профессор.
— Всё не так плохо, дорогие коллеги, — заметил он. — Доктор Пенроуз пытался
понять, есть ли что-то (например, интуиция), что нельзя описать в виде классиче-
ских вычислений? И если есть, то что это значит? Есть ли другие физические за-
коны, которые допускают существование невычислимых процедур?
Так вот.
Такие законы есть — это законы квантовой механики. Согласно современному
математику Дойчу, в квантовых вычислениях существует поразительный эффект:
1 Об этом есть его известные книги «Тени разума: в поисках науки о сознании» и «Новый ум
короля. О компьютерах, мышлении и законах физики» (см. список литературы в конце книги).
они могут выполнять и невычислимые операции (с точки зрения классических вы-
числений)!
И оказывается, что с помощью квантовых вычислений можно пробовать моде-
лировать такие свойства мозга, как интуиция!
Так что квантовые вычисления в скором времени изменят полностью наши
представления о вычислениях!
МОЖЕТ ЛИ РОБОТ ВОСПРОИЗВОДИТЬ СЕБЯ?
— Что ещё хотелось бы обсудить? — спросил ведущий круглого стола и обвёл
взглядом аудиторию.
Аня осмелела и решилась обсудить следующую непонятную ей тему.
— А могут ли роботы воспроизводить сами себя? — спросила школьница.
— Интересный вопрос! Ответ на него непростой. Он имеет две противополож-
ных точки зрения: да и нет.
Сторонники того, что это невозможно, рассуждают так.
Робот-«отец» должен содержать не только полное описание робота-«сына», но
и кое-что ещё, а именно средства интерпретации этого описания, а также манипу-
лятор для сборки и т. п.
Получается, что робот-«отец» должен быть сложнее робота-«сына». Отсюда де-
лается вывод о том, что не может существовать робот, способный создать другого
робота той же сложности, что и он сам.
Однако посмотрим на эту проблему с другой стороны. Можно ли создать робота
с помощью коллектива роботов? Оказалось, что это возможно.
Для того чтобы робот в самовоспроизводящейся системе мог собрать свою ко-
пию, в среде должны содержаться элементы, из которых робот будет изготовлен.
Например, склад готовых частей для сборки роботов. Кроме того, роботу понадо-
бится описание сборки робота из готовых деталей. И всё.
Далее можно запускать процесс сборки роботом своей копии при условии нали-
чия рядом готовых частей (которые, например, могут подносить другие роботы).
— Так в чём же дело? Почему самовоспроизводящиеся роботы не завалили
рынок?
— Всё дело в деталях, — ответил Профессор. — Самовоспроизводящаяся си-
стема это не только робот, но и среда, как в биологии! Поэтому должна быть какая-
то система изготовления деталей, вне системы воспроизведения. А эта проблема
находится за гранью возможностей одного робота.
Так что тут ещё много нерешённых вопросов. Они вас ждут, дорогие друзья!
ЧЕМ СИЛЬНЫЙ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ МОЖЕТ
ГРОЗИТЬ ЧЕЛОВЕЧЕСТВУ?
— В одном интервью британский учёный Стивен Хокинг заявил, что «появле-
ние полноценного искусственного интеллекта может стать концом человеческой
расы». Он считал, что если роботы и компьютеры превзойдут по интеллекту че-
ловека, то они в итоге решат, что могут править миром намного лучше людей.
А люди, следовательно, станут не нужны.
Это маловероятный прогноз и фантазии в основном тех, кто не имел дело с
реальными разработками роботов. Однако в одном Стивен Хокинг прав: роботы
могут превзойти человека не в интеллекте, а в глупости. А глупостью управлять
сложно. Нельзя допускать, чтобы автономные системы ИИ (особенно это каса-
ется военных приложений ИИ) бесконтрольно совершали непредсказуемые дей-
ствия...
Закрывая дискуссию, учёный секретарь конференции высказался весьма опти-
мистично:
— К счастью, не все учёные в области искусственного интеллекта верят в такие
мрачные прогнозы. Наоборот, многие уверены в позитивном взаимодействии че-
ловека с высокоразвитым искусственным интеллектом на благо решения плане-
тарных проблем человечества.
В ближайшем будущем произойдёт (и уже происходит!) значительное расшире-
ние роли мощных компьютеров с машинным интеллектом, обладающим способ-
ностью прогноза сложных ситуаций. Люди смогут обращаться к ним за советом и
поддержкой. У нас появится возможность сделать наш мир лучше и безопаснее!
В заключение ребята услышали напутственные слова Президента Технопарка
Искусственного Интеллекта.
— Дорогие друзья! Вы идёте по прекрасному пути Познания, которому нет кон-
ца. Чем дальше мы продвигаемся на этом пути, тем глубже наше понимание окру-
жающего мира, в котором мы живём. Это научное понимание всякий раз приводит
нас в полный восторг и изумление, как гармонично и прекрасно устроена Вселен-
ная!
Хочу пожелать вам на этом пути новых творческих озарений и открытий. Бла-
годаря им наш «мир приобретает всё больше красок, звуков, глубины, оставаясь
тем не менее загадочным».
Закрывая наш сегодняшний круглый стол, я надеюсь, что проблема создания
искусственного интеллекта будет привлекать внимание всё большее количество
умов подрастающего поколения. И школьники Аня и Артём — тому пример: каж-
дый из них стремится быть живой, разумной и творческой личностью в познании
бесконечного космоса, который окружает нас.
Ну что ж, на этой оптимистичной ноте мы и закончим. До новых бесед, дорогие
читатели!
Дорогие читатели, поздравляю вас — вы дочитали книгу до конца. Это значит,
что вы присоединились к группе чрезвычайно умных, восприимчивых и развиваю-
щихся людей.
Я уверена, что вы приобрели новое и ясное представление о том, что и как
изучает наука «искусственный интеллект». Возможно, некоторым из вас эта книга
подскажет вашу будущую профессию. И это было бы замечательно!
Разработчики ИИ (или специалисты по ИИ) в настоящее время очень востребо-
ваны. Многие компании готовы тратить большие деньги, чтобы привлечь к себе
таких работников.
Как вы убедились из наших бесед, разработчики систем ИИ решают разные
проблемы, и для каждой из них требуется свой специалист по ИИ. Одни занима-
ются распознаванием (образов, речи, рукописных текстов и так далее), другие —
машинным обучением, третьи — это инженеры по знаниям (в образовании и в
экспертных системах). А ещё нужны специалисты по интеллектуальным системам
взаимодействия с человеком, интеллектуальному управлению движением слож-
ных систем и роботов, по системам интеллектуального поведения и взаимодей-
ствия роботов и так далее. Кроме того, ИИ пришёл практически во все области
экономики, и здесь тоже возник огромный спрос на разработку интеллектуальных
систем, решающих сложные бизнес-задачи. Так что потребность в специалистах
по ИИ в будущем будет только расти.
Ваша задача — познакомиться со своей будущей профессией ещё на школьной
скамье, и чем раньше это вы сделаете, тем эффективнее будет ваша дальнейшая
деятельность.
Я уверена, вы сможете понять, чего хотите, и достичь этого.
Напоследок хочу рассказать вам одну интересную историю.
30 лет назад в Москве из разговоров с дочерью Настей родилась моя первая
книжка для школьников «Семь талантов искусственного разума». В те годы ИИ
только начинал своё развитие, и было интересно, что же умеет этот «искусствен-
ный разум».
За прошедшее время Настя выросла и стала профессором в Университете
Дюка (США), занимается другой наукой — микробиологией и популяционной ге-
нетикой. Это тоже очень интересная тема. Кто знает, может в недалёком будущем
пути генетики и ИИ пересекутся. Уже сейчас они начали сближаться. Однажды
на конференции в Соединённых Штатах она встретилась со своим читателем, ко-
торый подошёл к стенду с её докладом и спросил: «А не та ли Вы Настя, которая
была в книжке „Семь талантов ИИ?“». Услышав ответ «да», оба были несказанно
изумлены таким поворотом судьбы и такой встречей. Интересно, дорогие читате-
ли, не правда ли?! Видите, Жизнь дарит удивительные события.
Я желаю каждому моему читателю веры в себя, в свои силы, в поддержку дру-
зей и близких и, конечно, Вселенной. Однако не ленитесь и учитесь приобретать
не только знания, но и навыки упорно работать над решением научных проблем. И
тогда Жизнь вам пойдёт навстречу и подарит много удивительных моментов.
Удачи вам!
Если вы почувствуете, что хотите углубиться в тему ИИ, или вдруг вам однажды
будет скучно либо нечем заняться, то почитайте интересные книги о мышлении,
законах физики и устройстве нашей Вселенной, а ещё об алгоритмах, современ-
ном подходе к ИИ и проектировании роботов. Тогда вы навсегда забудете о скуке
и найдёте себе занятие по душе.
НАУЧНО-ПОПУЛЯРНЫЕ КНИГИ
1. Белда И. Разум, машины и математика. Искусственный интеллект и его за-
дачи // Мир Математики. - Т. 33. - М.: ДеАгостини, 2014. - 160 с.
2. Дойч Д. Структура реальности. Наука параллельных вселенных. - М.-Ижевск:
Р&С Оупаплсз, 2001. - 178 с. - 11К1_: Ы1р://с1|§|1:а1рЬу51С5.ги/рс1Г/ТЬе_ЕаЬг1С_оГ_
РеаК1:у--0а71с1_0еи1:5сЬ.рс1Г.
3. Домингос П. Верховный алгоритм: как машинное обучение изменит наш
мир. - М.: Манн, Иванов и Фербер, 2016.
ЛИТЕРАТУРА тД
4. Пенроуз Р. Новый ум короля. О компьютерах, мышлении и законах физики:
пер. с англ. - М.: Едиториал УРСС, ЛКИ, 2015. - 402 с.
5. Пенроуз Р. Тени разума: в поисках науки о сознании: пер. с англ. - М.: Ин-
ститут компьютерных исследований, 2005. - 688 с.
6. Поспелов Д. А. Фантазия или наука. На пути к искусственному интеллек-
ту. - М.: Наука, 1982. - 224 с.
7. Хокинг С. Краткая история времени. От большого взрыва до черных дыр:
пер. с англ. - М.: АСТ, 2018. - 232 с.
8. Шереметьев К. Интеллектика. Как работает ваш мозг. - СПб.: издательская
группа «Весь», 2013. - 576 с.
КНИГИ И НАУЧНО-ТЕХНИЧЕСКИЕ
И УЧЕБНЫЕ МАТЕРИАЛЫ ДЛЯ СТУДЕНТОВ
1. Джарратано Дж., Райли Г. Экспертные системы: принципы разработки
и программирования: пер. с англ. - 4-е изд. - М.: Вильямс, 2006. - 1152 с.
2. Джексон П. Введение в экспертные системы: пер. с англ. - 3-е изд. -
М.: Вильямс, 2001. - 624 с.
3. Евстигнеев Д. В. Проектирование роботов и робототехнических систем
в среде Оуп-5оГ1:РоЬ5|т5: в 2 ч. - М., 2014. - Ч. 1. - С1К1_: \л/\л/\л/.гоЬ51т.с1уп5оГЬ.
ги/с!е$1§п.рс1Г.
4. Рассел С., Норвиг П. Искусственный Интеллект. Современный подход: пер.
с англ. - 2-е изд. - М.: Вильямс, 2018. - 1408 с.
5. Рыжов А. П. Элементы теории нечетких множеств и ее приложений. -
М.: Диалог-МГУ, 2003. - 81 с.
6. Хайкин С. Нейронные сети: полный курс пер. с англ. - 2-е изд. - М.: Виль-
ямс, 2018. - 1104 с.
7. Ульянов С. В., Литвинцева Л.В. и др. Интеллектуальное робастное управ-
ление: технологии мягких вычислений. - М.: ВНИИгеосистем, 2011. - 408 с.
8. Юревич Е. И. Сенсорные системы в робототехнике: учебное пособие. - СПб.:
Изд-во Политехи, ун-та, 2013. - 100 с.
0
СОДЕРЖАНИЕ
5ЛАГ0ДАРН0С.ТИ
ПРЕДИСЛОВИЕ
ВВЕДЕНИЕ
(3)
(4)
(6)
ЧТО ТАКОЕ ИНТЕЛЛЕКТ И ЧТО ДОЛЖНА УМЕТЬ УМНАЯ МАШИНА? (7)
ЧТО ЕЩЁ ДЕЛАЕТ МАШИНУ «УМНОЙ»? (8)
ЧТО ТАКОЕ АБСТРАКТНО МЫСЛИТЬ И МОГУТ ЛИ РОБОТЫ ЭТО ДЕЛАТЬ? (9)
ЧТО ТАКОЕ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ? (9)
ТРИ УЧЁНЫХ КИТА НАУКИ «ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ» (10)
ЧТО МОЖЕТ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ, ВОПЛОЩЁННЫЙ
В СОВРЕМЕННЫХ СИСТЕМАХ И РОБОТАХ? (11)
ЗНАКОМСТВО С НАУКОЙ В ТЕХНОПАРКЕ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА (12)
гл АВА 4
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ. ПЕРВОЕ ЗНАКОМСТВО (14)
ЗНАКОМСТВО С ПРОГРАММИСТОМ В ЛАБОРАТОРИИ ТЕХНОПАРКА (16)
ЧТО ТАКОЕ ДАННЫЕ, ИНФОРМАЦИЯ И ЗНАНИЯ И В ЧЁМ ИХ РАЗЛИЧИЯ? (19)
УМЕНИЕ ОБЩАТЬСЯ (38)
РАЗГОВОР О ПОНИМАНИИ (53)
ЭВОЛЮЦИЯ СИСТЕМ ОБРАБОТКИ ЗНАНИЙ И ВЗАИМОДЕЙСТВИЯ
С ПОЛЬЗОВАТЕЛЕМ НА ЕСТЕСТВЕННОМ ЯЗЫКЕ (61)
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 1 (75)
ГЛАВА €
БЕСЕДА С ЛОГИКОМ В ЛАБОРАТОРИИ
«ЛОГИЧЕСКИЕ МОДЕЛИ ЧЕЛОВЕЧЕСКИХ РАССУЖДЕНИЙ» 76)
КАК МОДЕЛИРОВАТЬ ЧЕЛОВЕЧЕСКОЕ УМЕНИЕ РАССУЖДАТЬ
И ПОДДАЁТСЯ ЛИ ОНО ФОРМАЛИЗАЦИИ? (78)
О ЧЁМ РАССУЖДАЮТ ЛЮДИ? ОБО ВСЁМ НА СВЕТЕ? (79)
КАК ПОЛУЧАТЬ НОВЫЕ СУЖДЕНИЯ ИЗ ДРУГИХ СУЖДЕНИЙ? (81)
ОСНОВНЫЕ ИДЕИ ЛОГИКИ АРИСТОТЕЛЯ. ОБЩИЕ ЗАКОНЫ РАССУЖДЕНИЙ (82)
ФОРМАЛЬНАЯ ЗАПИСЬ СИЛЛОГИЗМОВ (83)
ОТ ЛОГИКИ АРИСТОТЕЛЯ К ПРОСТЕЙШЕЙ
МАТЕМАТИЧЕСКОЙ ЛОГИКЕ ВЫСКАЗЫВАНИЙ (86)
КАК НАУЧИТЬ РОБОТОВ ПРАВИЛЬНО ЛОГИЧЕСКИ РАССУЖДАТЬ
И ЧТО ТАКОЕ ПРАВИЛО ВЫВОДА? (88)
ЧТО ТАКОЕ КЛАССИЧЕСКИЕ ЗАКОНЫ ЛОГИКИ? (89)
КАКИМ СПОСОБОМ ЛЮБИЛ РАССУЖДАТЬ ШЕРЛОК ХОЛМС? (90)
ИНДУКЦИЯ И ПРАВДОПОДОБНЫЕ РАССУЖДЕНИЯ (91)
РАЗГОВОР О ПРАВДОПОДОБНЫХ РАССУЖДЕНИЯХ (92)
ЧТО ТАКОЕ НЕКЛАССИЧЕСКИЕ ЛОГИКИ? (94)
ЧТО ТАКОЕ ПСЕВДОФИЗИЧЕСКАЯ ЛОГИКА ВРЕМЕНИ? (95)
КАК ПОСТРОИТЬ ЛОГИКУ ВРЕМЕНИ ДЛЯ РОБОТОВ? (96)
ОПИСАНИЕ СВОЙСТВ ВРЕМЕНИ. АКСИОМЫ ВРЕМЕНИ (97)
КАК ЛЮДИ РАССУЖДАЮТ О СОБЫТИЯХ ВО ВРЕМЕНИ? (99)
ПСЕВДОФИЗИЧЕСКАЯ ЛОГИКА ПРОСТРАНСТВА (101)
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 2 (105)
БЕСЕДА С ПРОФЕССОРОМ В ЛАБОРАТОРИИ
«МОДЕЛИ НЕЧЁТКИХ ВЫЧИСЛЕНИЙ» (106)
ЗНАКОМСТВО С ПРОФЕССОРОМ НЕЧЁТКИХ СИСТЕМ (108)
ВПЕРЁД, К ПОЗНАНИЮ МОДЕЛЕЙ И АЛГОРИТМОВ
НЕЧЁТКИХ РАССУЖДЕНИЙ И ПРИНЯТИЯ РЕШЕНИЙ! (109)
ЧТО ТАКОЕ НЕЧЁТКИЕ ВЫСКАЗЫВАНИЯ,
ЛИНГВИСТИЧЕСКИЕ ПЕРЕМЕННЫЕ И НЕЧЁТКИЕ МНОЖЕСТВА? (110)
ОТ КЛАССИЧЕСКИХ МНОЖЕСТВ К НЕЧЁТКИМ МНОЖЕСТВАМ (111)
ОТ НЕЧЁТКИХ МНОЖЕСТВ К НЕЧЁТКИМ ВЫСКАЗЫВАНИЯМ
И НЕЧЁТКОЙ ЛОГИКЕ (120)
ОТ НЕЧЁТКИХ ВЫСКАЗЫВАНИЙ К НЕЧЁТКОМУ ВЫВОДУ.
ОБОБЩЁННОЕ ПРАВИЛО «МОДУС ПОНЕНС» (122)
ОТ НЕЧЁТКОЙ ЛОГИКИ К НЕЧЁТКОМУ УПРАВЛЕНИЮ (131)
СКОРО ЛИ АВТОМОБИЛИ СМОГУТ ЕЗДИТЬ ПО ДОРОГАМ САМИ БЕЗ ШОФЁРА? (137)
ВОТ ТАКАЯ ЭТА НАУКА Е022У 1.061С
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 3
(139)
(139)
В ГОСТЯХ У ДЖОНА, РАЗРАБОТЧИКА ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ (140)
ЧТО ТАКОЕ МЯГКИЕ ВЫЧИСЛЕНИЯ И ЧТО В НИХ МЯГКОГО? (142)
В ГОСТЯХ У РАЗРАБОТЧИКА ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ.
РАЗГОВОР С АЛИСОЙ (144)
ЗНАКОМСТВО С ДЖОНОМ И ЕГО ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ (145)
КАКАЯ СВЯЗЬ МЕЖДУ ГЕНЕТИЧЕСКИМ АЛГОРИТМОМ, ГЕНЕТИКОЙ
И ОПТИМИЗАЦИЕЙ? (146)
ЭВОЛЮЦИЯ КАК ПОИСК ЛУЧШИХ РЕШЕНИЙ В ЗАДАЧЕ ОПТИМИЗАЦИИ (148)
СЕЛЕКЦИЯ В ПРИРОДЕ (149)
РАЗГОВОР О ЦЕЛЯХ БИОЛОГИЧЕСКОЙ И МАТЕМАТИЧЕСКОЙ ЭВОЛЮЦИИ
И ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ (150)
ОСОБЕННОСТИ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ (152)
ГЕНЕТИЧЕСКИЙ АЛГОРИТМ НА ПРИМЕРЕ ПРОСТЕЙШЕЙ ЗАДАЧИ (153)
ПРОЦЕДУРА МУТАЦИИ (162)
ЦИКЛ ЭВОЛЮЦИИ. КРИТЕРИЙ ОСТАНОВА В ГЕНЕТИЧЕСКОМ АЛГОРИТМЕ (163)
ВАЖНАЯ ТЕОРЕМА О СХОДИМОСТИ ГЕНЕТИЧЕСКОГО АЛГОРИТМА (164)
РАССКАЗ ДЛЯ ГИКОВ. ЗАДАЧА АВТОМАТИЧЕСКОЙ ПАРКОВКИ МАШИНЫ (165)
ГЕНЕТИЧЕСКИЕ АЛГОРИТМЫ ДЛЯ ЗАДАЧ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА (166)
ИНТЕЛЛЕКТУАЛЬНАЯ ПАРКОВКА «ПАРК-АССИСТ» ДЛЯ ФОЛЬКСВАГЕНА (180)
ПОДВОДИМ ИТОГИ (182)
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 4 (183)
БЕСЕДА С ВЕДУЩИМ УЧЁНЫМ В ЛАБОРАТОРИИ
МОДЕЛЕЙ ОБУЧЕНИЯ И НЕЙРОВЫЧИСЛЕНИЙ (184)
ОБУЧЕНИЕ С УЧИТЕЛЕМ И САМООБУЧЕНИЕ (187)
СПОСОБЫ ОБУЧЕНИЯ В ПРИРОДЕ (188)
ОБУЧЕНИЕ КОПИРОВАНИЕМ И ОБУЧЕНИЕ С ПОДКРЕПЛЕНИЕМ (189)
СХЕМА ОБУЧЕНИЯ С ПОДКРЕПЛЕНИЕМ (192)
ЗНАКОМСТВО С ИСКУССТВЕННЫМИ НЕЙРОННЫМИ СЕТЯМИ (193)
ОТ ЗАДАЧИ РАСПОЗНАВАНИЯ К ИСКУССТВЕННЫМ НЕЙРОСЕТЯМ (195)
КАК УСТРОЕНА ЖИВАЯ НЕЙРОННАЯ КЛЕТКА? (196)
УСТРОЙСТВО И ПРИНЦИП РАБОТЫ ИСКУССТВЕННОГО НЕЙРОНА (197)
ПРОСТЕЙШИЙ ПРИМЕР НЕЙРОННОЙ СЕТИ. ПЕРСЕПТРОН (200)
ОТ ПЕРСЕПТРОНА К МНОГОСЛОЙНОМУ ПЕРСЕПТРОНУ
И СЕТЯМ С ПРЯМЫМ РАСПРОСТРАНЕНИЕМ СИГНАЛА (201)
НЕЙРОСЕТИ С ОБРАТНЫМ РАСПРОСТРАНЕНИЕМ СИГНАЛА (205)
ОБУЧЕНИЕ НЕЙРОННЫХ СЕТЕЙ (209)
СУПЕРВИ30РН0Е ОБУЧЕНИЕ, ИЛИ ОБУЧЕНИЕ С УЧИТЕЛЕМ (209)
НЕСУПЕРВИ30РН0Е ОБУЧЕНИЕ, ИЛИ ОБУЧЕНИЕ БЕЗ УЧИТЕЛЯ (215)
ЧТО ТАКОЕ НЕЧЁТКИЕ НЕЙРОННЫЕ СЕТИ? (219)
ПОДВОДИМ ИТОГИ (225)
ПРИЛОЖЕНИЕ ДЛЯ ГИКОВ: АЛГОРИТМЫ ОБУЧЕНИЯ НЕЙРОСЕТЕЙ (226)
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 5 (235)
ГЛАВА 6
БЕСЕДА С ДОКТОРОМ ТЕХНИЧЕСКИХ НАУК
В ЛАБОРАТОРИИ ИНТЕЛЛЕКТУАЛЬНОЙ РОБОТОТЕХНИКИ (236)
ЗНАКОМСТВО С РОБОТОМ ЭЛОМ (238)
ЗАКОНЫ ДЛЯ РОБОТОВ, КОТОРЫЕ ПРИДУМАЛ АЙЗЕК АЗИМОВ (239)
ИСТОРИЯ РОБОТА ЭЛА (240)
ЗНАКОМСТВО С ХОУП И РАГОВОР О ТОМ, КАК ОПРЕДЕЛИТЬ ПОНЯТИЕ «РОБОТ» (241)
ЧТО ОБЩЕГО У РОБОТОВ, ЛЮДЕЙ И ЖИВОТНЫХ? ПРИНЦИП ВИНЕРА (245)
ОБЩАЯ КИБЕРНЕТИЧЕСКАЯ СХЕМА УПРАВЛЕНИЯ ПОВЕДЕНИЕМ (246)
ЧТО ТАКОЕ СИСТЕМА ОЧУВСТВЛЕНИЯ РОБОТОВ? (248)
МАШИННОЕ И КОМПЬЮТЕРНОЕ ЗРЕНИЕ (249)
РОБОТ ЭЛ ИЩЕТ МОБИЛЬНЫЙ ТЕЛЕФОН В КОМНАТЕ (254)
ЗНАКОМСТВО С ОБРАЗЦАМИ РОБОТОВ
В ТЕХНОПАРКЕ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА (255)
УМНЫ ЛИ ПРОМЫШЛЕННЫЕ РОБОТЫ-МАНИПУЛЯТОРЫ? (262)
ЭРА МОБИЛЬНЫХ РОБОТОВ И ДРОНОВ, УМНЫ ЛИ ДРОНЫ? (263)
РОБОТЫ-ЖИВОТНЫЕ (265)
РАЗГОВОР О РОБОТАХ И ИХ БУДУЩЕМ (266)
РОБОТАВТ «КЬЮРИОСИТИ» (269)
НОВОЕ ПОСЕЩЕНИЕ ТЕХНОПАРКА.
РАЗГОВОР ОБ ИНТЕЛЛЕКТУАЛЬНЫХ РОБОТАХ (270)
ПОСТРОЕНИЕ ПЛАНА ДЕЙСТВИЙ РОБОТОМ (292)
ВОПРОСЫ И ЗАДАНИЯ К ГЛАВЕ 6 (295)
(296)
КРУГЛЫЙ СТОЛ ПО ИСКУССТВЕННОМУ ИНТЕЛЛЕКТУ (298)
ВОПРОСЫ КРУГЛОГО СТОЛА ПО ИСКУССТВЕННОМУ ИНТЕЛЛЕКТУ (299)
ЯВЛЯЕТСЯ ЛИ ИНТЕЛЛЕКТ КАКИМ-ТО ЕДИНЫМ УНИВЕРСАЛЬНЫМ
МЕХАНИЗМОМ ИЛИ ОН ОБЪЕДИНЯЕТ НАБОР ОТДЕЛЬНЫХ МЕХАНИЗМОВ? (299)
КАК БУДЕТ ДАЛЬШЕ РАЗВИВАТЬСЯ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ?
БУДЕТ ЛИ ОН КОПИЕЙ ЧЕЛОВЕЧЕСКОГО РАЗУМА, ОСТАНЕТСЯ
В ЕГО ПОДЧИНЕНИИ ИЛИ ПРЕВЗОЙДЁТ ЕГО? (300)
В ЧЁМ СИСТЕМЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА УЖЕ СЕГОДНЯ
ПРОЯВЛЯЮТ ЧЕРТЫ СИЛЬНОГО ИНТЕЛЛЕКТА? (301)
ЧТО ТАКОЕ РАЗУМ? ЭТО ИНТЕЛЛЕКТ? (301)
СМОГУТ ЛИ РОБОТЫ ПРОЯВЛЯТЬ ЭМОЦИИ? (302)
ЕСТЬ ЛИ В РАЗУМЕ ЧТО-ТО ТАКОЕ, ЧТО НЕ ВЫЧИСЛИМО? (302)
МОЖЕТ ЛИ РОБОТ ВОСПРОИЗВОДИТЬ СЕБЯ? (303)
ЧЕМ СИЛЬНЫЙ ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ
МОЖЕТ ГРОЗИТЬ ЧЕЛОВЕЧЕСТВУ? (304)
(305)
(306)
ИСКУССТВЕННЫМ
Беседы со школьниками
Основные идеи, понятия, модели и методы популяр-
ной научной дисциплины «искусственный интеллект»
описываются в форме интересных диалогов лю-
бознательных школьников Ани и Артема с увлеченны-
ми своим делом учеными, разработчиками интеллек-
туальных систем и роботов. Программист знакомит
с основами и новыми технологиями искусственного
интеллекта. Логик рассказывает, как наделить искус-
ственные создания способностью логически мыслить
и рассуждать так, как это делает человек. Профес-
сор лаборатории моделей нечетких вычислений по-
свящает в таинства нечеткой математики. Ученый-
разработчик генетических алгоритмов рассказывает
удивительные вещи об алгоритмах эволюции в при-
роде, «мягких» вычислениях и их использовании
в системах управления парковкой беспилотного ав-
томобиля. Также Аня и Артем познакомятся с тем,
что такое нейросети и как обучаются роботы, побы-
вают на конференции по искусственному интеллекту
и узнают, в каком направлении искусственный интел-
лект будет развиваться дальше.
Литвинцева Людмила Васильевна, кандидат физико-математических наук, про-
фессор Миланского университета (Италия), профессор Университета электро-
коммуникаций (Токио, Япония). Работала в исследовательском центре искусствен-
ного интеллекта Института программных систем имени А. К. Айламазяна Российской
академии наук, научным консультантом в компаниях «СТ Майкроэлектроникс» (Ита-
лия) и «Ямаха Мотор» (Япония) в области разработки интеллектуальных систем
управления и технологий интеллектуальных вычислений, проектировала интеллек-
туальные системы управления движением, преподавала на курсах по искусственно-
му интеллекту за рубежом. Автор ряда книг и статей по этой тематике.
(ЬЬу®
18ВЫ 978-5-9775-4008-7
191036, Санкт-Петербург,
Гончарная ул., 20
Тел.: (812) 717-10-50,
339-54-17, 339-54-28
Е-таП: таП@Ы1У.ги
1п1егпе1: \л/\л/\л/.ЬНу.ги