roboforum.ru

Технический форум по робототехнике.

 

Генетическое Программирование (GP)

Автомат, адаптивный автомат ... разум

Re: Генетическое Программирование (GP)

Сообщение Виталий » 01 фев 2011, 17:46

Критерии интеллекта таракана в студию, пожалуйста!

Когда я отвечу на этот вопрос, то все смогут послушать в моей нобелевской лекции :D

Что еще за поисковая оптимизация? То и другое является естественным заимствованным у природы алгоритмом обобщенного метода решения широкого круга задач.

Попробуйте при помощи нейронной сети найти минимум функции, ну например f(x)=x^2. Это сложно, потому что нейронные сети для этого не предназначены, в отличие от генетических алгоритмов. Генетические алгоритмы применимы для оптимизации некоторой целевой функции, в то время как нейронные сети больше предназначены для обобщения данных. В общем разные алгоритмы для разных задач.

Так если в любом вероятностном методе поиск зашел в тупик - нужно произвести рестарт системы. В том же генетическом алгоритме теоретически возможно что-то типа вырождения.

Да, поэтому утверждение про "50 роботов" одинаково справедливо и для ГА и для НС.
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Генетическое Программирование (GP)

Сообщение dccharacter » 01 фев 2011, 17:49

интеллекта таракана - джентельмены, вроде как нет у тараканов интеллекта? если так рассуждать, то самый высокий коэффициент интеллекта будет у камней и у железных метеоритов.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4862
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Генетическое Программирование (GP)

Сообщение =DeaD= » 01 фев 2011, 18:24

Виталий писал(а):
Критерии интеллекта таракана в студию, пожалуйста!

Когда я отвечу на этот вопрос, то все смогут послушать в моей нобелевской лекции :D

Твоё утверждение логически свернулось и аннигилировало, я правильно понял? :D

Виталий писал(а):Попробуйте при помощи нейронной сети найти минимум функции, ну например f(x)=x^2.

Ну так можно скатиться до того, что считать с помощью нейросети 2+2 :)

Решать такие задачи через НС элементарно - строишь сеть в которой вход это вкл\выкл поиск, а выход это ответ в каком-нибудь побитовом формате хранения DOUBLE и за несколько итераций обучения получаешь нужный тебе ответ :)

Виталий писал(а):утверждение про "50 роботов" одинаково справедливо и для ГА и для НС.

Нет, это исключение. Иначе для обучения человека таблице умножения всегда требовалось бы перебрать 50 человек и 49 отсеять как неудачников по жизни :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Генетическое Программирование (GP)

Сообщение Виталий » 01 фев 2011, 18:28

Твоё утверждение логически свернулось и аннигилировало, я правильно понял?

Нет, просто не хочу разводить флуд и философию.

Решать такие задачи через НС элементарно - строишь сеть в которой вход это вкл\выкл поиск, а выход это ответ в каком-нибудь побитовом формате хранения DOUBLE и за несколько итераций обучения получаешь нужный тебе ответ.

Я предлагаю тебе попробовать это сделать.

Нет, это исключение. Иначе для обучения человека таблице умножения всегда требовалось бы перебрать 50 человек и 49 отсеять как неудачников по жизни

Ну 49 из 50 не могут понять что такое определитель матрицы...
Все новости о моих проектах http://savethebest.ru
Аватара пользователя
Виталий
 
Сообщения: 2114
Зарегистрирован: 08 окт 2004, 16:43
Откуда: St. Petersburg
Skype: quark-bot
ФИО: Клебан Виталий

Re: Генетическое Программирование (GP)

Сообщение =DeaD= » 01 фев 2011, 19:57

Виталий писал(а):Нет, просто не хочу разводить флуд и философию.

Ну я и говорю - два варианта, либо аннигилировать утверждение, либо флуд и философия :pardon:

Виталий писал(а):Я предлагаю тебе попробовать это сделать.

Считаешь, что я не смогу научить нейросеть выдавать константу? Блин, прямо оскорбление какое-то :D

Виталий писал(а):Ну 49 из 50 не могут понять что такое определитель матрицы...

А я считаю, что это типичная история про "неуловимого Джо". Скорее у них другие стремления в жизни и они им вполне себе следуют, тренируя свою НС решать нужные им задачи, в круг которых по нелепому недоразумению определитель матрицы не входит. :crazy:
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Генетическое Программирование (GP)

Сообщение Маг » 02 фев 2011, 00:36

=DeaD= писал(а):Еще бы понять как это с роботами связано. Вы себе как представляете генетическое программирование роботов в реальности? Построить пару десятков роботов и круглосуточно гонять на них разные варианты, оценивая получается или нет ездить прямо?

Я себе представляю это очень просто: робот для начала ставит себе очень маленькую цель (с нашей колокольни), - допустим, поднять ногу A выше ноги B на какой-то промежуток расстояния и времени, потом - перебирает различные варианты, "выращивает" навык. Потом ставит цель посложнее, снова перебирает варианты, используя в качестве подпрограмм уже имеющиеся навыки. И так он медленно, но верно карабкается ко все более и более сложным целям, опираясь на уже изученные вещи. Понимаю, что на практике все будет посложнее все реализовать, но идея такова :)

=DeaD= писал(а):Я вообще не вижу принципиальной замены одного другим, к тому же у природы получается замечательно всё это совмещать, а топикстартер почему-то эти два подхода противопоставляет. Что к чему?


Я бы не хотел вдаваться в дискуссию именно на тему недостатков НС, по-моему, они итак наглядны более чем нужно - десятки лет застоя в области ИИ. А вот Генетическое Программирование - это действительно новое направление, и там много поднаправлений, методик и потенциальных изобретений. Это целый пласт неизведанного, и уже известное есть куда совершенствовать.

И еще, не забывайте, что НС - это тоже программа, т.е. она является подклассом класса объектов, над которыми работает ГП. То же самое мы можем сказать обо всех других программах. ГП - стоит выше всех их, это - супер-класс.

=DeaD= писал(а):они накапливают опыт по ходу работы 1 особи, в отличие от генетического алгоритма, которому надо миллион особей*поколений.


Генетическое Программирование - это НЕЕЕЕЕЕЕЕ Генетические Алгоритмы ! Давайте за схожестью названий этих терминов не будем терять их принципиальные различия. ГА подбирают значения переменных из заданного набора, ГП - создают новые программы, любой длины и любой сложности. В идеале, конечно. Но направление таково.
Маг
 
Сообщения: 5
Зарегистрирован: 01 фев 2011, 02:13

Re: Генетическое Программирование (GP)

Сообщение =DeaD= » 02 фев 2011, 00:49

Маг писал(а):Я себе представляю это очень просто

А теперь вопрос - зачем это? Поднимать ногу А выше ноги Б я и так знаю как его научить, напрямую, причем максимально поднимать, а не как попало. А что-то существенно более сложное - сколько лет он будет эволюционировать у меня и сколько серв угробит при этом? Для ГП/ГА важно же популяцию иметь нормальную и кучу поколений.

Маг писал(а):Я бы не хотел вдаваться в дискуссию именно на тему недостатков НС, по-моему, они итак наглядны более чем нужно - десятки лет застоя в области ИИ

Генетическое программирование само по себе даже не содержит примитивы на которых будет что-то строиться. Поэтому сравнивать НС и ГА это как сравнивать металл и двигатель внутреннего сгорания.

Маг писал(а):Генетическое Программирование - это НЕЕЕЕЕЕЕЕ Генетические Алгоритмы ! Давайте за схожестью названий этих терминов не будем терять их принципиальные различия. ГА подбирают значения переменных из заданного набора, ГП - создают новые программы, любой длины и любой сложности. В идеале, конечно. Но направление таково.

Я считал и буду считать генетическим алгоритмом - обобщенный метод решения задач путём создания популяций, оценки качества их особей, естественного отбора, скрещивания и мутаций, независимо от конкретных объектов и методов создания/оценки/скрещивания/мутаций.

Вообще википедия говорит что я прав:
В искусственном интеллекте генетическое программирование (ГП) — автоматическое создание или изменение программ с помощью генетических алгоритмов


Вообще - давайте какие-то истории успеха того, чему мы тут должны были жутко удивиться :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Генетическое Программирование (GP)

Сообщение dccharacter » 02 фев 2011, 01:02

=DeaD= писал(а):А что-то существенно более сложное - сколько лет он будет эволюционировать у меня и сколько серв угробит при этом?

Тю тю тю
Угол поворота сервы - это сила тяжести, это скорость света, это закон сохранения энергии.

В твоих силах сделать так, чтобы при эволюции робот не ломал ломал зубья шестеренок серв.

Добавлено спустя 1 минуту 44 секунды:
Про сколько лет:
Repeated fitness function evaluation for complex problems is often the most prohibitive and limiting segment of artificial evolutionary algorithms. Finding the optimal solution to complex high dimensional, multimodal problems often requires very expensive fitness function evaluations. In real world problems such as structural optimization problems, one single function evaluation may require several hours to several days of complete simulation. Typical optimization methods can not deal with such types of problem. In this case, it may be necessary to forgo an exact evaluation and use an approximated fitness that is computationally efficient. It is apparent that amalgamation of approximate models may be one of the most promising approaches to convincingly use GA to solve complex real life problems.

Добавлено спустя 1 минуту 36 секунд:
Но это из генетических алгоритмов. А потом я прочитал сообщение выше. Про ГП вс ГА. Извините.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4862
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Генетическое Программирование (GP)

Сообщение =DeaD= » 02 фев 2011, 01:13

dccharacter писал(а):В твоих силах сделать так, чтобы при эволюции робот не ломал ломал зубья шестеренок серв.

Ну началось, опять песочница и я за него всё должен решить. А зачем мне тогда ГА, если я могу построить на порядок более сложную систему контроля, разрешающую всё что можно делать и запрещающую всё что нельзя? Мне тогда проще сразу построить идеальный вариант, который нужно :)

dccharacter писал(а):Про сколько лет:

А можно по русски? Методы ветвей и границ что-ли в ГА, для экспресс оценки? На самом деле ведь настоящих НОВЫХ подходов обычно мало - в основном применяют подход X в области Y и говорят что это вау как круто.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Генетическое Программирование (GP)

Сообщение dccharacter » 02 фев 2011, 01:43

Если ты знаешь, что линия черная, непрерывная, радиусы не меньше ХХ сантиметров и поверхность плоская - да, ты можешь.

Там не по-русски написано, что рекурсивный вызов функции "усушки" (не знаю как называется по-русски) с точки зрения вычислительной стоимости является запретительным барьером на данном этапе развития вычислительной техники.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4862
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Генетическое Программирование (GP)

Сообщение =DeaD= » 02 фев 2011, 07:41

Из последнего сообщения ничего не понял.

При чем тут линия и откуда взялась какая-то РЕКУРСИВНАЯ функция "усушки". Очевидно в английском тексте речь идёт о функции, которая оценивает особи популяции с точки зрения цели алгоритма и даёт большую вероятность размножаться тем особям, которые больше ей соответствуют, обычно это делается симуляцией, когда особь пытается решить поставленную задачу, чем лучше она её решает, тем больше у неё шансы попасть в скрещивание при формировании следующего поколения.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Генетическое Программирование (GP)

Сообщение dccharacter » 02 фев 2011, 11:12

Ну чего ты не понял... Ты можешь запрограммировать робота на решение только _известных_ задач. Неизвестные на момент программирования задачи твой робот решать не сможет.
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4862
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

Re: Генетическое Программирование (GP)

Сообщение Duhas » 02 фев 2011, 11:41

могу вас огорчить, но %50 не промышленных роботов свои задачи, вполне известные, не решают...
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6341
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

Re: Генетическое Программирование (GP)

Сообщение =DeaD= » 02 фев 2011, 13:48

dccharacter писал(а):Ты можешь запрограммировать робота на решение только _известных_ задач. Неизвестные на момент программирования задачи твой робот решать не сможет.

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

И строить робота для решения абсолютно неизвестных задач я пока не хочу :)
Да и не решает генетическое программирование решение абсолютно неизвестных задач.
Потому что оно во-первых работает на предопределенном железе, а во-вторых собирает программы из предопределенных примитивов, а значит заведомо ограничено некоторым кругом задач.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24053
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: Pascal / C++ / PHP / 1C
ФИО: Антон Ботов

Re: Генетическое Программирование (GP)

Сообщение Маг » 03 фев 2011, 01:01

=DeaD= писал(а):И строить робота для решения абсолютно неизвестных задач я пока не хочу :)

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

=DeaD= писал(а):Да и не решает генетическое программирование решение абсолютно неизвестных задач.
Потому что оно во-первых работает на предопределенном железе, а во-вторых собирает программы из предопределенных примитивов, а значит заведомо ограничено некоторым кругом задач.


Решает. У человека те же "примитивы": руки и ноги, однако и хватает, чтобы полетать к Луне :)
В компьютере - примитивные асм-инструкции, но на их базе считается все, что угодно.
Все дело в последовательности их применения. Правильна последовательность применения примитивов (метод) - ключ к решению любой сложной задачи.

=DeaD= писал(а):А теперь вопрос - зачем это? Поднимать ногу А выше ноги Б я и так знаю как его научить, напрямую, причем максимально поднимать, а не как попало. А что-то существенно более сложное - сколько лет он будет эволюционировать у меня и сколько серв угробит при этом?


Аналогичный вопрос: Вы знаете, чем собака отличается от кошки, но сколько лет вам понадобится эти различия запрограммировать в робота ? И стоит ли такая мелочь стольких усилий ? Не легче ли найти общий принцип формирования программ по критерию "необходимости" для выполнения какого-то главного предназначения робота ?

Я лично не хочу тратить время на программирования поднятия ног каждого возможного робота, да еще в различных его конфигурациях: как то - его нога сломана, погнута, оторвана, воткнута в глаз (в свой или чужой). Вариантов масса, все не запрограммируешь.

=DeaD= писал(а):Я считал и буду считать генетическим алгоритмом - обобщенный метод решения задач путём создания популяций, оценки качества их особей, естественного отбора, скрещивания и мутаций, независимо от конкретных объектов и методов создания/оценки/скрещивания/мутаций.


.... ?
Маг
 
Сообщения: 5
Зарегистрирован: 01 фев 2011, 02:13

Пред.След.

Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Mail.ru counter