2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Проект “Дафния”. (Нейросети)
Сообщение10.04.2020, 08:43 


01/09/14
43
Ищу энтузиастов соучастников в открытый научно-исследовательский проект Дафния.

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

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

Цели для участников:

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

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

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

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

Проекты на github
https://github.com/talashby/Daphnia
https://github.com/talashby/DaphniaServer

Ежемесячные отчёты публикую здесь:

Архитектура вселенной и протокол взаимодействия с сервером здесь.

 Профиль  
                  
 
 Re: Проект “Дафния”. (Нейросети)
Сообщение10.04.2020, 18:53 


18/11/18
203
Насколько понял из описания, хватит карты ядер на 500, чтобы смоделировать все возможные "приобретенные" навыки - слишком узок диапазон возможных действий. А вообще, вряд ли будет что-то типа "Мы не ожидали, а оно - вон как научилось!"..

 Профиль  
                  
 
 Re: Проект “Дафния”. (Нейросети)
Сообщение10.04.2020, 20:46 
Заслуженный участник
Аватара пользователя


15/10/08
9365

(Оффтоп)

Дафния - это то, что ест гуппия.

 Профиль  
                  
 
 Re: Проект “Дафния”. (Нейросети)
Сообщение10.04.2020, 22:59 


01/09/14
43
A_I в сообщении #1453388 писал(а):
Насколько понял из описания, хватит карты ядер на 500, чтобы смоделировать все возможные "приобретенные" навыки - слишком узок диапазон возможных действий.

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

 Профиль  
                  
 
 Re: Проект “Дафния”. (Нейросети)
Сообщение14.04.2020, 09:34 


24/01/09
925
Украина, Днепропетровск

(Оффтоп)

Будут ли есть цифровые гуппии цифровых дафний?

 Профиль  
                  
 
 Re: Проект “Дафния”. (Нейросети)
Сообщение07.05.2020, 00:52 


01/09/14
43
В апреле продолжил:
Этап 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-клиенте.

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

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

 Профиль  
                  
 
 Re: Проект “Дафния”. (Нейросети)
Сообщение07.05.2020, 07:17 
Заслуженный участник
Аватара пользователя


15/10/08
9365
talash в сообщении #1460783 писал(а):
упрощённая физика с чёткими законами
Можно подробнее о кодировании направления взгляда и реализации его поворота?

 Профиль  
                  
 
 Re: Проект “Дафния”. (Нейросети)
Сообщение07.05.2020, 12:23 


01/09/14
43
Утундрий в сообщении #1460803 писал(а):
talash в сообщении #1460783 писал(а):
упрощённая физика с чёткими законами
Можно подробнее о кодировании направления взгляда и реализации его поворота?

Дафния занимает одну пространственную ячейку и испускает из неё эхолокационные фотоны. Направление Дафнии задаётся географическими координатами широтой и долготой. На эти координаты можно воздействовать через клавиатуру, поворачивая Дафнию. У глаза угол обзора 90 градусов. От направления Дафнии вычисляются географические координаты направлений эхолокационных фотонов. Вычисления примерные для скорости исполнения. Вот код:
Код:
void Observer::CalculateEyeState()
{
   float len = EYE_FOV / CommonParams::OBSERVER_EYE_SIZE;

   for (int32_t yy = 0; yy < CommonParams::OBSERVER_EYE_SIZE; ++yy)
   {
      for (int32_t xx = 0; xx < CommonParams::OBSERVER_EYE_SIZE; ++xx)
      {
         int16_t latitude = m_latitude + EYE_FOV * yy / CommonParams::OBSERVER_EYE_SIZE - EYE_FOV / 2;
         int16_t longitude = 0;
         int16_t longitudeShift = EYE_FOV * xx / CommonParams::OBSERVER_EYE_SIZE - EYE_FOV / 2;
         if (latitude < -90 || latitude > 90)
         {
            latitude = Sign(latitude) * 180 - latitude;
            longitude = m_longitude - longitudeShift;
            longitude = longitude < -179 ? 360 + longitude : longitude;
            longitude = longitude > 180 ? -360 + longitude : longitude;
            longitude = longitude - 180;
            longitude = longitude < -179 ? 360 + longitude : longitude;
         }
         else
         {
            longitude = m_longitude + longitudeShift;
            longitude = longitude < -179 ? 360 + longitude : longitude;
            longitude = longitude > 180 ? -360 + longitude : longitude;
         }

         float pi = 3.1415927410125732421875f;

         int16_t latitudeDownFactor = (int16_t)(abs(longitudeShift) * sinf(latitude * pi / 180));
         latitude -= latitudeDownFactor;
         assert(latitude <= 90);
         assert(latitude >= -90);


         VectorFloatMath orientFloat;
         orientFloat.m_posX = cosf(latitude * pi / 180) * cosf(longitude * pi / 180);
         orientFloat.m_posY = cosf(latitude * pi / 180) * sinf(longitude * pi / 180);
         orientFloat.m_posZ = sinf(latitude * pi / 180);

         OrientationVectorMath orient = MaximizePPhOrientation(orientFloat);
         m_eyeArray[yy][xx] = orient;
      }
   }
   CalculateOrientChangers();
}


ЗЫ Ремарка, структурно Ваш вопрос относится не к физике вселенной (в коде это namespace ParallelPhysics), а к физике наблюдателя (класс Observer), можно сделать другого наблюдателя (класс Observer2), у которого направления эхолокационных фотонов будет вычисляться математически строго и поместить его в ту же вселенную.

 Профиль  
                  
 
 Pi
Сообщение07.05.2020, 17:06 
Аватара пользователя


10/10/18
585
At Home
talash в сообщении #1460857 писал(а):
Код:
float pi = 3.1415927410125732421875f;

The first 50 decimal digits are 3.14159265358979323846264338327950288419716939937510..

 Профиль  
                  
 
 Re: Pi
Сообщение07.05.2020, 20:21 


01/09/14
43
SergeCpp в сообщении #1460939 писал(а):
talash в сообщении #1460857 писал(а):
Код:
float pi = 3.1415927410125732421875f;

The first 50 decimal digits are 3.14159265358979323846264338327950288419716939937510..

Спасибо за поправку :D пусть будет float pi = 3.14159f. Для наших целей хватит.

 Профиль  
                  
 
 Re: Проект “Дафния”. (Нейросети)
Сообщение07.06.2020, 16:02 


01/09/14
43
В мае продолжил:
Этап 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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Модераторы: Toucan, maxal, PAV, Karan, Супермодераторы



Кто сейчас на конференции

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group