#11. Не дай шесту упасть или как нейросеть держит баланс | Генетические алгоритмы на Python

  Рет қаралды 8,737

selfedu

selfedu

Күн бұрын

Пікірлер: 46
@Plozeroid
@Plozeroid 2 жыл бұрын
Ваш канал лучший из тонны тех что я пересмотрел в поиске хоть немного более подробной информации про нейросети и их разные ответвления. Когда же наткнулся на Ваш канал - просто обомлел. Столько подробных знаний изложено понятным языком, с примерами, объяснениями... Просто огонь ! Ваш труд невероятно ценен. Благодарю !!! Если будет возможность когда-либо продолжить рассматривать более сложные примеры работы Генетического алгоритма, обучения с подкреплением совместно с пакетом Keras и Tensorflow - было бы очень здорово. В интернете настолько тяжело найти стоящую информацию в этой области. Остаются только книги, и те даются весьма не просто порой. Всё таки видеоматериал с примерами воспринимается значительно проще к пониманию.
@boost_456
@boost_456 Жыл бұрын
Здравствуйте. Нашли какой-нибудь материал по теме обучения нейросети играть в игру, с использованием Keras и Deap?
@ГеоргийБудник-ж9д
@ГеоргийБудник-ж9д 2 жыл бұрын
Смотрел взахлёб, за один раз все видео! Очень вдохновляет и мотивирует! Спасибо вам за вашу работу!
@archyt88
@archyt88 3 жыл бұрын
Замечательный курс. Хотелось бы увидеть продолжение про ген. алгоритмы и нейронные сети на более сложном уровне.
@dubinin_s
@dubinin_s 3 жыл бұрын
Глаз не оторвать, спасибо за видео.
@ДаниилСоловьев-э6ш
@ДаниилСоловьев-э6ш 3 жыл бұрын
Как же классно! Очень понятно и доступно все рассказываете)
@takiekakmi7532
@takiekakmi7532 2 жыл бұрын
Пасиб за видос, по ходу ты помог мне приблизиться к адаптации всего этого действа к нейронке, которая будет разговаривать с клиентами голосом...
@MrFog124
@MrFog124 Жыл бұрын
Хотелось бы продолжения! очень круто!
@Engineering_systems1
@Engineering_systems1 7 ай бұрын
Литературу в студию!
@kirilldisso
@kirilldisso Жыл бұрын
Думаю стоит обозначить четко какие библиотеки нужны. ибо возникли ошибки с визуализацией , требуется pyglet==1.5.27 возникли ошибки с песочницей, требуется gym==0.12.5
@selfedu_rus
@selfedu_rus Жыл бұрын
да, кто ж знал, что новые версии так кардинально будут отличаться?!
@MautozTech
@MautozTech Жыл бұрын
Заработало, спасибо. В readme эту инфу надо
@Servini_X
@Servini_X 2 жыл бұрын
Здравствуйте, Сергей. Долго мучился и пока не решил вопрос. При попытке запустить код проекта, питон ругается на строку action = int(network.predict(observation.reshape(1, -1))) (и все ей подобные с конструкцией observation.reshape(1, -1)). Говорит, что observation - это кортеж, и у него нет атрибута reshape. Соответственно, запустить проект не удаётся. Можете помочь разобраться, в чём дело? Я пока всего два дня мучаюсь, но уже подустал и не вижу пути решения.
@selfedu_rus
@selfedu_rus 2 жыл бұрын
observation должен иметь тип numpy.array, если это не так (что странно), то можно попробовать преобразовать кортеж в numpy массив: observation = np.array(observation) предварительно подключить модуль import numpy as np
@Servini_X
@Servini_X 2 жыл бұрын
@@selfedu_rus Странно - не то слово. Пробовал преобразовать в np.array(observation) и этим способом, и несколькими другими. Эта ошибка уходит, но тогда в модуле neuralnetwork.py в функции predict питон ругается на несовпадение размерности массивов. def predict(self, inputs): f = inputs for i, w in enumerate(self.layers): f = np.append(f, 1.0) # добавляем значение входа для bias f = self.acts[i](w @ f) - вот в этой строке return f Как я понял, кортеж преобразуется не в плоский массив, а в массив двойной размерности. Я уж и flatten - ом его пытался сделать плоским, и различные параметры для reshape подбирал - не преобразовывается в нормальную размерность. Все ещё мучаюсь, читаю доки, аж башка кипит. Но ничего не выходит пока. 😞 Текст, разумеется, копировал копипастой, без своих переделок. Добавил только условие выхода после 500 шага, как на видео. В тексте программы этой доработки нет. Версия Питона 3.9 х64
@selfedu_rus
@selfedu_rus 2 жыл бұрын
@@Servini_X посмотрел, версия gym изменилась и работает по другому. Частично поправить можно так. Везде записать: observation = env.reset()[0] и observation, reward, done, info, d = env.step(action) Тогда ГА запустится, но визуализация не запускается. Надо разбираться почему - читать доку ))
@Servini_X
@Servini_X 2 жыл бұрын
@@selfedu_rus Спасибо. Пойду пробовать и курить мануалы. Если получится - отпишусь, может, кому поможет. Но, вообще, это свинство со стороны разработчиков gym - менять входные или выходные параметры модуля без обратной совместимости. Это сколько программ после обновления перестанет работать?
@Servini_X
@Servini_X 2 жыл бұрын
В общем, глобально помогает только установка старой версии gym pip install gym==0.17.3 В Интернете народ массово благодарит разработчиков gym и шлёт им лучи любви. Иначе, там тянется хвост переделок, который новичкам не по зубам. Нам бы с готовыми примерами сначала разобраться. После отката на старую версию gym, этот код работает без изменений.
@Dreamcatcher_Lvl_
@Dreamcatcher_Lvl_ Жыл бұрын
Спасибо большое за это курс. Но открытым остался вопрос: Почему мы не нормализовали данные? ели одни данные принимают значение +-беск, другие +-40 а весовые коэффициенты у нас -1 до 1, не получится ли беспорядок в результате? Не получится ли так что одни входные параметры влияют на результат намного больше?
@HackZemPro-wt3me
@HackZemPro-wt3me Жыл бұрын
Привет, что делать, если у меня во время выполнения кода меняется количество входов?
@LanskoyG
@LanskoyG Ай бұрын
Просмотрел большую часть Ваших видео по нейросетям(отдельные слова за свёртки и RNN), написал свои, развил идею GA для MLP, большое Вам спасибо! И у Вас ошибка генетический алгоритм НЕ Reinforcement Learning, reward - не подкрепление, а фитнесс функция! RL - это один из методов обучения с учителем, GA - метод обучения без учителя Вот сейчас думаю: Возможно ли реализовать GA/NEAT для GRU, LSTM, Transformer? И планируется ли выходы видео по трансформерам?
@selfedu_rus
@selfedu_rus Ай бұрын
Спасибо! С замечанием согласен! Успехов!
@DionysusSagittarius
@DionysusSagittarius Жыл бұрын
По сути, генетический алгоритм в начале формирует несколько мозгов со случайными нейросвязями (числами), и далее перебирает комбинации этих же чисел, вместо их изменений к оптимальным значениям и лишь иногда меняет(мутирует) какое то число из множества весовых коэффициентов, хотя суть обучения именно в нахождении верных чисел, а не в нахождении лучшего сочетания из неверных. Научите нейросеть двигать руками агента в среде, отдельно научите управлять ходьбой, и отдельно научите держать баланс, и далее она быстро обучится ездить на велосипеде. Другими словами главная задача это научится использовать навыки уже обученной нейросети, иначе в реально сложной задаче обучить с нуля нейросеть генетическим алгоритмом будет эквивалентно перебору почти бесконечного набора весовых коэффициентов. Второе это среда, нейросеть обучается взаимодействию агента и конкретной среды, и чтобы обученная сеть имела какую то ценность , среда должны быть актуальной и используемой и сейчас и в будущем, поэтому лучше использовать не gym, а популярные игры, эмуляторы физических процессов или реальных мир, ну или создавать свои среды. Автору канала огромное спасибо, умение преподавать это редкий дар от Бога и он у вас есть!
@PrimaLuceAstronaut
@PrimaLuceAstronaut 2 жыл бұрын
Здравствуйте, Сергей! Попытался реализовать свой генетический алгоритм, но на выходе столкнулся с такой проблемой: "TypeError: Attribute weights of must be a sequence." Подскажите, пожалуйста, в каком из пунктов может быть ошибка и что может вызвать подобную ошибку? Пробовал искать в интернете, но там не так много информации по deap(
@harada9230
@harada9230 3 жыл бұрын
Доброго времени суток! Я попробовал использовать нейронную сеть Keras( с помощью predict() ) вместо той, которую использовали в файле вы, но она оказалась очень медленная и вместо плавной картинки как у вас по факту я получил слайд-шоу. Подскажите пожалуйста, где и что я сделал не так?
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Ну, вообще не должно, predict() быстро выполняется. Так сложно сказать.
@ruslanabduramanov678
@ruslanabduramanov678 2 жыл бұрын
Добрый день! Спасибо больше за лекции, и не только эти! У меня все получилось, но я хочу повторить на примере обучения НС для игры в крестики-нолики. Технически все реализовал, но вот пока не могу обучить (подобрать веса) для НС. Можете дать общие рекомендации по: кол-ву слоев и нейронов в слою, активационных ф-ях, возможных значениях на входе (чем заменить крестик, ноли и пустую клетку), а так же стратегии по выбору методов скрещивания и мутации. Может знаете хорошие примеры в сети?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
Я тоже пробовал и не получилось )) Эта задача явно не для НС. Хотя, видел где то люди обучают, но добавляют кучу эвристик, чтобы процесс обучения пошел ))
@NoName126-p1b
@NoName126-p1b Жыл бұрын
Там подойдет просто МиниМакс алгоритм
@dubinin_s
@dubinin_s 2 жыл бұрын
Подскажите, как решать задачу, если цель не 500 шагов, а сколь угодно большое? Не крутить-же алгоритм пока шест не упадет, предположим, за миллион итераций.
@selfedu_rus
@selfedu_rus 2 жыл бұрын
она должна обучиться на большом числе шагов, а дальше, скорее всего будет удерживать и так
@dubinin_s
@dubinin_s 2 жыл бұрын
@@selfedu_rus спасибо за ответ
@tarasst6887
@tarasst6887 3 жыл бұрын
Шыкарный канал
@Servini_X
@Servini_X 2 жыл бұрын
Прошу прощения, Сергей. Заметил ещё один интересный момент. Даже если в функции оценки приспособленности поставить счетчик на 1000 while not done and actionCounter
@Servini_X
@Servini_X 2 жыл бұрын
Разобрался. Надо в gym увеличить TimeLimit, он по умолчанию =500. Вообще, 500 шагов мало, шест продолжает медленно ползти к краю, и падает после 500 шагов. На 2000 шагов такого эффекта уже точно нет. Чтоб увеличить TimeLimit нужно добавить следующие строки: После import gym Добавить from gym.wrappers import TimeLimit После env = gym.make('CartPole-v1') Добавить env = env.env # unwrap env = TimeLimit(env, max_episode_steps=2000) # wrap Ну и в функции getScore убрать ограничение количества шагов, как и есть в тексте программы по ссылке под видео, а не как добавлено в видео. Работает на версии gym 17.3, на более поздних не проверял, там API переделан, код вообще не работает.
@Servini_X
@Servini_X 2 жыл бұрын
Первое просветление у новичка наступает тогда, когда он понимает, почему вместо использования Keras для генерации нейросети автор предпочёл написать её сам.
@ВикторСороколетов
@ВикторСороколетов 2 жыл бұрын
Это q learning я верно понял?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
нет, Q-алгоритмы обучения - это отдельная огромная и математическая тема "обучение с подкреплением"
@vladvlad3454
@vladvlad3454 2 жыл бұрын
@@selfedu_rus планируете ли делать видео по q-алгоритмам? p.s спасибо за контент, лучше не найти по факту в ру сегменте
@selfedu_rus
@selfedu_rus 2 жыл бұрын
@@vladvlad3454 спасибо! пока нет, т.к. информация не простая и математическая
@_Michikatsu_
@_Michikatsu_ Жыл бұрын
если кто может помогите пожалуста, я скачал код з github, и когда я запускаю код у меня такие ошыбки(может кто то кинуть исправленую версию кода): line 79, in population, logbook = algelitism.eaSimpleElitism(population, toolbox, line 16, in eaSimpleElitism for ind, fit in zip(invalid_ind, fitnesses): line 60, in getScore action = int(network.predict(observation.reshape(1, -1))) AttributeError: 'tuple' object has no attribute 'reshape'
@mslq
@mslq Жыл бұрын
Видимо в тех штуках на колёсиках не используют эти алгоритмы )) Иначе не было бы столько смешных роликов, у разработчиков похоже в голове нарушена нейронная сеть.
Hilarious FAKE TONGUE Prank by WEDNESDAY😏🖤
0:39
La La Life Shorts
Рет қаралды 44 МЛН
Почему Катар богатый? #shorts
0:45
Послезавтра
Рет қаралды 2 МЛН
Самое простое объяснение нейросети
16:30
Программный Кот
Рет қаралды 138 М.
Делаю нейросеть с нуля
17:17
Onigiri
Рет қаралды 1,5 МЛН
[DeepLearning | видео 1] Что же такое нейронная сеть?
19:00
3Blue1Brown translated by Sciberia
Рет қаралды 819 М.
генетический алгоритм
9:29
foo52ru ТехноШаман
Рет қаралды 382 М.