roboforum.ru

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

Что такое хорошо, а что такое плохо?

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

Re: Что такое хорошо, а что такое плохо?

Сообщение Nesenin » 25 авг 2012, 23:04

самая флеймовая тема. еще законы Азимова вспомните.
"хорошо", "плохо" как и "вред", "безопасность" понятия растяжимые. зависят от среды,ситуации,взаимодействующих объектов и собственно самого субъекта, делающего определения (_______добавить условие)
Аватара пользователя
Nesenin
 
Сообщения: 1341
Зарегистрирован: 26 янв 2012, 03:59
Откуда: Казань
прог. языки: LabVIEW
ФИО: Никита Есенин

Re: Что такое хорошо, а что такое плохо?

Сообщение Duhas » 25 авг 2012, 23:19

Dead, имхо, тут все куда интереснее. Например, зарядка в среде где плохо (сыро/жарко/итд), и хорошо и с некоторых уровней заряда АКБ необходимо.. что в случае просто хорошо может легко быть отвергнуто по причине сыро/жарко/итд..


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

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 25 авг 2012, 23:36

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

Добавлено спустя 1 минуту 47 секунд:
Nesenin писал(а):самая флеймовая тема. еще законы Азимова вспомните.

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

Re: Что такое хорошо, а что такое плохо?

Сообщение gar_anat » 26 авг 2012, 00:06

=DeaD= писал(а):gar_anat, ну вы даёте, если у вас известно, что "плохо" от 0% до 100%, то очевидно, что "хорошо" можно определить так: хорошо=100%-плохо.


С формулой не согласен. Если объект будет находится в пустом помещении и сработает нейрон, отвечающий за команду...допустим захватить предмет, сеть решить что решение 100% правильное. Плохого же ничего не произошло, следовательно 100%-0=100%. Так он и будет стоять и хватать воздух, думая, что все правильно делает :) Верный ответ: Хорошего - 0, Плохого - 0. Реакция - ослабить весовое значение.

Что-то я уже сам понял, что какую-то философскую тему запустил, а не предметную. Придется искусственно стимулировать.

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

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 26 авг 2012, 01:16

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

Добавлено спустя 23 минуты 54 секунды:
gar_anat писал(а):Так он и будет стоять и хватать воздух, думая, что все правильно делает :) Верный ответ: Хорошего - 0, Плохого - 0. Реакция - ослабить весовое значение.

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

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

Re: Что такое хорошо, а что такое плохо?

Сообщение Fayras » 26 авг 2012, 03:14

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

вообще, самое простое - берем любой датчик и в зависимости от того что мы хотим иметь и что контролировать, делим его выходной сигнал на 2 части - условное хорошо\плохо, конечно интерпритацию выхода некоторых датчиков можно оставить на усмотрение сети.
С другой стороны роботу важно реагировать на отрицательные сигналы и для обучения отрицательных сигналов как правило более чем достаточно - фундоментальные механизмы памяти изучали как раз на отрицательном подкреплении, что строго говоря есть не более чем наша интерпритация, поскольку в живых сетях нет разделения стимулов на хорошо и плохо.
Fayras
 
Сообщения: 118
Зарегистрирован: 15 дек 2010, 16:43
Откуда: Тверь
прог. языки: С++

Re: Что такое хорошо, а что такое плохо?

Сообщение kran » 26 авг 2012, 07:55

Жить - хорошо (а хорошо жить - ещё лучше). Отсюда следует, что наоборот - плохо.
Казалось бы - чистая философия (да ещё в несколько юмористической форме). Но на практике применется элементарно:

gar_anat писал(а):Если объект будет находится в пустом помещении и сработает нейрон, отвечающий за команду...допустим захватить предмет, сеть решить что решение 100% правильное. Плохого же ничего не произошло, следовательно 100%-0=100%. Так он и будет стоять и хватать воздух, думая, что все правильно делает :) Верный ответ: Хорошего - 0, Плохого - 0. Реакция - ослабить весовое значение.

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

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

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

Re: Что такое хорошо, а что такое плохо?

Сообщение esisl » 27 авг 2012, 16:22

Э... По поводу ресурсов. Без специализированного "железа" в нейросетях ИМХО ловить нечего. Писал такую штуку для обработки видеоизображений. Трёхслойная нейросеть 25-25-1 (для матрицы 5Х5) обучалась на 2ГГц проце НЕДЕЛЮ круглосуточной непрерывной работы, чтобы отслеживать края букв. В принципе работает. Но...
esisl
 
Сообщения: 1480
Зарегистрирован: 23 июл 2012, 15:24

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 27 авг 2012, 16:48

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

Re: Что такое хорошо, а что такое плохо?

Сообщение Fayras » 27 авг 2012, 18:15

esisl писал(а):Э... По поводу ресурсов. Без специализированного "железа" в нейросетях ИМХО ловить нечего. Писал такую штуку для обработки видеоизображений. Трёхслойная нейросеть 25-25-1 (для матрицы 5Х5) обучалась на 2ГГц проце НЕДЕЛЮ круглосуточной непрерывной работы, чтобы отслеживать края букв. В принципе работает. Но...


Процесс обучения может быть существенно более ресурсоемким чем функционирование уже обученной сети.. все это очень вареабельно, можно и один нейрон неделю общитывать.. и да, CUDA сейчас в моде
Fayras
 
Сообщения: 118
Зарегистрирован: 15 дек 2010, 16:43
Откуда: Тверь
прог. языки: С++

Re: Что такое хорошо, а что такое плохо?

Сообщение esisl » 27 авг 2012, 22:41

Дело в том, что математика там:
а) в принципе нехитрая
б) в чистом виде ни каких параллелирующих хитростей не допускающая
Потому, ядро алгоритма, будет отличаться у разных систем категорически непринципиально и занимать пару экранов текста :)
Возможны однако хитрости типа включения в библиотеки предобученных на типовые задачи сетей. Но их можно использовать только именно в таком качестве. Например, для предварительной "очистки" сигнала от типовых типов шума.
esisl
 
Сообщения: 1480
Зарегистрирован: 23 июл 2012, 15:24

Re: Что такое хорошо, а что такое плохо?

Сообщение =DeaD= » 28 авг 2012, 00:14

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

Re: Что такое хорошо, а что такое плохо?

Сообщение ALV » 28 авг 2012, 01:42

gar_anat писал(а):моя цель сделать сеть из нескольких штук нейронов, не более 10.

Немого странно: обычно рассматривают сеть нейронов. Сам по себе нейрон - это некий триггер с определенным пороговым значением. И интересен результат срабатывания именно сети (комбинации), причем из довольно большого количества нейронов.
Если вы имеете в виду другое - используйте, пожалуйста, иную терминологию.
Аватара пользователя
ALV
 
Сообщения: 45
Зарегистрирован: 16 мар 2011, 01:23
Откуда: Тверь
прог. языки: C/С++ Java

Re: Что такое хорошо, а что такое плохо?

Сообщение CFox » 28 авг 2012, 06:30

Если более обобщить всё, то хорошо это выжить\функционировать для робота =) + припоять ему какую нить цель, дурацкую какую нибудь, но цель. Начинать можно и с 1го нейрона, какой будет 1й такой будет и миллионный. Сам этим занимаюсь и это очень интересно и весело. Желаю всяческих успехов автору
CFox
 
Сообщения: 25
Зарегистрирован: 19 май 2006, 18:30
Откуда: Великие Луки

Re: Что такое хорошо, а что такое плохо?

Сообщение esisl » 28 авг 2012, 18:34

Реализация нейросети на Фон-Неймановской машине параллелить не позволяет. Во всяком случае на классических, даже вот многоядерных машинках ничего не распараллелишь. Там считат особо нечего, там надо данные постоянно передовать по "все-ко-всем".
Для параллеки городят всякие эрзацы типа "неполносвязных графов". Оно работает, но это не для самодельщиков. Пока :)
esisl
 
Сообщения: 1480
Зарегистрирован: 23 июл 2012, 15:24

Пред.След.

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

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

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