Проектирование систем искусственного интеллекта
Покупка
Новинка
Издательство:
ИНТУИТ
Автор:
Сотник С. Л.
Год издания: 2016
Кол-во страниц: 163
Дополнительно
Курс посвящен рассмотрению базовых понятий систем искусственного интеллекта.
В курсе рассматривается архитектура систем искусственного интеллекта, системы распознавания образов, вопросы адаптации, обучения и самообучения систем ИИ, персептроны, методы и алгоритмы анализа структуры многомерных данных, неформальные процедуры, алгоритмические модели, основы языков РЕФАЛ и Пролог, ключевые понятия бинарных деревьев, базовые понятия экспертных систем, автоматизированный синтез, поиск физических принципов действия, методы синтеза речи человека.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Проектирование систем искусственного интеллекта 2-е издание, исправленное Сотник С.Л. Национальный Открытый Университет “ИНТУИТ” 2016 2
Проектирование систем искусственного интеллекта/ С.Л. Сотник - М.: Национальный Открытый Университет “ИНТУИТ”, 2016 Курс посвящен рассмотрению базовых понятий систем искусственного интеллекта. В курсе рассматривается архитектура систем искусственного интеллекта, системы распознавания образов, вопросы адаптации, обучения и самообучения систем ИИ, персептроны, методы и алгоритмы анализа структуры многомерных данных, неформальные процедуры, алгоритмические модели, основы языков РЕФАЛ и Пролог, ключевые понятия бинарных деревьев, базовые понятия экспертных систем, автоматизированный синтез, поиск физических принципов действия, методы синтеза речи человека. (c) ООО “ИНТУИТ.РУ”, 2007-2016 (c) Сотник С.Л., 2007-2016 3
Базовые понятия Эта лекция является вводной. В ней представлено описание целей курса, терминологии предмета, рассмотрены философские аспекты проблемы систем ИИ и история развития систем ИИ Цель преподавания дисциплины В современном мире рост производительности программиста практически достигается только в тех случаях, когда часть интеллектуальной нагрузки берут на себя компьютеры. Одним из способов достигнуть максимального прогресса в этой области является “искусственный интеллект”, когда компьютер не только берет на себя однотипные, многократно повторяющиеся операции, но и сам может обучаться. Кроме того, создание полноценного “искусственного интеллекта” открывает перед человечеством новые горизонты развития. Целью изучения дисциплины является подготовка специалистов в области автоматизации сложноформализуемых задач, которые до сих пор считаются прерогативой человека. Дисциплина изучается для приобретения знаний о способах мышления человека, а также о методах их реализации на компьютере. Основным предметом изучения являются мыслительные способности человека и способы их реализации техническими средствами. Терминология Термин интеллект (intelligence) происходит от латинского intellectus, что означает “ум, рассудок, разум; мыслительные способности человека”. Соответственно искусственный интеллект (artificial intelligence) — ИИ (AI) обычно толкуется как свойство автоматических систем брать на себя отдельные функции интеллекта человека, например, выбирать и принимать оптимальные решения на основе ранее полученного опыта и рационального анализа внешних воздействий. Мы, в нашем курсе, интеллектом будем называть способность мозга решать (интеллектуальные) задачи путем приобретения, запоминания и целенаправленного преобразования знаний в процессе обучения на опыте и адаптации к разнообразным обстоятельствам. В этом определении под термином “знания” подразумевается не только та информация, которая поступает в мозг через органы чувств. Такого типа знания чрезвычайно важны, но недостаточны для интеллектуальной деятельности. Дело в том, что объекты окружающей нас среды обладают свойством не только воздействовать на органы чувств, но и находиться друг с другом в определенных отношениях. Ясно, что для того, чтобы осуществлять в окружающей среде интеллектуальную деятельность (или хотя бы просто существовать), необходимо иметь в системе знаний модель этого мира. В этой информационной модели окружающей среды реальные объекты, их свойства и отношения между ними не только отображаются и запоминаются, но и, как 4
это отмечено в данном определении интеллекта, могут мысленно “целенаправленно преобразовываться”. При этом существенно, что формирование модели внешней среды происходит “в процессе обучения на опыте и адаптации к разнообразным обстоятельствам”. Мы употребили термин “интеллектуальная задача“. Чтобы пояснить, чем отличается интеллектуальная задача от просто задачи, необходимо ввести термин “алгоритм” — один из краеугольных терминов кибернетики. Под алгоритмом понимают точное предписание о выполнении в определенном порядке системы операций для решения любой задачи из некоторого данного класса (множества) задач. Термин “алгоритм” происходит от имени узбекского математика Аль-Хорезми, который еще в IX веке предложил простейшие арифметические алгоритмы. В математике и кибернетике класс задач определенного типа считается решенным, когда для ее решения установлен алгоритм. Нахождение алгоритмов является естественной целью человека при решении им разнообразных классов задач. Отыскание алгоритма для задач некоторого данного типа связано с тонкими и сложными рассуждениями, требующими большой изобретательности и высокой квалификации. Принято считать, что подобного рода деятельность требует участия интеллекта человека. Задачи, связанные с отысканием алгоритма решения класса задач определенного типа, будем называть интеллектуальными. Что же касается задач, алгоритмы решения которых уже установлены, то, как отмечает известный специалист в области ИИ М. Минский, “излишне приписывать им такое мистическое свойство, как “интеллектуальность””. В самом деле, после того, как такой алгоритм уже найден, процесс решения соответствующих задач становится таким, что его могут в точности выполнить человек, вычислительная машина (должным образом запрограммированная) или робот, не имеющие ни малейшего представления о сущности самой задачи. Требуется только, чтобы лицо, решающее задачу, было способно выполнять те элементарные операции, из которых складывается процесс, и, кроме того, чтобы оно педантично и аккуратно руководствовалось предложенным алгоритмом. Такое лицо, действуя, как говорят в таких случаях, чисто машинально, может успешно решать любую задачу рассматриваемого типа. Поэтому представляется совершенно естественным исключить из класса интеллектуальных такие задачи, для которых существуют стандартные методы решения. Примерами этих задач могут служить чисто вычислительные задачи: решение системы линейных алгебраических уравнений, численное интегрирование дифференциальных уравнений и т. д. Для решения подобного рода задач имеются стандартные алгоритмы, представляющие собой определенную последовательность элементарных операций, которая может быть легко реализована в виде программы для вычислительной машины. В противоположность этому для широкого класса интеллектуальных задач, таких, как распознавание образов, игра в шахматы, доказательство теорем и т. п., напротив, формальное разбиение процесса поиска решения на отдельные элементарные шаги часто оказывается весьма затруднительным, даже если само их решение несложно. Таким образом, мы можем перефразировать определение: интеллект — это 5
универсальный сверхалгоритм, который способен создавать алгоритмы решения конкретных задач. Еще одно интересное замечание: профессия программиста, исходя из наших определений, является одной из самых интеллектуальных, поскольку продуктом деятельности программиста являются программы — алгоритмы в чистом виде. Именно поэтому создание даже элементов ИИ должно очень сильно повысить производительность его труда. Деятельность мозга (обладающего интеллектом), направленную на решение интеллектуальных задач, мы будем называть мышлением, или интеллектуальной деятельностью. Интеллект и мышление органически связаны с решением таких задач, как доказательство теорем, логический анализ, распознавание ситуаций, планирование поведения, игры и управление в условиях неопределенности. Характерными чертами интеллекта, проявляющимися в процессе решения задач, являются способность к обучению, обобщению, накоплению опыта (знаний и навыков) и адаптации к изменяющимся условиям в процессе решения задач. Благодаря этим качествам интеллекта мозг может решать разнообразные задачи, а также легко перестраиваться с решения одной задачи на другую. Таким образом, мозг, наделенный интеллектом, является универсальным средством решения широкого круга задач (в том числе неформализованных), для которых нет стандартных, заранее известных методов решения. Следует иметь в виду, что существуют и другие, чисто поведенческие (функциональные) определения. Так, по А. Н. Колмогорову, любая материальная система, с которой можно достаточно долго обсуждать проблемы науки, литературы и искусства, обладает интеллектом. Другим примером поведенческой трактовки интеллекта может служить известное определение А. Тьюринга. Его смысл заключается в следующем. В разных комнатах находятся люди и машина. Они не могут видеть друг друга, но имеют возможность обмениваться информацией (например, с помощью электронной почты). Если в процессе диалога между участниками игры людям не удается установить, что один из участников — машина, то такую машину можно считать обладающей интеллектом. Кстати, интересен план имитации мышления, предложенный А. Тьюрингом. “Пытаясь имитировать интеллект взрослого человека, — пишет Тьюринг, — мы вынуждены много размышлять о том процессе, в результате которого человеческий мозг достиг своего настоящего состояния… Почему бы нам вместо того, чтобы пытаться создать программу, имитирующую интеллект взрослого человека, не попытаться создать программу, которая имитировала бы интеллект ребенка? Ведь если интеллект ребенка получает соответствующее воспитание, он становится интеллектом взрослого человека… Наш расчет состоит в том, что устройство, ему подобное, может быть легко запрограммировано… Таким образом, мы расчленим нашу проблему на две части: на задачу построения “программы-ребенка” и задачу “воспитания” этой программы”. Забегая вперед, можно сказать, что именно этот путь используют практически все системы ИИ. Ведь понятно, что практически невозможно заложить все знания в достаточно сложную систему. Кроме того, только на этом пути проявятся 6
перечисленные выше признаки интеллектуальной деятельности (накопление опыта, адаптация и т. д.). Философские аспекты проблемы систем ИИ (возможность существования, безопасность, полезность). С курсом “Основы проектирования систем ИИ” сложилась ситуация, которая роднит его с коммунизмом — изучается то, чего еще нет. И если этого не будет в течение ближайших 100 лет, то очень может быть, что эпоха ИИ на этом окончится. Из сказанного выше вытекает основная философская проблема в области ИИ — возможность или невозможность моделирования мышления человека. В случае если когда-либо будет получен отрицательный ответ на этот вопрос, все остальные вопросы курса не будут иметь ни малейшего смысла. Следовательно, начиная исследование ИИ, мы заранее предполагаем положительный ответ. Попробуем привести несколько соображений, которые подводят нас к данному ответу. 1. Первое доказательство является схоластическим и говорит о непротиворечии ИИ и Библии. По-видимому, даже люди, далекие от религии, знают слова священного писания: “И создал Господь человека по образу и подобию своему …”. Исходя из этих слов, мы можем заключить, что, поскольку Господь, во-первых, создал нас, а во-вторых, мы по своей сути подобны ему, то мы вполне можем создать кого-то по образу и подобию человека. 2. Создание нового разума биологическим путем — для человека дело вполне привычное. Наблюдая за детьми, мы видим, что большую часть знаний они приобретают путем обучения, а не получают как заложенную в них заранее. Данное утверждение на современном уровне не доказано, но по внешним признакам все выглядит именно так. 3. То, что раньше казалось вершиной человеческого творчества — игра в шахматы, шашки, распознавание зрительных и звуковых образов, синтез новых технических решений, — на практике оказалось не таким уж сложным делом (теперь работа ведется не на уровне возможности или невозможности реализации перечисленного, а всего лишь на уровне нахождения оптимального алгоритма). Теперь зачастую данные проблемы даже не относят к проблемам ИИ. Есть надежда, что и полное моделирование мышления человека окажется не таким уж сложным делом. 4. С проблемой воспроизведения своего мышления тесно смыкается проблема возможности самовоспроизведения. Способность к самовоспроизведению долгое время считалась прерогативой живых организмов. Однако некоторые явления, происходящие в неживой природе (например, рост кристаллов, синтез сложных молекул копированием), очень похожи на самовоспроизведение. В начале 50-х годов Дж. фон Нейман занялся основательным изучением самовоспроизведения и заложил основы 7
математической теории “самовоспроизводящихся автоматов”. Он же доказал теоретически возможность их создания. Есть также различные неформальные доказательства возможности самовоспроизведения, но для программистов самым ярким доказательством, пожалуй, является существование компьютерных вирусов. 5. Принципиальная возможность автоматизации решения интеллектуальных задач с помощью ЭВМ обеспечивается свойством алгоритмической универсальности. Что же это за свойство? Алгоритмическая универсальность ЭВМ означает, что на них можно программно реализовывать (т. е. представить в виде машинной программы) любые алгоритмы преобразования информации — будь то вычислительные алгоритмы, алгоритмы управления, поиска доказательства теорем или композиции мелодий. При этом мы имеем в виду, что процессы, порождаемые этими алгоритмами, являются потенциально осуществимыми, т. е. что они осуществимы в результате конечного числа элементарных операций. Практическая осуществимость алгоритмов зависит от имеющихся в нашем распоряжении средств, которые могут меняться с развитием техники. Так, в связи с появлением быстродействующих ЭВМ стали практически осуществимыми и такие алгоритмы, которые ранее были только потенциально осуществимыми. Однако свойство алгоритмической универсальности не ограничивается констатацией того, что для всех известных алгоритмов оказывается возможной их программная реализация на ЭВМ. Содержание этого свойства имеет и характер прогноза на будущее: всякий раз, когда в будущем какое-либо предписание будет признано алгоритмом, то независимо от того, в какой форме и какими средствами это предписание будет первоначально выражено, его можно будет задать также в виде машинной программы. Однако не следует думать, что вычислительные машины и роботы могут в принципе решать любые задачи. Анализ разнообразных задач привел математиков к замечательному открытию. Было строго доказано существование таких типов задач, для которых невозможен единый эффективный алгоритм, решающий все задачи данного типа; в этом смысле невозможно решение задач такого типа и с помощью вычислительных машин. Этот факт способствует лучшему пониманию того, что могут делать машины и чего они не могут сделать. В самом деле, утверждение об алгоритмической неразрешимости некоторого класса задач является не просто признанием того, что такой алгоритм нам не известен и никем еще не найден. Такое утверждение представляет собой одновременно и прогноз на все будущие времена о том, что подобного рода алгоритм нам не известен и никем не будет указан или, иными словами, что он не существует. Как же действует человек при решении таких задач? Похоже, что он просто-напросто игнорирует их, что, однако не мешает ему жить дальше. Другим путем является сужение условий универсальности задачи, когда она решается только для определенного подмножества начальных условий. И еще один путь заключается в том, 8
что человек методом “научного тыка” расширяет множество доступных для себя элементарных операций (например, создает новые материалы, открывает новые месторождения или типы ядерных реакций). Следующим философским вопросом ИИ является цель создания. В принципе, все, что мы делаем в практической жизни, обычно направлено на то, чтобы больше ничего не делать. Однако при достаточно высоком уровне жизни (большом количестве потенциальной энергии) человека на первые роли выступает уже не лень (в смысле желания экономить энергию), а поисковые инстинкты. Допустим, что человек сумел создать интеллект, превышающий свой собственный (пусть не качеством, так количеством). Что теперь будет с человечеством? Какую роль будет играть человек? Для чего он теперь нужен? Не станет ли он тупой и жирной свиньей? И вообще, нужно ли в принципе создание ИИ? По-видимому, самым приемлемым ответом на эти вопросы является концепция “усилителя интеллекта” (УИ). Я думаю, что здесь уместна аналогия с президентом государства — он не обязан знать валентность ванадия или язык программирования Java для принятия решения о развитии ванадиевой промышленности. Каждый занимается своим делом: химик описывает технологический процесс, программист пишет программу; в конце концов, экономист говорит президенту, что, вложив деньги в промышленный шпионаж, страна получит 20%, а в ванадиевую промышленность — 30% годовых. Думаю, что при такой постановке вопроса, человек с любым уровнем образования сможет сделать правильный выбор. В данном примере президент использует биологический УИ — группу специалистов с их белковыми мозгами. Но уже сейчас созданы и неживые УИ — например, мы не могли бы предсказать погоду без компьютеров, а при полетах космических кораблей с самого начала применялись бортовые счетно-решающие устройства. Кроме того, человек уже давно использует усилители силы (УС) — понятие, во многом аналогичное УИ. В качестве усилителей силы ему служат автомобили, краны, электродвигатели, прессы, пушки, самолеты и многое-многое другое. Основным отличием УИ от УС является наличие воли. Ведь мы не сможем себе представить, чтобы вдруг серийный “Запорожец” взбунтовался и стал ездить так, как ему хочется. Не можем представить именно потому, что ему ничего не хочется, у него нет желаний. В то же время, интеллектуальная система вполне могла бы иметь свои желания и поступать не так, как нам хотелось бы. Таким образом, перед нами встает еще одна проблема — проблема безопасности. Данная проблема будоражит умы человечества еще со времен Карела Чапека, впервые употребившего термин “робот”. Большую лепту в обсуждение данной проблемы внесли и другие писатели-фантасты. Как самые известные мы можем упомянуть серии рассказов писателя-фантаста и ученого Айзека Азимова, а также довольно свежее произведение — “Терминатор“. Кстати, именно у Айзека Азимова мы можем найти самое проработанное и принятое большинством людей решение проблемы безопасности. Речь идет о так называемых трех законах роботехники. 1. Робот не может причинить вред человеку или своим бездействием допустить, 9
чтобы человеку был причинен вред. 2. Робот должен повиноваться командам, которые ему дает человек, кроме тех случаев, когда эти команды противоречат первому закону. 3. Робот должен заботиться о своей безопасности, насколько это не противоречит первому и второму закону. На первый взгляд подобные законы, при их полном соблюдении, должны обеспечить безопасность человечества. Однако при внимательном рассмотрении возникают некоторые вопросы. Во-первых, законы сформулированы на человеческом языке, который не допускает простого их перевода в алгоритмическую форму. Попробуйте, к примеру, перевести на любой из известных Вам языков программирования такой термин, как “причинить вред”. Или “допустить”. Попробуйте определить, что происходит в любом случае, а что он “допустил”? Далее предположим, что мы сумели переформулировать данные законы на язык, который понимает автоматизированная система. Теперь интересно, что будет подразумевать система ИИ под термином “вред” после долгих логических размышлений? Не решит ли она, что все существования человека — это сплошной вред? Ведь он курит, пьет, с годами стареет и теряет здоровье, страдает. Не будет ли меньшим злом быстро прекратить эту цепь страданий? Конечно, можно ввести некоторые дополнения, связанные с ценностью жизни, свободой волеизъявления. Но это уже будут не те простые три закона, которые были в исходнике. Следующим вопросом будет такой: что решит система ИИ в ситуации, когда спасение одной жизни возможно только за счет другой? Особенно интересны те случаи, когда система не имеет полной информации о том, кто есть кто. Однако, несмотря на перечисленные проблемы, данные законы являются довольно неплохим неформальным базисом проверки надежности системы безопасности для систем ИИ. Так что же, неужели нет надежной системы безопасности? Если отталкиваться от концепции УИ, то можно предложить следующий вариант. Согласно многочисленным опытам, несмотря на то, что мы не знаем точно, за что отвечает каждый отдельный нейрон в человеческом мозге, многим из наших эмоций обычно соответствует возбуждение группы нейронов (нейронный ансамбль) во вполне предсказуемой области. Были также проведены обратные эксперименты, когда раздражение определенной области вызывало желаемый результат — возникали эмоции радости, угнетения, страха, агрессивности. Это наводит на мысль, что, в принципе, мы вполне могли бы вывести степень “довольности” организма наружу. В то же время, практически все известные механизмы адаптации и самонастройки (в первую очередь имеются в виду технические системы), базируются на принципах типа “хорошо” — “плохо”. В математической интерпретации — это сведение какой-либо функции к максимуму или к минимуму. Теперь представим себе, что наш УИ в качестве такой функции использует измеренную прямо или косвенно степень удовольствия мозга человека-хозяина. Если принять меры, чтобы исключить самодеструктивную деятельность в состоянии депрессии, а также предусмотреть 10