Электронная библиотека » Роман Душкин » » онлайн чтение - страница 6


  • Текст добавлен: 27 сентября 2019, 11:40


Автор книги: Роман Душкин


Жанр: Прочая образовательная литература, Наука и Образование


сообщить о неприемлемом содержимом

Текущая страница: 6 (всего у книги 21 страниц) [доступный отрывок для чтения: 6 страниц]

Шрифт:
- 100% +
Раздел 2.3. Эволюционные алгоритмы

Следующим классом методов, являющимся ещё одним представителем восходящей парадигмы создания искусственного интеллекта, являются эволюционные алгоритмы. Этот класс методов является отдельным направлением в рамках исследований по искусственному интеллекту, в котором исследуются и моделируются процессы естественного и искусственного отбора. Все эволюционные алгоритмы моделируют базовые эволюционные процессы в природе – наследование, мутации и отбор.

В применении к технологиям искусственного интеллекта работа эволюционных алгоритмов всегда связана с взаимодействием искусственной интеллектуальной системой с какой-либо средой, а опосредованно через неё, возможно, и с другими интеллектуальными системами (как искусственными, так и естественными). Такая среда сама может быть как искусственной (виртуальный мир, «песочница»), так и представлять собой объективную реальность, с которой искусственная интеллектуальная система взаимодействует при помощи набора сенсоров и исполнительных механизмов.

На текущий момент в рамках эволюционных алгоритмов выделяются следующие направления:

• эволюционное программирование;

• генетическое программирование;

• эволюционные стратегии;

• дифференциальная эволюция;

• генетические алгоритмы;

• нейроэволюция.

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

Что, если вычислительные процессы могли бы эволюционировать так же, как это делают биологические виды в своей экологической среде? Возможно, получилось бы «выращивать» программы для оптимального решения поставленной задачи? Эволюционное программирование как раз и обратилось к этой идее, когда в 1960 г. доктор Лоуренс Фогель предложил рассматривать «разумные системы» как такие, которые способны моделировать окружающую их среду и делать на основании этого те или иные прогнозы для наиболее оптимального достижения своей цели. Фактически это было началом агентного подхода в искусственном интеллекте.

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

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

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

Далее. Эволюционная стратегия – это эвристический метод оптимизации, разработанный в 1964 г. Инго Рехенбергом. Фактически этот метод стал предтечей генетических алгоритмов, хотя в том или ином виде они прорабатывались и ранее. В эволюционной стратегии осуществляется поиск целевого вектора, компонентами которого являются действительные числа. Для поиска решения осуществляется скрещивание особей (векторов) и мутации. Далее применяется функция отбора, которая принимает на вход всю когорту: родительские особи и их потомков. Отбор осуществляется детерминированным образом – оставляются самые лучшие особи, причём без повторений. Операция мутации может быть произвольной над действительными числами, но обычно используется простое добавление нормально распределённого случайного числа к компонентам векторов. Важным дополнением эволюционной стратегии является то, что в процессе эволюции параметры нормального распределения добавляемой в рамках мутации случайной величины адаптируются под поиск решения задачи.

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

Суть его проста. Пространство поиска представляет собой векторы. Для каждого вектора текущего поколения случайным образом выбираются три других вектора из этого же поколения, над которыми производится операция мутации, являющаяся параметром алгоритма. Например, к первому вектору добавляется удвоенная разность между вторым и третьим векторами. Далее полученный мутантный вектор подвергается «слиянию» с изначальным вектором – для каждого элемента изначального вектора производится случайный выбор того, замещать ли его соответствующим элементом мутантного вектора. После этой операции получается пробный вектор, на котором вычисляется значение фитнесс-функции. Если оно ближе к экстремуму, чем значение на изначальном векторе, то в новое поколение идёт пробный, а иначе в нём остаётся изначальный. И такой процесс осуществляется над каждым вектором текущего поколения.

Перейдём к наиболее известному из методов, который является ярким представителем эволюционного подхода. Это генетические алгоритмы. Генетические алгоритмы сами по себе опять являются одним из эвристических методов оптимизации для поиска оптимального решения (или, как минимум, субоптимального). Они работают с данными, которые могут быть представлены в виде «хромосом» – последовательностей генов, т. е. списков каких-либо значений, к которым можно применить генетические операции. Здесь уже нет такого жёсткого требования насчёт типа таких данных, главное – чтобы на генах были определены эти операции, которые возвращали бы приемлемый результат, имеющий смысл.

Генетический алгоритм состоит из следующих шагов.

1. Генерация начальной популяции.

2. Цикличный процесс рождения новых поколений и отбора.

3. Остановка и возвращение результатов поиска.

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

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

Операция скрещивания, или перекрёста (англ. crossingover), – это операция, при которой берутся две особи текущего поколения и их генотип перемешивается друг с другом. Чаще всего два генотипа разрезаются в одинаковом случайном месте, и после этого вторые части переставляются друг с другом. Так получается два новых потомка. Фактически скрещивание делается каждой особи с каждой, да ещё и несколько раз, чтобы разрезание генотипа происходило в разных местах. Так получается набор особей следующего поколения, при этом обеспечивается генетическое разнообразие.

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

Операция отбора – это выбор наиболее приспособленных особей. Обычно выбирается какая-то небольшая доля (например, 10 %) тех особей нового поколения, для которых фитнесс-функция возвращает наилучшие результаты. Иногда в отобранное множество особей нового поколения добавляются наименее приспособленные особи, для которых фитнесс-функция возвращает наихудшие результаты. Это делается для получения генетического разнообразия и является одним из инструментов борьбы с «залипанием» в локальных экстремумах. Также иногда в состав нового поколения включаются некоторые представители предыдущего поколения, которые в этом случае называются «элитой». Вообще, операция отбора подбирается на основе экспериментов для каждой конкретной задачи.

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

Общая схема генетического алгоритма показана на следующей диаграмме.



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

• функция генерации случайной особи;

• фитнесс-функция;

• функция перекрёста, включая количество разрезаний хромосомы;

• функция мутации, включая частоту мутации;

• функция отбора, включая все условия попадания особи в новое поколение – есть ли элита, какой процент особей сверху и снизу отбирается в новое поколение;

• количество особей в поколении;

• требуемый уровень точности;

• целевое значение фитнесс-функции.

Забавно то, что в этот алгоритм можно «уложить» и подбор параметров для методов машинного обучения и даже для самих эволюционных алгоритмов. Дело в том, что методы восходящего подхода искусственного интеллекта несколько несовершенны, а потому часто используются в автоматизированном режиме, когда исследователь подбирает параметры обучения или генетического алгоритма вручную, изучая результаты прогонов алгоритмов на тех или иных значениях параметров. Вот так и здесь – параметры генетического алгоритма можно подвергнуть подбору при помощи генетического алгоритма.

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

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

Глава 3
Современное состояние технологий

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

• машинное обучение;

• распознавание образов;

• интеллектуальный анализ данных, или «дата-майнинг»;

• обработка НЕ-факторов знания;

• принятие решений;

• поиск информации;

• обработка естественного языка;

• представление знаний;

• робототехника;

• роевой интеллект.

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

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

Раздел 3.1. Методы поиска

В рамках искусственного интеллекта выделяется задача поиска, которая представляется крайне важной. Фактически поиск в довольно широком смысле – это нахождение траектории в некотором пространстве от текущего состояния к целевому. Это очень общее определение, так как и пространство поиска, и целевая функция могут быть произвольными. Для искусственного интеллекта очень важно уметь осуществлять поиск, поскольку поиск – это один из методов познания реальности, получения новых знаний. Так что в этом разделе имеет смысл рассмотреть некоторые особо важные технологии и задачи поиска в искусственном интеллекте.

Выделяются следующие типы поиска, которые имеют непосредственное отношение к методам искусственного интеллекта:

• поиск в пространстве состояний;

• поиск пути;

• эвристический поиск;

• информационный поиск.

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

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

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

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

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

Неинформированные методы поиска подразделяются на следующие варианты.

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

• Поиск в ширину (BFS) – поиск, в котором из начальной вершины графа состояний просматриваются все её смежные вершины, а переход в следующую вершину происходит только после просмотра всех вершин текущего уровня. Если любой просмотр имеет одинаковую стоимость, то данная стратегия поиска является оптимальной. В реальных задачах этого добиться непросто.

• Поиск по критерию стоимости (UCS) обобщает предыдущий метод на случай, когда переход в разные смежные вершины в графе состояний имеет разную стоимость. На каждом шаге просматривается смежный узел, переход в который имеет наименьшую стоимость. Эта стратегия оптимальная в том случае, если все стоимости строго положительны.

• Поиск в глубину (DFS) – такой поиск, при котором переход в пространстве состояний осуществляется до самой глубокой вершины в графе, а потом поиск возвращается на шаг назад или ещё ранее, в случае если целевой вершины не обнаружено, а смежных непросмотренных вершин у текущего узла графа больше нет.

• Поиск с ограничением глубины (DLS) – вариант поиска в глубину, который ограничивает глубину просмотра некоторым заданным параметром, что позволяет решить проблему бесконечного пути, на котором «спотыкается» предыдущая стратегия. • Поиск в глубину с итеративным углублением (IDDFS) – расширение предыдущей стратегии, при котором заданное максимальное значение глубины постепенно увеличивается до тех пор, пока не будет найдено целевое состояние.

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

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

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

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

• Поиск по первому наилучшему совпадению. Если имеется правило оценки заданной вершины, то алгоритм поиска по первому наилучшему совпадению исследует граф состояний системы, выбирая для расширения вершины в соответствии с этим правилом оценки. Фактически это общий вид эвристического поиска, когда правило оценки задаётся функцией эвристики, принимающей во внимание не только саму вершину, но и любое количество иных факторов (например, вся историческая информация, собранная алгоритмом поиска к текущему моменту).

• Алгоритм А* – вариант предыдущего метода, наиболее часто используемый для информированного поиска по графу. В качестве эвристической функции используется функция «расстояние + стоимость», где расстояние от текущей вершины до целевой оценивается эвристически, а стоимость определяется функцией достижения текущей вершины из начальной, и эта функция может быть как эвристической, так и нет.

• Алгоритм IDA* – определённого рода сочетание алгоритма A* и алгоритма итеративного углубления (метод неинформированного поиска). Алгоритм может остановить развёртывание вершины в двух случаях: когда глубина поиска превышает установленный предел и когда оценка стоимости пути через текущую вершину превышает текущий предел стоимости, т. е. используются два критерия из обоих алгоритмов.

• Алгоритм SMA* – упрощение алгоритма A*, работающее в ограниченной памяти, в то время как алгоритм A* может требовать экспоненциального объёма памяти для своей работы. Единственное отличие – когда вся отведённая для работы алгоритма память использована, то из списка вершин для посещения удаляются вершины, имеющие наибольшее значение стоимости. Все остальные шаги такие же, как в алгоритме A*.

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



Что ж, перейдём к следующему типу поиска – поиску пути. Этот тип поиска крайне востребован в таких областях, как игровой искусственный интеллект и навигация, причём вторую область можно разделить на навигацию для человека (т. е. построение оптимального маршрута от начальной точки до конечной с учётом возможных промежуточных) и для автономного интеллектуального агента, типа автономного автомобиля (фактически то же самое, но с учётом дополнительных ограничений и нюансов функционирования такого агента). По своей сути алгоритмы поиска пути являются теми же самыми алгоритмами поиска на графах, только теперь граф представляет не отображение перехода между состояниями системы, а более конкретизированную вещь – отображение локаций и путей между ними в физической или виртуальной реальности.

Если граф пространства, в котором ищется путь, не слишком сложный, то можно воспользоваться алгоритмами поиска в пространстве состояний. Обычно для этих целей используется алгоритм A* с различными эвристиками, подбираемыми под конкретную задачу. Если пространство (географическая местность или виртуальное пространство) более сложное, то резонно воспользоваться специализированными алгоритмами. В качестве интересных примеров таких алгоритмов можно отметить следующие.

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

• Волновой алгоритм. Алгоритм, который предназначен для поиска пути на дискретном рабочем поле, представляющем собой ограниченное пространство, разбитое на прямоугольные ячейки. Осуществляет поиск кратчайшего пути из стартовой ячейки до целевой, если такой путь существует. Разбивается на три этапа – инициализацию ячеек, распространение волны и восстановление пути. Имеет два варианта с точки зрения связности ячеек – ортогональный и ортогонально-диагональный. Может быть обобщён на ячейки произвольной формы, даже не совпадающие по форме в рамках одного дискретного рабочего поля. Чаще всего применяется в компьютерных играх и виртуальной реальности для поиска пути в пространстве. Кроме того, эффективно используется для трассировки печатных плат.

• Муравьиный алгоритм. Довольно эффективный алгоритм оптимизации для нахождения приближённых решений задачи по обнаружению самого выгодного маршрута, проходящего через указанные узлы графа хотя бы по одному разу с последующим возвратом в исходную вершину (задача коммивояжёра). В основе алгоритма лежит поведение муравьёв-фуражиров, которые собирают для колонии корм. Фактически это один из первых алгоритмов восходящей парадигмы искусственного интеллекта, поскольку моделирует низкоуровневую биологическую систему на базе многоагентного подхода. Муравьи изначально ходят случайно вокруг муравейника, но после обнаружения источника пищи они прокладывают тропу при помощи феромонов. Феромоны имеют тенденцию испаряться, если их не обновлять, и это значит, что более короткие маршруты имеют преимущество перед длинными. Испарение феромонов также играет важную роль для предотвращения попадания в локальные экстремумы.

• Методы динамического программирования. Основная суть динамического программирования заключается в декомпозиции задачи на подзадачи и применении к упрощённым задачам тех же методов решения. Если декомпозиция возможна, то задача разбивается на настолько дробные подзадачи, насколько это осуществимо, и тогда каждая мелкая подзадача, возможно, решается более просто. После решения каждой подзадачи собирается окончательный вариант. Этот метод не является универсальным, и в каждом случае необходимо смотреть, есть ли возможность его применения. Кроме того, это как бы метаметод, метод высшего порядка, так как в его рамках могут использоваться любые другие методы для решения атомарных подзадач.

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

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

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

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

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

2. Полнотекстовый поиск – наиболее сложный вид информационного поиска, задача которого в общем виде не решена до сих пор. Поиск ведётся по неструктурированным текстам, и чаще всего требуется найти нечто, отвечающее определённому смыслу. Это задача более высокого порядка, нежели простой поиск соответствия в корпусе текстов какой-либо входной строки (информационно-поисковые машины). Система, осуществляющая полнотекстовый поиск, должна распознать смысл входного запроса и дать ответ в соответствии с этим смыслом. Многие методы искусственного интеллекта – как символьные, так и «грязные» – направлены именно на решение этой задачи.

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

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

Внимание! Это не конец книги.

Если начало книги вам понравилось, то полную версию можно приобрести у нашего партнёра - распространителя легального контента. Поддержите автора!

Страницы книги >> Предыдущая | 1 2 3 4 5 6
  • 4.4 Оценок: 5

Правообладателям!

Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.

Читателям!

Оплатили, но не знаете что делать дальше?


Популярные книги за неделю


Рекомендации