Создаём мозг для "змейки". Часть1.
Вставка
- Опубліковано 22 лип 2018
- Создание простейшего мозга для змейки из классической игры.
Обучение змеек и проведение чемпионата между ними.
Моя группа ВКонтакте electronics_nn
Выражаю благодарность тем, кто поддерживает меня финансами.
Реквизиты для финансовой поддержки можно найти в
/ foo52ru - Наука та технологія
10:17 "это на аппаратном уровне уберет возможность самоубийства способом 'сходить под себя'" - ржунимагу)
Ну ты просто представь, как змейка попытается сходить под себя.
Да это просто выжгет глаза всем, и сломает логику этого мира.
Но змейка всё ещё сможет съесть себя, хотя для этого ей нужно будет стать длиннее.
@@user-mf6br5iu4l ВыЖЖет, а не выЖГет!
А вы как это скажите, умники блин, чебурек?
@@sannaz3344, это на аппаратном уровне не позволит змейке съесть себя.
Увлекательней чем футбол!
PERESMOTRI 😂
😂👍
Что угодно увлекательнее чем футбол
Я пришел от overbafera 2019, не оставляй проекты!
Возможно человек не забрасывал канал... Возможно это нейросеть обучалась)
+
+++++
Иван Иванов я тож от овера давайте лайканем видосики
+
волновался за синих больше чем за свои отношения
А что за игра ?
А я за зеленых)
Сделай змейку с глубокой НС, которая видит всё поле и планирует маршрут. Пусть генетический алгоритм подбирает не только веса, но и структуру нейросети (кол-во слоёв и кол-во нейронов). For Science!
Итогом прога сожрёт все ресурсы
@@DimaTiunov да нет, изменение структуры нейросети может быть реализовано с помощью NEAT алгоритма
Сделанно действительно интерессно. Кажется меня никогда не перестанут удивлять похожие вещи в программировании. Жду каждое видео с упоением. У тебя очень интересные эксперименты и идеи.
И я пришел от overbafera 2019, не оставляй проекты пжл
"Это на аппаратном уровне уберет способность самоубийства способом сходить под себя" xD
Очень интересно рассказано,а ещё класно то что в ролике не только теория как создать змейку,но и практика,чемпионат змеек
Это лучшее, что я видел за этот год)))
Уникальный годный контент. Спасибо, было очень интересно!
Великолепно, не видел таких подробно объясняющих видео с примером. Очень жду следующие видео. Не мог бы ты выкладывать код, тоже охота по экспериментировать
3 часа ночи, что я блять делаю?
То же, что и я))
Генетика, нейронные сети и крутой скринсейвер бонусом)
4 часа о_О
Успокаивает мозг перед сном наверное умным людям или отвлекает нервы или изза любопытности))
развиваешься
нахрен аватарку скоммуниздил?
С нетерпением жду вторую часть видео. Автору поклон и уважение
Как всегда годный контент! Жду новых змеек и искусственную жизнь!
Самоубийство методом "сходить под себя". Никогда о таком не слышал, но очень интригующе.
Спасибо! С нетерпением ждал ваших новых экспериментов!
Найс! Очень интересное видео.
Да, это можно назвать нейронкой, хотя там обычно используются float, но здесь они не особо-то и нужны.
Backpropagation и эволюция это все-таки разные вещи, хотя когда ты сам говорил змейке куда идти, это немного напоминало обычный метод обучения нейронок, только обучающие данные не были заранее заготовлены, а создавались в процессе обучения.
Очень интересно, ждём вторую часть.
Вводи дополнительные веса для движущихся змеек. Это позволит научить змейку обходить не только неподвижные объекты, но и преследовать и подрезать врагов, а также зацикливаться в себя )) и обучать лучше через эволюционный алгоритм
А че делать с альтруизмом ? Он выжил тоже а эволюции , а для чего ?
10:21 сходить под себя :D
Я со смеху чуть не сходил под себя :)))
Смешно
Отличный видео-ролик, наглядно показывающий процесс разработки и обучения нейронных сетей. Огромное спасибо автору за эту непростую работу в создании данного познавательного материала
Спасибо что показываете все визуально. Так приходит понимание, что такое веса и как они работают. Ниде больше так не увидишь
самый лучший канал по нейростям! СПАСИБО
Хорошо, посмотрел удовольствие получил, лайк поставил.
Я просто кайфую с твоих видосов, пускай и не все понимаю, но ты делаешь все круто!
Уж не допинг ли тут замешан? :DDDD
Это лучшее, что я когда либо видел. Чемпионат змеек, чья нейросеть лучше! Бро, продолжай дальше, не забрасывай, за этим стоит будущее)
Очень интересно смотреть, все больше затягивает эта тема :)
Спасибо за видео! Жду следующие!
А если серьёзно - ты красавчик, очень интересное видео. На ютубе мало таких. Держись на нем!
Спасибо. Мотивирует и заинтересовывает
Оооооочень крутая подача!!!!
Ниразу не было скучно за время просмотра!!!!
Желаю тебе удачи!
Смотрю на соревнование змеек и меня это умиляет!!!
Примите мои аплодисменты
👏👏👏
Не знаю кому как, но мне от каждого видео сносит голову. Дико интересно. Считай, игра в бога. Автору бесконечное спасибо! (Блин спать уже хотел, а тут...)
Очень интересно! Анимация выглядит очень наглядно! Спасибо за интересный контент
Годно, интересно возможно обучить змейку предсказывать ситуацию что-бы не давать возможности "самозамкнутся" т.е. делает последовательность после которой она сталкивается сама с собой или препятствием.
очень интересно! По началу не понял, как работает мозг змейки, но сейчас понял. Азарт возрастает! кто же победит?..
Супер! Продолжай проекты
Интересно смотреть. Хорошо снимаете
Это очень интересно, искал подобные каналы - все в пустую, нашёл ваш, нашёл надежду, не бросайте проект, и на каком языке вы пишите нейронки?
КРУТО!
Слушайте я так думаю что вы будете первым кто создаст симуляцию мира.
Сначала генетические алгоритмы, потом мозг для змейки, что будет дальше?
Жду не дождусь нового виде о искусственной жизни (эволюции).
>что будет дальше?
Мир дикого запада
Богдан сооветую уже привыкать быть домашним животным. Потому что скоро foo52ru
Создаст искусственный интеллект и человечество будет домашними животными для этого интеллекта.
Советую прикидываться котиком или собакой, может в будущем ты станешь звездой Ютьюба искусственного интеллекта.
таким задачкам уже более 20 лет... Змеемозг - традиционный челендж для студентов. Ток они не яблоки на время грызут, а головы в прыжке )
10:48 Это не ИНС, а *линейный классификатор*, т.к. нет функции нелинейности (функции активации). И это не back propogation. Для BP нужна функция ошибки, чтобы было чего минимизировать, расчет градиентов и т.д.
ступенька чем не функция активации ? и чем не обратная-propagation если приближённая функция потерь показывалась при обучении ?
пруфлинк на функцию "ступенька", плиз =) И вопрос: "ступенька" дифференцируема? А не BP, потому что для BP особая математика нужна, а тут никакой математики, всё на пальцах... Просто чел сделал линейный классификатор и изобрёл для него некий велосипед в качестве адгоритма обучения. И ещё не понятно, во всех ли случаях этот алгоритм имеет сходимость...
пруф (первый в поисковике) - ppt-online.org/278109 , да и в книгах было. сходимость в большом очевидно есть, а в малом - это не обязательно, да и у людей бывают сбои , но это не значит , что их мозг не нейросеть )) да и не линейный классификатор это, ибо функция мозга змейки не является линейным оператором.
Обычно такую функцию называют пороговой. Ок, где у него там ступенька/пороговая функция? Он просто помножает входы на веса и суммирует: 1:40 Никаких функций от результата суммирования не считает. Просто смотрит, где максимум - туда и ходит.
С человеческим мозгом такие примитивы вообще сравнивать некорректно. Даже если бы это была ИНС, сделанная по всем правилам.
Это линейный классификатор, причём "простой и непорочный" :)
ru.wikipedia.org/wiki/%D0%9B%D0%B8%D0%BD%D0%B5%D0%B9%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80
И, кстати, во всех Х функции вида "ступенька" градиент dY/dX равен 0, следовательно, BP работать не будет.
"Просто смотрит, где максимум - туда и ходит. " это и есть порог, причём порог адаптивный.
Ладно,пускай, но однослойный перцептрон так же может быть линейным классификатором - ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D1%86%D0%B5%D0%BF%D1%82%D1%80%D0%BE%D0%BD#%D0%98%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BA%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F
Я вообще случайно набрел на канал. Очень познавательно! пересматриваю видосы.
Класс, однозначно поствлю лайк.
Особенно за коментарит на чемпионате!!!
Просто вау! Нет слов! Круто!
Ты создал точную копию моего мозга
круто! урок простенький и залипательный, но чувствуется, что серьёзно заморочился, чтобы его записать
Дружище,ты не гений случайно ? Потому как я думаю,именно гений !
Красава, очень интересно!
Интересно посмотреть как ты будешь учить змеек загонять соперников в ловушку ;)
Чертовски интересно!
По-моему улучшения будут только полезны для проекта. Замечательная задумка, кстати!
С интересом наблюдаю, как самообучается ваша головная нейросеть )
Скорей бы с работы вернуться. Чет ии создать захотелось.
это просто шикарная теория! на пальцах разжевано, на примерах показано
Спасибо!
Круто, спасибо ))
Хотелось бы услышать про алгоритм отбора самообучаемых змеек =) Однозначно лайк за труд!
В группе вк есть. vk.com/cyberbiology
Генетический алгоритм, там видео старое найдите, такой же принцип
Заметил, что выживаемость змейки зависит от дальновидности. Яркий пример, когда змейка запутывается в собственном хвосте.
"Сходить под себя!" - способ самоубийства, хахахааа
Интереснейшие видосы!!!
*лайк от овера*
Пили еще, тебя увидели!
скорее бы уже змейки захватили мир! лайк, если тоже ждёшь этого
Заряд мотивации
Захватывающие ))
Блин, Я за зеленых болел(((
Автор, Ты - великолепен! =)
Хуа контент, братишка! Ты очень хорош!)
Зрелищно!
Вполне НС. Ты даже указал до оптимизации 240 входных нейронов, 4 выходных и 960 связей. Скрытого слоя нет.
С методом обучения я так не уверен. Обратное распространение по сути реализовано, но без матана.
Правда, что зеленые змейки могли суицидить не только запутавшись в себе, но и методом "сходить под себя"? В одном моменте показалось, что именно это произошло, было обидно.
Не ожидал, что начнёшь заниматься НС. Был уверен с первых секунд, что будет привычный генетический алгоритм.
ГА будет во второй части
Обучение с учителем.
На входе сигналы 0 или 1. Функция активации - нечто вроде софтмакс (выбирается то направление, значение на котором больше).
Функция ошибки считается от разности между правильным направлением и неверно выбранным змейкой. Матрица коррекции весов равна произведению вектор-столбца сигналов со входа на вектор-строку сигналов ошибки.
Несмотря на такую простоту, поведение змеек выглядит сложным.)
прикольно мне видео понравилось
Пришел сюда, чтобы не деградировать в трендах.
Я вообще бойкотирую трендовый раздел
Надо добавить еще несколько входных параметров, собственная длина и история собственных движений. И больше обучать при длинном червяке, это должно уменьшить количество самоедства.
Пошаманить со скрытыми слоями, может удастся научить распознавать опасные рисунки и избегать их.
У меня был параметр "история собственных движений"
У одной змейки из команды вычиталось несколько очков в том же направлении, куда был сделан прошлый шаг. Змейка становилась более вертлявой.
У второй змейки прибавлялось несколько очков в прошлом направлении, змейка становилась более прямолинейной.
Третья змейка оставалась без изменений.
Потом убрал это, что бы сохранить простоту.
Собирал статистику, змейки, где происходило прибавление/убавление очков по старому направлению, были чуть результативней на несколько процентов.
круто!
Ждем соревнования с NEAT сеткой)
Круто
Круто!!!!))
вот очень обидно когда у таких людей подписоты нет(
10:18 "самоубийство сходить под себя" 🤣🤣🤣
Самый лучший
Класс, лучше чем наш футбол..
лучший!
Я уверен, что это надо финансировать на госуровне!
Лайк, сразу, без просмотра!!!
я придумал оптимизацию: змейке можно подавать три расстояние до еды: по направлению движение, слева направления и справа. точно также и с преградами, и еще лучше добавить нейрон смещение, также добавить один или несколько скрытых слоев.
Опять же, делал подобное (как и в случае с генетическим алгоритмом). Проект назывался "Микробыш". По полю бегали пиксели, обладающие собственной индивидуальностью: кто-то просто бегал прямолинейно и сворачивал лишь при виде жертвы / финиша, а кто-то был любопытным и старался бегать вдоль стен, заходя в двери и выискивая цель в укромных местах. Также я добавил управление и даже реализовал локальный мультиплеер, забавно было вдвоём прятаться от эдакого искусственного интеллекта) Ну и, разумеется, всякие доп. фишки сделал: редактор карт, сохранение и загрузку карт, управление скоростью симуляции в режиме реального времени и др. Алгоритм, правда, такой себе получился, боты тупенькие, не умеют смотреть диагонально, да и без экранной лупы не поиграешь, но для первого крупного проекта, я считаю, неплохо.
Продолжай
я взял пиво и позвал друзей на матч
Скайнет. Начало.
Серёга Носов, собственно, этот человек уже очень близко к этому, ничего нового)
"...Этот человек уже очень близко к этому..."- очень громкое и безосновательное заявление.
Капитан Сук, ты шутки не понял.? Я ж не в серьёз.
Нужно еще ввести термин шаговой доступности или скорректировать термин поля видимости : так как 5 клеток на 5 клеток --- это квадрат , а видимость предпологает радиус равный . ТОгда то и можно ввести термин шаговой доступности . Тоесть 5 шагов . Шаг вверх + 4 шага влево или 3 шага вверх + 2 шага вправо .....и так далее (шаговая доступность :) Что в свою очередь даст параметр - количество шагов до еды . И выбор наименьших затрат (шагов до еды), тоесть выбор еды , но не пути до еды.
Ни...я не понял, но очень интересно. (Лайк поставил)
Да это нейронная сеть и метод обратной ошибки, но вот насчёт распространения... нету его тут. Слоёв маловато и функция при нейронах должна быть нелинейной, точнее нужна сигмоидальная функция. Ещё слоёв можно добавить и даже нужно.
змейки захватят мир!!!
Ух, ты! Видео про нейросети. Не. Это не алгоритм обратного распространения ошибки. Метод обратного распространения ошибки - это способ реорганизации вычислений сумм в процессе минимизации функции ошибки от весов нейросети методом градиентного спуска. Если в классическом методе для поиска частной производной для каждого веса необходимо пересчитывать всю функцию целиком, то в методе распространения обратной ошибки это не требуется, т.к. для каждого следующего слоя используются значения сумм уже посчитанных ранее слоях. Но он (это же градиентный метод) требует дифференцируемости функции активации нейронов, а здесь, в последнем слое, вообще говоря используется пороговая функция от суммы последних четырёх весов (четвёртый со знаком "минус"). На выходе же важно не значения весов получить, а выбранное направление. Ну и в данном случае нет смысла привлекать метод обратного распространения ошибки, так сеть получается однослойной с всего 4-мя нейронами (!) и большим количеством прямых связей с каждым датчиком к каждому нейрону. В этом случае он вырождается в обычный градиентный спуск.
Кстати, ниже дали хорошую идею придать динамику нейросети. Для этого можно продублировать все датчики, условно: на первичные и запаздывающие. Первичные - это те же датчики, а запаздывающие показывают ту же информацию, что и соответствующие первичные, но с запаздыванием на один ход.
Всё просто офигенно,но имена у гусениц упоротые)
Прикольно!
Самый жоский матч в моей жизни
Клёво
круто