Сделай змейку с глубокой НС, которая видит всё поле и планирует маршрут. Пусть генетический алгоритм подбирает не только веса, но и структуру нейросети (кол-во слоёв и кол-во нейронов). For Science!
Сделанно действительно интерессно. Кажется меня никогда не перестанут удивлять похожие вещи в программировании. Жду каждое видео с упоением. У тебя очень интересные эксперименты и идеи.
Великолепно, не видел таких подробно объясняющих видео с примером. Очень жду следующие видео. Не мог бы ты выкладывать код, тоже охота по экспериментировать
Отличный видео-ролик, наглядно показывающий процесс разработки и обучения нейронных сетей. Огромное спасибо автору за эту непростую работу в создании данного познавательного материала
10:48 Это не ИНС, а *линейный классификатор*, т.к. нет функции нелинейности (функции активации). И это не back propogation. Для BP нужна функция ошибки, чтобы было чего минимизировать, расчет градиентов и т.д.
пруфлинк на функцию "ступенька", плиз =) И вопрос: "ступенька" дифференцируема? А не 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
Найс! Очень интересное видео. Да, это можно назвать нейронкой, хотя там обычно используются float, но здесь они не особо-то и нужны. Backpropagation и эволюция это все-таки разные вещи, хотя когда ты сам говорил змейке куда идти, это немного напоминало обычный метод обучения нейронок, только обучающие данные не были заранее заготовлены, а создавались в процессе обучения.
Вводи дополнительные веса для движущихся змеек. Это позволит научить змейку обходить не только неподвижные объекты, но и преследовать и подрезать врагов, а также зацикливаться в себя )) и обучать лучше через эволюционный алгоритм
Не знаю кому как, но мне от каждого видео сносит голову. Дико интересно. Считай, игра в бога. Автору бесконечное спасибо! (Блин спать уже хотел, а тут...)
КРУТО! Слушайте я так думаю что вы будете первым кто создаст симуляцию мира. Сначала генетические алгоритмы, потом мозг для змейки, что будет дальше? Жду не дождусь нового виде о искусственной жизни (эволюции).
Богдан сооветую уже привыкать быть домашним животным. Потому что скоро foo52ru Создаст искусственный интеллект и человечество будет домашними животными для этого интеллекта. Советую прикидываться котиком или собакой, может в будущем ты станешь звездой Ютьюба искусственного интеллекта.
я придумал оптимизацию: змейке можно подавать три расстояние до еды: по направлению движение, слева направления и справа. точно также и с преградами, и еще лучше добавить нейрон смещение, также добавить один или несколько скрытых слоев.
Как уже заметили, это не является нейронной сетью и методом распространения ошибки. Чтобы это стало нейронной сетью, нужно добавить нелинейность к сумме. Также у вас здесь фактически задача классификации, на выход стоит еще добавить softmax. Чтобы обучить методом обратного распространения ошибки, можно поступить следующим образом. Играйте змейкой сами, как обычно, не по шагам, но на каждом шаге сохраняйте показания сенсоров и ваш выбор. Получите датасет. Можно будет его разделить на обучающую и тестовую выборку (ну а можно и не делать тестовую, просто запускать и оценивать "на глазок"). Затем уже на этом датасете обучите с использованием всего того матана метода обратного распространения ошибки. Можно реализовать самостоятельно, можно воспользоваться готовыми. Хорошая книга: yadi.sk/i/AuHUvb-71GFC1Q
Спасибо за книгу. Посмотрел по диагонали, выглядит сложновато, хотя возможно объяснения будут доступные. Сейчас я читаю "Создаём нейронную сеть" Тарик Рашид.
Да это нейронная сеть и метод обратной ошибки, но вот насчёт распространения... нету его тут. Слоёв маловато и функция при нейронах должна быть нелинейной, точнее нужна сигмоидальная функция. Ещё слоёв можно добавить и даже нужно.
Надо добавить еще несколько входных параметров, собственная длина и история собственных движений. И больше обучать при длинном червяке, это должно уменьшить количество самоедства. Пошаманить со скрытыми слоями, может удастся научить распознавать опасные рисунки и избегать их.
У меня был параметр "история собственных движений" У одной змейки из команды вычиталось несколько очков в том же направлении, куда был сделан прошлый шаг. Змейка становилась более вертлявой. У второй змейки прибавлялось несколько очков в прошлом направлении, змейка становилась более прямолинейной. Третья змейка оставалась без изменений. Потом убрал это, что бы сохранить простоту. Собирал статистику, змейки, где происходило прибавление/убавление очков по старому направлению, были чуть результативней на несколько процентов.
Нужно еще ввести термин шаговой доступности или скорректировать термин поля видимости : так как 5 клеток на 5 клеток --- это квадрат , а видимость предпологает радиус равный . ТОгда то и можно ввести термин шаговой доступности . Тоесть 5 шагов . Шаг вверх + 4 шага влево или 3 шага вверх + 2 шага вправо .....и так далее (шаговая доступность :) Что в свою очередь даст параметр - количество шагов до еды . И выбор наименьших затрат (шагов до еды), тоесть выбор еды , но не пути до еды.
Идея змейки понравилась, но есть дополнение. Такой алгоритм имеет смысл только для симуляции реальной жизни змеи. Если же мы пытаемся написать алгоритм именно для игры в игру Змейка, то здесь явная неточность. Игрок видит всё поле сразу и на основе этого выстраивает путь змеи. А тут получается змея почти слепая, если видит лишь участок поля.
Стало интересно почему именно 8? Оказывается можно и 12 если квадраты заменить на шестиугольники. Дело в том, что теория групп даёт исчерпывающий ответ, на подобные вопросы, давайте спросим у неё. Нам понадобится понятие порядка группы, порядок группы это просто напросто количество элементов в этой самой группе. Так вот порядок группы самосовмещений квадрата равен 8, откуда следует что порядок группы самосовмещений квадратной сетки равен 8, и уже отсюда следует что можно оптимизировать обучение именно в 8 раз. Если рассмотреть сетку из правильных шестиугольников, то рассуждая подобным образом придём к числу 12. Есть общая формула для порядка группы самосовмещений правильного n-угольника, |G| = 2n.
Вполне НС. Ты даже указал до оптимизации 240 входных нейронов, 4 выходных и 960 связей. Скрытого слоя нет. С методом обучения я так не уверен. Обратное распространение по сути реализовано, но без матана. Правда, что зеленые змейки могли суицидить не только запутавшись в себе, но и методом "сходить под себя"? В одном моменте показалось, что именно это произошло, было обидно. Не ожидал, что начнёшь заниматься НС. Был уверен с первых секунд, что будет привычный генетический алгоритм.
Обучение с учителем. На входе сигналы 0 или 1. Функция активации - нечто вроде софтмакс (выбирается то направление, значение на котором больше). Функция ошибки считается от разности между правильным направлением и неверно выбранным змейкой. Матрица коррекции весов равна произведению вектор-столбца сигналов со входа на вектор-строку сигналов ошибки. Несмотря на такую простоту, поведение змеек выглядит сложным.)
Это линейный классификатор, не знаю считают ли их нейросетью в академической среде. Как по мне - вполне можно считать вырожденным вариантом нейросети. Об обратном распространении ошибки здесь речи не идёт, так как некуда распространять - есть только входы и выходы, нет скрытых слоёв.
Чёрт! Да это было круто! Не интересовался подобным от слова совсем, чисто случайно нашёл это видео и посмотрел. Не знаю, как описать эмоции, но это было реально круто! :)
Я знаю что никто не увидит это, но:было бы интересно если бы сюда добавили возможность змейкам уничтожать друг друга(врагов), и становиться камикадзе, допустим 2 зеленых набрали длину и специально умерли около синих, для того что бы уничтожить, или хотя бы создать помехи синим, тем временем другой зеленый будет дальше собирать еду, примерно как на моменте 8:53 .
Опять же, делал подобное (как и в случае с генетическим алгоритмом). Проект назывался "Микробыш". По полю бегали пиксели, обладающие собственной индивидуальностью: кто-то просто бегал прямолинейно и сворачивал лишь при виде жертвы / финиша, а кто-то был любопытным и старался бегать вдоль стен, заходя в двери и выискивая цель в укромных местах. Также я добавил управление и даже реализовал локальный мультиплеер, забавно было вдвоём прятаться от эдакого искусственного интеллекта) Ну и, разумеется, всякие доп. фишки сделал: редактор карт, сохранение и загрузку карт, управление скоростью симуляции в режиме реального времени и др. Алгоритм, правда, такой себе получился, боты тупенькие, не умеют смотреть диагонально, да и без экранной лупы не поиграешь, но для первого крупного проекта, я считаю, неплохо.
интуитивно все понятно. Вопрос простого человека -какие ультимативные возможности и казусы нейросети могут быть с точки зрения футурологии , развития технологии нейросетей и железа, в отношении человеков?? Какбэ гуманитарно на сколько это все оправдано? И вообще это надо? Просто есть мнение , что усложнение технологий может привести к обесцениванию человека , как полновесной социальной и гуманитарной единицы. Типо- водители автобусов больше не нужны потому что есть искусственный интеллект управляющий автобусом лучше чем человек. Куда деваться человеку???
Интересно еще добавить "еде" возможность двигаться, т.е. убегать от змейки. Или сделать несколько видов (цветов) еды, каждый из которых может двигаться со своей скоростью)
Но, тогда смерть змейки не будет зависеть от ее "навыков выживания", что "несправедливо")) Фактически, это будет смерть рандомной змейки, что не спортивно.
Я имел ввиду способность змейки выбирать не только направление движения к статичной еде, но и ее разборчивость в пище, которую также можно попытаться прививать разными путями)
так наверное можно симулировать поведение игрока то есть если нейронка будет следить за всеми действиями игрока и корректировать под них весы то она будет двигаться примерно также как и игрок скорее всего но я попробую запустить симуляцию и проверю это
Ух, ты! Видео про нейросети. Не. Это не алгоритм обратного распространения ошибки. Метод обратного распространения ошибки - это способ реорганизации вычислений сумм в процессе минимизации функции ошибки от весов нейросети методом градиентного спуска. Если в классическом методе для поиска частной производной для каждого веса необходимо пересчитывать всю функцию целиком, то в методе распространения обратной ошибки это не требуется, т.к. для каждого следующего слоя используются значения сумм уже посчитанных ранее слоях. Но он (это же градиентный метод) требует дифференцируемости функции активации нейронов, а здесь, в последнем слое, вообще говоря используется пороговая функция от суммы последних четырёх весов (четвёртый со знаком "минус"). На выходе же важно не значения весов получить, а выбранное направление. Ну и в данном случае нет смысла привлекать метод обратного распространения ошибки, так сеть получается однослойной с всего 4-мя нейронами (!) и большим количеством прямых связей с каждым датчиком к каждому нейрону. В этом случае он вырождается в обычный градиентный спуск. Кстати, ниже дали хорошую идею придать динамику нейросети. Для этого можно продублировать все датчики, условно: на первичные и запаздывающие. Первичные - это те же датчики, а запаздывающие показывают ту же информацию, что и соответствующие первичные, но с запаздыванием на один ход.
Может быть лучше синюю змейку натренировать с полной оптимизацией? Хочется посмотреть на что она тогда будет способна. Но я сомневаюсь, что она сможет противопоставить что-то генетическому алгоритму.
Нейросети - это сети из нейронов. Очевидно же) Эвол. (генетический) алгоритм - это способ совершенствования (обучения) чего угодно (в том числе НС) с помощью естественного отбора.
Sæmundar edda, нейронные сети - сети нейронов (живых или искусственных), созданных решать задачу на основе обученных связей, имеющих веса. Нейросеть делает выбор в пользу варианта с большим весом. Ген. Алгоритм - алгоритм, позволяющий создать решение задачи путём естественного отбора.
10:17 "это на аппаратном уровне уберет возможность самоубийства способом 'сходить под себя'" - ржунимагу)
Ну ты просто представь, как змейка попытается сходить под себя.
Да это просто выжгет глаза всем, и сломает логику этого мира.
Но змейка всё ещё сможет съесть себя, хотя для этого ей нужно будет стать длиннее.
@@ВасяЕромагай2008ТЬВИШоу ВыЖЖет, а не выЖГет!
А вы как это скажите, умники блин, чебурек?
@@sannaz3344, это на аппаратном уровне не позволит змейке съесть себя.
Увлекательней чем футбол!
PERESMOTRI 😂
😂👍
Что угодно увлекательнее чем футбол
Я пришел от overbafera 2019, не оставляй проекты!
Возможно человек не забрасывал канал... Возможно это нейросеть обучалась)
+
+++++
Иван Иванов я тож от овера давайте лайканем видосики
+
волновался за синих больше чем за свои отношения
А что за игра ?
А я за зеленых)
Сделай змейку с глубокой НС, которая видит всё поле и планирует маршрут. Пусть генетический алгоритм подбирает не только веса, но и структуру нейросети (кол-во слоёв и кол-во нейронов). For Science!
Итогом прога сожрёт все ресурсы
@@DimaTiunov да нет, изменение структуры нейросети может быть реализовано с помощью NEAT алгоритма
Сделанно действительно интерессно. Кажется меня никогда не перестанут удивлять похожие вещи в программировании. Жду каждое видео с упоением. У тебя очень интересные эксперименты и идеи.
Очень интересно рассказано,а ещё класно то что в ролике не только теория как создать змейку,но и практика,чемпионат змеек
Это лучшее, что я видел за этот год)))
Уникальный годный контент. Спасибо, было очень интересно!
И я пришел от overbafera 2019, не оставляй проекты пжл
Как всегда годный контент! Жду новых змеек и искусственную жизнь!
Великолепно, не видел таких подробно объясняющих видео с примером. Очень жду следующие видео. Не мог бы ты выкладывать код, тоже охота по экспериментировать
С нетерпением жду вторую часть видео. Автору поклон и уважение
Отличный видео-ролик, наглядно показывающий процесс разработки и обучения нейронных сетей. Огромное спасибо автору за эту непростую работу в создании данного познавательного материала
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
Найс! Очень интересное видео.
Да, это можно назвать нейронкой, хотя там обычно используются float, но здесь они не особо-то и нужны.
Backpropagation и эволюция это все-таки разные вещи, хотя когда ты сам говорил змейке куда идти, это немного напоминало обычный метод обучения нейронок, только обучающие данные не были заранее заготовлены, а создавались в процессе обучения.
"Это на аппаратном уровне уберет способность самоубийства способом сходить под себя" xD
Вводи дополнительные веса для движущихся змеек. Это позволит научить змейку обходить не только неподвижные объекты, но и преследовать и подрезать врагов, а также зацикливаться в себя )) и обучать лучше через эволюционный алгоритм
А че делать с альтруизмом ? Он выжил тоже а эволюции , а для чего ?
Не знаю кому как, но мне от каждого видео сносит голову. Дико интересно. Считай, игра в бога. Автору бесконечное спасибо! (Блин спать уже хотел, а тут...)
Я просто кайфую с твоих видосов, пускай и не все понимаю, но ты делаешь все круто!
Это лучшее, что я когда либо видел. Чемпионат змеек, чья нейросеть лучше! Бро, продолжай дальше, не забрасывай, за этим стоит будущее)
Очень интересно, ждём вторую часть.
Спасибо что показываете все визуально. Так приходит понимание, что такое веса и как они работают. Ниде больше так не увидишь
3 часа ночи, что я блять делаю?
То же, что и я))
Генетика, нейронные сети и крутой скринсейвер бонусом)
4 часа о_О
Успокаивает мозг перед сном наверное умным людям или отвлекает нервы или изза любопытности))
развиваешься
нахрен аватарку скоммуниздил?
Очень интересно смотреть, все больше затягивает эта тема :)
самый лучший канал по нейростям! СПАСИБО
А если серьёзно - ты красавчик, очень интересное видео. На ютубе мало таких. Держись на нем!
Спасибо! С нетерпением ждал ваших новых экспериментов!
очень интересно! По началу не понял, как работает мозг змейки, но сейчас понял. Азарт возрастает! кто же победит?..
Уж не допинг ли тут замешан? :DDDD
Ты создал точную копию моего мозга
С интересом наблюдаю, как самообучается ваша головная нейросеть )
Это очень интересно, искал подобные каналы - все в пустую, нашёл ваш, нашёл надежду, не бросайте проект, и на каком языке вы пишите нейронки?
Скорей бы с работы вернуться. Чет ии создать захотелось.
КРУТО!
Слушайте я так думаю что вы будете первым кто создаст симуляцию мира.
Сначала генетические алгоритмы, потом мозг для змейки, что будет дальше?
Жду не дождусь нового виде о искусственной жизни (эволюции).
>что будет дальше?
Мир дикого запада
Богдан сооветую уже привыкать быть домашним животным. Потому что скоро foo52ru
Создаст искусственный интеллект и человечество будет домашними животными для этого интеллекта.
Советую прикидываться котиком или собакой, может в будущем ты станешь звездой Ютьюба искусственного интеллекта.
таким задачкам уже более 20 лет... Змеемозг - традиционный челендж для студентов. Ток они не яблоки на время грызут, а головы в прыжке )
Оооооочень крутая подача!!!!
Ниразу не было скучно за время просмотра!!!!
Желаю тебе удачи!
Интересно посмотреть как ты будешь учить змеек загонять соперников в ловушку ;)
я придумал оптимизацию: змейке можно подавать три расстояние до еды: по направлению движение, слева направления и справа. точно также и с преградами, и еще лучше добавить нейрон смещение, также добавить один или несколько скрытых слоев.
Как уже заметили, это не является нейронной сетью и методом распространения ошибки. Чтобы это стало нейронной сетью, нужно добавить нелинейность к сумме. Также у вас здесь фактически задача классификации, на выход стоит еще добавить softmax. Чтобы обучить методом обратного распространения ошибки, можно поступить следующим образом. Играйте змейкой сами, как обычно, не по шагам, но на каждом шаге сохраняйте показания сенсоров и ваш выбор. Получите датасет. Можно будет его разделить на обучающую и тестовую выборку (ну а можно и не делать тестовую, просто запускать и оценивать "на глазок"). Затем уже на этом датасете обучите с использованием всего того матана метода обратного распространения ошибки. Можно реализовать самостоятельно, можно воспользоваться готовыми. Хорошая книга: yadi.sk/i/AuHUvb-71GFC1Q
Спасибо за книгу. Посмотрел по диагонали, выглядит сложновато, хотя возможно объяснения будут доступные. Сейчас я читаю "Создаём нейронную сеть" Тарик Рашид.
В свою очередь, Вам тоже спасибо за эту книгу.
Я вообще случайно набрел на канал. Очень познавательно! пересматриваю видосы.
Да это нейронная сеть и метод обратной ошибки, но вот насчёт распространения... нету его тут. Слоёв маловато и функция при нейронах должна быть нелинейной, точнее нужна сигмоидальная функция. Ещё слоёв можно добавить и даже нужно.
Заметил, что выживаемость змейки зависит от дальновидности. Яркий пример, когда змейка запутывается в собственном хвосте.
10:21 сходить под себя :D
Я со смеху чуть не сходил под себя :)))
Смешно
Хотелось бы услышать про алгоритм отбора самообучаемых змеек =) Однозначно лайк за труд!
В группе вк есть. vk.com/cyberbiology
Генетический алгоритм, там видео старое найдите, такой же принцип
круто! урок простенький и залипательный, но чувствуется, что серьёзно заморочился, чтобы его записать
Дружище,ты не гений случайно ? Потому как я думаю,именно гений !
Надо добавить еще несколько входных параметров, собственная длина и история собственных движений. И больше обучать при длинном червяке, это должно уменьшить количество самоедства.
Пошаманить со скрытыми слоями, может удастся научить распознавать опасные рисунки и избегать их.
У меня был параметр "история собственных движений"
У одной змейки из команды вычиталось несколько очков в том же направлении, куда был сделан прошлый шаг. Змейка становилась более вертлявой.
У второй змейки прибавлялось несколько очков в прошлом направлении, змейка становилась более прямолинейной.
Третья змейка оставалась без изменений.
Потом убрал это, что бы сохранить простоту.
Собирал статистику, змейки, где происходило прибавление/убавление очков по старому направлению, были чуть результативней на несколько процентов.
Спасибо. Мотивирует и заинтересовывает
Очень интересно! Анимация выглядит очень наглядно! Спасибо за интересный контент
Класс, однозначно поствлю лайк.
Особенно за коментарит на чемпионате!!!
Нужно еще ввести термин шаговой доступности или скорректировать термин поля видимости : так как 5 клеток на 5 клеток --- это квадрат , а видимость предпологает радиус равный . ТОгда то и можно ввести термин шаговой доступности . Тоесть 5 шагов . Шаг вверх + 4 шага влево или 3 шага вверх + 2 шага вправо .....и так далее (шаговая доступность :) Что в свою очередь даст параметр - количество шагов до еды . И выбор наименьших затрат (шагов до еды), тоесть выбор еды , но не пути до еды.
Смотрю на соревнование змеек и меня это умиляет!!!
Примите мои аплодисменты
👏👏👏
скорее бы уже змейки захватили мир! лайк, если тоже ждёшь этого
Как называется самоубийство в тюрьме?
Сходить под себя
Идея змейки понравилась, но есть дополнение. Такой алгоритм имеет смысл только для симуляции реальной жизни змеи. Если же мы пытаемся написать алгоритм именно для игры в игру Змейка, то здесь явная неточность. Игрок видит всё поле сразу и на основе этого выстраивает путь змеи. А тут получается змея почти слепая, если видит лишь участок поля.
Стало интересно почему именно 8? Оказывается можно и 12 если квадраты заменить на шестиугольники. Дело в том, что теория групп даёт исчерпывающий ответ, на подобные вопросы, давайте спросим у неё. Нам понадобится понятие порядка группы, порядок группы это просто напросто количество элементов в этой самой группе. Так вот порядок группы самосовмещений квадрата равен 8, откуда следует что порядок группы самосовмещений квадратной сетки равен 8, и уже отсюда следует что можно оптимизировать обучение именно в 8 раз. Если рассмотреть сетку из правильных шестиугольников, то рассуждая подобным образом придём к числу 12. Есть общая формула для порядка группы самосовмещений правильного n-угольника, |G| = 2n.
Вполне НС. Ты даже указал до оптимизации 240 входных нейронов, 4 выходных и 960 связей. Скрытого слоя нет.
С методом обучения я так не уверен. Обратное распространение по сути реализовано, но без матана.
Правда, что зеленые змейки могли суицидить не только запутавшись в себе, но и методом "сходить под себя"? В одном моменте показалось, что именно это произошло, было обидно.
Не ожидал, что начнёшь заниматься НС. Был уверен с первых секунд, что будет привычный генетический алгоритм.
ГА будет во второй части
Обучение с учителем.
На входе сигналы 0 или 1. Функция активации - нечто вроде софтмакс (выбирается то направление, значение на котором больше).
Функция ошибки считается от разности между правильным направлением и неверно выбранным змейкой. Матрица коррекции весов равна произведению вектор-столбца сигналов со входа на вектор-строку сигналов ошибки.
Несмотря на такую простоту, поведение змеек выглядит сложным.)
Спасибо за видео! Жду следующие!
"Сходить под себя!" - способ самоубийства, хахахааа
это просто шикарная теория! на пальцах разжевано, на примерах показано
Это линейный классификатор, не знаю считают ли их нейросетью в академической среде. Как по мне - вполне можно считать вырожденным вариантом нейросети. Об обратном распространении ошибки здесь речи не идёт, так как некуда распространять - есть только входы и выходы, нет скрытых слоёв.
Спасибо за ответ. Потом почитаю, что такое "линейный классификатор".
Моё знакомство с нейронными сетями пока ограниченно несколькими научпоп статьями.
нет нелинейного преобразования, так что нейросетью это считать нельзя
По-моему улучшения будут только полезны для проекта. Замечательная задумка, кстати!
Как у тебя получается находить такие интересные идеи?
Интернет?
Любопытство. Мой главный вопрос: "А что будет, если....?"
Просто вау! Нет слов! Круто!
Супер! Продолжай проекты
7:50 еда наполняет вас решимостью
❤Сохраниться Продолжить
10:18 "самоубийство сходить под себя" 🤣🤣🤣
С чего начать чтобы самому сделать такую же? Я не программист.
Чёрт! Да это было круто! Не интересовался подобным от слова совсем, чисто случайно нашёл это видео и посмотрел. Не знаю, как описать эмоции, но это было реально круто! :)
Блин, Я за зеленых болел(((
Автор, Ты - великолепен! =)
Я знаю что никто не увидит это, но:было бы интересно если бы сюда добавили возможность змейкам уничтожать друг друга(врагов), и становиться камикадзе, допустим 2 зеленых набрали длину и специально умерли около синих, для того что бы уничтожить, или хотя бы создать помехи синим, тем временем другой зеленый будет дальше собирать еду, примерно как на моменте 8:53 .
я делающий геометрию, открываю ютуб и смотрю как сделать мозги для змейки
мои мозги : может ты меня сделаешь?
Интересно смотреть. Хорошо снимаете
Опять же, делал подобное (как и в случае с генетическим алгоритмом). Проект назывался "Микробыш". По полю бегали пиксели, обладающие собственной индивидуальностью: кто-то просто бегал прямолинейно и сворачивал лишь при виде жертвы / финиша, а кто-то был любопытным и старался бегать вдоль стен, заходя в двери и выискивая цель в укромных местах. Также я добавил управление и даже реализовал локальный мультиплеер, забавно было вдвоём прятаться от эдакого искусственного интеллекта) Ну и, разумеется, всякие доп. фишки сделал: редактор карт, сохранение и загрузку карт, управление скоростью симуляции в режиме реального времени и др. Алгоритм, правда, такой себе получился, боты тупенькие, не умеют смотреть диагонально, да и без экранной лупы не поиграешь, но для первого крупного проекта, я считаю, неплохо.
интуитивно все понятно. Вопрос простого человека -какие ультимативные возможности и казусы нейросети могут быть с точки зрения футурологии , развития технологии нейросетей и железа, в отношении человеков?? Какбэ гуманитарно на сколько это все оправдано? И вообще это надо? Просто есть мнение , что усложнение технологий может привести к обесцениванию человека , как полновесной социальной и гуманитарной единицы. Типо- водители автобусов больше не нужны потому что есть искусственный интеллект управляющий автобусом лучше чем человек. Куда деваться человеку???
Блять! нейросети зачеркнули самое главное! Это не я! Где моя шапочка из фольги))
Всё просто офигенно,но имена у гусениц упоротые)
вот очень обидно когда у таких людей подписоты нет(
Хуа контент, братишка! Ты очень хорош!)
Способ самоубийства "сходить под себя" я сейчас от смеха умру)
надо бы еще ввести возможность видеть голову противника
Ни...я не понял, но очень интересно. (Лайк поставил)
Я уверен, что это надо финансировать на госуровне!
Интересно еще добавить "еде" возможность двигаться, т.е. убегать от змейки. Или сделать несколько видов (цветов) еды, каждый из которых может двигаться со своей скоростью)
А ещё можно добавить еду которая будет убивать змейку при поедании. Так сказать яд.
Но, тогда смерть змейки не будет зависеть от ее "навыков выживания", что "несправедливо")) Фактически, это будет смерть рандомной змейки, что не спортивно.
Поликарп Вайншток
Ну тогда придётся учить змеяк опозновать и избегать ядов))
Я имел ввиду способность змейки выбирать не только направление движения к статичной еде, но и ее разборчивость в пище, которую также можно попытаться прививать разными путями)
Поликарп Вайншток
Ну да хорошая идея.
так наверное можно симулировать поведение игрока
то есть если нейронка будет следить за всеми действиями игрока и корректировать под них весы то она будет двигаться примерно также как и игрок
скорее всего
но я попробую запустить симуляцию и проверю это
Чертовски интересно!
Можно подробнее про возможность самоубийства способом "сходить под себя"?
я взял пиво и позвал друзей на матч
Ух, ты! Видео про нейросети. Не. Это не алгоритм обратного распространения ошибки. Метод обратного распространения ошибки - это способ реорганизации вычислений сумм в процессе минимизации функции ошибки от весов нейросети методом градиентного спуска. Если в классическом методе для поиска частной производной для каждого веса необходимо пересчитывать всю функцию целиком, то в методе распространения обратной ошибки это не требуется, т.к. для каждого следующего слоя используются значения сумм уже посчитанных ранее слоях. Но он (это же градиентный метод) требует дифференцируемости функции активации нейронов, а здесь, в последнем слое, вообще говоря используется пороговая функция от суммы последних четырёх весов (четвёртый со знаком "минус"). На выходе же важно не значения весов получить, а выбранное направление. Ну и в данном случае нет смысла привлекать метод обратного распространения ошибки, так сеть получается однослойной с всего 4-мя нейронами (!) и большим количеством прямых связей с каждым датчиком к каждому нейрону. В этом случае он вырождается в обычный градиентный спуск.
Кстати, ниже дали хорошую идею придать динамику нейросети. Для этого можно продублировать все датчики, условно: на первичные и запаздывающие. Первичные - это те же датчики, а запаздывающие показывают ту же информацию, что и соответствующие первичные, но с запаздыванием на один ход.
Может быть лучше синюю змейку натренировать с полной оптимизацией? Хочется посмотреть на что она тогда будет способна. Но я сомневаюсь, что она сможет противопоставить что-то генетическому алгоритму.
Ждем соревнования с NEAT сеткой)
Красава, очень интересно!
А где можно скачать эту програмку
Самоубийство методом "сходить под себя". Никогда о таком не слышал, но очень интригующе.
Офигенное видео спасибо
я возмущен , почему не нашел этого раньше?
Канал автора уникален , хм интересный подход но помоему проще было построить методом сканера , из "ИИ" и необходимости обучения...
Класс, лучше чем наш футбол..
Хорошее видео)
Кто-нибудь подскажите чем нейросети отличаются от эволюционных алгоритмов?
Думала это одно и тоже
Нейросети - это сети из нейронов. Очевидно же)
Эвол. (генетический) алгоритм - это способ совершенствования (обучения) чего угодно (в том числе НС) с помощью естественного отбора.
Sæmundar edda, нейронные сети - сети нейронов (живых или искусственных), созданных решать задачу на основе обученных связей, имеющих веса. Нейросеть делает выбор в пользу варианта с большим весом. Ген. Алгоритм - алгоритм, позволяющий создать решение задачи путём естественного отбора.
Где купить билеты на матч-реванш?
Заряд мотивации