2014 dxdy logo

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

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




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


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

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

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

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

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

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

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

- разработка физики вселенной №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
632
Насколько понял из описания, хватит карты ядер на 500, чтобы смоделировать все возможные "приобретенные" навыки - слишком узок диапазон возможных действий. А вообще, вряд ли будет что-то типа "Мы не ожидали, а оно - вон как научилось!"..

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


15/10/08
30/12/24
12599

(Оффтоп)

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

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


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

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

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


24/01/09
1285
Украина, Днепр

(Оффтоп)

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

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


01/09/14
577
В апреле продолжил:
Этап 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
30/12/24
12599
talash в сообщении #1460783 писал(а):
упрощённая физика с чёткими законами
Можно подробнее о кодировании направления взгляда и реализации его поворота?

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


01/09/14
577
Утундрий в сообщении #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
754
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
577
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
577
В мае продолжил:
Этап 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

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


01/09/14
577
Тут интересуются проектом.

Инструмент для соревнования, первая версия вселенной, в принципе реализован. Далее нужно заниматься нервной системой. Но у этого проекта сейчас нет участников. До этого был один я и только благодаря китайцам, которые закрыли айтишную контору, где я работал и выплатили сразу много з/п. 8-) Сейчас работаю, но скоро есть шанс повторения истории.

Без финансирования трудно тянуть, тем более одному. А финансирование имеет смысл искать, как мне кажется, только если соберётся группа участников.

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

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

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



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

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


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

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