GotAI.NET

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

 

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

 Все темы | Новая тема Стр.10 (14)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Проект Projetc-CNS
tac
Сообщений: 2601
На: Проект Projetc-CNS
Добавлено: 26 сен 11 23:07
Цитата:
Автор: daner

>> mozgobrain
напишите мне на почту, я вам скину две статьи в которых описаны решения задач почти 100% совпадающие с тем что вы делаете. Если цель чему-то научиться, а не просто "весело" потратить лишнее время, то в них вы найдете больше полезного чем на любом форуме.


можно мне тоже tac@inbox.lv
[Ответ][Цитата]
tac
Сообщений: 2601
На: Проект Projetc-CNS
Добавлено: 26 сен 11 23:19
Цитата:
Автор: daner

>> mozgobrain
напишите мне на почту, я вам скину две статьи в которых описаны решения задач почти 100% совпадающие с тем что вы делаете. Если цель чему-то научиться, а не просто "весело" потратить лишнее время, то в них вы найдете больше полезного чем на любом форуме.


Хотя боюсь предположить, что там не более 30%

Дам еще одну ссылку, прочтите, чтобы понимать терминологию

Суть задачи адаптации

Мы по сути решаем задачу активной адаптации (Хотя вы предлагаете постоянно поставить ее как задачу компенсации, и для этого изначально разработать модель объекта и дать его или прямым образом (как вы предлагали алгоритм без обучения) или косвенным, через наличие у объекта представлений о среде). Но на каком уровне? Все методы которые мне известны - это методы т.н. параметрической адаптации. А нам нужно как минимум структурная адаптация.

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

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

Это как минимум, а вообще-то хорошо бы пойти на еще уровни выше - Определение объекта управления и Формулировка целей управления - но таких алгоритмов думаю скоро не появится.

Да, а что касается этапа параметрической адаптации, то в статье различают "В зависимости от того, как получена эта информация, различают два подхода — идентификацию и планирование экспериментов с объектом."

И судя по всему мы решаем задачу планирования экспериментов с объектом (т.е. с ногами). Если бы жук УЖЕ умел бы ходить, и нам нужно было бы найти лишь модель его движения, то была бы задача идентификации.

[Ответ][Цитата]
tac
Сообщений: 2601
На: Проект Projetc-CNS
Добавлено: 26 сен 11 23:45
Цитата:
Автор: mozgobrain

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


Что-то я не понял, ЖУК не будет двигаться пока не начнет предсказывать спокойное движение ? Как же он начнет предсказывать, если никогда не двигался ? Если он не будет пробовать двигаться случайно, то как же он это будет делать ? По определенной жесткой изначально программе ? (тоже вроде нет) Перебирая все возможные состояния чисто аналитически ? (тоже вроде нет - он же не знает как вообще можно) ... КАК ?
[Ответ][Цитата]
tac
Сообщений: 2601
На: Проект Projetc-CNS
Добавлено: 27 сен 11 4:26
Цитата:
Автор: daner

>> mozgobrain
напишите мне на почту, я вам скину две статьи в которых описаны решения задач почти 100% совпадающие с тем что вы делаете. Если цель чему-то научиться, а не просто "весело" потратить лишнее время, то в них вы найдете больше полезного чем на любом форуме.


О из первой статьи

Рисунок 4: Genghis, учащийся идти. Первоначально, поведения еще не знают, как они, как предполагается, координируют (при каких условиях они должны стать активными). Начиная с двух передних ног "колебание вперед" поведения активизируется в то же самое время, Genghis падает и получает негативные отклики от датчика прикосновения, установленного на передней части его живота.

Собственно то о чем я и говорил, нужен + датчик падения.
[Ответ][Цитата]
tac
Сообщений: 2601
На: Проект Projetc-CNS
Добавлено: 27 сен 11 4:43
А вообще тут для первой статьи ключевое, что мы в качестве ЖУКА имеем реального робота, а не программу. А для программы нужна модель физической среды + модель самого робота. И если их не запрограммировать - то результата ждать не приходится.

mozgobrain, есть ли это у Вас ? Выделено ли отдельно в коде, какие классы ?

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

вот для затравки об основах этого

http://www.gamedev.ru/articles/?id=70126


[Ответ][Цитата]
mozgobrain
Сообщений: 35
На: Проект Projetc-CNS
Добавлено: 27 сен 11 11:35
Цитата:
Автор: daner
>> mozgobrain
напишите мне на почту, я вам скину две статьи в которых описаны решения задач почти 100% совпадающие с тем что вы делаете. Если цель чему-то научиться, а не просто "весело" потратить лишнее время, то в них вы найдете больше полезного чем на любом форуме.


Адрес моей почты mozgobrain@gmail.com
Заранее спасибо!
[Ответ][Цитата]
mozgobrain
Сообщений: 35
На: Проект Projetc-CNS
Добавлено: 27 сен 11 12:37
Цитата:
Автор: Андрей
Шуклин правильно сказал выше: "Интеллект ... прогнозирует тенденции". На самом нижнем уровне (на уровне эффекторов) интеллект прогнозирует не "вещи", а тенденции. Поэтому на самом нижнем уровне интеллект работает не по грубому принципу "если ... то", а по принципу "чем ... тем". "Чем здесь ближе, тем туда сильнее", "чем тут ярче, тем то правее" и т.п.

С этим я не спорю. Предиктор, пытается предсказать точно значение сенсора в следующем моменте времени. Пытается найти функцию совокупности известных ему эффекторов и сенсоров на назначенный ему сенсор. Пытается уяснить прямая ли это функция, экспоненциальная, циклическая, тригонометрическая. Может составная. Выясняет константы. В крайнем случае составляет таблицу значений этой функции. Ну и конечно в первую очередь выясняет "тенденцию". Вчера над эти медитировал. Нужно еще разобраться с критерием точности прогноза

Цитата:
Автор: Андрей
Поэтому нужно не отдельные значения сенсоров запоминать, а скажем так "динамические примитивы", тенденции. Сам пока думаю, что это такое и как это сделать.

Устройство памяти простое: каждый момент времени в память сохраняются значения всех сенсоров и эффекторов. Т.е. память очень сырая (RAW). Но каждый предиктор волен интерпретировать её как захочет.

Цитата:
Автор: Андрей
Мне показалось, Вы пытаетесь каждой задаче (значению сенсоров) поставить в соответствие действие (выставлять эффекторы).

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

Цитата:
Автор: Андрей
Это значит, что жук не должен на 100% управлять своим телом в буквальном смысле этого слова, он должен только корректировать траектории своих эффекторов, если их всякими силами заносит "не туда".

Действия, планирование действий - это всё потом. Я понимаю, что без него никуда, но хотелось бы пока сосредоточиться только на прогнозировании, пока возможно обойтись без планирования.
[Ответ][Цитата]
mozgobrain
Сообщений: 35
На: Проект Projetc-CNS
Добавлено: 27 сен 11 14:21
Цитата:
Автор: tac
Мы по сути решаем задачу активной адаптации (Хотя вы предлагаете постоянно поставить ее как задачу компенсации, и для этого изначально разработать модель объекта и дать его или прямым образом (как вы предлагали алгоритм без обучения) или косвенным, через наличие у объекта представлений о среде).

Как то я с трудом продираюсь сквозь термиологию (
Активная адаптация отличается от пассивной возможностью объекта изменять среду? А пассивная адаптация - это изменение структры объекта под среду? Что такое задача компенсации?

Цитата:
Автор: tac
А нужно (агент должен, а не программист) определить структуру самой целевой функции, нужного набора входов-выходов, или функцию награды - а не задавать ее сверху.
Это как минимум, а вообще-то хорошо бы пойти на еще уровни выше - Определение объекта управления и Формулировка целей управления - но таких алгоритмов думаю скоро не появится.

В общем, объект управления в поставленной задаче дан. Никому не надо вычленять его из среды.
Это те самые пара десятков сенсоров с эффекторами. Если это структура - то менять её не надо.
(Т.е. надо - но только введением суперэффекторов типа эффектор движения вперёд, причем этот эффектор жук должен ввести сам.
Цель жук знает:
1) главная цель - не допустить обнуление сенсора голода
2) второстепенная цель - обнулить сенсор расстояния до еды. Причем каждое уменьшение значения этого сенсора для жука - это "хорошо"
3) не допускать увеличения значения сенсоров боли. Кадое такое увеличени для жука - это "плохо"

[Ответ][Цитата]
mozgobrain
Сообщений: 35
На: Проект Projetc-CNS
Добавлено: 27 сен 11 14:30
Цитата:
Автор: tac
Что-то я не понял, ЖУК не будет двигаться пока не начнет предсказывать спокойное движение ? Как же он начнет предсказывать, если никогда не двигался ? Если он не будет пробовать двигаться случайно, то как же он это будет делать ? По определенной жесткой изначально программе ? (тоже вроде нет) Перебирая все возможные состояния чисто аналитически ? (тоже вроде нет - он же не знает как вообще можно) ... КАК ?

Спокойное состояние - это когда ЦНС не воздействует на эффекторы жука никак.
На жука может (и влияет!) среда. Например, жук вдруг появляется в среде с поднятыми ногами. Они начинают опускаться под действием силы тяжести (под действием среды)
Жук в начинает прогнозировать сенсоры. Допустим у него не получается, ноги наконец опускаются на землю и значения сенсоров стабилизируются. (это только например т.к. в программе не предусмотрена сила тяжести)
Сенсоры стабилизируются и предикторы начинают отлично прогнозировать спокойное состояние. Ведь в природе жук не может появиться ниоткуда, он же сначала личинка. У него есть этап генезиса. Вот он это и есть.
А потом начинается этап обучения. Он начинает осторожно двигать какой-либо конечностью (одной!), сначала одной, потом друго и т.д. Очередность можно выбрать случайно, либо вывести какой-нибудь параметр (ГЕН!) наружу! Создать жуков с разными ГЕНами и посмотреть кто обучиться быстрее
[Ответ][Цитата]
mozgobrain
Сообщений: 35
На: Проект Projetc-CNS
Добавлено: 27 сен 11 14:43
Цитата:
Автор: tac
.. падает и получает негативные отклики от датчика прикосновения, установленного на передней части его живота.
Собственно то о чем я и говорил, нужен + датчик падения.

Жук упатсь не может, он постоянно лежит на пузе. И даже при движении он им .э.. скребет по земле.

Цитата:
Автор: tac
А вообще тут для первой статьи ключевое, что мы в качестве ЖУКА имеем реального робота, а не программу. А для программы нужна модель физической среды + модель самого робота. И если их не запрограммировать - то результата ждать не приходится.

mozgobrain, есть ли это у Вас ? Выделено ли отдельно в коде, какие классы ?

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

вот для затравки об основах этого
http://www.gamedev.ru/articles/?id=70126

Да, конечно есть модель жук. Это компонент bug.cs
Там задано, каким именно образом влияют эффекторы на сенсоры.
Еще есть компонент caple.cs - это типа цапля - одноногое тело. Но она по моему не работает. И тот и другой реализуют интерфейс ICreaure, который поставляет данные о количестве эффекторов и сенсоров. Их текущих значения. И позволяют выставлять свои эффекторы.
Можно разработать организм произвольной сложности, лишь бы он реализовывал этот интерфейс.
Затем этим интерфейсом инициализируется объект ЦНС.

Ну и идет такой процесс:

Увеличивается момент времени (метод Advantage)
Creature на основе значений эффекторов выставляет сенсоры.
Среда вносит свои коррективы в эти сенсоры.
ЦНС проверяет прогноз предикторов.
ЦНС выставляет эффекторы своему Creature
ЦНС делает прогноз
увеличивается момент времени (метод Advantage)
и дальше по кругу.

Визуализировать то жука можно запросто, это вопрос одного дня, но пока в этом смысла мало.
В программе визуализирована пара сенсоров (горизонтальный и вертикальный угол ноги)
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: Проект Projetc-CNS
Добавлено: 27 сен 11 16:06
Цитата:
Автор: mozgobrain
главная цель - не допустить обнуление сенсора голода
Есть такая штука - ПИД-регулятор - многим интеллект напоминает. Там есть такая интересная штука - дифференциальная составляющая. Чем быстрее нарастает входящий сигнал, тем быстрее должна быть ответная реакция.
Ключевой принцип всё тот же "чем ... тем".
К чему я веду. Для прогноза тенденции нужна разностная информация, всегда. Дельта. Поэтому помнить абсолютные значения можно только для того, чтобы их тут же превращать в разницу...
[Ответ][Цитата]
Вольфрамовый клaпaн
Сообщений: 13070
На: Проект Projetc-CNS
Добавлено: 27 сен 11 16:27
я так, на всякий случай, даю справку: конструкция "если-то" и "чем-тем" ни чем не отличаются...
я имею ввиду нормального здорового человека, с нормальным здоровым мозгом и нормальным здоровым образованием...
от того, что вы переименуете импликацию, она по-другому работать не станет...
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: Проект Projetc-CNS
Добавлено: 27 сен 11 17:24
Цитата:
Автор: Egg
конструкция "если-то" и "чем-тем" ни чем не отличаются...
Отличаются оттенком смысла, потому конструкций 2, а не 1.
"Если-то" - конструкция для описания вещей, дискретных, статических понятий, например, "если человек нарушил закон, то он преступник".
"Чем-тем" - конструкция удобна для описания динамических, меняющихся явлений, например: "чем холоднее, тем быстрее надо двигаться".

"Чем больше раз человек нарушил закон, тем больше он преступник" или "если холоднее, то быстрее надо двигаться" - звучит нелепо.

Мне показалось, что участники стараются описывать динамику через статику - "чем-тем" описывать через "если-то". Поскольку речь идёт об управлении движением, то я и пытаюсь сдвинуть их с логики "если-то" на логику "чем-тем". Тут есть полезная для работы интуиции тонкость.
А в целом, ты прав конечно.
[Ответ][Цитата]
Вольфрамовый клaпaн
Сообщений: 13070
На: Проект Projetc-CNS
Добавлено: 27 сен 11 17:50
да, я так и подумал, что ты к "тем-чем" добавишь сравнительные прилагательные (числительные)...
соглашусь, в таком варианте в русском языке высказывание приобретает некоторый "глагольный характер", однако, импликативный смысл не меняется...
если холоднее, то быстрее надо двигаться = если тебе холодно, то двигайся быстрее...
а еще, любой смысл можно привести к конструкции Быть и Иметь (в общем случае с модальностями), поэтому эти все конструкции, на самом деле, эквивалентны...
[Ответ][Цитата]
tac
Сообщений: 2601
На: Проект Projetc-CNS
Добавлено: 28 сен 11 1:40
Цитата:
Автор: mozgobrain


Спокойное состояние - это когда ЦНС не воздействует на эффекторы жука никак.
На жука может (и влияет!) среда. Например, жук вдруг появляется в среде с поднятыми ногами. Они начинают опускаться под действием силы тяжести (под действием среды)
Жук в начинает прогнозировать сенсоры. Допустим у него не получается, ноги наконец опускаются на землю и значения сенсоров стабилизируются. (это только например т.к. в программе не предусмотрена сила тяжести)
Сенсоры стабилизируются и предикторы начинают отлично прогнозировать спокойное состояние. Ведь в природе жук не может появиться ниоткуда, он же сначала личинка. У него есть этап генезиса. Вот он это и есть.
А потом начинается этап обучения. Он начинает осторожно двигать какой-либо конечностью (одной!), сначала одной, потом друго и т.д. Очередность можно выбрать случайно, либо вывести какой-нибудь параметр (ГЕН!) наружу! Создать жуков с разными ГЕНами и посмотреть кто обучиться быстрее


Честно говоря, что-то вы мудрите. Ну хорошо. Тогда опишите подробно как действует среда на жука на этапе генезиса !
[Ответ][Цитата]
 Стр.10 (14)1  ...  6  7  8  9  [10]  11  12  13  14<< < Пред. | След. > >>