roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 06:27

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 173 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11, 12  След.
Автор Сообщение
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 31 авг 2012, 17:48 
Не в сети
Аватара пользователя

Зарегистрирован: 13 июл 2012, 05:07
Сообщения: 220
Откуда: Челябинск
прог. языки: C++
ФИО: Дмитрий Толмачёв
=DeaD= писал(а):
Удачные фрагменты жизни желательно оценивать при жизни, это называется обучение на ходу, зачем его исключать?
На принципиальных схемах роботов с самообучением рисуют блок "критик", или модуль "набор правил", везде по разному, но цель в этот блок/модуль должна задаваться извне. Робот не может сам себе "смысл жизни" придумать. Сам он только кластеризации какой-нибудь научится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 31 авг 2012, 17:59 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Смысл жизни это одно, а "мне хорошо\плохо" - чуть другое.

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

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 31 авг 2012, 18:14 
Не в сети
Аватара пользователя

Зарегистрирован: 13 июл 2012, 05:07
Сообщения: 220
Откуда: Челябинск
прог. языки: C++
ФИО: Дмитрий Толмачёв
"Мне хорошо" - это уже биология. :)
Роботу должно быть "хорошо", когда он достигает цели.

Самообучение выберет топик-стартер или классику с обучающей выборкой - цель всё равно надо задать.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 31 авг 2012, 18:46 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Если цель конечная, а не регулярная, то это не даст обучения нейросети.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 01 сен 2012, 22:40 
Не в сети

Зарегистрирован: 16 окт 2009, 02:57
Сообщения: 11
Откуда: Биробиджан
В Ваших постах я увидел критику в мой адрес по поводу того, что не дал четкое ТЗ и не обозначил свой интерес. Прошу прощения.

Немного попробую внести ясность.

ТЗ: собрать некий модуль управления роботом, который будет самостоятельно подстраивать свои алгоритмы исходя из условий окружающей среды. Адекватно оценивая свои силы, я поставил себе задачу разработать этот самый модуль для простейших двухколесных роботов. Например, расположив положительные элементы (то, что хорошо), в определенном порядке мы сможем из одной и той же конструкции получить либо простейшего «БИМ», либо «Ланй рейсер», либо еще что-либо. Отрицательные элементы (что плохо) необходимы для самосохранения, чтобы элементарно робот не разбил себе «табло» с разбегу о стену.

Почему ИНС? Потому что нейрон – универсальный программный блок, ИМХО. Меняя архитектуру ИНС, можно добиться различных результатов.

Мой интерес: отличный ребус, который мне мешает спать по ночам. При этом я получаю колоссальное удовольствие, пытаясь решить его.

Что я уже имею:
1. Некий прообраз нейрона. Его я так называю нейроном, т.к. он схож по внешнему строению.
2. Общее понимание взаимодействия нейронов в сети, решающих данную задачу.

Почему не нейрон с википедии:
1. Реакция у него однозначная, либо сработать либо нет. Мне нужен такой, который с состояния «не знаю» мог перейти в состояние «скорее сработаю, чем не сработаю», «конечно сработаю», «не сработаю» и т.д.
2. Или не понял, или он не срабатывает в комбинации «или - или», «и - или».
3. Не понял, как ему настраивать весовые значения, чтобы выполнялся пункт 2.
Основная проблема реализации – в процессе проработки алгоритма взаимодействия всплывают всевозможные подводные камни в понимании процесса, например, сейчас думаю, как избавиться от шума, поступающего с внешней среды.

Могу объявить требования к моим нейронам без элемента «плохо»:
1. Прежде чем действовать, слой нейронов должен запросить «разрешение» у элемента, стоящего выше. Самый первый слой «просит» разрешение у блока «хорошо/плохо». Остальные слои запрашивают разрешение у вышестоящих слоев.
2. Реакция на сигналы у нейрона происходит случайным характером, по принципу, если должно быть «хорошо», то вероятность срабатывания выше, если никак, то ближе к нулю, но не ноль. Соответственно, в процессе обучения вес варьируется от «ближе к нулю», до максимального значения.
3. Весовые диапазоны нейрона должны растягиваться или сужаться в зависимости от частоты положительного подкрепления. Например, если элементов «хорошо» много, то диапазон сужается. А если между «хорошо» и «хорошо» необходимо долго работать вхолостую, весовые диапазоны растягиваются.
4. Если ни один нейрон в слое не сработал, слой «дает разрешение» нижестоящему слою решить задачу. Необходимо для сложных действий, например, если есть задача оттолкнуться «ногой», то для начала эту ногу нужно подтянуть под себя и упереться.

Алгоритм:
1. Запросить разрешение на активацию нейрона
2. Считать входные показатели
3. Срабатывание (0/1)
4. Выполнение команды
5. Проверка блока удовольствия/боли (оценка реакции)
6. Корректировка весовых значений
7. Возвращение в исходное состояние

К вопросу реализации:
Продолжайте кидать в меня камни, но я владею поверхностно только Delphi (в мое детство еще в школе давали азы программирования, было интересно – немного освоил)

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

_________________
Дорогу осилит идущий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 01 сен 2012, 23:32 
Не в сети

Зарегистрирован: 15 дек 2010, 16:43
Сообщения: 118
Откуда: Тверь
прог. языки: С++
gar_anat писал(а):
Почему не нейрон с википедии:
1. Реакция у него однозначная, либо сработать либо нет. Мне нужен такой, который с состояния «не знаю» мог перейти в состояние «скорее сработаю, чем не сработаю», «конечно сработаю», «не сработаю» и т.д.

это определяется функцией активации нейрона, м.б. стоит полистать чтото более существенное, есть доступные материалы и для новичков
gar_anat писал(а):
2. Или не понял, или он не срабатывает в комбинации «или - или», «и - или».
3. Не понял, как ему настраивать весовые значения, чтобы выполнялся пункт 2.

никак, для это этого нужно больше одного слоев

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

сеть сама избавиться от шума, либо под "шумом" вы имеете чтото другое
gar_anat писал(а):
Могу объявить требования к моим нейронам без элемента «плохо»:
.....

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 02 сен 2012, 00:22 
Не в сети

Зарегистрирован: 16 окт 2009, 02:57
Сообщения: 11
Откуда: Биробиджан
1. «это определяется функцией активации нейрона, м.б. стоит полистать чтото более существенное, есть доступные материалы и для новичков.»
С функцией активации у меня проблем нет. По крайней мере пока.

2. «никак, для этого нужно больше одного слоев»
А в моей версии все это должно быть в одном нейроне. Результирующий выход один. По сути, в моей версии программный нейрон – это некое устройство (функция), выдающее 0/1 на выходе и должна быть применима к исполняющему устройству (мотор, например). Пока играюсь с двумя/тремя входами, пытаясь организовать внутри логику «И/ИЛИ». Элемент «НЕ», почему-то вообще не смог туда воткнуть.

3. «сеть сама избавиться от шума, либо под "шумом" вы имеете что-то другое»
У меня не избавляется :(, смотрю в сторону "установки" предварительного фильтра сигналов, фильтрующих шум.

4. Последний пост.
Если «рожу» сам, буду прыгать от счастья.

_________________
Дорогу осилит идущий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 02 сен 2012, 00:52 
Не в сети

Зарегистрирован: 15 дек 2010, 16:43
Сообщения: 118
Откуда: Тверь
прог. языки: С++
gar_anat писал(а):
С функцией активации у меня проблем нет. По крайней мере пока.
откуда тогда проблема №1?
gar_anat писал(а):
А в моей версии все это должно быть в одном нейроне. Результирующий выход один. По сути, в моей версии программный нейрон – это некое устройство (функция), выдающее 0/1 на выходе и должна быть применима к исполняющему устройству (мотор, например). Пока играюсь с двумя/тремя входами, пытаясь организовать внутри логику «И/ИЛИ». Элемент «НЕ», почему-то вообще не смог туда воткнуть.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 02 сен 2012, 01:26 
Не в сети

Зарегистрирован: 16 окт 2009, 02:57
Сообщения: 11
Откуда: Биробиджан
Fayras писал(а):
gar_anat писал(а):
С функцией активации у меня проблем нет. По крайней мере пока.
откуда тогда проблема №1?
gar_anat писал(а):
А в моей версии все это должно быть в одном нейроне. Результирующий выход один. По сути, в моей версии программный нейрон – это некое устройство (функция), выдающее 0/1 на выходе и должна быть применима к исполняющему устройству (мотор, например). Пока играюсь с двумя/тремя входами, пытаясь организовать внутри логику «И/ИЛИ». Элемент «НЕ», почему-то вообще не смог туда воткнуть.

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


Проблема №1 - это отсутствие у меня должного уровня знаний и некорректная формулировка :sorry:
В общем. Мой нейрон имеет N входов и один выход.
Задачи "ядра":
1. Определить какие комбинации входов являются значимыми, убирая не значимые входы и шум.
2. Определить насколько полученные комбинации являются полезными/вредными. Соответственно, реакция меняется от уровня полезности.
В пункте 1 комбинаций входов может быть несколько, и они должны выстроиться в четкую структуру "И"/"ИЛИ". Например: (вход 1 и вход 2) или вход 3 = хорошо для срабатывания этого нейрона. Реакция: сработать с вероятностью 75%.
Насчет узкоточечной программной схемы - так и есть, это узконаправленный программный процессор, сеть из которых и будет моей будущей НС.
Про помощь - тему-то я другую делал, и ответ я получил еще на второй странице. Но что-то закрутилось тут...до сих пор дискутируем, очевидно вопрос применения ИНС живет в умах многих.

_________________
Дорогу осилит идущий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 02 сен 2012, 01:36 
Не в сети

Зарегистрирован: 15 дек 2010, 16:43
Сообщения: 118
Откуда: Тверь
прог. языки: С++
gar_anat писал(а):

Задачи "ядра":
1. Определить какие комбинации входов являются значимыми, убирая не значимые входы и шум.
2. Определить насколько полученные комбинации являются полезными/вредными. Соответственно, реакция меняется от уровня полезности.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 02 сен 2012, 01:36 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
Fayras писал(а):
боюсь некоторые ограничения нейрона преодолеть невозможно, в противном случае это будет уже не нейрон, а некая узкозаточенная программая схема с которой вам уже никто не поможет..

:) это будет просто конечный автомат


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 02 сен 2012, 01:44 
Не в сети

Зарегистрирован: 15 дек 2010, 16:43
Сообщения: 118
Откуда: Тверь
прог. языки: С++
Angel71 писал(а):
:) это будет просто конечный автомат

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 02 сен 2012, 01:58 
Не в сети

Зарегистрирован: 16 окт 2009, 02:57
Сообщения: 11
Откуда: Биробиджан
"я бы рекомендовал вам чего полегче"
(Так я и не научился вставлять кусок цитаты)
Хотелось бы, но полегче не входит в мое ТЗ :pardon:

_________________
Дорогу осилит идущий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 02 сен 2012, 03:31 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
gar_anat, если вы придумаете "настолько свой" нейрон, то следом вам придется придумывать свои алгоритмы обучения вашей сети. А это мягко говоря - не так уж и просто.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Что такое хорошо, а что такое плохо?
СообщениеДобавлено: 02 сен 2012, 03:53 
Не в сети
Аватара пользователя

Зарегистрирован: 15 сен 2007, 13:03
Сообщения: 6338
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович
люди, перестаньте говорить "ты не сможешь", "это сложно".. человек выбрал свой путь..

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 173 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11, 12  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO