Русский
Русский
English
Статистика
Реклама

Нейроэволюция киберкальмаров. Перезагрузка


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


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


Начнем с источников:

Оригинальная статья взятая за основу при программировании кальмаров(осьминогов)



Перевод вышеуказанной статью на Хабре.


Если читатель пройдет по ссылкам, то обнаружит подробный рассказ(и его перевод) о реализации нейроэволюции на примере кальмаров. Результат статьи будет выглядеть так:

или так:


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


Когда все уже готово, рассказано и показано, остается вопрос, а как эта программа работает на самом деле.
Поэтому решил переписать код изначально созданный под JavaScript на более близкий мне с++. Как всегда бывает с чужим кодом, сначала многое было непонятно. Чего стоит такой вот пассаж:




простыми словами автор программы включил в индекс нейрона и его тип, зачем этот прием из 80-х годов непонятно. Вроде сейчас памяти хватает в компьютерах.
Но в целом прототип заработал и стал выглядеть примерно так:



Щупальца удлинил относительно оригинальных вариантов, показалось более гармонично.
Но картинка выглядела слишком схематично.
Решил добавить для гладкости сплайны по точкам щупалец и сдвиг точек сплайна от центральной линии щупальца в зависимости от расстояния от тела кальмара.



выглядит неплохо, но переход щупальца к телу хотелось увидеть более естественным, добавил более сильный отступ от центра щупальца:



в итоге остановился на таком варианте:



Но кальмары скорее всего не прозрачные, поэтому картинка больше про медуз:


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



или в движении:



и более мультипликационно:



Дело сделано в 2D, но 3D все еще мейнстрим, поэтому переходим к следующему этапу. Сначала понять как буду крепить щупальца:



Решил сначала физику переписать с нуля:




Видно, что опирается на щупальца, добавил коллизии щупалец и прочее из набора физического движка. Потянуло на проверенный временем Bullet Physics Library:



Но вскоре решил не трогать то, что работало изначально и просто добавил еще одно измерение в первоначальную физику:



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


Конечный результат, что-то из фильма "Матрица":


Источник: habr.com
К списку статей
Опубликовано: 23.10.2020 18:08:20
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Разработка игр

Машинное обучение

Компьютерная анимация

Дизайн игр

Искусственный интеллект

Нейронные сети

Симуляция жизни

Спайковые нейронные сети

Искусственная жизнь

Эволюционное моделирование

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru