<<:o:

Право на ошибку

Михаил Бурцев

"С. Лем
СУММА ТЕХНОЛОГИИ
ГЛАВА ВОСЬМАЯ
ПАСКВИЛЬ НА ЭВОЛЮЦИЮ
КОНСТРУКЦИИ, ОСНОВАННЫЕ НА ОШИБКАХ"

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

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

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

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

Что такое эволюционный алгоритм, в чем он заключается? Это просто! Берем школьный учебник по биологии, открываем раздел о современном толковании теории Дарвина и заменяем слово "особь" на словосочетание "способ(параметры) решения", а словосочетание "внешняя среда" на "условия задачи", все остальные слова можно оставить без изменения. Теперь пытливый читатель легко может представить, как работает эволюционный алгоритм:
1. генерируется множество способов(параметров) решения;
2. из этих способов отбираются те, которые дали наилучшие решения, т.е. решения, в наибольшей степени удовлетворяющие условиям задачи;
3. отобранные способы копируются с некоторыми ошибками (мутации), при этом отдельные способы могут смешиваться друг с другом (кроссовер);
4. возврат к шагу 1.
Процесс генерации способов решений останавливается, как только получен необходимый результат - приемлемое решение. Естественно, что эволюционный алгоритм не гарантирует получение самого лучшего решения, как не гарантирует и того, что решение, которое нас устроит, будет в конечном итоге получено.

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

В начале 90-х началось возрождение эволюционных алгоритмов. Образовалось три основных направления в эволюционных вычислениях.
1. Генетические алгоритмы. Для кодирования решений применяются двоичные числа, реже вещественные. Новые решения генерируются при помощи мутаций и кроссовера.
2. Эволюционные стратегии. Кодирование вещественными числами, мутации подчиняются нормальному распределению, кроссовер отсутствует.
3. Генетическое программирование. Решениями являются компьютерные программы, в процессе их эволюции используются мутации и кроссовер.

Как грибники после дождя, ученые ринулись на поиски реализации алгоритма, которая позволила бы эффективно решить любую задачу. Сначала параметры алгоритмов подстраивались вручную. Так аспирант Оливер задавал параметры и запускал генетический алгоритм оптимизации весов для искусственной нейронной сети робота, а сам шел в паб. Затем появились методы самоорганизации параметров эволюционных алгоритмов. Теперь Оливер запускал генетический алгоритм для поиска оптимальных параметров генетического алгоритма оптимизации весов для искусственной нейронной сети робота и шел в паб. Наверно вскоре Оливер бы спился при такой "научной работе", но коллеги помогли - доказали теорему. И называется эта теорема "No Free Lunch Theorem", что в вольном переводе на русский звучит как "Халявы не будет". Теорема утверждает, что для любого стохастического алгоритма поиска, к коим и относятся эволюционные алгоритмы, средняя эффективность будет равна простому случайному поиску. Другими словами, если нам необходимо решать задачи, которые не похожи друг на друга, то мы можем с одинаковым успехом просто "тыкать пальцем в небо" или использовать эволюционный алгоритм.

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

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

Как же происходит создание эвоботов(эволюционных роботов)? Обычно, наибольшее время занимают компьютерные эксперименты. Именно в компьютерной модели и происходит эволюция. Сначала прототип будущего эвобота учится передвигаться. Если это шагающий робот, то сначала его ноги заплетаются, он часто падает и не может встать, но уже несколько поколений спустя отдельные виртуальные прототипы будущего эвобота резво бегают. Затем наступает этап формирования системы управления поведением. В зависимости от целей конструктора в процессе искусственной эволюции отбираются нейронные сети, обеспечивающие лавирование между препятствиями или, например, сбор объектов. После того, как прототип успешно выдержал все испытания, программа "заливается" в "железо" реального робота.

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

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

Нет ничего странного в том, что интернет является отличным полигоном для использования эволюционных технологий. Так в совместном проекте Колумбийского университета и университета Йовы разработана мультиагентная система InfoSpiders [http://myspiders.biz.uiowa.edu] предназначенная для поиска информации в интернете. Инфопаучки сканируют сеть в поисках ресурсов, удовлетворяющих запросу пользователя, тем, кто найдет "правильные" ресурсы выдается энергия. Чем больше у паучка энергии, тем выше вероятность того, что он выживет и оставит потомство. Так популяция инфопаучков эволюционирует.

Другая область применения генетических алгоритмов в интеренете - оптимизация сетевых экранов (firewall). Идея применить эволюционные методы для анализа сетевого трафика возникла в hi-tech компании MASA Group [http://www.masagroup.net/], занимающиеся разработкой компьютерных адаптивных систем. К тому времени компанией была разработана библиотека алгоритмов по оптимизации, машинному обучению, а так же по определению изменений в сложных образах. Специалисты MASA Group решили, что при защите сети основной упор надо делать не на сравнение сетевой активности с шаблонами известных атак, как в обычных экранах, а на определении отклонений от нормы в работе сети. Ведь если вторжение проводится новым способом, неизвестным системе, то обычный подход не сможет определить атаку. В результате сотрудничества MASA Group и MATRAnet [http://www.matranet.com/] эти идеи отлились в программный продукт M>Detect, который по заверению представителей компаний вот-вот должен появится на рынке.

Работа M>Detect состоит из нескольких этапов. На первом этапе система при помощи эволюционного алгоритма обучается "нормальному" режиму работы сети. К концу обучения формируется набор фильтров, описывающих разрешенные потоки данных. Теперь M>Detect может переходить к следящему режиму, в котором используется система распознавания новизны в образах. При этом одновременно используется несколько временных окон, разной длительности, что позволяет детектировать, как "быстрые", так и "медленные" атаки. Как только в сетевом трафике возникают аномалии, программа отсылает системному администратору предупреждение и лог активности. Все это позволяет M>Detect обнаруживать сетевые атаки на ранней стадии, а также реагировать на неизвестные типы атак. Если предупреждение было ложным, то оператор переключает систему в режим "дообучения", что позволяет избежать повторного ложного срабатывания. По заявлениям разработчиков уровень ложных предупреждений 1 - 2 в сутки при трафике 30 Гб/с, что, несомненно, является хорошим результатом.

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

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

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

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

<<:o:

SpyLOG