Файл: Тема 11. Введение в искусственный интеллект.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 18.10.2024

Просмотров: 10

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1
ТЕМА 11. ВВЕДЕНИЕ В ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ
11.2.
Подходы и методы восходящей парадигмы. Нейронные сети, структурализм, машинное обучение. Эволюционные алгоритмы
Главная идея восходящей парадигмы Искусственного Интеллекта заключается в том, что интеллект можно получить при помощи моделирования большого количества базовых элементов, которые составляют разные «субстраты» и сети, на которых возник интеллект естественный. Мы, например, моделируем нейроны и создаём из них сеть, а потом ждём, когда в этой сети появится интеллект, разум, сознание и так далее. Или, например, моделируем гены, запускаем искусственную эволюцию и ждём, когда появится разумное существо. То есть мы как бы ожидаем, что через моделирование мельчайших элементов система взойдёт до высших психологических функций мозга. Также восходящая парадигма называется «грязной».
Восходящая парадигма была первой, так как именно с разработки модели искусственного нейрона началось шествие Искусственного Интеллекта по планете. Это было в пятидесятых годах двадцатого века. Апологетом восходящей парадигмы был Марвин Мински, друг Джона Маккарти, с которым они вместе основали первую в мире лабораторию Искусственного Интеллекта в Массачусетском технологическом институте. Именно Джон Маккарти придумал сам термин
«искусственный интеллект», но Марвин Мински косвенно был и тем, кто запустил первую зиму
Искусственного Интеллекта, так как похолодание началось с публикации его знаменитой книги
«Перцептроны», в которой он обосновал невозможность решения на этой модели некоторых важных задач.
Исследования в разных направлениях продолжались, и к настоящему времени в рамках восходящей парадигмы разработано множество методов, которые условно разделяют на три подхода — это структурный, эволюционный и квазибиологический подходы. Давайте кратко охарактеризуем каждый из них.
Структурный подходоснован на идее о том, что наиболее важной для эмерджентного проявления разума и других подобных функций вплоть до сознания является сетевая структура. Это значит, что моделирование должно затрагивать не только базовые элементы типа нейронов, но и их взаимосвязанные сети. При этом полагается, что сеть элементов, как сложная система, обладает нелинейными свойствами относительно базовых элементов, а потому при увеличении количества взаимосвязанных элементов сложность модели изменяется нелинейно и зачастую даже непредсказуемым образом так, что при переходе некоторого порога сложности как раз и начинают проявляться те самые эмерджентные эффекты, которых мы так ждём. Главным и, фактически, единственным представителем структурного подхода являются искусственные нейронные сети.
Эволюционный подход реализует так называемую «искусственную эволюцию» и, фактически, решает оптимизационную задачу поиска значения целевой функции в заданном пространстве решений с установленными ограничениями. Этот подход содержит большое количество эвристических методов, некоторые из которых используются даже для гарантированного нахождения оптимума для мультимодальных недифференцируемых функций в пространствах высоких размерностей. Важным методом эволюционного подхода являются генетические алгоритмы, которые мы рассмотрим чуть позже. Здесь также есть несколько других важных методов, в числе которых эволюционное программирование и даже нейроэволюция, когда искусственному отбору подвергаются нейронные сети.


2
Кратко коснёмся квазибиологического подхода и его методов. Фактически, это отдельное направление исследований в Искусственном Интеллекте, так как основано не на цифровом моделировании in silico разных аспектов интеллекта, а на применении биомолекулярных механизмов для того же самого. Этот подход ещё называется «биокомпьютингом», и это очень перспективное направление. В рамках этого подхода разработано большое количестве методов — начиная от биомолекулярной электроники, молекулярных вычислений и заканчивая нейрокомпьютингом. В последнем направлении важной вехой является разработка нейроморфных чипов. Можно сказать, что прорыв в области Искусственного Интеллекта будет лежать на пересечении трёх областей — техники, информатики и химии.
Далее кратко рассмотрим по одному методу структурного и эволюционного подходов — нейронные сети и генетические алгоритмы.
Нейронная сеть представляет собой собранные в слои искусственные нейроны, которые обмениваются информацией. Есть выделенный слой, называемый «входным». Нейроны этого слоя получают информацию извне — это как бы сенсоры нейронной сети. Каждый из этих нейронов осуществляет первичную обработку входного сигнала, результат которой передаётся дальше на нейроны следующего слоя. Все внутренние слои нейронной сети называются скрытыми. Обычно нейроны одного слоя передают информацию дальше на следующий слой, но существует большое количество совершенно различнейших архитектур и топологий нейронных сетей, где нейроны передают информацию в самые разные места. Например, в рекуррентных нейронных сетях нейроны более глубоких слоёв могут передавать информацию на более ранние слои. Наконец, последний слой называется «выходным», и нейроны в нём при помощи своей активации отвечают на поставленные перед нейронной сетью вопросы.
Как это работает? Один нейрон устроен довольно просто. У него есть множество входов, на каждый из которых может быть подано какое-то значение. В первых моделях полагалось, что таким значением может быть либо 0, либо 1, но сейчас есть модели, в которых таких ограничений нет.
Но это и не важно, так как каждая входная связь имеет так называемый вес, на который умножается входное значение. Все такие произведения суммируются, и полученная сумма передаётся в так называемую функцию активации, которая определяет выходное значение нейрона. Она как раз зависит от суммы, и часто имеет определённый порог, превышение которого запускает выходной импульс нейрона. Всё. На каждом такте работы нейронной сети каждый нейрон собирает все свои входные значения, умножает их на веса связей, суммирует и применяет функцию активации. Если она сработала, нейрон передаёт импульс на своё выход. Очень простая, но очень сильная модель, которая и обеспечивает все те достижения в области нейронных сетей, про которые мы слышим сегодня.
В чём суть этой модели? В том, что она может обучаться. В прошлой лекции мы говорили об адаптивности искусственной интеллектуальной системы. Это этот случай. Запрограммировать нейронную сеть — это первый шаг. Программист всего лишь собирает программные модули, моделирующие нейроны, в сеть, и параметрами здесь являются типы нейронов, топология сети, количество слоёв и некоторые другие параметры. Но программист не определяет задачи, для решения которой собрана нейронная сеть, поэтому говорить о том, что «нейросетевой искусственный интеллект — это всего лишь алгоритм, а алгоритм никогда не сможет превзойти разум» просто некорректно. Алгоритм здесь определяет лишь поведение одного отдельного нейрона и взаимодействие между двумя нейронами при передаче информации. Но естественный нейрон в нервных системах живых существ на Земле — это довольно алгоритмическая биологическая система, которая хоть и действует в стохастических условиях, но чётко выполняет один простой алгоритм. Так почему же искусственный нейрон, по мнению некоторых, действуя алгоритмически так же, как действует естественный биохимический нейрон, не может породить



3 разум и сознание?
Всё дело в обучении. Когда у нас собрана искусственная нейронная сеть, её необходимо обучить.
Для этого создаётся обучающая выборка данных, которая размечается специальным образом.
Есть несколько методов обучения, но мы рассмотрим только один: обучение с учителем и обратное распространение ошибки. Мы подаём на вход нейронной сети некоторый образец, а потом говорим, что должно быть на выходе. Это обучающее воздействие. Если на выходе у нейросети получилось что-то другое, то осуществляется подбор весовых коэффициентов на связях между нейронами так, чтобы суммарная ошибка между текущим выходом и ожидаемым была минимальной. Это аналитическая задача, и она решается при помощи дифференцирования функции активации. После того как нейронной сети продемонстрировано большое количество образцов, её весовые коэффициенты как-то там настроились, и после этого на вход ей подаются образцы из тестовой выборки. Если ошибка на тестовой выборке небольшая, то считается, что нейросеть успешно обучилась.
Вот, собственно, и ответ — никакого запрограммированного поведения нейросети здесь нет.
Её конечное поведение зависит от выборки данных для обучения, хотя оно является довольно устойчивым к небольшим изменениям выборки. Этот метод прекрасно решает задачу распознавания образов и, если более общо, — задачи классификации и аппроксимации функций.
Например, таким способом можно обучить нейронную сеть распознавать лица людей или определять, что изображено на фотографии. Сегодня распознавание лиц встроено практически в каждый смартфон, и это делает нейронная сеть. Распознавание смысла текста и генерация текста также сегодня работает на нейросетях.
Генетический алгоритм — это метод оптимизации для поиска оптимального или хотя бы субоптимального значения целевой функции. Этот метод работает для функций, целевое значение которых мы можем хорошо описать, и нужно найти набор входных данных, которые приводят к этому целевому значению. Данные должны быть описаны в виде так называемых «генов» — некоторых числовых характеристик, которые можно так или иначе комбинировать друг с другом.
Весь набор входных данных в этом случае называется хромосомой.
Как работает генетический алгоритм? На этапе запуска генерируется случайная выборка хромосом или особей первого поколения. Далее производится скрещивание всех особей друг с другом, для чего берутся хромосомы этих особей, и к ним применяется операция кроссинговера. Обе хромосомы разрезаются в одном и том же месте, и вторые части переставляются друг с другом, в результате чего получаются две новые хромосомы. У первой из них начало состоит из генов первой родительской особи, а окончание из генов второй. А у второй дочерней хромосомы всё наоборот. После этого необходимо обеспечить какое-то генетическое разнообразие, и для этого используется мутация. Случайным образом в некоторые дочерние хромосомы вносятся случайные изменения. Так получается новое поколение особей.
Далее в действие вступает процедура отбора. К каждой дочерней хромосоме применяется так называемая фитнес-функция. Если находится такая особь, разница значения фитнесс-функции которой от целевого значения меньше заданной ошибки, то алгоритм останавливается — эта особь является той самой, генетический набор которой представляет собой решение задачи. Если такой особи нет, то в новое поколение отбираются самые лучшие особи, и цикл наследования и отбора запускается снова. Иногда в отобранное множество попадают и худшие особи, чтобы обеспечить генетическое разнообразие и не допустить залипания алгоритма в локальных экстремумах. Вообще каждая из операций генетического алгоритма может иметь много разных вариантов. И этот метод работает. Например, есть такое забавное применение: генерируется некоторый ландшафт, и запускается эволюция для генерирования «существ», успешно передвигающихся по этому ландшафту. Через конечное количество поколений алгоритм успешно находит таких существ,


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