Почти 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. Идея элементов ИИ. Пока в порядке бреда :)

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

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

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

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

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

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

Сообщение Murderer » 01 дек 2009, 21:09

Imho:
Что мешает сделать составные образы?
Любой из образов можно разложить на аудио/видео/пр.

А в животном мире рык тигра и его внешний вид очень хорошо в единый образ ложится


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

Образ=вес1*образ1+вес2*образ2...

порядок перечисления тоже показатель образа.

по нисходящей до чувств.
Murderer
 
Сообщения: 44
Зарегистрирован: 26 авг 2009, 12:00
Откуда: Омск

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

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

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

Про одинаковые признаки - конечно, это и есть образ "нечто синее", "нечто квадратное" и т.п.

А про подачу сигналов не понял. Механизм общения с кем?

Добавлено спустя 4 минуты 36 секунд:
Murderer писал(а):Что мешает сделать составные образы?
Любой из образов можно разложить на аудио/видео/пр.

А почему это обязательно? Есть такое понятие, как "бритва Оккама", не? ;)

Murderer писал(а):Слышу рык. Это отдельный образ. далее он сравнивается с "рыками" слышанными ранее.

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

Murderer писал(а):Образ=вес1*образ1+вес2*образ2...
порядок перечисления тоже показатель образа.
по нисходящей до чувств.

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

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

Сообщение frig » 01 дек 2009, 21:42

Про одинаковые признаки - конечно, это и есть образ "нечто синее", "нечто квадратное" и т.п.

А про подачу сигналов не понял. Механизм общения с кем?


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

общаться надо с машиной. обучать ее прийдется человеку. как ребенка.
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

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

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

А давайте в топку забудем пока про обучение человеком? Как только машина научится обучаться сама - человек её по быстрому сможет обучать как животное, "подкармливая" за хорошее поведение :)

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

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

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

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

Сообщение frig » 01 дек 2009, 21:55

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

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

Сообщение Murderer » 01 дек 2009, 21:55

=DeaD= писал(а):
Murderer писал(а):Что мешает сделать составные образы?
Любой из образов можно разложить на аудио/видео/пр.

А почему это обязательно? Есть такое понятие, как "бритва Оккама", не? ;)


За бритву спасибо. Не знал.

Наверно в силу ограниченности моей фантазии. Не могу себе представить неделимый образ.
Кроме простейших. Что imho и является основой для всех остальных.

=DeaD= писал(а):
Murderer писал(а):Слышу рык. Это отдельный образ. далее он сравнивается с "рыками" слышанными ранее.

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


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

=DeaD= писал(а):
Murderer писал(а):Образ=вес1*образ1+вес2*образ2...
порядок перечисления тоже показатель образа.
по нисходящей до чувств.

Эту мысль не понял. Почему такой банальный подход? А если у нас рычащие тигры - это один класс, молчаливые - другой, а невидимые рычащие - третий? Это не работает напрочь тогда.


Отлично работает. Только на классы не делится. невидимый рычащий остаётся тигром.

отдельные образы:
0) тигр=рык1+вид1+...
1) рык1=тигр
2) вид1=тигр

если мы не видим и не слышим тигра - его нет.
если слышим то 1)
если видим то 2)

При появлении образа "хвост_тигра". Он добавляется к образу тигра. И в самом себе добавляет образ "тигр".
Непознаные до текущего момента образы ничему не равны. При появлении в органах чуств одновременно >2-х образов между ними образуется связь. Если добаляемая связь уже сущестыует, то она увеличивает свой вес.
(слова не клеятся сегодня)
Murderer
 
Сообщения: 44
Зарегистрирован: 26 авг 2009, 12:00
Откуда: Омск

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

Сообщение frig » 01 дек 2009, 21:59

Главное чтобы он смог эффективно решать задачи с их помощью, а будет оно квадрокруглосинее или красноквадротреугольное - нам пофиг


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

А вот это и есть задача для кластеризатора и распознавателя, а в дальнейшем и для отсеивалки образов по принципу эффективности.


как решить то ее? в какую сторону? по каким принципам?
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

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

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

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

Представляю себе логичным:

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

2. Связи образов хранить с весовым коэффициентом, показывающим корреляцию между этими образами.

PS: Очевидно, что обычно человек анализирует свои действия и их следствия в рамках некоторого временного окна, например, если в игрушке мы нажмём кнопку и тут же откроется дверь - мы поймём, что нажатие кнопки вызвало открытие двери. Но если между нажатием кнопки и открытием двери поставить задержку в 30 секунд - скорее всего мы будем думать, что это не связанные события.

PPS: Интересный вопрос в этой связи - как формируются длинные связи типа сходить к озеру, поймать рыбу, ведь это явно выходит за пределы временного окна. Скорее всего это уже следующие уровни управления, а временное окно - оперативный уровень.

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

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

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

Сообщение frig » 01 дек 2009, 22:06

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

Добавлено спустя 1 минуту 42 секунды:
Например, можно своим примером показать, что нажатие кнопки может открывать дверь, проделав это 20 раз.


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

станет отличать одно от другого? как?
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

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

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

Murderer писал(а):Отлично работает. Только на классы не делится. невидимый рычащий остаётся тигром.

отдельные образы:
0) тигр=рык1+вид1+...
1) рык1=тигр
2) вид1=тигр

если мы не видим и не слышим тигра - его нет.
если слышим то 1)
если видим то 2)

При появлении образа "хвост_тигра". Он добавляется к образу тигра. И в самом себе добавляет образ "тигр".

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

Murderer писал(а):Непознаные до текущего момента образы ничему не равны.

Не понял мысли.

Murderer писал(а):При появлении в органах чуств одновременно >2-х образов между ними образуется связь. Если добаляемая связь уже сущестыует, то она увеличивает свой вес.

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

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

Это всё если роботу не пофиг :) например, если робот работает в вакууме - ему пофиг круглое оно или квадратное, катать всё равно не имеет смысла. А если горячее ему до некоторой границы не наносит повреждений, то ему пофиг на эту горячесть.

frig писал(а):
А вот это и есть задача для кластеризатора и распознавателя, а в дальнейшем и для отсеивалки образов по принципу эффективности.

как решить то ее? в какую сторону? по каким принципам?

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

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

Сообщение frig » 01 дек 2009, 22:12

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

рычит как тигр - тигр. полосатый? в рыжую полоску? тигр. оказалось не тигр - полосатый в рыжую полоску снизило вес.


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

Добавлено спустя 1 минуту 38 секунд:
например, если робот работает в вакууме - ему пофиг круглое оно или квадратное


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

Как формировать образы?


как выделить признаки из потока.
Последний раз редактировалось frig 01 дек 2009, 22:14, всего редактировалось 1 раз.
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

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

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

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

Безусловно, формирование образов и дальнейшее их распознавание - одна из ключевых проблем.

frig писал(а):давай с простого начнем. есть шарики, есть кубики. показываешь шарик, потом второй, говоришь - "шарики", показываешь также кубики. проделываешь 200 раз.

станет отличать одно от другого? как?

Если формировалка образов посчитает шарики и кубики достойными внимания - оно их заделает образами.

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

Скорее всего процесс показывания "кубиков" будет связан с размахиванием этими кубиками одновременно с говорением "кубик".

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

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

Сообщение frig » 01 дек 2009, 22:16

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

Пред.След.

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

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

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