GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.6 (37)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Конкурс по написанию эволюционной программы.
Luarvik.
Сообщений: 17287
На: Конкурс по написанию эволюционной программы.
Добавлено: 02 апр 13 21:10
Цитата:
Автор: Анатоль

Какой вопрос - такой и ответ.
[Ответ][Цитата]
Анатоль
Сообщений: 1964
На: Конкурс по написанию эволюционной программы.
Добавлено: 02 апр 13 22:12
Цитата:
Автор: Андрей
Например, пусть ИИ, по воле программиста, с "рождения" умеет ускоряться и замедляться в любом направлении на плоскости. А вот перемещаться из любой точки в заданную точку по команде - он должен научиться.


Ускоряющий импульс, замедляющий импульс, инерция, трение... - здесь физика немного сложновата. Это как управление магнитной головкой винчестера.

Сформулируем Вашу задачу немножко иначе. В чём то упростим (в физике), в чём-то усложним (для зрелищности).

Итак, по плоскости блуждает точка Т1.
Шаги влево, вправо, вверх и вниз выбираются случайно.
При подаче команды "догнать" точка начинает учиться догонять другую точку Т2 (блуждающую случайно или по какому-то алгоритму).
По команде "удирать" наша точка начинает учиться удирать от точки Т2.

Покажем как решить обе задачи, интересующие Андрея.
1. Как заставить точку Т1 (которая случайно себе блуждает) учиться догонять или удирать по команде К.
2. Собственно обучение нужному действию при подаче определённой команды.
Причём и в процессе обучения, и в обученном состоянии команды могут сменять друг друга.

Решение.
Четыре параметра Л,П,В,Н будут задавать вероятность в данный момент шага нашей точки влево, вправо, вверх или вниз.
Вначале считаем их равными и потому движение точки чисто случайны.

Обучать точку будет нейросеть (с одним скрытым слоем).
В сети будут четыре выхода, наши знакомые Л,П,В,Н (определяющие вероятность шага влево, вправо, вверх, вниз).
И три входа. х2-х1, у2-у1 (разность координат х и у нашей точки Т1 и целевой Т2),и команда К (-1 догонять, +1 убегать).
Можно было бы подавать на вход не разности координат а сами координаты х1,у1,х2,у2.
Тогда сеть будет немного более громоздкой и медленней обучение.
А еще проще для обучения сети если подавать не разности координат, а только знаки этих разностей.

Обучение с учителем.
Обучать можно и вручную, указывая после каждого хода в правильном или нет направлении сделан ход, но проще и быстрее автоматизировать это, поскольку процедура определения правильности или неправильности шага очень проста.
А именно. При К=-1 (догонять)если вход Х >0 Надо Р=1, иначе Л=1. Вход У>0 Нужно Н=1, иначе В=1. (при К=1 всё наоборот).

Обучение сети по методу обратного распостранения ошибки.

В результате у обученной сети когда на входе К -1 (догонять), а на входе Х + На выходе П будет 1. Если и на входе У будет + то и на выходе Н будет 1.
Т.е. Наша точка сделае шаг вправо или вниз (приблизится к целевой точке).

Если батарея позволяет питать одновременно два шаговых двигателя, то возможно и движение по диагонали (одновременно вправо и вниз).

При изменении команды К с -1 на +1 наша точка будет убегать от точки Т2.
Ну вот и всё.
[Ответ][Цитата]
rrr3
Сообщений: 11857
На: Конкурс по написанию эволюционной программы.
Добавлено: 02 апр 13 22:22
Цитата:
Автор: Анатоль

Интересно, а есть разница между целью, которая как некое состояние объекта для сравнения получилось или нет и между целью как расписанная процедура достижения этого состояния? Если есть, то эта процедура закладывается программером или находится объектом самостоятельно (не по строго детерминированному алгоритму)?
[Ответ][Цитата]
Анатоль
Сообщений: 1964
На: Конкурс по написанию эволюционной программы.
Добавлено: 02 апр 13 22:34
Цитата:
Автор: rrr3
Интересно, а есть разница между целью, которая как некое состояние объекта для сравнения получилось или нет и между целью как расписанная процедура достижения этого состояния?

Нельзя цель формулировать как алгоритм достижения нек. состояния.
Можно сформулировать как алгоритм распознания нек. (целевого) состояния.
[Ответ][Цитата]
rrr3
Сообщений: 11857
На: Конкурс по написанию эволюционной программы.
Добавлено: 02 апр 13 22:42
Цитата:
Автор: Анатоль
Нельзя цель формулировать как алгоритм достижения нек. состояния.
Можно сформулировать как алгоритм распознания нек. (целевого) состояния.

Спасибо. Буду знать. Видимо только я путаю эти вещи...

"А именно. При К=-1 (догонять)если вход Х >0 Надо Р=1, иначе Л=1. Вход У>0 Нужно Н=1, иначе В=1. (при К=1 всё наоборот)."
[Ответ][Цитата]
Анатоль
Сообщений: 1964
На: Конкурс по написанию эволюционной программы.
Добавлено: 02 апр 13 23:02
Так это и не есть формулировка цели, а именно алгоритм достижения цели.
Но это алгоритм не для программы, а для учителя (для обучающей процедуры).
[Ответ][Цитата]
rrr3
Сообщений: 11857
На: Конкурс по написанию эволюционной программы.
Добавлено: 02 апр 13 23:13
Цитата:
Автор: Анатоль
Но это алгоритм не для программы, а для учителя (для обучающей процедуры).

Понял...вроде... Действительно, детерминированный алгоритм изменения ранее заданной вероятности (случайности) - это наверное обучение (но не самообучение, наверное, не знаю), а не алгоритм для программы. Не до конца правда понял чем отличается в этом случае "для программы" от "для учителя", независимо от того ручками это делается или автоматизировано. Ну да ладно, может пойму когда нибудь...
[Ответ][Цитата]
Fractaler
Сообщений: 2490
На: Конкурс по написанию эволюционной программы.
Добавлено: 03 апр 13 0:20
[Ответ][Цитата]
rrr3
Сообщений: 11857
На: Конкурс по написанию эволюционной программы.
Добавлено: 03 апр 13 0:28
Цитата:
Автор: Fractaler

А в это время: США приступают к изучению работы человеческого мозга

Красиво там сказано - "Тайна между ушами"
[Ответ][Цитата]
Анатоль
Сообщений: 1964
На: Конкурс по написанию эволюционной программы.
Добавлено: 03 апр 13 1:15
Цитата:
Автор: rrr3
это наверное обучение (но не самообучение,

Да, это обучение с учителем, а не самообучение.
Но ведь Андрей не ставил задачи САМОобучения (он в самообучение и не верит, кажется).
Он ставил задачу ОБУЧЕНИЯ.

Но в программах этого конкурса обучение с учителем не допускается.
Только САМОобучение программ.

Конечно, обучение с учителем может быть более эффективно, но и самообучение возможно если определена ЦЕЛЬ (задан критерий цели).
[Ответ][Цитата]
kondrat
Сообщений: 4026
На: Конкурс по написанию эволюционной программы.
Добавлено: 03 апр 13 1:31
Учитель - необходимая составляющая развития.
В случае эволюции обучение ведётся самим миром в масштабах популяции.
В случае интеллекта в результате обучения погибают и развиваются только части мировоззрения. Можно, кстати, и такой элемент ввести в программу. Например, насадить на каждую потенциальную игровую доску кустик случайного, неубивающего сценария. А схватку на выживание проводить только при встрече особей.
Самообучение - этого мы не видели.
[Ответ][Цитата]
rrr3
Сообщений: 11857
На: Конкурс по написанию эволюционной программы.
Добавлено: 03 апр 13 1:52
Цитата:
Автор: kondrat
Учитель - необходимая составляющая развития.
В случае эволюции обучение ведётся самим миром в масштабах популяции.
В случае интеллекта в результате обучения погибают и развиваются только части мировоззрения. ....
Самообучение - этого мы не видели.

Мне кажется, у Вас и в примере Анатоля немного разные оттенки понятия "Учитель".
В Вашем случае - ближе к самообученнию, механизм которого запускается правилами приводящими к погибанию ("смертностью") и размножению ("случайностью") и среда - это другие уточнения "внешних" условий при развитии общего процесса, а в случае приведенном Анатолем - строго детерминированный алгоритм учителя по изменению "весов" когда учителю известна не только цель, но и путь к цели.
Может ошибаюсь. Не знаю досконально. Так... тарабаню...
[Ответ][Цитата]
Анатоль
Сообщений: 1964
На: Конкурс по написанию эволюционной программы.
Добавлено: 03 апр 13 2:13
Цитата:
Автор: rrr3
когда учителю известна не только цель, но и путь к цели.

Дело не в том, известны ли учителю пути к цели.
Достаточно знать (оценивать) приближают к цели или нет те или иные ходы в данный момент.
Это очень сильно убыстряет путь к цели по сравнению с тем когда известно только о достижении цели.

Поэтому самообучающиеся программы должны строить гипотезы-критерии оценки ситуации в данный момент и оценки перспективности ходов на даный момент.
И проводить отбор и совершенствование тех критериев, применение которых приводит к успеху (это уже подсказка).
[Ответ][Цитата]
rrr3
Сообщений: 11857
На: Конкурс по написанию эволюционной программы.
Добавлено: 03 апр 13 2:21
Цитата:
Автор: Анатоль
Дело не в том, известны ли учителю пути к цели.
Достаточно знать (оценивать) приближают к цели или нет те или иные ходы в данный момент.
Это очень сильно убыстряет путь к цели по сравнению с тем когда известно только о достижении цели.

Дело в том, что постепенное (последовательное, непрерывное, гладкое, безразрывное, детерминировано-алгоритмическое назовите как нравится) "приближение" не всегда приводит к правильному решению (но это уже другая история).
Цитата:

Поэтому самообучающиеся программы должны строить гипотезы-критерии оценки ситуации в данный момент и оценки перспективности ходов на даный момент. (это уже подсказка).

Мне подсказки не помогут. Я бы наверное побаловался, но к сожалению не программер, а учиться уже поздно и лень. Могу только задавать "дурацкие" вопросы (но и они порой могут натолкнуть на правильные вопросы и соответственно ответы).
[Ответ][Цитата]
rrr3
Сообщений: 11857
На: Конкурс по написанию эволюционной программы.
Добавлено: 03 апр 13 3:21
Цитата:
Автор: Анатоль
...самообучающиеся программы должны строить гипотезы-критерии оценки ситуации в данный момент и оценки перспективности ходов на даный момент.
И проводить отбор и совершенствование тех критериев, применение которых приводит к успеху (это уже подсказка).

По поводу "строить" гипотезы-критерии.

Если делать это по детерминированному алгоритму, то это строить превращается в простое реализовывать. (Это хорошо если угадать сразу алгоритм решения).

Если не по детерминированному, то подразумевает откладывание (или устранение, или "смертность") старого построения и построение нового, что другими словами можно назвать уже Перебором (разрывом), что неизбежно подразумевает некоторую стохастичность ("случайность") хотя бы из числа возможных для программы вариантов. А перебор нужен для отбора (некоторые говорят "выбора") или оценки сопоставимости по критерию достигнутости (достигаемости) цели, где слово "цели" по сути можно назвать условием задаваемым Внешней средой. Из чего следует, что отбор (выбор) без перебора не существует. А перебор в свою очередь без "смертности" и "случайности".

(Так, мысли вслух... может кто и прочитает, а может кому-то и пригодится себя понять, за одно и меня)

p.s. Может что и напутал, может запатентованные слова использовал по неграмотности, не судите очень строго.
А вообще - скучно что-то сегодня. Азарта нет. На улице дождь. Работать все равно лень...
[Ответ][Цитата]
 Стр.6 (37)1  2  3  4  5  [6]  7  8  9  10  ...  37<< < Пред. | След. > >>