Тёмные мысли Техношамана
1.28K subscribers
51 photos
31 videos
4 files
28 links
Всякие мысли, которые приходят в голову.
Могу постить что то серьёзное, могу мемчики и глупости.
Всё зависит от настроения.
Download Telegram
Forwarded from Юра Морозов
https://hexolution.yuuret.su/

Это симуляция эволюции, поделка на коленке, не уверен, что буду дальше развивать как-то, но опубликовал в сеть, можете потыкаться если интересно, посмотреть, что будет если оставить их на некоторое время
1🥰21🔥73👍2😍1🍓1😨1🗿1🆒1
Попалась любопытная статья на Хабре:

"Каждый день мы просим ИИ что-то делать. «Напиши код», «объясни концепцию», «исправь баг». Но что если перевернуть ситуацию? Что если дать ИИ собственный компьютер, полную свободу действий и... не давать никаких задач? Просто позволить ей существовать?
Это не философская абстракция — это реальный эксперимент, который я провёл за месяц...."

https://habr.com/ru/articles/1007574/
👍35🔥7🤪62🗿2🥰1🥴1🌭1💅1💊1
В последнее время я эксперементирую с генетическим алгоритмом в проекте с боксёрами.
Изначально я использовал метод обучения с подкреплением.
Выбрал 8 самых сильных боксёров.
Они стали основой для обучения других с помощью генетического алгоритма.
Вначале создал популяцию из 100 боксёров со случайно сгенерированным геномом.
(ген - это ситуация на ринге и комбинация ударов и перемещений, которые нужно выполнить )
Каждый боксёр проводит по 128 поединков с базовыми боксёрами. Чем больше побед было у боксёра, тем с большей вероятностью ему будет позволенно скрестится с другим боксёром.
Генерируется новое поколение и добавляются случайные мутации.
В итоге после сотен поколений эволюционные боксёры стали чаще побеждать.
Но прикол в другом.
Часто, когда используют генетический алгоритм, агенты находят решение, эксплуатируя какой то баг в программе или формально выполняют условие, но это оказывается не то, что от них требовалось.
Такая ситуация возникла и у меня.
Между связками есть пауза в 14 тактов на обдумывание. Боксёры научились обходить это ограничение.
Я заметил это случайно, когда обнаружил бойца, который использует всего одну связку с одним ударом на все случаи и постоянно побеждает.
Отлаживая, я понял, что он просто молотит без пауз.

На графиках результат запуска 6 симуляций (760 поколений, почти 2 суток). Это уже без бага.
Чёрной линией показано 64 победы из 128 поединков.
🔥296😁4👍2🗿2🥰1
Какие эксперименты планирую
(но это уже задел на будущее)
1. Если обучили группу B на основе группы A, а группу C на основе группы B , то какой результат будет в турнире между C и A ?
Есть предположение, что группа C вполне может проиграть. Будет что то похожее на камень-ножницы-бумага.
2. Что если обучать не на боях с готовыми боксёрами, а что бы эволюционные боксёры бились друг с другом. Смогут ли они в итоге победить боксёров, обученных методом обучения с подкреплением.
3. Что будет, если скрестить боксёров из разных симуляций? Будут ли они сильнее всех?
В каждой симуляции, благодаря скрещиванию, боксёры почти идентичны.

Некоторые цифры:
При обучении с подкреплением у боксёров формируется 40 - 45 связок.
При эволюционном обучении у боксёров формируется 9 - 12 связок, но это не мешает им побеждать.
(всего можно сформировать 60 связок)

В качестве фунции приспособленности я использовал количество побед в 128 поединках.
Потомок в среднем имел на 1 победу меньше, чем в среднем его родители.
Я это предполагал и писал здесь об этом , но тут проверил в симуляции.
🔥24👍54🗿2❤‍🔥1🥰1🆒1
Небольшие эксперименты.
Обучение боксёров генетическим алгоритмом.
Благодаря естественному отбору боксёры в моём проекте достигли высокого уровня боевитости.
Решил сильно ослабить отбор.
Предполагал, что будет плавное опускание графика.
Но всё пошло немного по другому.
(на графике по горизонтали - поколения боксёров, по вертикали - их боевой уровень)
(Первый график)
Общий уровень боеспособности опустился совсем немного (процентов на 15) и появились визуальные эффекты в виде дождя. Слабые боксёры из за ослабленного отбора стали чаще оставлять потомков и не убирались отбором сразу. Поэтому график размазался вниз.
Сильно деградировать популяция не собиралась. Даже слабый отбор способен поддерживать популяцию на некотором уровне.
Тогда я решил полностью убрать отбор.
(нижние графики)
Здесь уже всё рухнуло.
Но рухнуло не сразу, а ступеньками. Даже иногда была локальная тенденция на увеличение боевых способностей.
🔥22👍4🗿2🥰1🆒1👾1
Дело было вечером, делать было нечего.
Я никогда не касался темы происхождения жизни, так как совершенный профан в химии и органической химии.
Но выходящие научно-популярные статьи на эту тему читаю.
И тут я заметил одну деталь. В предлагаемых вариантах первые репликаторы в виде РНК- цепочек создают копии не себя, а соседей.
Я прокрутил в голове симуляцию (профдеформация) и у меня получилось, что дарвиновский отбор будет действовать в обратную сторону, отбирая самых непригодных.
Накидал небольшую модель.
Популяция из 6000 РНК-репликаторов.
Половина имеет слабую скорость копирования, другая половина успевает за то же время скопировать в два раза больше соседей.
Такт симуляции
За однин такт симуляции каждый репликатор успевает копировать одного или двух случайных репликаторов, в зависимости от своей способности и распадается.
(цепочки РНК быстро распадаются)
Затем удаляем случайных репликаторов, что бы размер популяции оставался равным 6000.
Симуляция
Вначале медленных и быстрых поровну и через 1200 тактов смотрю, кого стало больше.
(голубые-медленые, розовые - быстрые).
На данный момент медленные доминировали 527 раз, а быстрые 464 раза.
То есть никакого отбора в пользу быстрых нет.
Что бы отбор заработал, рапликаторы должны копировать себя, а не соседей.

Недостатки модели
Модель чисто математическая и для копирования репликаторы берут случайный репликатор из всей популяции.
В реальности они будут брать того, кто пространственно находится рядом с ними. Если в популяции РНК-репликаторов появится мутант с лучшими качествами (скорость, точность), то подобные мутанты будут локализованы в небольшой области и чаще копировать друг друга.
Что бы это проверить, нужно делать уже нормальную симуляцию с объектами в пространстве.
Но это уже требует времени.
7🔥286👍6🤔21🥰1🗿1
На ютубе мне в рекомендациях вылез мой последний ролик с англоязычного канала, но с помощью функции "автодубляж" переведённый на русский язык.
Даже не знаю, как на это реагировать.
С этим автодубляжом иногда происходят забавные ситуации.
Например, мне попался ролик, где англичанин и американец произносят слова, которые у них звучат по разному.
Например, для слова метро один говорит Subway, другой Underground .
И в этом фишка ролика, в котором собрали много таких слов
Но с помощью автодубляжа получилось, что оба говорят Метро.
Сломали весь ролик :(
🫡33😁76💯5🤔4👍1😢1👀1🗿1
Когда-то в роликах про генетический алгоритм видел ситуации, где генетический алгоритм находит решение не совсем честное или каким-то необычным путём.
Например, человек обучал ботов ходьбе, и один из ботов начал просто скользить по полу.
Как это происходит, автор так и не понял. Просто алгоритм нашел какой-то баг в программе и воспользовался им.
Если знаете примеры видеороликов, где подобное показано, скиньте ссылку в комментариях.
❤‍🔥386👍4👀3🔥1🥰1🗿1🆒1
Media is too big
VIEW IN TELEGRAM
Вчера Онигири проводил стрим по вайб-кодингу. ( @onigiriScience )
Решил тоже, по приколу, сделать мастер-класс на бесплатной Gemini.

У меня есть несколько вопросов для обсуждения.

Вопрос 1

Люди совершенствовали способы общения с компьютером.
Начали с дырок на перфокарте, затем ассемблер, затем высокоуровневые языки программирования.
Языки совершенствовались. Придумывали разные парадигмы программирования, которые были нужны, чтобы позволить программисту сосредотачиваться на основных идеях проекта и совершать меньше ошибок.

Если все перейдут на вайб-кодинг, то развитие языков программирования остановится?

Нейросетям, видимо, без разницы, на каких языках и в каких парадигмах писать код.

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

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

Вопрос 2

Сейчас активно используются чужие библиотеки, чтобы не писать свои велосипеды. Это может создавать проблемы.

Библиотеки могут меняться. Ради одной функции в программу тащится вся библиотека.

С вайб-кодингом смысл в библиотеках теряется. Нейросеть сама напишет весь код. Будет ли меньше зависимостей в программах?
🔥14🤔6👍2👎21💩1🏆1🍓1🗿1