Полезное

Мы Вконтакте

Discord канал

#
Аватара пользователя
Пользователь
Сообщения: 13
Веду поиск опытных С++ программистов в команду энтузиастов.

Открытый научно-исследовательский проект “Дафния”.

Цель проекта: принципиальное моделирование нервной системы.

То есть, наша задача не повторить в точности нервную систему дафний, а смоделировать принципы работы нервной системы животных. Причём эти принципы мы будем зачастую искать не в научной литературе, а в самой компьютерной модели. Делая нервную систему нашей компьютерной Дафнии максимально эффективной, мы вероятно обнаружим те же принципы, которые уже “придумала” эволюция. Название “Дафния” условно, оно взято, так как дафния один из самых простых организмов, у которого, по некоторым свидетельствам (см. опыты А.Б.Когана) могут быть получены условные рефлексы.

Итоговые цели:

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

Задача не минимум: придумать как заработать деньги самим на основе изученных технологий.


Для участия в проекте приветствуются люди, обладающие описанными качествами link.

Каждый месяц будет выходить отчёт о проделанной работе и публиковаться ссылка на билд.
Аватара пользователя
Пользователь
Сообщения: 13
Закончен:

Этап 1. Простая физическая модель.

Реализуем самую простую физическую модель. Далее в следующих шагах будем её постепенно усложнять.

Итак, физическая модель представляет собой подобие дафнии, планктонного ракообразного. Для простоты у нас будет один глаз, один хвостовой плавник, который двигает дафнию вперёд и две пары боковых плавников, которые поворачивают дафнию вокруг двух осей, так что она может поворачиваться и плавать вверх - вниз и влево - вправо. Переворачиваться пузом вверх - не может. Физика воды и её взаимодействие с плавниками не обсчитываются, просто включение плавника двигает или поворачивает дафнию. Иннервируются плавники одним моторным нейроном каждый. Физика максимально простая. Гравитации нет.

С глазом посложнее, разбиваем его на сегменты, например 20 сегментов в ширину и 20 в высоту. Каждый сегмент будет иннервироваться отдельно. Наша дафния будет уметь находить крошки (разноцветные шарики). Но пока на этом этапе управление внешнее посредством клавиш.

Вот билд: link.

Изображение
Аватара пользователя
Пользователь
Сообщения: 13
Этап 2. Сверхбыстрая физика.

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

Поэтому, принято решение сделать собственную физику. Условное название “параллельная физика”. Здесь детали идеи расписывать не будем. Но планируется, что, во-первых, даже на одном процессоре упрощённая параллельная физика будет быстрее, чем физика UE4. И к тому же она может быть потенциально распараллелена на современных графических чипах, и тогда скорость обучения возрастёт на порядки.

После обучения, Дафнию можно запускать для демонстрации в физику UE4.

Идея удалась. На своём компьютере получил порядка 20000 FPS, физика работает на CPU в многопоточном режиме. Процессор не самый мощный: (Processor: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz, 3408 Mhz, 4 Core(s), 8 Logical Processor(s)).

Глаз Дафнии расположен справа в маленьком окне. Она видит нечётко, но вполне достаточно для ориентации и поиска крошек.

Изображение

Билд: link
Аватара пользователя
Пользователь
Сообщения: 13
В марте продолжил:
Этап 2. Сверхбыстрая физика.
Реализована клиент-серверная архитектура. Сервер обрабатывает физику, клиент будет обрабатывать нервную систему.

Таким образом, проект "отвязался" от UE4. Теперь клиент может быть написан на любом движке и может общаться с сервером через UDP-протокол. Интерфейс очень простой. Все желающие написать нейросеть для управления Дафнией могут участвовать в проекте.

В ближайших планах описать архитектуру вселенной и интерфейс взаимодействия с сервером.

Ссылка на билд link. Сначала запускаем сервер, затем клиент.
Аватара пользователя
Пользователь
Сообщения: 13
Архитектура вселенной и протокол взаимодействия с сервером здесь

После реализации клиент-серверной архитектуры, расширились возможности участия в проекте:

Участвовать можно по следующим направлениям:

- разработка физики вселенной №1 мне в помощь. Включает: идеи усовершенствования физики, программирование сервера на c++.
- разработка клиента на Unreal Engine мне в помощь. Включает: рисование графики для красивой визуализации происходящего на сервере, программирование нервной системы на с++ или возможно на процессоре видеокарты.
- разработка собственного клиента на любом удобном движке и взаимодействие с сервером по UDP протоколу. Это приветствуется для создания соревновательности. Всякая помощь по серверу с моей стороны будет оказана.
- если хотите разработать собственную вселенную с другой физикой, то это также приветствуется, код открытый, можно форкаться.
Аватара пользователя
Пользователь
Сообщения: 4054
продолжай, очень интересно.
Аватара пользователя
Пользователь
Сообщения: 13
В апреле продолжил:
Этап 2. Сверхбыстрая физика.

1. Теперь сервер поддерживает множество клиентов. Две дафнии впервые увидели друг друга.
2. На сервере реализован TCP/IP протокол для администратора. Он нужен для красивых демонстраций происходящего на сервере на графике Unreal Engine. Сейчас UE4 клиент уже умеет закачивать с сервера состояние вселенной (положение шариков корма), но пока он видит только собственную дафнию, что делают другие дафнии не видно.
3. Разработан минимальный клиент на WinApi, который коннектится к серверу, отображает состояние глаза Дафнии, а также даёт команды моторным нейронам с клавиатуры.
4. Создан ютуб-канал и записан демонстрационный ролик. https://youtu.be/VyoSWdGh6Rg

Сервер https://github.com/talashby/DaphniaServer
Клиент UE4 https://github.com/talashby/Daphnia
Клиент WinApi https://github.com/talashby/DaphniaWinApi

В планах сделать минимальные клиенты на Unity и на Python, для лёгкого старта желающих участвовать в проекте. Далее сам буду разрабатывать нервную систему на WinApi-клиенте.

Преимущества научно-исследовательского проекта Дафния перед другими ИИ-проектами:
- упрощённая физика с чёткими законами
- распараллеливаемость физики

На мой взгляд реальная физика слишком сложна для компьютерного моделирования, как в плане быстродействия, её трудно распараллелить по ядрам, так и в плане качественной реализации. Обычно приходится обходить множество нюансов, что является препятствием для усложнения мира, где существует ИИ.
Аватара пользователя
Пользователь
Сообщения: 468
Интересный проект, особенно интересует дальнейшее развитие в сторону нейросетей и обучения. Проект запускал смотрел, как то всё очень медленно работает, на видео всё шустрее, на железо не жалуюсь. Можно кратко описать принцип работы зрения?
_________________
Project SKIT
Аватара пользователя
Пользователь
Сообщения: 13
icms писал(а):
Интересный проект, особенно интересует дальнейшее развитие в сторону нейросетей и обучения. Проект запускал смотрел, как то всё очень медленно работает, на видео всё шустрее, на железо не жалуюсь. Можно кратко описать принцип работы зрения?

Привет. В документе об архитектуре вселенной есть про зрение дафний https://docs.google.com/document/d/10Kv ... ZN5VI/edit
Не знаю почему может быть мало фпс, у меня даже на ноуте выше 20000, надо смотреть конкретную ситуацию. Может быть два ядра на проце, например.
Аватара пользователя
Пользователь
Сообщения: 13
В мае продолжил:
Этап 2. Сверхбыстрая физика.

1. Демонстрационный клиент теперь умеет графически отображать других дафний.
2. Разработаны минимальные клиенты на Unity и на Питоне для лёгкого старта участия в проекте специалистов в этих платформах. В этих клиентах дафния управляется с клавиатуры кнопками-стрелочками. Задача написать нейросеть и научить дафнию поедать шарики-крошки самостоятельно.
3. На ютуб-канал залит отчёт за май: https://www.youtube.com/watch?v=6j_CDeVwp2s В нём рассказываю про перспективы развития проекта:
В планах найти участников и устроить соревнование дафний. Каждый участник обучает дафнию простому поеданию шариков корма на своём оборудовании. Далее периодически будем запускать полуфинальные сервера, где будут соревноваться дафнии, прошедшие первоначальное обучение. Победители будут попадать на финальный сервер, который будет работать постоянно. План примерный и может меняться в зависимости от обстоятельств.

Сервер https://github.com/talashby/DaphniaServer
Клиент UE4 https://github.com/talashby/Daphnia
Клиент WinApi https://github.com/talashby/DaphniaWinApi
Клиент-Python https://github.com/talashby/DaphniaPython
Клиент-Unity https://github.com/talashby/DaphniaUnity


Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница