ХАРАКТЕРИСТИКА МОДЕЛИ АДАПТИВНОГО ПОВЕДЕНИЯ ПРОСТЕЙШЕГО ИСКУССТВЕННОГО БИОЦЕНОЗА И ПРИНЦИП ЕЕ РАБОТЫ Автор: Тишин Игорь Владимирович, студент гр. 610701 ФКП БГУИР inish@rambler.ru Руководитель: Кривоносова Т.М., ст.преп.каф.ВМиП БГУИР tanjamk@mail.ru В статье [1] было в общих чертах рассказано о примере реализации компьютерной модели сообщества обучающихся «живых организмов». Рассмотрим организацию этой модели. «Пространство жизнедеятельности» представляет собой поле, поделенное на клетки. В клетках живут, размножаются и умирают организмы. Всего в модели три вида организмов: растения, травоядные и хищники. Травоядные питаются растениями, а хищники – травоядными. Вообще, целью является воссоздание в программе самого простенького биоценоза с тремя трофическими уровнями: продуценты, которые вырабатывают энергию, можно сказать, прямо из окружающей среды, консументы первого уровня, поглощающие непосредственно продуцентов и консументы второго уровня, поглощающие консументов первого. Более просто это можно назвать связью вида растение – травоядное – хищник. Для того чтобы сделать модель более правдоподобной, организмам дана способность обучаться. Ну и естественно, травоядные и хищники могут передвигаться по полю и взаимодействовать между собой по принципу увидел, догнал, съел. Ну, или – не увидел, не убежал, съели. Рассмотрим пространство, в котором разворачивается действие нашей программы. Пространство дискретно, что связано с реализацией модели на компьютере. Оно является двухмерным, т.е. присутствуют только длина и ширина объектов, однако для решения некоторых проблем и общего упрощения модели поле свернуто в трехмерном пространстве в тор (бублик), то есть крайняя правая клетка является одновременно и самой левой, а самая верхняя – самой нижней (рис. 1). Таким образом, пространство является одновременно безграничным и ограниченным, и мы не ограничиваем передвижение аниматов, но в то же время и не даем уйти им за пределы поля. Также это позволяет избавиться от ограничения роста растений. В модели имеется виртуальное солнце, которое выделяет энергию, необходимую для существования системы. Время в модели дискретно, как и пространство – таким образом, любое действие организма и воздействие на организм длится один квант времени или, проще говоря, один ход. В каждой клетке каждый ход может находиться по одному растению, травоядному и хищнику. В течение хода организм совершает действие, 1 получает информацию об окружающей обстановке, обрабатывает эту информацию и решает, какое действие предпринять в дальнейшем. Хищники, как более быстрые, ходят первее травоядных – это связано с их метаболизмом. В модели присутствует смена дня и ночи, что влияет на чувствительность сенсоров аниматов и на рост растений. Через определенное количество ходов (день) солнце гаснет, и система вступает в ночную фазу, затем солнце вновь восходит и так далее. Рис. 1. Схема сворачивания в тор рабочего пространства программы Список основных действий, выполняемых моделью в течение каждого хода: 1) старение всех организмов; 2) смерть организмов, достигших возрастного предела; 3) поглощение энергии растениями и их рост; 4) размножение организмов; 5) ориентация в пространстве хищников и травоядных; 6) передвижение; 7) питание и рост; 8) оценка результатов проделанных действий организмом и обучение. Кратко рассмотрим каждый шаг модели. 1) Старение. С каждым ходом возраст всех существ модели увеличивается. Это сделано для того, чтобы регулировать численность популяции каждого типа, а также для того, чтобы определять, достиг ли 2 анимат половой зрелости – если не достиг, значит еще не набрал достаточно опыта для передачи потомству. Когда анимат умирает от старости, то энергия, которую он накопил, переходит в почву – так обеспечивается повышение плодородности почвы. 2) Гибель от старости. Каждый тип организмов имеет свою конкретную продолжительность жизни, но каждый индивид имеет свою собственную продолжительность жизни, немного отличающуюся в ту или иную сторону от общетиповой. Это сделано для того, чтобы организмы не умирали большими группами сразу – ведь в начале работы модели у нас сразу появляется определенное количество живых организмов, если через одинаковый промежуток времени все эти организмы погибнут, то это будет ощутимый удар для системы в целом, от которого равновесие может нарушиться надолго. 3) Рост организмов. Первой в этом процессе участвует растительная масса. Каждое растение поглощает определенную порцию энергии, исходящей от солнца и берет некоторое количество энергии из почвы. Чем более истощена почва, тем меньше энергии оттуда берется, а недостающая компенсируется солнцем. Но только энергии, выделяемой солнцем растению, не хватит и, в конце концов, истощив почву, оно погибнет. Растение увеличивает массу на величину поглощенной энергии. Так оно растет до того момента, когда сможет размножаться. 4) Размножение организмов. У каждого типа организмов существует свой возрастной порог, до наступления которого они не могут размножаться. Однако преодоление этого порога еще не единственное условие для размножения – должны соблюдаться еще два условия: необходимый минимум энергии (новорожденному необходимо какое-то время питаться, поэтому родитель обеспечивает его первоначальным запасом энергии) и свободное пространство рядом, чтобы было куда произвести потомство. Новорожденный отличается от взрослых представителей своего типа только возрастом. 5) Ориентация в пространстве. Анимат анализирует сенсорами доступные ему клетки и получает общую картину окружающей обстановки. В дальнейшем эта информация обрабатывается «мозгом» анимата и принимается решение о дальнейших действиях. 6) Передвижение хищников. Хищники, как более быстрые, ходят первыми. Анимат выполняет то решение, которое выбрал «мозг». Это решение претворяется в жизнь. 7) Питание. Если из нового положения доступна пища, то она съедается. Энергия, которую успело накопить травоядное, переходит к хищнику и поглощается им. Надо отметить, что за ход на нужды 3 жизнедеятельности тратится определенная порция накопленной энергии. Потом эта энергия «выбрасывается» и удобряет клетку поля. 8) Оценка ситуации и обучение. Анимат сравнивает приход и уход энергии, если энергии значительно убавилось (больше, чем на суточные нужды), то действие признается неправильным и в мозгу происходят реакции направленные на то, чтобы в дальнейшем не повторять это действие – анимат обучается. Рассмотрим характеристики «действующих лиц» модели. Растения Данные персонажи в модели играют роль продуцентов, то есть, поставляют необходимую энергию всем остальным ее обитателям. Само растение получает энергию от виртуального солнца и из почвы. Полученная энергия накапливается в виде биомассы и именно в таком виде потребляется более высокими членами пищевой цепи. Таким образом, растения представляют собой фундамент всего биоценоза. Важно правильно задать параметры растения, ведь если растение будет очень быстро набирать массу, то получится система с избытком энергии, что будет способствовать увеличению общей численности всех представителей системы, и мы получим полностью заполненное статичное поле. А если рост будет медленным, то энергия буде уходить из системы со смертью живых организмов и некому будет возвращать ее. Такая система будет медленно угасать до полного вырождения. Примерно такой же эффект будет играть величина накопленной энергии, необходимой для размножения. Растения не могут передвигаться – просто растут стоя на месте. За каждый ход, если светло, получают определенную дозу энергии, которая тратится на рост биомассы. Рост возможен до определенного предела. Как только растение достигло предельного размера, происходит процесс деления и потомок появляется в соседней с родителем свободной клетке, если таковые имеются. Если рядом свободных клеток нет, то растение просто живет, не прибавляя больше в росте. Каждый ход в ночное время суток, когда солнечный свет отсутствует, растение черпает энергию из почвы, постепенно истощая площадку под собой. Если почва истощится, то ближайшей же ночью растение гибнет, а энергия, накопленная растением, возвращается в почву, обогащая участок. Освободившееся место занимают потомки растений с соседних клеток. Если почва под растением была истощена, то энергия не возвратится в почву и новое растение, выросшее там сможет прожить очень недолго и снова истощит почву. Однако, энергия, полученная от солнца, по величине больше поглощенной из земли – баланс положительный и со сменой одного-двух растений данный участок вновь сможет дать долгую жизнь растению 4 Живые существа Травоядные и хищники по своей организации не очень сильно отличаются друг от друга, так что можно сначала поговорить об их общем строении, а потом и об их различиях. В модели анимат представляет собой попытку воссоздать в «цифровом облике» одно из реально существующих очень просто устроенных животных, к примеру, червя. Конечно, говорить о разуме получившегося организма можно лишь с большой натяжкой, впрочем, как и о разуме червя, однако коечто организм все же умеет. Он может передвигаться по полю и оценивать окружающую обстановку, так как обладает каким-никаким, но зрением (или органами чувств, его заменяющими). На основании увиденного и почувствованного умеет формировать свои будущие решения. Нельзя утверждать, что решения будут правильными, однако те, у кого неправильных решений будет больше, будут либо съедены, либо погибнут от голода. Если у организма под носом будет пища, то эту пищу он съест – это единственная врожденная черта поведения. У аниматов первого поколения нет инстинктов – при рождении «мозг» забит беспорядочными данными, однако в процессе жизнедеятельности в мозгу возникают и крепнут необходимые логические связи и теперь, анимат будет знать, что, например, к хищнику приближаться нельзя ни в коем случае, а к растению – наоборот, крайне необходимо (если анимат травояден). Однако линия поведения, выработанная организмом, будет предаваться потомству, так как если организм дожил до половозрелого возраста, то его стратегия поведения в большинстве случаев может быть названа если не хорошей, то приемлемой. Таким образом, от поколения к поколению линия поведения должна совершенствоваться или хотя бы не ухудшаться. Если у кого-то ухудшилась, то они, опять же погибнут либо от голода, либо в когтях хищника и «неправильное» поведение не будет передано потомству. Строение анимата Аниматы-животные могут передвигаться по полю и взаимодействовать с объектами, встреченными на пути. Все взаимодействия сводятся к одному принципу – съел – не съел. На основе данных об окружающей обстановке они могут принимать решения относительно дальнейших действий. Решения принимаются нейронной сетью на основе входных данных от сенсоров. Далее анимат делает то, что решила сеть и снова анализирует обстановку. Если состояние анимата улучшилось, то решение признается правильным и в следующий раз в аналогичных условиях анимат, скорее всего, поступит так же. Если же состояние ухудшилось, то, соответственно не поступит. Однако, если он поступает не правильно, то потребуется несколько сходных ситуаций, в которых анимат научится, что не следует делать. 5 В принципе, вся жизнедеятельность анимата состоит в поиске пищи для поддержания жизнедеятельности и накопления энергии для размножения. Каждый ход энергия из внутренних запасов анимата расходуется, и если она не будет пополняться за счет пищи (анимат не способен прямо вырабатывать энергию, как растение), то анимату грозит гибель от голода. Какая-то часть энергии, которую анимат использовал за ход, возвращается в почву. Когда анимат смог накопить достаточно энергии, то запускается процесс деления – и в соседней свободной клетке появляется новый организм, наследовавший большую часть модели поведения родителя с некоторыми изменениями. Об этих изменениях будет сказано ниже. Новорожденный анимат имеет небольшой «желточный мешок», который питает организм до того, как он первый раз найдет пищу. Таким образом, процент выживаемости новорожденных напрямую зависит от концентрации растительности в окружающих клетках и изменений в поведении. Аниматы-травоядные Травоядное может передвигаться по полю и анализировать окружающую обстановку. Все состояние организма можно охарактеризовать одной величиной – накопленной энергией. Энергия используется на поддержание жизнедеятельности, передвижение и размножение. Без нее анимат гибнет. В общем, основной целью организма является накопление как можно большего запаса энергии. Если организм сумел накопить энергию – значит, у него будут потомки, и вид не вымрет. Так из отдельных подцелей индивида вытекает цель всего вида – дать жизнь новому поколению и не допустить вымирания вида в целом, хотя индивид этого, конечно же, не знает. Причем с самого начала он вообще ничего не знает и уже потом, если повезет, научится распознавать среди объектов пищу и целенаправленно двигаться к ней. О том, что возле него находится какой-либо объект, анимат узнает от своих органов чувств. Органы чувств у него расположены так, что он может ощущать объекты в соседних клетках (верхней, нижней, правой и левой). Сенсоры представляют собой логические элементы, замечая только присутствие или отсутствие объекта. Каждый сенсор отвечает за свой тип объектов, так что анимат может почувствовать все, что творится в зоне его видимости. Эта информация представляет собой массив данных, который с сенсоров предается на входы нейронной сети, и сеть решает, что делать дальше. Собственно говоря, возможные действия не отличаются разнообразием. Можно сделать шаг вперед, назад, влево или вправо, а можно и постоять на одном месте. В результате действия величина накопленной 6 энергии, как правило, изменяется. После проделанного действия сравнивается энергия до и после действия, и на основании этого делается вывод о его пользе. В соответствии с выводом изменяются веса нейронной сети. Аниматы-хищники Основное отличие хищников от травоядных в потребляемой ими пище. Пищей хищников являются травоядные. Травоядные, в отличие от растений, могут передвигаться и обнаруживать хищников, а значит, являются намного более сложными в поимке. Именно поэтому хищник обладает более широким «кругозором» и большей свободой передвижений. Естественно, что нейронная сеть, управляющая хищником также должна быть сложнее, иначе хищник просто не сможет добыть себе пищу. В отличие от травоядных, хищник может чувствовать объекты во всех восьми окружающих его клетках – область восприятия в два раза шире, а значит в два раза выше вероятность заметить добычу. Соответственно и передвигаться хищник может также в любую из восьми окружающих его клеток. Но как бы хищник не старался, если травоядное действительно целенаправленно убегает от него, то догнать хищник не сможет, поскольку хищник и травоядное хоть и будут находиться рядом, но не в одной клетке. Мы видим, что хищник в модели, как и в реальных современных биоценозах, может охотиться только на «больных» травоядных, и служит для оздоровления популяции в общем. Может возникнуть вопрос, – «что будет, если хищники оздоровят популяцию настолько, что им самим ничего не останется?», – может возникнуть мысль, что в этом случае травоядных станет настолько много, что они полностью (или почти полностью) расправятся со своей кормовой базой и погибнут от голода сами, оставив модель полностью опустошенной. Однако это не так – когда травоядных станет очень много, то их концентрация на поле, соответственно, возрастет, и как бы они не старались убегать от хищников, многим просто будет убегать некуда, так как соседние клетки будут заняты другими травоядными и хищники очень скоро проредят популяцию. В конечном итоге соотношение хищников и травоядных либо придет в равновесие, либо будет колебаться в примерном соответствии – то есть система будет находиться в состоянии цикличного или ацикличного гомеостазиса. Так как хищники являются более активными по сравнению с травоядными, энергия расходуется ими быстрее. Однако не следует думать, что хищник должен есть больше, чем травоядное: пища, которой питаются хищники намного более «энергоемка», чем трава травоядных – ведь перед тем, как быть съеденным хищником, травоядное, в среднем, успело съесть несколько растений, а это значит, что хоть хищник и активнее травоядного, но это с лихвой окупается более питательной пищей. Вот и получается, что и 7 хищники и травоядные поглощают примерно одинаковое количество энергии при разных размерах популяций. Характеристика нейронной сети В общем виде нейронная сеть состоит из одинаковых элементов, имитирующих биологические нейроны. Каждый такой нейрон имеет множество входов (синапсов) и один выход (аксон). Если сеть многослойная, то аксоны данного слоя нейронов соединяются с синапсами следующего слоя и так далее. Как и биологический прототип, нейрон в сети может прибывать в двух состояниях: возбужден или заторможен. Если нейрон возбужден, то на его аксоне будет сигнал, а если заторможен – то нет. Каждый синапс характеризуется величиной синаптической связи или ее весом, который по физическому смыслу эквивалентен электрической проводимости. Общее состояние нейрона характеризуется суммой его входов S (рис. 2). Функция F(S) называется активационной и может иметь различный вид. Эта функция может быть как линейной, так и нелинейной. Рис. 2. Схема нейрона Различные виды активационных функций представлены на рис. 3. Функция а) – пороговая функция: нейрон возбуждается, если сумма входов превысит параметр Т. Функция в) представляет собой гиперболический тангенс, зависимость которого симметрична относительно оси X и лежит в 8 диапазоне [–1,1]. Логистическая функция г) или сигмоид имеет зависимость f 1 , где а ее управляющий параметр. 1 e ax Рис. 3. Виды активационных функций Активационные функции а) и б) применяются преимущественно в однослойных сетях. В нашей модели нейронная сеть имеет вид однослойного пятинейронного персептрона для травоядных (рис. 4) и однослойного девятинейронного персептрона для хищников. Σ Σ f Σ f f Σ f Σ f Рис. 4. Примерная схема нейронной сети травоядного 9 Нейронная сеть хищников отличается только количеством синапсов и аксонов. Активационая функция – сигмоидная. Число входов соответствует числу всех сенсоров анимата. На вход подаются сигналы от сенсоров, то есть массив из нулей и единиц, так как сенсоры логические, потом полученные сигналы умножаются на веса синапсов, сигналы со всех синапсов суммируются, и по суме вычисляется активационная функция, значение которой и подается на выход нейрона. Далее из всех аксонов выбирается тот, сигнал на котором наиболее силен – действие, с которым ассоциирован данный аксон и будет наиболее выгодным с точки зрения сети. Если действие признано неверным, то веса синапсов, активировавших нейрон, отвечающий за это действие, будут уменьшены, что понизит значение, приходящее на синапс. Этот процесс и называется обучением. В нашем случае обучение сети проходит без учителя, так как мы сами заранее не знаем, как должен поступить анимат в той или иной ситуации, потому что ситуаций, с которыми столкнется анимат очень много и предусмотреть их все мы не можем. К тому же мы ведь имитируем дикую среду, а где там можно найти этого самого учителя? Именно на самостоятельном обучении строится вся модель – на самостоятельном обучении организма приспособлению его поведения к окружающей среде. В этом-то и вся прелесть использования нейронных сетей: не нужно запоминать ответ для каждого из сотен или тысяч состояний, ведь для сходных входных данных реакция сети будет одинаковой, то есть анимат сможет решать, что наиболее важно в данный момент отсекая несущественные данные. Вообще, нет уверенности, что именно такая нейронная сеть сможет распознать все ситуации, в которых может оказаться анимат, ведь существует ряд проблем, которые не по зубам некоторым типам нейронных сетей, например, так называемая проблема исключающего ИЛИ, когда однослойный персептрон не может реализовать функцию исключающее ИЛИ для входных данных. Работа всех сетей сводится к классификации (обобщению) входных сигналов, принадлежащих n-мерному гиперпространству, по некоторому числу классов. С математической точки зрения это происходит путем разбиения гиперпространства гиперплоскостями. Для однослойного персептрона это будет записано в следующем виде n x i 1 i wik Tk . Каждая полученная область является областью определения отдельного класса. Число классов для нейронной сети персептронного типа не превышает двукратного количества аксонов. 10 Поясним проблему исключающего ИЛИ на примере однослойного персептрона с двумя входами и одним выходом (рис. 5). Формула, описывающая данную сеть будет выглядеть следующим образом: x1 wik x2 w2 T . Рис. 5. Однонейронный персептрон с двумя входами X1, X2 – входы; w1,w2 – веса синапсов; Y – выход Очевидно, что это уравнение прямой (одномерной гиперплоскости), которая ни при каких условиях не может разделить два типа сигналов на плоскости (рис. 6) так, чтобы точки каждого типа сигналов оказались по разные стороны прямой. Рис. 6. Схема расположения сигналов на плоскости X1,X2 – значения на входах один и два нейрона, соответственно; А,В – классы событий, соответствующих определенным значениям на входах персептрона В целом всего анимата можно описать только массивом весов его связи, что очень сокращает размер информации, передаваемой при 11 наследовании. И в итоге вся «ДНК» анимата будет состоять из n*m чисел, где n – число входов, а m – число выходов сети. Таким образом, травоядное полностью характеризуется 85-ю числами, а хищник – 165-ю. При наследовании часть массива весов изменяется. Цель этого изменения – случайным образом немного изменить поведение. Такие изменения необходимы для того, чтобы вносить что-то новое в поведение анимата и исправлять ошибки в поведении. Может случиться так, что в некоторых ситуациях анимат будет поступать не совсем оптимальным способом, тогда небольшая мутация, которая может произойти в месте сети, которое активно в данной ситуации – и поведение в этой ситуации изменится на более оптимальное. Вообще, большинство таких мутаций пройдут незамеченными, некоторое число их будут вредными, а некоторое число – полезными. Но, если мутация окажется вредна и организм не сможет жить с ней, то эта линия угаснет, так как этот организм просто не доживет до того момента, когда у него сможет появится потомство. Необходимо также учесть, что за свою жизнь анимат сможет дать жизнь нескольким поколениям потомков и хорошая поведенческая ветвь, как правило, будет доминировать. В итоге через некоторое количество поколений каждый тип аниматов выработает свою оптимальную линию поведения. Но вот что хорошо: нейронная сеть, которая лежит в основе мозга анимата, способна обучаться, и если при уже найденной оптимальной линии поведения условия окружающей среды вдруг изменятся, то многие аниматы смогут приспособиться к этим условиям и начать формировать новую линию поведения. При этом возможно возникновение внутри одного типа аниматов совершенно отличных линий этого самого поведения, каждая из которых будет по-своему оптимальна. Список использованных источников 1. Тишин И.В. Концепция адаптивного поведения простейшего искусственного биоценоза. Страничка кафедры ВМиП сайта БГУИР. 2. Головко В.А. Нейронные сети: обучение, организация и применение. Кн. 4 / В. А. Головко – М. : ИПРЖР, 2001. 3. Галушкин А.И. Теория нейронных сетей: учебное пособие. Кн. 1 / А. И. Галушкин – М. : ИПРЖР, 2000. 4. Радиотехника – 2003, № 3. 5. Радиотехника и электроника – 2004 – Т. 49, № 12 – С. 1452 – 1462. 6. Нейрокомпьютеры: разработка и применение – 2005, №№ 4, 6, 8, 9. 7. Нейрокомпьютеры: разработка и применение – 2006, №№ 4, 5. 12