Умный человек может легко объяснить сложные вещи, если он их действительно хорошо понимает, простыми словами. Вспомните Фейнмана.
Я посмотрел первое видео и остановился, потомучто ничего не понял. Затем открыл википедию, посмотрел пару графиков и разобрался.
Автору — постарайся объяснять для начала, для чего это надо и где можно это применять, тогда будит интересней.
Честно говоря надоели уже! Каждый второкурсник, которому рассказали про ГА стремится сразу же написать на Хабр! Поищите в поиске — там штук 20 таких постов найдете за последний год!
Я понял объяснения автора. Относительно полноты и достоверности ничего сказать не могу, тут вы возхможно правы, судя по количеству претензий к автору. «ничего не понятно!» — это другое, касающееся формы изложения. Это 20 статей мелким шрифтом. Я тут вроде бы видел пару-тройку на эту же тему, но их читать даже курсор не поднимался. Так что спасибо автору по крайней мере за форму изложения своих мыслей (там тоже есть недостатки, однако в сравнении с обычным текстом, видеоряд рулит невозбранно).
простая сортировка и выбор top50% — превращает весь алгоритм в банальное решение методом восхождения с хорошим рандомайзом на входе.
Замените сортировку на выживание с вероятностью, пропорциональной фитнесс-функции, и получите ГА.
1) Тем которые, когда либо писали ген. прожки это детский лепет
2) Тем кто не занимался нифига не понятно.
Имхо надо ввести определения, что такое хромосома что такое популяция и тд,
дальше ввести понятия отбор и мутация и тд, а также как их можно делать.
И показать простенький примерчик, без большого счета.
Как по мне достаточно для того что бы знать что это такое и для чего оно (я не про вирусы, а про искусственный интеллект), а когда появиться задача для которой алгоритм подойдет уже и углубиться.
ЗЫ занимался ГА, данную тематику лучше осваивать самому, после того как наткнешься на НП-полную задачу. потом будешь изучать имтационный отжиг, ну вобщем пойдешь по наклонной )))
Я вот никогда не занимался ГА и вообще не занимаюсь программированием.
Но все, что автор сказал — понял. Он ведь сам сказал «те, кто хоть немного ходили на биологию в школе, поймут» =)
Может быть в гугле найдутся десятки статей, но узнаю я (да и многие) о таких вещах именно тут на Хабре.
Автор, ждем примеров.
А вы хотите, чтобы за одну 14-ти минутную лекцию стало всё понятно? Так не бывает. Зато это очень хорошая база для дальнейшего изучения темы. Главное, что автор рассказал о ГА интересно — тема отвращения не вызвала, сложностью не отпугнула.
Никогда не занимался реализацией генетических алгоритмов, но тем не менее всё более чем понятно. К тому же очень интересно. Вводить определения и т.п. — это всё очень скучно, врядли бы я (и думаю много кто ещё) досмотрел бы до конца Вашу версию лекции. А эту досмотрел и с удовольствием посмотрел бы ещё.
Честно говоря, если бы я не знал что такое ГА, я бы из этого видео и не узнал. Ваша «фитнес-функция» называется целевая функция. Так принято в русской терминалогии. Но всё равно, спасибо.
Проехать и дистанцию и не коснуться красными кругами дороги. Если я правильно понимаю.
Но иногда он прерывает попытку, даже не коснувшись кругами дороги.
Ну что то вроде:
Синие шары — это колеса, красные — это некий уязвимый груз. Цель не достигнута если:
1. Груз касается земли или колес
2. Тележка деформируется больше заданного допуска.
Ну вот вам ещё тогда. Я не знаю, какой из вариантов официальный и официальный ли хоть один из них, но в комментах написано так:
It dies after 10 seconds so that evolving would be faster. As the vehicle gets better over time, it can go further in that 10s time. Given enough time it will reach a point where you cannot possibly travel farther in 10 second with the physical simulation of the program.
The statistics in the top right corner give statistics about the average and best time of the sets of 20 individuals, you can clearly see that the trend is upwards.
В свое время я разобрал эту флешку и увеличивал таймаут до 20, 30 секунд, но тележка уезжала не намного дальше — часто в генетической памяти остаются конструкции, идеально проходящие первые холмики и обрыв. Ну и дальше дорога больше в горку, мощности двигателя начинает не хватать )
Пардон за даблпост — картинка отправилась раньше чем надо.
Тележки стали серьезно быстрее (этот параметр тоже меняется, но его не так заметно сразу). На картинке на левом краю Обрыв Смерти. Максимум доезжало до впадины на правом краю картинки. Так что эти четырехколесные существа, пожалуй, не такие ограниченные, как мы думаем :)
как видно, существо сразу эволюционировало до дееспособного, и потом долгие пол дня практически не менялся… но потом родился избранный, у которого маленький груз был смещен к переднему колесу, и благодаря этому балансиру, данный велосипед практически не подпрыгивает на холмах, что позволяет сохранять постоянную скорость.
одна большая проблема.
нужно самому понимать и объяснять главный пункт — зачем? какая мотивация каждого действия? в идеале каждый момент нужно объяснять с этой точки зрения. особенно когда материал в первую очередь для тех кто с ним в принципе не знаком.
«теперь нам нужно сделать скрещивание»
«теперь нам нужно выбрать несколько индивидуумов»
«нужно выбрать правильный алгоритм селекции»
зачем и почему?
Такой кайф! На старшем курсе университета я уже совсем забыл, что это — вникать в математические тонкости. Тут все довольно просто, никаких изысков и трудностей, но мне реально стало интересно.
Ничуть не жалею потраченного времени
Вопрос: За сколько поколений должен получиться ответ в примере с ноликами и единицами? Скачал с сайта пример, уже почти пол миллиона поколений отжило, а результаты колеблются в пределах 0.7-0.86. Или я что-то не так делаю?
вот еще кто-нибудь бы также на пальцах про нейронные сети рассказал, а то я умом понимаю, а начинаю книжки смотреть а там горы формул и я сразу ничего уже не понимаю :)
Мы в своем подкасте обсуждали и нейронные сети, и генетические алгоритмы, и где их можно применить. Послушайте, там немного и кратко, empatikafm.rpod.ru/142820.html (4-я тема)
на словах я все понимаю, я даже понимаю исходники как работают. меня вгоняет в ступор, когда все это понятное мне, аццкими формулами записано… каюсь по вышке было слааабенькое 3
Просто прекрасно, очень интересно и вдохновляюще. Рахим молодец кстати: в самом конце видеокаста прямо заинтриговал: программы которые эволюционируют и решают поставленную задачу — сверхинтересная тема. Можно конечно немного поумничать и абстрагироваться и сказать, что программа — это тот же набор переходов и всякой другой шняги по типу значений для иксов, а решение — это значение функции, но количество и «значений», а главное как их описать и описать сам факт решения — вот в этом и сложность. А ещё нужно сделать какой-то механизм, который бы разделял программу написанную с применением некоторого синтаксиса на эти элементарные составляющие и вносил коррективы и в самом конце из наилучшего набора предоставил программу, понятную человеку… Короче очень интересно и интригующе :)
Посмотрев ролики стало понятно, что
1. Ничего толком не понятно. Слишком много лишних слов, мне кажется.
2. В любом процессе очень важен секс
3. Ручка классная!
Извините, но я не понял… что не поняли все те, кто жалуется в комментариях? По-моему все, хоть и не подробно, но довольно доходчиво рассказано и показано.
Возможно многих просто раздражает личность самого Фритоника и его плодовитость в плане создаваемого контента. Это я конечно же могу понять, на самом деле это просто самая банальная зависть. Зависть, что некий молодой человек является более успешным и популярным чем я, что он создает массу популярных статей по алгоритмам, записывает подкасты, делает переводы и т.п., а моих 2 поста даже на главную не попали. Конечно возникает естественная реакция защитить свое эго и оправдаться тем, что на самом деле это не я неудачник, это просто у Фритоника контент говно, поэтому он его с такой легкостью создает в массе…
Нет, товарищи, проблема вашей бездарности не в других, она в вас.
По мне все понятно, хоть я и не разбираюсь. Единственное, что мне пришло в голову — эти популяции собрать в одну «гиперпопуляцию», и сделать много «гиперпопуляций» а потом сравнивать более успешные, так точность может возрасти. Хотя для такой задачи может быть это и не критично.
зы: Фритоник продолжай. Есть предложения по поводу видео, может быть следующую серию сделать более привлекательной, и нарисовать все схемы не рукой, а на компьютере, что бы было более «инфографично». Или скооперироваться с тем кто лучше это сделает.
Насколько я знаю в системах автоматического раскроя используются ГА. То есть если надо расположить заготовки деталей на листе металла, или буквы для плоттера на самоклеящейся плёнке, с минимальным расходом материала. Такие задачи решаются с помощью ГА.
Что такое генетический алгоритм?