GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (6)След. > >>   Поиск:  
 Автор Тема: Artificial Life, простые опыты
Trilobite
Сообщений: 201
Artificial Life, простые опыты
Добавлено: 09 ноя 07 17:41
Тема про эволюционные методы формирования интеллекта.
С демонстрациями и обсуждением.
Welcome!

Данное направление известно также под названием NeuroEvolution
[Ответ][Цитата]
Вася
Сообщений: 180
На: Artificial Life, простые опыты
Добавлено: 09 ноя 07 18:17
Раскажите сначала про свою программу с муравьями. Что в ней интересного с точки зрения эволюции? Как там всё вообще устроено?

Здесь я выкладывал для обсуждения одну из своих моделек:
http://www.forum.aicommunity.org/viewtopic.php?t=2284

Вот кое-что поближе к искусственной жизни - моделирование возникновения многоклеточности:
http://art-libb.nm.ru/cells.rar
[Ответ][Цитата]
daner
Сообщений: 4593
На: Artificial Life, простые опыты
Добавлено: 09 ноя 07 18:56
Я вот здесь тоже по теме топика публиковал работку.
http://gotai.net/forum/Default.aspx?postid=4709#4709

скоро сяду за вторую работу по теме Artificial Life.
[Ответ][Цитата]
Trilobite
Сообщений: 201
эксперимент Хищник-Жертва
Добавлено: 10 ноя 07 1:27
На http://groups.google.com/group/ArtificialLifeSE?hl=ru
представлен один из пробных экспериментов в среде обитания.
Тема эксперимента вполне традиционная - взаимоотношения в системе "Хищник-Жертва".
=======================================================

Правила жизни на полигоне из 1000х1000 квадратных ячеек просты и естественны.

1.Основа пищевой цепи - "тыквы", поступающие с постоянной скоростью. Тыквами питаются рыжие муравьи, а их, и только их, в свою очередь, едят хищники (синие).

2.Важнейшая характеристика для каждой особи - ее запас жизни, который постоянно тает и пополнять его можно только едой. Особи, успешно питающиеся, размножаются. Снизившие свой запас до нуля - умирают. У попавших в лапы хищника та же участь, к охотнику при этом переходит запас жизни съеденной добычи.

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

4.Поведением каждой особи руководит ИНС из 100 нейронов (в это число входят 11 рецепторов и 6 эффекторов).
Внешний мир воспринимается особью через 9 рецепторов зрения, т.е. она видит только 9 ячеек в передней полусфере. Данные о самочувствии подаются на три рецептора: рецептор жизни, боли и удовольствия.
Эффекторы: ИдтиПрямо, СвернутьНалево, СвернутьНаправо, ИдтиНазад, Схватить, Съесть.

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

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

У жертв различия в тактике не очень заметны - случайный поиск в пределах кормовой зоны и поворот назад, если выскочила за границу. Иногда встречаются отчаянные экземпляры, умеющие выхватывть лакомый кусок прямо из зубов хищника и смываться безнаказанно.
=========
PS: Программа еще в работе и часть функций, еще не доделанных, заблокирована. Разумеется, полно глюков.
[Ответ][Цитата]
daner
Сообщений: 4593
На: эксперимент Хищник-Жертва
Добавлено: 10 ноя 07 14:30
>>>>Trilobite
Server не работает.
Мой вам совет. Откройте себе ящик на gmail. а после персональную Гугль группу.
Там есть место на 100МВ для хранения любых файлов. Сделайте доступ на просмотр свободным для всех, и заливайте файлы туда. Нет ни ограничения по времени, ни проблем с трафиком. как минимум скорость скачивания до 60KB/sec обеспеченно.
[Ответ][Цитата]
Trilobite
Сообщений: 201
На: эксперимент Хищник-Жертва
Добавлено: 10 ноя 07 23:07
daner !
Так и сделал - разместил на
http://groups.google.com/group/ArtificialLifeSE?hl=ru
Благодарю за совет. Обнаружил там же Вашу группу.
За "Образованием полов" с интересом следил с самого начала.
[Ответ][Цитата]
daner
Сообщений: 4593
На: эксперимент Хищник-Жертва
Добавлено: 11 ноя 07 3:19
рад что помог.
посмотрел то что вы выложили. Бегло так посмотрел (так что мнение весьма поверхностное).
Как вы и описали, охотники в основном ведут пассивную охоту. а добыча просто бегает.
было интересно, если бы вы подробней описали как именно работает модель (хорошо даже если с формулами). Я так понимаю "_обратного_распределения_ошибки_" в сетях управления вообще не применяется? Короче поподробней. Еще было бы интересно как те или иные параметры могут влиять на поведения. как например заставить охотников перейти на активную охоту? или может даже кол-ную? Сложно ли наладить баланс системы? Ну т.е. что бы не сильно много хищников или не сильно мало подножного корма. Или это все само собой легко саморегулируется?

И напоследок, мое впечатление от программы: Боже!!!! сколько вы времени зря убили на ее написание?! зачем?! почему не устраивали уже готовые симуляторы? (программа написана так, что видно --- вы не на коленке ее писали).
Но тогда другой вопрос. Уж коли столько времени на это убили, а почему не сделать симулятор отдельным продуктом? Ну т.е. полноценный универсальный симулятор (таких конечно не мало, но наверняка в нем могли бы быть и свои положительные нюансы).
[Ответ][Цитата]
Вася
Сообщений: 180
На: эксперимент Хищник-Жертва
Добавлено: 12 ноя 07 15:47
Trilobite, работа действительно подробная и продумнная. Неужели на чистом энтузиазме вы всё это сделали? Какие цели перед собой ставили, начиная эксперимент? (И сколько у вас времени на него ушло?).

Кстати, сразу бросается в глаза, почему у муравьв угол поворота дискретный и именно 45 градусов? Не ограничивает ли спрайтовый способ визуализации?

В какую сторону ещё хотелось бы поработать?

Например, возможно ли изменение числа нейронов в результате мутаций?

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

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

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

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

В общем делитесь, какие вопросы животрепещут.
[Ответ][Цитата]
Trilobite
Сообщений: 201
На вопрос daner: как именно работает модель
Добавлено: 12 ноя 07 16:59
Основные моменты описаны выше (см.правила жизни на полигоне), здесь постараюсь более внятно.

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

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

Опять я перешел на лирику - ну нет тут любимых Вами формул и алгоритмов!
Даже баланс численности поддерживается сам собою. Если, к примеру, увеличить вдвое скорость поступления пищи, то и общая численность возрастет вдвое (а вот соотношение хищник/жертва - почти втрое).

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

О программе Вы правильно догадались - пишется с прицелом не на 1-2 эксперимента. К стыду своему, не в курсе современного ассортимента симуляторов. Слышал только, что цены на них немалые.
Если возникнет желание сделать и разместить здесь обзор известных Вам продуктов, не противьтесь ему. Такая инф-я многим будет интересна.
[Ответ][Цитата]
Trilobite
Сообщений: 201
На: эксперимент Хищник-Жертва
Добавлено: 12 ноя 07 18:02
Василий,спасибо, но работа, прежде всего, незаконченная и эксперимент выставлен пробный.

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

2. Про 45 градусов
Есть 8 направлений движения, поскольку пространство полигона разделено на квадратные ячейки. Каждая из ячеек имеет 8 соседей, для перемещения в которые достаточно единичного шага (4 с общей стороной + 4 по диагонали).

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

Тем не менее, шансы на успех не равны нулю. Особенно, если под успехом понимать хотя бы формирование подходов к экспериментам на более серьезной, хорошо распараллеленной аппаратной основе.

3. "в теме хотелось бы нащупать общий интерес" и далее - почти со всем согласен.
Может нам манифест какой выпусть и разместить в 1-ом посте темы? Чтоб народ сразу понимал, куда попал, если название не достаточно емкое?
[Ответ][Цитата]
daner
Сообщений: 4593
На: эксперимент Хищник-Жертва
Добавлено: 12 ноя 07 20:37
Формулы и алгоритмы всегда есть! вы же программу как-то пишите!
Что касается симуляторов. По моему бесплатных гораздо больше чем платных .
Их обзор, уже несколько раз делался и на образце и на айкоме... ну если совсем сложно найти, я могу поискать. А вообще их столько много, что просто делать обзор, это куча времени. Если кого-то конкретно интересует, пишите о проблеме, я постараюсь посоветовать такой симулятор, который на мой взгляд, больше подойдет.

Что касается вашего симулятора. Ну просто жалко было бы, что бы такая работа просто так пропала. Попробуйте его улучшить.
Например, было бы интересно видеть в нем следующие вещи.
(Примечание: Все что я буду писать ниже, это просто то что мне кажется было бы удобно в таком симуляторе. Может быть какие-то вещи уже есть, но к сожалению, я пишу сейчас только по памяти от моего беглого знакомства. Дело в том, что моя обычная платформа это Linux, а так как ваша программа не cross-platform''енная, то запустить и посмотреть ее не могу (может выть только к концу недели). Но даже в Windows, есть проблема. Из-за того, что вы не работаете с unicode, большинство надписей у меня не видно, так как локализация у нас видно разная! На все на это вам стоит обратить свое внимание).
- Разнообразные статистики, как просто счетчики, так и графики (легко настраиваемые).
Ну а параметры самые разнообразные : кол-во особей, скорости, распределение тэ или иных величин и их средне.арифметические, и т.д. и т.п., короче по статистическим данным.
- Различные настройки. Например все эти скорости, случайности, кол-во чего-либо и т.д. Все это должно настраиваться из интерфейса.
- Было бы интересно отмечать отдельных особей и следить за ними. Например что бы от него оставался цветной след. Для наглядности передвижения. Ну и т.д.
- Неплохо было бы замораживать некоторые виды.. Ну это для тех, кто хочет селекцией заниматься .
- Логи. Очень нужная вещь. Например сохранение тек.состояния (и возможно авто сохранение по таймеру с постоянным промежутком). И даже совсем не плохо, было бы видеть перемотку назад (к предыдущим состояния). Это была бы офигительная фича!
Кстати, таки вещи, конечно можно и на других симуляторах сделать, но там над этим надо попотеть, а если у вас это все будет встроено... вот это будет его выгодно выделять его.

Как происходит обработка муравьев? multi-threading или psevdo-multi-threading?

[Ответ][Цитата]
Trilobite
Сообщений: 201
Замечания по программе
Добавлено: 13 ноя 07 14:54
Цитата:
Автор: daner
Формулы и алгоритмы всегда есть! вы же программу как-то пишите!

Вопрос-то Ваш был про алгоритмы обучения особей и управление средой. "Их практически нет" - ответ именно в этом контексте.

Замечания по программе

Локализация - естественно, будет. Пока не до нее.
Статистика и графики - в планах есть, но тоже не близких, поскольку система строится не для биомоделирования. Оно - лишь побочный продукт. А вот для контроля за ситуацией и анализа событий - пригодятся.
Настройки из интерфейса - все так и есть. Сейчас многое заблокировано, поскольку недоделано.
Пометить особь - можно:
а) покрасив в свой цвет - работает, можете пробовать;
б) заставив ее оставлять след - работает, придаем особи эффектор выделения феромонов и за ней потянется цветной, постепенно тающий шлейф.
Замораживать виды - есть возможность сохранить ИНС особи или вида в текст.файл и также загрузить. Потом как-нибудь надо будет упростить все до пересадки особей с полигона на полигон пинцетом.
Контрольные точки - управление ими, возможность вернуться назад и повторить - все есть.
Логи, как протоколы работы - запланированы к реализации вместе со статистикой.
Перемотка назад, как в кино или видеомонтаже ? - надо подумать.
Обработка муравьев - делается в цикле по одному. Эксперименты с multi-threading показали падение быстродействия на порядок, слишком велики там накладные расходы.

Жаль, что надписей не видите, но тем более приятна конкретность. Видимо, опыт своих разработок или использования ряда готовых продуктов у Вас имеется.
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Замечания по программе
Добавлено: 13 ноя 07 18:19
Trilobite

Оценил Вашу программу. Получилось действительно красиво.
Хотел бы уточнить некоторые детали:
1. Каким образом происходит обучение муравьев? Мутации через поколения или отдельная особь в процессе жизни тоже может что-то изучить?
2.
Trilobite> случайный поиск в пределах кормовой зоны и поворот назад, если выскочила за границу.

Так и не понял как с такими рецепторами такое возможно осуществить? Ведь рецептора территории нету..
Да и наблюдались случаи когда муравей уползал за границы обозримого полигона..
3. Показалось несколько странным что на 9 рецепторов зрения идет всего четыре рецептора движения (ИдтиПрямо, СвернутьНалево, СвернутьНаправо, ИдтиНазад). Довольно часто получается что муравей пробегает мимо еды или хищник упорно не реагирует на муравья который уткнулся ему в бок.
------
Думаю не помешало если бы была возможность следить за поколениями от одного муравья. К примеру я отредактировал НС муравья и хотел бы проследить сколько всего потомков у него получилось (т.е. насколько эффективная НС). Может стоит сделать чтобы потомки муравья имели то-же цвет что и их родитель (если цвет родителя был изменен вручную)?
------
А зачем в окне "Данные по особе" Вы сделали TColorMemo Disabled? Прокрутка ведь не работает и для просмотра НС нужно или увеличивать окно или сохранять содержимое в ТХТ файл.
[Ответ][Цитата]
Вася
Сообщений: 180
На: эксперимент Хищник-Жертва
Добавлено: 13 ноя 07 18:33
Цитата:
Trilobite
получить и исследовать зачатки интеллекта у существ с примитивной нервной системой

Или, говоря более формально, исследовать свойства выбранной вами нейросети в данной среде.Поскольку муравьи уже "освоились", можно сделать предварительные выводы. Во-первых, были ли у вас альтернативные варианты нейросети? Почему вы выбрали этот?

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

Цитата:
Есть 8 направлений движения, поскольку пространство полигона разделено на квадратные ячейки. Каждая из ячеек имеет 8 соседей, для перемещения в которые достаточно единичного шага (4 с общей стороной + 4 по диагонали).

Такой примитивизм не случаен. Один из краеугольных камней этого проекта - не умножать сущностей!

По-моему, разбитое на прямоугольники пространство - более сложная сущность, чем простой двумерный континуум с действительной адресацией. К тому же, так ближе к реальности. А движение задаётся вектором (скорость, направление). Впрочем ладно, тут скорее другой вопрос интересней: муравьи поворачивают с различной кривизной. Уперевшись носом в стену, может повернуться сразу на 90, а может бегать по кругу (восьмиугольнику с длиной грани > чем одна клетка). Понятно, что на уровне ориентации в среде поворот - дискретное событие. А на уровне нейросети? Там поворот накапливается в виде действительнорй величины постепенно или тоже дискретно переключается?

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

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

Например, испытания показали, что развитые, но чисто эволюционные методы позволяют довольно быстро (десятки поколений, секунды машинного времени) получать справляющиеся с задачей нейросетевые структуры. (Например, моя задачка с синтезоом системы управления для автомобильчиков на извилистой трассе: у членов начальной популяции 5-10 "нейронов", 1 input, 4 output).

Цитата:
"в теме хотелось бы нащупать общий интерес" и далее - почти со всем согласен.
Может нам манифест какой выпусть и разместить в 1-ом посте темы? Чтоб народ сразу понимал, куда попал, если название не достаточно емкое?

А хрен его знает, посмотрим. Думаю, и сейчас энтузиаст мимо не пройдёт. Постепенно выяснится, чего мы тут хотим, и возможна ли в какой-то форме коллективная (придумывать в процессе обсуждения, программировать с разделением ролей) работа.
[Ответ][Цитата]
Trilobite
Сообщений: 201
Подробности эксперимента Хищник-Жертва
Добавлено: 14 ноя 07 13:46
для Corwin и Василия

Обучение муравьев - в данном опыте используются мутации в момент размножения (бесполого). В процессе жизни НС особи не меняется. Жизнь используется для проверки случайных изменений, полученных особью при рождении, и закрепления их в последующих поколениях.
Параметры мутаций можно увидеть (и изменить) на вкладке Мутации формы Данные по особи. У хищников значения заданы больше, чем у травоядных, поскольку скорость смены поколений у жертв намного выше.

Начальная нейросеть - задает простейшее поведение (случайное блуждание) и почти одинакова и для хищника и для жертвы. Поскольку мутации не добавляют и не убирают нейроны в НС, начальная сеть содержит заготовки для роста в виде нейронов без входов-выходов.
Начальная НС = 12 рецепторов + 16 осн.нейронов + 66 заготовок + 6 эффекторов = 100 нейронов
При генерации новой особи в начале эксперимента (или пипеткой/спреем в любой момент), она получает начальную НС своего типа, слегка модифицированную согласно настройкам мутаций для данного типа особей. Эту начальную нейросеть можно увидеть, создав новую особь и открыв для нее форму Данные по особи.

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

Как особи поворачивают - чтобы особь шагнула-повернула, ее нейросеть должна возбудить соотв.эффектор. Тогда среда выполняет действие: шаг на клетку вперед-назад, поворот на 45 влево-вправо, схватить или кусануть объект (который "перед носом"). Т.е., действия дискретны.
Из противоречивых желаний (напр.нельзя одновременно шагнуть и повернуть, двигаться и кусать) выполняется то, чей эффектор выше по списку.

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

Выделить потомков особи - изменяем цвет особи и ставим галку Сохранять уникальные характеристики. Все след.поколения будут наследовать цвет и прочие изменения в параметрах родителя.

Редактор нейросети(TColorMemo) - не закончен, заблокирован (мой давний позор , с лета никак не соберусь заняться). Если есть желание - работает Save-Load.
[Ответ][Цитата]
 Стр.1 (6): [1]  2  3  4  5  6След. > >>