roboforum.ru

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

Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

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

Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение =DeaD= » 29 ноя 2009, 20:57

Вводный пост для тех, кто хочет присоединиться к обсуждению проблемы:

Мысль №1.

Масса подходов к созданию элементов ИИ и неких подобий ИИ затыкается на самых первых шагах - что же есть этот самый ИИ и как понять, что мы его создали. Я считаю, что создание даже подобия ИИ - это прежде всего проект. Теория управления проектами гласит, что прежде чем начинать проект мы должны иметь критерии оценки, что проект завершен успешно, чтобы 100% понимать, куда мы идём.

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

Мысль №2.

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

Чтобы нам не пришлось придумывать хитрых способов определения целей существования робота - мы сделаем просто, зададим ему базовые мотиваторы типа боль (уровень повреждений), голод/сытость(уровень заряда батарей) и т.п.

Критерии оценки успеха проекта:

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

Один из типовых тестов может быть таким - робот находится в комнате, в которой кормушка закрыта воротами, которые открываются при нажатии на кнопку, кнопку можно придавить находящимся в комнате предметом Х, который робот может двигать. Либо кнопка открывает ворота на какое-то время. Роботу могут показать что кнопка открывает ворота или он может попробовать сам догадаться потыкаться во все предметы и понять что делает кнопка и что он может двигать предмет Х.

Первичные мысли по решению задачи проекта

Одной из основных проблем при построении робота с элементами ИИ является создание новых образов, такими какими их будет "видеть" это самый элемент ИИ :) то есть никаких явных программирований, пусть даже показываний пальцем, система должна иметь возможность самостоятельно без всяких подсказок разобраться в окружении что и как связано и какие действия вызывает.

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

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

И тут другая проблема - надо будет как-то оценивать не только образы единомоментные, но и протяженные во времени - т.е. "шаг", "прыжок", "пинок" - это по идее всё тоже образы, которые складываются из серий положений статичных образов.

Если даже в базовом варианте это реализовать и робот сможет разбираться в каких-то простых окружениях - думаю уже будет интересно :)

Ну и наконец - какие базовые проблемы нужно решить изначально для этого базового варианта:

Надо какую-то распознавалку совмещенную с кластеризатором, которая сможет отрабатывать инфу с камеры, правда видимо сразу надо будет её делать с обработкой серии кадров и движения. Даже не движения робота при статичном окружении, а при движении объектов относительно окружения, иначе особых способов выделить объекты я не особо вижу. Ну кроме тупого "по расстоянию", но это не выделить двери комнаты относительно стены, кнопку относительно панели вокруг неё и т.п. Короче ничего интересного кластеризация по расстоянию сама по себе не даст.

Мысли возникшие в ходе обсуждения

1. Надо какое-то подобие пространственного мышления, в котором ПИИ сможет строить модели развития событий и выбирать свои действия.

2. Чтобы унифицированно подходить к распознаванию образов предлагается всю информацию со всех сенсоров после обработки препроцессорами скидывать в единое информационное пространство восприятия (далее ЕПВ), из которого уже в унифицированном формате модуль формирования и распознавания образов будет пытаться извлечь кандидаты в образы и распознать уже запомненные образы.

3. Надо как-то работать с составными образами, для этого предлагается выход с разпознавателя образов через так же препроцессор завернуть в часть ЕПВ.

4. Чтобы действовать на разных уровнях планирования ПИИ может строить несколько планов из цепочек образов, например, уровня стратегического плана, тактического, оперативного.

Мысли возникшие в ходе обсуждения. Часть 2
1. Надо решать задачу целиком, пусть и "худо-бедно" и только потом заниматься улучшением её отдельных блоков, поэтому если задачу разбили на блоки и какой-то блок понятно как решить хоть в базовом простейшем варианте - пока его бросаем, пока не будет ясно как решить в базовом варианте все блоки и как они между собой будут работать.

2. Чтобы не возникло ощущение, что обсуждается сферический конь в вакууме - предлагаю "худо-бедное" решение формирователя и распознавателя образов с визуальных данных. Прежде всего будем выделять области с единым или близким к единому цвету. Если какой-то контрастный к этому цвету объект будет окружен такой областью - это кандидат на будущий образ, который мы просто сохраним с маской чтобы выделить его в дальнейшем из фона. Кроме того отличным вариантом выбора кандидата на образ - будет область находящаяся в движении на неподвижном фоне. Собственно хороший способ привлечь внимание человека к какому-то предмету - помахать им у него перед глазами.

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

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение lebaon » 30 ноя 2009, 21:53

в книге "ИИ современный подход" описывалось обучение с подкреплением :)
агент изначально вообще ничего не знает, но накапливая информацию по реакции среды и по стимулам,
начинает действовать целенаправленно :)
Аватара пользователя
lebaon
Безбашенный Теоретик
 
Сообщения: 1137
Зарегистрирован: 07 янв 2006, 18:30
Откуда: Подмосковье

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение =DeaD= » 30 ноя 2009, 22:05

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

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение Michael_K » 30 ноя 2009, 23:02

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

Все эти распознавалки нейросетевые - они работают практически только "мгновенно"...
Из-за этого есть трудности с внедрением в нейросеть причинно-следственных связей,
понятий "событие", "действие", "результат" и т.д.

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

Третье: нейросеть обязана быть толерантна к погрешностям в коэффициентах
отдельных нейронов - здесь тоже есть проблемы.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение galex1981 » 30 ноя 2009, 23:05

И как решаются вышеприведенные проблемы?
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4362
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение =DeaD= » 30 ноя 2009, 23:40

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

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение Michael_K » 01 дек 2009, 00:03

А если забыть пока про нейросети и попробовать генерить образы как элементы какой-нибудь структуры...

Задача кластеризации, я же говорю, как-то еще решается
(нейросетями или деревьями или как-то еще - неважно)

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

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

Добавлено спустя 1 минуту 34 секунды:
И как решаются вышеприведенные проблемы?

Универсально? Не знаю. По-моему, никак.
А в конкретных применениях - решаются, конечно, по-разному.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение RenatAVR » 01 дек 2009, 01:08

Не хочу вас отвлекать, но я думаю что самый простецкий алгоритм для ИИ уже описан, обкатан, и даже повсеместно используется. Более того, он присущь каждому живому организму (маже микро размеров). Это алгоритм PID регулятора. Описывать его щас не буду. Скажу в кратце - это компенсатор, тормоз и ускоритель какого либо процесса, в зависимости от пришедшей информации из вне.
Я считаю что любой организм начинает осваиваться в этом мире используя его, в дальнейшем конечно алгоритм переростает во чтото большее, активируя и используя при этом ячейки памяти, а затем и дальнейшую переферию (тут всё зависит от растущих потребностей), в которой также начинается развитие (каждой отдельно взятой части переферии) используя родительский PID алгоритм. "Живой" PID скорее всего не намного сложней, чем тот к которому привыкло человечество, описывая его математическим языком.

Ну это конечно сугубо моё мнение.

P.S. про PID регуляторы можно почитать в Нете, куча инфы.

Всё продолжайте, больше не отвлекаю.
:oops:
RenatAVR
 
Сообщения: 11
Зарегистрирован: 21 окт 2008, 22:52

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение Angel71 » 01 дек 2009, 01:32

давай выростим крысёныша в космосе, резвенько его спустим на землю и посмотрим чем этот пид поможет крысёнышу в обучении/понимании что есть вверх/низ и гравитация. :) ну эт так, на правах "гениальной" реплики на ...
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение EdGull » 01 дек 2009, 01:38

да без проблем!
спорим что тебя переучить читать вверх ногами не больше недели потребуется? :wink:
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение Angel71 » 01 дек 2009, 01:48

:) и спорить не буду, скорей всего мне меньше недели потребуется. задачка с гравитацией совершенно из другой области и неделькой тут не отделаешся (даже учитывая, что обучение младенца происходит на порядки быстрей) :crazy: и вообще, я же чесно предупредил, что реплика "гениальная" :D Эд, суть была в том, что всё намного сложней в живом организме, чем один какой-то простенький алгоритм. тем более пид это больше инструмент нечёткой логики и регуляторов, но ни как не ИИ/ЕИ в целом. говорить, что пид решит все проблемы мягко говоря наивно
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18
Предупреждения: -1

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение EdGull » 01 дек 2009, 09:25

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

Добавлено спустя 2 минуты 51 секунду:
например, чем больше мы голодны, тем больше времени мы уделяем времени поиску еды и тем больше идем на всякие ухищрения и смумашедшие трюки для ее добычи
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение =DeaD= » 01 дек 2009, 10:06

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

Добавлено спустя 1 минуту 25 секунд:
Про ПИД-регуляторы не вкурил пока что вы имеете в виду. Особенно хочется увидеть в природе Д-компоненту :)

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

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение EdGull » 01 дек 2009, 10:14

ну пусть будет ПИ, не усть важно.
главное сам принцип
но "сквозь время" тоже нужно как-то учитывать
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение =DeaD= » 01 дек 2009, 10:41

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

Re: Почти RoboBrain. Идея элементов ИИ. Пока в порядке бреда :)

Сообщение frig » 01 дек 2009, 11:19

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

про обучение.
естественно, что само по себе ничто не обучается. есть, конечно, некоторые инстинкты у животных, есть рефлексы, но остальное приобретается в процессе обучения тем у кого такой опыт уже есть. ребенка обучают родители. причем обучение это ведется не через прямое изменение "исходного кода" а через те же сенсоры, что используются в жизни. а вот самообучение это зачастую некий случайный поиск или перебор всех вариантов. даже у людей. уж не говоря о том, что "все варианты" могут быть вообще не известны.
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

Пред.След.

Вернуться в Идеи

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

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

cron