Автор Тема: Самообучаващ се робот  (Прочетена 36951 пъти)

hunter

  • Направо Робот! :)
  • *****
  • Публикации: 638
    • Профил
Самообучаващ се робот
« Отговор #15 -: Март 02, 2010, 07:05:29 pm »
А къде ще се отчитат всички резултати във външна памет или в памета на контролера, съдейки по схемата няма външна памет но според мен ще е добре да има. И как ще става записването и съответно триенето на вече записан резултат но указал се грешен това ми е много инт. :D
Цвятко Цветков/ Бургас

http://www.youtube.com/watch?v=I1y67hzRWQY&feature=related

Alternative

  • Вече знае какво е робот!
  • *****
  • Публикации: 48
    • Профил
Самообучаващ се робот
« Отговор #16 -: Март 02, 2010, 07:21:02 pm »
Най-вероятно в ЕЕПРОМ паметта (има 1024 byte-а). 128 ситуации с по 8 решения за всяко = 1024
Според мен няма да има триене, ще има намаляване на вероятността това движение да се повтори. Т.е. ако може да се извършат 8 действия(И според мен тези , който sv_shady посочи са най-удачните), то първоначално всяко действие ще има вероятност да се изпълни 12,5%(12.5*8=100). Създава се ситуация, ако взетото решение е вярно, то вероятността ще се увеличи пропорционално(например на 15-20%), ако е грешно - ще се намали, съпответно под 12,5%.
Даниел Ангелов, гр. София

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Самообучаващ се робот
« Отговор #17 -: Март 02, 2010, 09:13:57 pm »
Дамм Дани ме е изпреварил с отговора. Точно така, нещата ще се помнят в EEPROM-a на процесора като при включване ще се зареждат в RAM паметта. Нищо няма да се трие, ами ще се коригират вероятностите, както Дани го е написал. При изключване на робота, има бутон, който трябва да се натисне, за да си запмни новото поведение, тоест да запише всички вероятности в EEPROM-a. Само, че съм дал 7 действия, та 128 байта ще хартисат, а пък за друго разумно действие не се сещам. Някакви предложения?

Едит: Мисля, че ще е добре, ако заложа и 180 градуса обръщане?
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

Alternative

  • Вече знае какво е робот!
  • *****
  • Публикации: 48
    • Профил
Самообучаващ се робот
« Отговор #18 -: Март 02, 2010, 09:33:35 pm »
Да, 7 са. Аз съм броил движение на 45 градуса назад ляво/дясно(реално 135'), вместо обръщането на 180 градуса.
Даниел Ангелов, гр. София

hunter

  • Направо Робот! :)
  • *****
  • Публикации: 638
    • Профил
Самообучаващ се робот
« Отговор #19 -: Март 03, 2010, 08:45:51 pm »
Добре, да го кажа по друг начин понеже вие сте по-наясно с програмирането а аз изкам и на мен да ми се изясни защото ми е инт за това питам вероятноста как ще се коригира и тази вероятност като какво ще се отбелязва тоест 1 ли 0 ли какво. Просто ако може малко по-подробно надявам се не е досадно.
Цвятко Цветков/ Бургас

http://www.youtube.com/watch?v=I1y67hzRWQY&feature=related

EmilEG

  • Робо-Новак
  • *****
  • Публикации: 18
    • Профил
Здравей, не схващам идеята ти...
« Отговор #20 -: Юли 01, 2010, 04:43:57 pm »
Здравей, не схващам идеята ти Светльо. Доколкото разбрах учиш навън. Ще ти дам един съвет. Не слушай преподавателите си. Преди около 6-години, общувах за кратко с един от "най-големите" специалисти по Изкутвен Интелект в света. Слагам кавички, защото аз нямам такова отношение към него, и обърканите им ИДОЛОПОКЛОНИЧЕСКИ комплекси навън, не ме вълнуват. От няколкомесечната ни кореспонденция стигнах до извода, че това е един ДЪРВЕН ФИЛОСОФ и нищо повече. (От ДИСКАВЪРИ ЧЕНЪЛ мислят друго, но и те са същите смешници). Та той ми обясняваше подобни неща като НЕВРОННИ МРЕЖИ и т-н. Истината е, че ВСИЧКО, което може да се направи с НЕВРОННИ МРЕЖИ, лесно може да се осъществи и с ПОСЛЕДОВАТЕЛНИ АЛГОРИТМИ. Предимството на "хипотетичните" невронни мрежи е "хипотетичната им" бързина. А тези кавички, могат да се махнат при положение, че се създаде достатъчно рентабилен невронен процесор и което е по-важно, се измислят ПОДХОДЯЩИ НЕВРОННИ АЛГОРИТМИ. Засега това са НЕКАДЪРНИ СИМУЛАЦИИ. Лошото е, че "специалисти", като въпросният ти ПРЕПОДАВАТЕЛ по машинен интелект - имат някаква ЗАМЪГЛЕНА ФИЛОСОФСКА ПРЕДСТАВА ЗА ВЪЗМОЖНОСТИТЕ НА ТЕЗИ НЕВРОННИ МОДЕЛИ. А човек е склонен към САМОЗАБЛУДИ с цел да си направи живота по ТАЙНСТВЕН и НЕОБИКНОВЕН, отколкото в действителност Е.  Колко ВЪЛНУВАЩО - робота се е САМОУБИЛ - като не е могъл да вземе решение - ей, този робот е излязал от някоя творба на Станислав Лем  :D . А сигурно не са ти обяснили защо е станало така. Аз имам хипотеза, която не изглежда толкова вълнуваща, както на преподавателя ти - но няма и нотка на приказност в нея. Не знам дали ще ти хареса. Истината е, че вероятно са използвали "НЕВРОННАТА МРЕЖА", като един вид МАРШРУТИЗАТОР ИЛИ КАРТА, в математиката се нарича ГРАФ - и просто не са му достигнали "АКСОНИТЕ", УЛИЦИТЕ или РЕБРАТА(математически). Този твой преподавател не е наясно с термина "НЕВРОННА МРЕЖА" и го употребява за да си създава някаква тайнственост пред студентите с цел да получи уважение от тях, както някога са правили шаманите, разказвайки измислици на балъците покрай огъня  :-D  .

Схващаш на къде бия, нали? Не бъди като него Светльо. Програмата която искаш е изключително ПРОСТА.  Дай ми пример за това, как се управляват моторите, как се получава информация от сензорите и какви са им възможносттите - ще ти я напиша. Или ми прати, копие от програмата, която ти си написал за да я разгледам.

Какво искаш да направиш - РОБОТ ЗА ПРЕОДОЛЯВАНЕ НА ЛАБИРИНТИ, който да компенсира възможна неизправност и промяна в положението на предметите, чрез промяна на програмата си за управление ли? Както казах това е лесно.

"Във всяка ситуация вероятността робота да предприеме каквото и да е действие (да завие под определен ъгъл наляво, надясно, да тръгне назад) първоначално е еднаква. След като предприеме това действие той ще се блъсне или ще избегне препядствието. Ако се блъсне, това ще бъде отчетено от акселерометъра и вероятността втори път в такава ситуация да предприеме същото действие се намалява. Така след известен брой блъскания роботът ще започне да избягва препядствия. "

Между другото SPP ти каза нещо много на място. Има опасност, робота ти да се врътка в малка област, ако селектираш само едно "ПРАВИЛНО" Действие в определена ситуация. Представи си че имаш лабиринт с два изхода - ляв и десен. Ако случайно първото ти движение е било напред - неуспешно, а второто надясно - успешно. Следващият път, когато робота попадне в същата ситуация - ще кара само НАДЯСНО, за него ЛЯВО, което също е УСПЕШНО, но той не го "ЗНАЕ" - НЯМА ДА СЪЩЕСТВУВА понеже не го е опитал. Точно това ще доведе до моментно и необратимо вкарване в ЦИКЛИ на МАЛКО пространство, за което говори SPP. Другият му въпрос също беше на място. Под различен ъгъл, няма ли да вижда една ситуация - също различно. Ако е така, ясно ли ти е, че запаметяването на ситуацията и оптималното действие, което трябва да предприеме при нея е безсмислено?! Трябва да ми дадеш подробности за СЕНЗОРИТЕ - за да ти кажа със сигурност дали това е така - трябва ми само на какво разстояние действат, какво засичат, къде се намират на робота и т-н. Както и да ми кажеш ТОЧНО КАКВО ИСКАШ ДА ПРАВИ РОБОТА. Може би ще се наложи да промениш малко дизайна му, за да не стане така както ти предрича SPP

Аз съм пуснал в общият форум едно съобщение. Ще го пусна и тук. За всички, които имат проблеми с ПРОГРАМАНИТЕ АЛГОРИТМИ за УПРАВЛЕНИЕ НА РОБОТА СИ - мога да ви помогна си ИДЕИ, как да ги разрешите!

Много ми се иска да разбирам, колкото вие от ЕЛЕКТРОНИКА И РОБОТОСТРОЕНЕ, за съжаление нямам условия да науча тези неща. Но пък мога да съм ви полезен с други.
[email protected]

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Самообучаващ се робот
« Отговор #21 -: Юли 02, 2010, 01:28:54 am »
Здравей,
Прочетох много внимателно 3те ти поста. Предполагам си постигнал успех с робо-футбола и изправянето на роботите, но май самоувереността ти е дошла малко в повече. Не знам дали си прочел по-сериозни четива свързани невронните мрежи. Занимавам се професионално в момента с две неща - едното е разпознаване на обекти в изображения, а другото е разпознаване на ръкописен текст. Мога да ти кажа, че решенията за разпознаване на текста, които са изградени с невронни мрежи достигат точност над 90%, а аналитичните решения с последователни алгоритми едва 60%-70%. Поясни какво имаш предвид под "ПОДХОДЯЩИ НЕВРОННИ АЛГОРИТМИ"? Предимството на невронните мрежи не е толкова в бързодействието им, макар че невронна мрежа изпълнена с двоични дискриминативни неврони, може да сработи за няколко наносекунди, което смятам е достатъчно бързо, за да махне кавичките на "хипотетична бързина". Идеята е, че невронните мрежи с времето започват да интерполират информацията, чрез която са обучени и независимо дали работят в режим на класифициране или асоцииране, могат да изведат правилен резултат, за входен информационен шаблон, който не е е бил представен по време на обучението.
Идеята за робота самоубиец просто го споменах, защото звучи интересно, защото нещата се развиват и роботите ще започнат да заемат нова част в обществото - това беше и причината лекторът ми да го разтълкува като самоубийство, но зад всичко седеше теоритичното описание на модела на поведение. Напълно ми е ясно защо е спрял робота и съм един от последните хора в този форум на когото е необходимо да му се обяснява какво е ГРАФ, РЕБРО, ВРЪХ и така нататък. Целта на робота е била просто да се движи напред, не имало никаква маршрутизация, но дори и да е имало, то аксоните и ребрата нямат нищо общо помежду си, защото невронната мрежа не се ползва, за представяне на информация (карта), а за обработка. Нима когато, човек наистина се самоубие всичките фактори и процеси, които са довели до това, не са обясними с рационални закони? И въпреки това казваме, че човек се е самоубил, а не че невронната му мрежа е довела до неблагоприятен изход...
Темата, която съм започнал не съм я написал, защото мисля, че програмта е сложна или защото не мога да я направя, написал съм я, за да споделя с какво се занимавам и да бъде някакъв източник на информация. Благодаря за предложението, но не съм молил за помощ, нито мисля че ми трябва. Още по-малко смятам, че се нуждая от помощ, от човек, който започва поста си с изречение "не схващам идеята ти".
Именно поради тази причина и критиката ти не е правилна, както и забележката на Слави (spp). Опитах се да отговоря на нея, но явно не съм се справил, затова ще се опитам отново. Когато роботът вземе добро решение, то вероятността да бъде взето отнова това решение в същата ситуация се увеличава. Колкото и да се увеличава тази вероятност, то изхода от ситуацията никога на е 100% сигурен, може останалите изходи да са с по 1% вероятност, но могат да се случат, така че робота, ще завие и наляво. Особено в началото, когато двете вероятности са близки и ако това е благоприятен изход, то решението за него също ще бъде стимулирано. Същото е с хората, с времето свикваме да минаваме по даден маршрут от точка А до точка Б. Маршрута ни харесва и дори не се замисляме да го сменим, докато не се случи нещо, например не можем да минем по него или някой друг ни преведе през друг по-кратък маршрут, който е по-благоприятен. Вероятността да минем по втория маршрут е малка, но въпреки това може да се случи. Цялата идея е, че роботът ще се самонаучи да избягва препядствия, без да съм написал грам код, който да съотнасия информацията от сензорите към управлението на моторите. Роботът сам ще се научи - може би ще кажеш, че научи е прекалено силна дума, но дори и ние се учим как да караме кола, как да ходим, което е аналогично. Относно въпроса със ситуацията - ситуация е просторанството около робота + положението на робота српямо това пространство и ориентацията му. Дори да вижда едно и също кубче от два ъгъла, това не означава че сутацията е еднаква. Представи си, че срещу теб има врата - единия път я виждаш от едната страна и трябва например да я отвориш към теб, втория път виждаш същата врата, но от другата и страна и трябва да буташ - което са си две различни ситуации, независимо от факта, че са свързани с един и същ предмет.
Не виждам защо процес, който води до един и същ резултат при хората и роботите, да го наричаме с различни имена - самообучаване за хора и изменение на управляващата програма за робот... Изглежда ми прекалено насилено и необосновано.
Цитат
Трябва да ми дадеш подробности за СЕНЗОРИТЕ - за да ти кажа със сигурност дали това е така - трябва ми само на какво разстояние действат, какво засичат, къде се намират на робота и т-н. Както и да ми кажеш ТОЧНО КАКВО ИСКАШ ДА ПРАВИ РОБОТА. Може би ще се наложи да промениш малко дизайна му, за да не стане така както ти предрича SPP
Това само, ще кажа, че е прекалено нахално и дори арогантно. Не виждам защо да "ТРЯБВА" да се съобразявам с твоите виждания, като ти дори не си се опитал да разберш моите.
Не знам на какъв професор си попаднал, може да си прав, че е бил дървен философ, но не всички са такива...порови се из интернет, както и по академичните публикации за Kevin Warwick и ще си говорим тогава.
След като твоето виждане противоречи с масовото, и нямаш конкретни доказателства за твоята правота - то може би просто съзнателно или несъзнателно се опитваш да се бориш срещу системата. Това помага само до някъде (не трябва никога човек да е кон с капаци и да вярва безусловно в нещо заради другите, трябва сам да се увери в нещата, в които вярва), но ако прекалиш, ще загубиш целия си живот в безмислена борба.
Ще вложа всички усилия роботът да е готов за сбирката при Роботев на 4ти юли и ако дойдеш ще може да го видиш, да се запознаем и да поговрим на каквато тема пожелаеш.
P.S. Един съвт към всички, които са прочели поста ми: Свалете гарда, спрете да отричате непознатото, признайте пред себе си, че има много неща, които не знаете и започнете да ги опознавате!
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

anio

  • Бил знаел какво е Мехатроника!
  • *****
  • Публикации: 110
    • Профил
Самообучаващ се робот
« Отговор #22 -: Юли 02, 2010, 02:40:00 pm »
Аз си признавам! Още нищо не знам и даже не знам от къде да започна :)
Ангел Колев, София

Chaze

  • Робо-Новак
  • *****
  • Публикации: 19
    • Профил
Re: Самообучаващ се робот
« Отговор #23 -: Юли 26, 2010, 11:11:54 pm »
Цитат на: "sv_shady"
2^7 ситуации, което са общо 128.


Или аз не мога да смятам, или ти..Ако 2^7 означава 2 на 7-ма степен, тогава не се ли получава 256 ?..Или греша ?
Иван Мирославов Петков 13 Мездра

zoro1

  • Global Moderator
  • *****
  • Публикации: 610
    • Профил
    • http://www.zoro1.com
Самообучаващ се робот
« Отговор #24 -: Юли 27, 2010, 08:15:40 am »
2*2 =4*2=8*2=64*2=128*2=256*2=?
А сега преброй двойките.


...Великите нации  се държат като гангстери,а малките като проститутки...
И.Несторов
Skype:Zorro1430

cech

  • Новодошъл
  • *****
  • Публикации: 8
    • Профил
Самообучаващ се робот
« Отговор #25 -: Август 22, 2010, 12:25:03 am »
Здравей, много съм заинтригуван от проекта ти! И аз смятам да направя нещо подобно като си купя ардуиното. Имам няколко идеи , които се нядавам че ще ти бъдат от полза:

1. Вместо да награждаваш робота за положително действие (да увеличаваш процентите) , ги намалявай при негативно действие. По този начин се избягва това гадно зацикляне при дадени ситуации. Например: датчиците отчитат 0000000 (няма препядствиа наоколо). това значи че напрактика няма действие, което да довед до сбъсък . Затова ако го награйдаваш за полойително действие в този случай, робота ще затвърди първото действие което направи (и ако е завой на 180 градуса става кофти). Вместо това го наказвай за негативни действя- по този начин в отворено пространство, вероятността да направи което и да е от осемте действия се запазва равна (12.5%). Като направи действие, което да доведе до сблъсък, просто изваждаш 7% (примерно) от това действие в тази ситуация и добавяш по 1% за всички други.


2. Това предложение може да се стори на някои като мамене ,но всеки със собственото си мнение!!!
Вместо в началото вероятността за всички действия да е еднаква (12.5%) ,да се увеличи вероятността за движение напред, за сметка на 180 градусовия завой (защото напрактика няма как да се блъсне в нищо при този завой, и тъй като взимаме проценти само при негативно действие, в крайна сметка завоя на 180 градуса може да се окаже "най-доброто" (според робота) действие).А като увеличим процентите за действието придвижване напред , теоритично ще  усигорим по целенасочено движение , а не просто хаотично движение.

С нетърпение очаквам да чуя мнението ви за моето предложение , и също така бих искал да чуя как се развива проекта (снимките от първия пост немога да ги отворя).
михаил, пловдив, 18 години
http://www.erepublik.com/en/referrer/petr_cech (Който иска да влиза)

sv_shady

  • Administrator
  • *****
  • Публикации: 636
    • Профил
Самообучаващ се робот
« Отговор #26 -: Август 23, 2010, 10:34:23 am »
Здравей,

Ами и в двете ти предложения има логика, но ограничават развитието на поведението на робота.
1. Смятам робота да изменя поведението си при положителен и отрицателен изход от ситуацията.
2. Интересното е какво ще стане, дали ще се движи хаотично, дали ще се движи целеустремено напред, настрани и т.н.

Иначе проект е замръзен стадии, защото трябва да приложа по - сериозена обработка от върху данните от акселеротметъра, за да може да се засичат сблъсъците. За тази цел трябва да сложа радио връзка с робота и съответно да получавам данни в реално време и да ги визуализирам. Снимките в първия линк не работят, защото гугъл докс спряха публичните линкове. Ако имаш интерес дай имейл и ще ти пратя снимки. :)
Imagination is the only limit.......

Светлин Пенков
София / Рединг, Великобритания

zoro1

  • Global Moderator
  • *****
  • Публикации: 610
    • Профил
    • http://www.zoro1.com
Самообучаващ се робот
« Отговор #27 -: Август 23, 2010, 03:40:49 pm »
Струва ми се че с Ардуино малко може и да не станат нещата,много е по бавно смятането пи усложие ,че имаме числа след десетична запетая,и програмата може и да не се напасне на контролера./Все пак 32К не са толкоз много.../Може на две пък да стане -вие ще кажете.
Свтльо,пусни ги снимките в Имаджето -там поне не се губят ,пък и те нали само с това се занимават ,не мисля че ще изчезнат.


...Великите нации  се държат като гангстери,а малките като проститутки...
И.Несторов
Skype:Zorro1430