Главная страница
Навигация по странице:

  • Направления, методы и подходы ИИ Интеллектуа́льная система

  • Интеллектуальная информационная система

  • Экспе́ртная систе́ма (ЭС, англ. expert system)

  • Описание некоторых алгоритмов ИИ

  • лекция. Lektsii_ПКТ. Конспект лекций по дисциплине прикладные компьютерные технологии Направление подготовки 09. 03. 01 Информатика и вычислительная техника


    Скачать 7.93 Mb.
    НазваниеКонспект лекций по дисциплине прикладные компьютерные технологии Направление подготовки 09. 03. 01 Информатика и вычислительная техника
    Анкорлекция
    Дата11.02.2023
    Размер7.93 Mb.
    Формат файлаdocx
    Имя файлаLektsii_ПКТ.docx
    ТипКонспект лекций
    #931017
    страница5 из 14
    1   2   3   4   5   6   7   8   9   ...   14

    Принципы построения ИИ

    Несмотря на то, что искусственный интеллект развивается уже  на протяжении 40 лет, с самого начала в исследования были заложены 5 основных принципов, которых разработчики придерживаются и по сегодняшний день.

    Обработка данных. Изначально ИИ мог обрабатывать небольшие объемы данных. С развитием технологий и увеличением вычислительных мощностей, приложения с поддержкой ИИ «научились» обрабатывать огромные потоки данных в кратчайшие сроки. Быстрая и качественная обработка информации остается приоритетным заданием и сейчас. Помимо этого, ИИ должен уметь обрабатывать огромные объемы потоковых данных.

    Адаптивность. Приложения с поддержкой ИИ должны уметь адаптироваться к изменяющимся условиям. В связи с этим возникла необходимость появления машинного обучения. Технологический процесс машинного обучения требует наличия исходных данных для создания модели поведения ИИ в зависимости от меняющихся условий. В таком случае,  ИИ, который располагает определенными моделями поведения в конкретных ситуациях, сможет адекватно оценивать полученные данные в будущем, и использовать модели для адаптации к новым условиям.

    Реагирование. Приложения с поддержкой ИИ должны реагировать на изменения условий в реальном времени. В отличие от обычных программ, которые работают по определенному алгоритму и используют только существующие базы данных, ИИ постоянно мониторит поступающие данные и может работать с потоковыми сервисами, непрерывно получая от них новую информацию. Используя принципы обучения в реальном времени, ИИ выбирает модель поведения в конкретных условиях.

    Дальновидность. Многие системы ИИ уже не просто реагируют на изменения условий. Им приходится предсказывать возможное развитие событий, чтобы выбрать оптимальный вариант поведения в настоящий момент. ИИ-системы должны уметь быстро адаптироваться к изменениям сценария поведения в зависимости от полученных данных.

    Конкурентоспособность. Системы ИИ должны «уметь» обрабатывать данные, получаемые из нескольких источников одновременно. Они используют специальные технологии, которые создавались ранее для обычных систем проведения транзакций. Эти технологии позволяют обрабатывать огромные объемы данных в кратчайшие сроки, обеспечивая оптимальный результат, защищенность информации и работу с несколькими источниками данных одновременно. Если такие условия может выполнять простая программа, ИИ просто необходимо не уступать, показывать даже лучшие результаты.

    Это 5 основополагающих принципов, которые гарантируют современным системам ИИ успех и дальнейшее развитие. Все они сформировались постепенно, некоторые — задолго до создания первых систем с поддержкой ИИ, некоторые — в процессе обучения и развития. Несмотря на то, что объемы обрабатываемых данных постоянно увеличиваются, задачи изменяются, а технологии бегут вперед, для успешной работы любой системе ИИ нужно соответствовать этим пяти принципам. 

    Направления, методы и подходы ИИ

    Интеллектуа́льная система — это техническая или программная система, способная решать задачи, традиционно считающиеся творческими, принадлежащие конкретной предметной области, знания о которой хранятся в памяти такой системы. Структура интеллектуальной системы включает три основных блока — базу знаний, механизм вывода решений и интеллектуальный интерфейс[1].

    Интеллектуальные системы изучаются группой наук, объединяемых под названием «искусственный интеллект».

    В технологиях принятия решений интеллектуальная система — это информационно-вычислительная система с интеллектуальной поддержкой, решающая задачи без участия человека — лица, принимающего решение (ЛПР), в отличие отинтеллектуализированной системы, в которой оператор присутствует

    Интеллектуальная информационная система (ИИС) — комплекс программных, лингвистических и логико-математических средств для реализации основной задачи – осуществления поддержки деятельности человека и поиска информации в режиме продвинутого диалога на естественном языке.[1] ИИС являются разновидностью интеллектуальной системы, а также одним из видов информационных систем.

    Экспе́ртная систе́ма (ЭС, англ. expert system) — компьютерная система, способная частично заменить специалиста-эксперта в разрешении проблемной ситуации. В информатике экспертные системы рассматриваются совместно с базами знаний как модели поведения экспертов в определенной области знаний с использованием процедур логического вывода и принятия решений, а базы знаний — как совокупность фактов и правил логического вывода в выбранной предметной области деятельности.

    Под гибридной интеллектуальной системой (ГиИС) принято понимать систему, в которой для решения задачи используется более одного метода имитации интеллектуальной деятельности человека

    Нейронные сети и их вариации. Представляют собой сеть взаимосвязанных элементов, которые являются математической моделью нейронов мозга. Используются для определения априорно неизвестных сложных функциональных зависимостей на основании статистических данных. Существует несколько основных, базовых направлений в разработке ИИ, но на текущий момент, наиболее эффективны алгоритмы на основе CNN (сверточная нейронная сеть) и RNN (рекуррентная нейронная сеть). CNN — это однонаправленная (без обратных связей) многослойная сеть, которая отлично подходит для работы с такими данными, как изображения и видео, где данные размещены в виде сетки пикселей. В свою очередь RNN хорошо справляется с последовательными данными, такими как текст и аудио. CNN называется «сетью прямой связи», а RNN называется «сетью обратной связи». Слух, возможность говорить, зрение и прогнозирующая интуиция базируются на использовании обеих сетей (CNN и RNN), а также технологии обработки естественного языка (NLP), которые дополняют друг друга. Подобные технологии используются в Alexa, Siri, Google Now, Cortana и других интеллектуальных голосовых помощниках.

    Байесовы (вероятностные) сети. Моделируют вероятностные причинно-следственные связи. Позволяют рассчитывать вероятность наступления того или иного события при известной априорной вероятности причин. Позволяют строить модели в режиме реального времени с учетом неполноты данных и возможностью корректировки результата при появлении дополнительной информации. Могут использоваться для совместной обработки данных количественного и качественного характера.

    Методы эвристической самоорганизации. Методы данной группы исследуют функциональные и вероятностные взаимосвязи «входов» и «выходов» некоторой системы, т.е. позволяют моделировать сложные нелинейные процессы и системы при отсутствии априорных знаний о структуре модели. Метод группового учета аргументов (МГУА), например, позволяет моделировать неизвестные закономерности функционирования исследуемого процесса или системы по информации, неявно присутствующей в выборке «входных» и «выходных» данных.

    Теория игр. Позволяет формализовать описание процессов принятия сознательных целенаправленных решений при участии одной или нескольких сторон в условиях неопределенностей, риска и конфликта, которые возникают при столкновении интересов. Задача теории игр заключается в предложении рекомендаций рационального образа действий участников процесса принятия решений, т.е. в определении оптимальной стратегии для каждого из них.

    Теория хаоса. Предлагает новые методы анализа данных, позволяющие выявлять скрытые зависимости там, где раньше систему считали случайной, и не имеющей каких-либо закономерностей. Применение аппарата теории хаоса позволяет качественно изучать нестабильное апериодическое поведение в нелинейных динамических системах, например, в экономических, экологических, социальных и биологических системах и процессах.

    Многозначные логики. Нечеткая логика. Логика антонимов*. Расширяет возможности «обычной» двоичной логики, оперирующей только понятиями «1-да» и «0-нет». Позволяет оперировать с нечеткой, неточной, «размытой» информацией. Дает возможность использования качественных, а не количественных характеристик, что позволяет манипулировать лингвистическими понятиями и знаниями, выражаемыми на обычном языке (например, для описания процессов: «плохо»-«средне»-«хорошо», «огромный-большой-маленький-мизерный» и т.д.).

    Эволюционные и клональные алгоритмы. Адаптивные методы поиска, используемые для решения задач функциональной оптимизации. Основаны на эволюционных процессах биологических организмов: популяции развиваются, подчиняясь законам естественного отбора и принципу «выживает сильнейший». Моделируя этот процесс, эволюционные алгоритмы, в частности генетические, способны «развивать» решения реальных задач, если они соответствующим образом закодированы. Такой подход является динамическим и позволяет довольно быстро находить оптимальные, с определенной точки зрения, решения.

    Методы экспертных оценок. Применяются при отсутствии возможности или трудо-ресурсной нецелесообразности получения данных в количественном выражении. При моделировании многих процессов и систем, например, экономических, социальных и биологических, понятие точных числовых оценок теряет всякий смысл. В таких случаях обращаются к использованию знаний и опыта экспертов — методам экспертных оценок, которые включают в себя методы получения, формализации и интеграции экспертных знаний.

    Иммунные сети. Основаны на принципах функционирования иммунной системы позвоночных, которая, выступает «вторым» интеллектом — как и нервная система, обладает такими свойствами как память, способность обучаться, умение распознавать и принимать решения о том, как вести себя в новых ситуациях. Методы, основанные на концепции искусственных иммунных сетей, используются в задачах распознавания образов, информационной безопасности, прогнозировании временных рядов и многих других.

    Роевой интеллект. Данный подход основан на коллективном интеллекте социальных насекомых, таких как муравьи и пчелы, каждая особь которых обладает очень малыми возможностями. Но, собираясь в многотысячную и многомиллионную колонию, они становятся роем, представляющим собой мощную интеллектуальную распределенную систему. Многие современные задачи управления, моделирования и прогнозирования могут быть эффективно решены с помощью автономных эмерджентных систем, построенных по такому принципу. Наиболее активными сферами применения являются социальное и электоральное моделирование, экономическое прогнозирование, маркетинговые исследования и исследования по корпоративному климату.

    Описание некоторых алгоритмов ИИ

    Часто люди путают (а иногда и отождествляют) понятия «нейронная сеть» и «искусственный интеллект». Но это разные понятия.

    Экспертные системы. Одно из центральных понятий во многих отраслях искусственного интеллекта — знание. Это информация вместе со способом её интерпретации. Если система не только обладает информацией, но и способна объяснить её, это значит что она «понимает» или обладает знанием.

    Существуют различные предметные области, в том числе очень узкие. Эксперты в этих областях способны делать выводы, основываясь на входных данных и своих знаниях. Опытный гонщик может по звуку двигателя определить марку проезжающего автомобиля. Доктор, только посмотрев на симптомы пациента, может поставить диагноз. Обычным людям, не экспертам, это сложнее, а иногда и вовсе не под силу. Чем специфичнее и у́же предметная область, тем сложнее найти в ней эксперта. Но что, если собрать знания экспертов и растиражировать их? Например, доктор знает, что, если у пациента волчанка, ему нужно дать стероиды. К сожалению, не все больные этим заболеванием могут попасть в крупный медицинский центр. Но что, если даже сельская медсестра сможет назначить верное лечение, просто запустив компьютер и введя симптомы пациента?

    Для этого служат экспертные системы. Они состоят из двух основных частей: механизма логического вывода и базы знаний. Если знания представлять в определённом виде, можно с небольшими настройками использовать один и тот же механизм логического вывода для разных областей знаний.

    Основная проблема при создании экспертных систем – построение базы знаний. Во-первых, по разным причинам получить от экспертов знания бывает очень непросто. Во-вторых, в выводах эксперта часто присутствует так называемый здравый смысл – то, что само собой разумеется.

    Такие сведения могут не формулироваться экспертом, но при этом влиять на решение.

    Например, у пациента симптомы тропической лихорадки. Эксперты говорят, что если человек не был в тропиках, то у него не может быть этой болезни. Пациент утверждает, что в тропиках не был. Экспертная система делает вывод, что у него другое заболевание. А вот эксперт в данной ситуации может руководствоваться другим — он может догадаться, что все врут, и пора вламываться в дом к пациенту, чтобы доказать, что это именно тропическая лихорадка. Если таких знаний будет слишком много, это сильно затруднит создание экспертной системы. В этом случае экспертную систему можно рассматривать не как точный инструмент, а как систему поддержки принятия решений. Работа с ней происходит следующим образом: система задает вопросы пользователю, по мере получения ответов механизм логического вывода движется по базе знаний, определяет, какие ещё вопросы нужно задать и в конце делает вывод. Причём, экспертная система может объяснить всю цепочку рассуждений, что также является преимуществом. А вместо пользователя могут быть датчики или другие устройства, чтобы, например, в реальном времени отслеживать состояние атомной станции.

    Нейронные сети. С помощью экспертных систем машина может делать сложные выводы в сложных предметных областях. Но некоторые совершенно простые для человека вещи всё равно остаются неподвластны компьютеру. Не нужно быть экспертом, чтобы прочитать цифры на картинке. Но для машины эта задача довольно сложна. Итак, ещё одна задача, решаемая силой искусственного интеллекта — распознавание и классификация объектов. Вот тут на помощь приходят нейронные сети. Они основаны на принципах работы биологического мозга. Грубо говоря, когда человек видит какой-либо объект, это вызывает возбуждение сначала в зрительном нерве, потом в нейронах. Одни нейроны воспринимают этот сигнал, другие игнорируют. В итоге возбуждаются только определённые участки мозга, что и означает узнавание образа. То есть если образ кошки «хранится» в определённых нейронах мозга, то когда мы видим кошку, именно эти нейроны приходят в возбуждённое состояние, что и позволяет нам сделать вывод: я вижу кошку.

    Конечно, это всё грубо и упрощённо. Теория нейронных сетей за последнее время продвинулась далеко вперёд. Есть множество видов нейросетей, появилась куча фреймворков для удобной работы с ними и очень много теоретической информации. Поэтому подробно в эту тему я углубляться не буду, скажу только, что после построения нейросети необходимо тонко настроить её параметры, чтобы она выдавала правильный результат при определённых данных на входе. Для такой настройки проводят обучение сети. На вход подают много различных данных для распознавания, проверяют результаты и корректируют работу сети. Этот этап может быть довольно объёмным и сложным, мы ведь тоже не сразу выучили все цифры. Но за счёт этого нейросети могут решать ещё одну задачу искусственного интеллекта — машинное обучение. Что если по мере работы компьютер мог бы учиться и совершенствоваться? С каждой новой шахматной партией играть всё лучше и лучше? С нейросетями он это может.

    Вывод на фреймах. Но бывает, что классифицировать нужно сложные нечёткие объекты. И на основе этой классификации сделать какие-то выводы или предпринять действия. Например, в некой компьютерной игре рыцарю нужно принять решение, что делать. Допустим, ситуация сложилась так, что рядом с рыцарем находится вражеский рыцарь, замок и монстр, который охраняет ценный артефакт. Так как это компьютерная игра, распознавать тут ничего не надо — вся информация о положении вещей уже есть. Нужно только принять решение: напасть на врага, напасть на монстра или зайти в замок. Человек в данной ситуации исходит из силы монстра, силы своего и чужого рыцаря. Условия могут быть примерно такими:

    • Если ситуация опасная, зайти в замок (в нём легче обороняться).

    • Если враг слабый — напасть на него.

    • Если силы примерно равны, оценить возможность победы над монстром (артефакт может дать преимущество).

    Отлично, компьютер теперь мог бы принять решение. Ему только нужно знать, «опасная» ситуация или нет, «слабый» враг или нет. Это нечёткие понятия, у них нет явных границ. Кроме того, необходимо оценить всю ситуацию. А ситуации могут быть очень разными, всего заранее не предусмотришь. Психологи говорят, что человек может на основе своего опыта строить выводы и предположения об объектах, которые видит впервые. Например, если мы входим в помещение в здании, мы уже заранее классифицируем его как комнату, предполагаем, что в ней будет 4 стены, пол и потолок. Затем мы уже можем заметить, что одна стена в ней прозрачная, а потолок выше, чем обычно, но это всё равно комната.

    Вывод на фреймах использует принципы человеческой психики, чтобы делать логические заключения и предположения.

    Фрейм в данном контексте — это, говоря очень упрощённо, набор ячеек, описывающих ситуацию. В каждой ячейке может быть понятие, величина или другой фрейм. Часть фрейма означивается имеющимися данными. Таким образом, фреймы выстраиваются в цепочки, в одном конце которых возможные решения, а в другом — исходные данные. Если бо́льшая часть фрейма определена, принимается и остальная его часть. Например, для каждого возможного решения в нашей игре есть фрейм.  Пусть фрейм решения такой:

    • действие → зайти в замок;

    • опасная ситуация → да. «Опасная» ситуация — это тоже фрейм, примерно такой:

    • расстояние до врага → малое;

    • сила врага → большая.

    Далее расписывается, что такое враг, что такое его сила, и так далее, пока не дойдём до простых объектов. Во время принятия решения идём в обратном направлении, то есть, если оказалось, что враг близко и он сильный, принимаем весь фрейм. Получается что ситуация опасная и принимаем фрейм зайти в замок. Подход хорош ещё и тем, что если данные будут неполными, мы всё равно сможем принять решение, определяя те фреймы, которые лучше всего подходят. Если во фрейме часть ячеек совпала с имеющимися данными, мы определяем фрейм и считаем, что остальные его ячейки тоже содержат верные данные.

    Генетические алгоритмы. Однако бывают ситуации, когда мы не знаем возможных решений. Мы просто ищем такое решение, которое будет оптимальным. То есть ищем минимум или максимум в нечёткой задаче. В примере с рыцарем мы хотим получить максимальную выгоду и понести минимум потерь. Здесь на помощь приходят генетические алгоритмы. Это тоже метод искусственного интеллекта, однако подражает он не психике и не мозгу, а процессу эволюции. Для применения генетического алгоритма нужно вывести функцию приспособленности. Это та функция, максимум которой мы будем искать. Аргументы функции — это особи популяции. Каждая особь имеет свой набор генов — это могут быть двоичные или десятичные числа или другие объекты. Сначала мы создаём начальную популяцию. К каждой особи применяется функция приспособленности. Наиболее приспособленные особи скрещиваются (это называется кроссинговер), образуя новую популяцию. В итоге, через некоторое время, или через несколько поколений, мы получаем популяцию, которая имеет наибольшую приспособленность. То есть мы находим максимум функции приспособленности.

    Однако это локальный максимум. Может быть такое, что график функции идёт вверх, потом вниз, а потом сильно вверх. Генетический алгоритм может выдать нам первое значение, потому что особи, которые приближались к настоящему максимуму, попадали в яму на графике и не давали потомства. Чтобы избежать этого, у особей производятся мутации, то есть случайные изменения генов. Это позволяет перепрыгнуть через яму и добраться до настоящего максимума.

    Тем не менее генетические алгоритмы не гарантируют точного решения, в общем случае мы можем найти только локальный максимум функции. Но и это бывает неплохо, особенно для сложных нечётких функций, исследовать которые удобнее экспериментальным путем.

    Например, мы хотим разработать механическую руку специально, чтобы она гладила живот коту. Рука должна гладить так, чтобы коту нравилось и он не начал царапаться. Как это сделать, никто предсказать не может. Воспользуемся генетическим алгоритмом. Функция приспособленности будет показывать время от начала работы механической руки до момента, когда кот начал царапаться. Аргументы этой функции, они же гены нашей популяции, — количество пальцев на руке, прилагаемое усилие и скорость движений. Начальную популяцию выберем случайным образом, а её размер определим сами. Каждой рукой из первого поколения погладим кота и замерим время до момента, когда кот начал царапаться. Возьмём параметры рук с самым долгим временем и используем их для конструирования второго поколения рук. В конце концов получим руку, которую кот будет терпеть дольше всех возможных.

    Семантические сети. Представление знаний – отдельная задача в сфере искусственного интеллекта. Одно из её решений – семантические сети. Они представляют собой описание набора сущностей и связей между ними и изображаются в виде графа. Связи могут быть различных типов: является, является частью, содержит, и так далее. Напомню, что знание — это информация вместе со способом её интерпретации. Семантические сети дают возможность представлять и то, и другое.

    Создание семантических сетей начинается с описания схемы данных, то есть задаётся, какие классы объектов существуют и какие между ними связи. Это называется метаданными, то есть данными о данных.

    Затем задаются всевозможные конкретные объекты, которые отвечают этим связям.

    Рассмотрим небольшой пример семантической сети в предметной области постановки диагнозов. Для начала создаём метаданные. Есть сущность пациент, у него может быть множество жизненных показателей. Жизненный показатель — это, в нашем очень упрощённом случае, название и значение. Сущность заболевание — это набор симптомов. Симптом — это диапазон значений жизненного показателя.

    Теперь заведём конкретные значения, чтобы семантическая сеть могла распознавать простуду. Абстрагируемся и будем считать, что у простуды единственный симптом — повышенная температура. Сначала укажем сами сущности, и чем они являются:

    • Температура — это Жизненный показатель.

    • Простуда — это Заболевание.

    • Больше 37 градусов — это Симптом.

    Связываем: Простуда имеет Симптом значения Температуры больше 37. Теперь заведём пациента, скажем Полуэкта. Его температура тела сегодня — 38 градусов. На этом всё, остаётся написать механизм логического вывода, который будет проходить по сети и искать, симптомы каких заболеваний есть у пациентов. В результате программа выдаст, что у Полуэкта, возможно, простуда. Опять же, этот механизм может быть универсален, можно написать его один раз, а затем только пополнять базу знаний для постановки новых диагнозов.

    Конечно, температура может говорить не только о простуде, у человека может быть несколько заболеваний. Этим и хороши семантические сети — их можно расширять и пополнять практически бесконечно. В нашем случае мы можем добавить множество жизненных показателей, симптомов, анализов, информации о действиях и побочных действиях лекарств, различных особенностях организма и так далее. Полное описание какой-либо предметной области называют онтологией.

    Кроме логических выводов, семантические сети можно использовать для генерации типичных объектов, например, эпизодов сериала.

    Например, для сериала о врачах мы можем задать всевозможные данные — болезни, симптомы и их лечение, возможные обстоятельства и так далее. В результате работы семантической сети, в начале серии, когда пациенту становится плохо, проявляется не какой-то симптом, а именно специфичный для этой болезни. И доктор от волчанки пропишет именно стероиды, а не аспирин. Это возможно, благодаря тому что в семантической сети содержатся знания о том, какой именно болезни соответствуют симптомы и какое необходимо лечение.

    Различные методы искусственного интеллекта можно использовать совместно. Например, вершины семантической сети могут быть фреймами, а нейронную сеть можно обучать с помощью генетического алгоритма. В общем, искусственный интеллект — это очень обширная и интересная тема, содержащая множество задач и методов. Как и с любой другой технологией, не стоит всегда и везде использовать один и тот же подход только потому, что он модный и популярный. Каждый метод или их комбинации могут подходить для своего круга задач.
    1   2   3   4   5   6   7   8   9   ...   14


    написать администратору сайта