Dat noem ik gewoon botweg een programma programmeren: het zou pas kanp worden als hij zelf ineens een groene auto zou gaan herkennen. En hij bijv zelf ineens zou zien dat andere autottjes stoppen voor een rood lciht en hij dat ook gaat doen. DAS zelflerend

en dan ineens het verkeer regelen, boetes schrijven,...
het is zeker interessante maar moeilijke stof
het simpel beginnen is inderdaad de manier denk ik ook ja, zoals je zei, rijden, licht,... actie, licht veranderd, actie,...
of misschien is zelfs dat al teveel, gewoon de robot (of eenders welk voorwerp) rechtdoor laten gaan, een een T-splitsing, gaat hij automatisch naar links of rechts,...

@High met Henk.
Als we onze kinderen vertellen dat ze eerst naar links en dan naar rechts moeten kijken,bij het oversteken, is dit toch ook een vorm van programmeren?

In m'n korte voorbeeld kan je nog tal van routines tussen voegen.
B.v de robot loopt of rijd tegen een auto op, omdat hij door rood ging, (met een random routine zou je toe kunnen staan, dat hij b.v 1 op de 5 keer rood licht negeert.)Met een botsingdetectie kan dan in een gegenereerde database terug gekeken worden waarom hij in botsing kwam met die auto, en deze routine voor de toekomst blokkeren.

Maar IA is en blijft is en blijft nog steeds botweg programmeren en finetunen.

hmm ik deel die mening niet met je, want wat zou dan het nut van AI zijn? Als jij keihard kan zeggen: ga niet door rood of: ik zeg dat je 1 op de 5x door ood mag en voor de rest moet je wachten :)

Gaat helemaal nergens over. Als ik zoiets zou zien, zou ik het gewoon een bug noemen!

Het gaat mij erom dat hij bijv dingen gaat zien. Ik denk dus aan zoiets als autopatroon herkenning. stel je bijv voor een zelfdenkende robot met kleurensensor (of camera) langs een lopende band.

Ik wil dat hij blok kleuren herkent: een normale manier zou ik bijv zeggen:
geel = zo en zo,
groen = zus en zo,
rood = zo en zus
blauw = zus en zus

enfin kan ik 4 kleuren herkennen of iig zoveel als ik er in programmeer.

Nou een vorm van intelligentie: Als je een verschillende kleur zie, sla dit op: Als je 2x dezelfde kleur zie, tel dan de hoeveelheid van die kleur.

Verdikkie dis al intelligenter! Ik weet namelijk niet hoeveel kleuren ik ga zien!

Nou zou ik nog verder kunnen gaan en eens te tellen of er wellicht een patroon ontstaat in de langskomende blokken.

En nou heb ik nog maar 1 functionaliteit te pakken.. Blokjes bekijken!

Op 20 december 2006 20:15:41 schreef elektroverslaafde:
Stel: Je hebt een robotje dat kan rijden en een aantal sensoren die "zien" waar hij heen kan en waar niet wanneer je deze gegevens opslaat over waar hij heen kan rijden hoeft hij de volgende keer niet meer de verkeerde afslag te nemen (die vanaf dat punt ook mogelijk was) maar weet hij dat hij een andere weg moet hebben. wanneer je dit zo lang genoeg doet kent hij op den duur een aantal wegen en heeft hij de weg geleerd naar verschillende zaken.

Zoiets had ik ook in gedachte, of een wagentje dat zelf moet uitzoeken om bepaalde obstakels te overwinnen. Alleen, hoe zorgt je ervoor dat het gegevens opslaat?

Op 21 december 2006 13:49:50 schreef KP:
[...]

Zoiets had ik ook in gedachte, of een wagentje dat zelf moet uitzoeken om bepaalde obstakels te overwinnen. Alleen, hoe zorgt je ervoor dat het gegevens opslaat?

Dit is helemaal geen probleem, al de indrukken welke de robot ervaart, zijn gewoon op te slaan in 1 of meer datafiles, welke wanneer nodig, uitgelezen worden.

@ High met Henk,
Volgens mij zijn we het meer eens, dan jij beseft.
Ik ben dus geen docent, en omschrijf het misschien niet zo duidelijk.

Op 21 december 2006 14:18:27 schreef legacy:

Dit is helemaal geen probleem, al de indrukken welke de robot ervaart, zijn gewoon op te slaan in 1 of meer datafiles, welke wanneer nodig, uitgelezen worden.

Als ik alle indrukken moest opslaan die mijn ogen ervaren zou ik schijfruimte tekort komen ;)

Het grote probleem is een "centraal formaat" te bedenken waarmee indrukken kunnen worden opgeslagen op een symbolische manier (en oproepbaar) zodat er bepaalde handelingen over mogelijk zijn (kunnen denken over indrukken en ze kunnen linken aan vroegere ervaring vereist een dergelijk systeem).

Neem bijvoorbeeld ons decimale getalstelsel. Het is een symbolische representatie van iets wat we kunnen waarnemen op veel niveaus : kwantiteit. Tevens zijn de symbolen zo gekozen dat we er eenvoudig bepaalde handelingen over kunnen verrichten zoals optellen en aftrekken. Vergelijk dat met het romeinse getalstelsel wat onhandig is voor dat soort bewerkingen ondanks dat het hetzelfde uitdrukt : kwantiteit. Zelfs ons decimale getalstelsel kent zwakheden en "lapmiddeltjes" zoals het getal pi bijvoorbeeld (onuitdrukbaar met decimalen maar toch een bestaande grootte).

Voor een navigerende robot is het nodig een representatie te maken van de omgeving op een dusdanige manier dat het deze informatie kan gebruiken om te navigeren (een pad te kiezen tussen objecten door). Een 3D representatie maken op basis van informatie van een camera op de robot is nog een hele toer (er zijn een flink aantal algoritmes voor en het helpt als de robot beweegt om meer informatie te krijgen). Hoe nauwkeurig moet dit soort informatie zijn? Moet het de voegen in een bakstenen muur ook opslaan of alleen maar algemene informatie van de wand zelf? Hoe moet onbekende informatie worden opgeslagen? Is het nodig uitsluitsel te vinden over dit soort "blinde vlekken"? (op grond van het pad dat de robot wil kiezen). Hoe wordt een "path of least resistence" bepaald? Is een hobbeltje in de weg een obstakel en zo niet dan wanneer wel? Hoe wordt voorkomen dat de robot in cirkels blijft rondgaan? (het moet herkennen dat het weer terug is op een plek waar het al eens is geweest).

Een heleboel kan geleerd worden maar voordat er geleerd kan worden moet de robot eerst een flink aantal concepten kennen en attributen eraan kunnen toekennen op grond waarvan beslissingen kunnen worden genomen. De keuze van deze concepten en attributen zijn lastig (wij hebben er een heleboel en die zijn het resultaat van miljarden jaren van evolutie).

Naast abstracties die algemeenheden doen is het ook handig om "specifieken" te onthouden (een hond herkennen is 1 ding, "Fikkie" herkennen is iets anders). Wat zijn de specifieken waarmee individuen van de groep kunnen worden onderscheiden? (het ene obstakel van de anderen onderscheiden) Te hoge resolutie zal niet alleen teveel geheugenruimte nemen maar ook de herkenning van het individu belemmeren, het moet specifiek genoeg zijn om het individu van de groep te kunnen onderscheiden maar algemeen genoeg om het individu onder verschillende omstandigheden te blijven herkennen.

Visueel navigeren lijkt me sowieso vrij ingewikkeld te doen. Ondanks dat er enorme vooruitgangen zijn geboekt in het in kaart brengen van het visueel systeem van de mens zijn er nog steeds geen robots die echt uit de voeten kunnen met een visueel systeem zoals wij dat doen (maar ze komen aardig in de buurt). Het vraagt sowieso enorme rekenkracht (die 25 miljard neuronen van ons visueel systeem emuleer je niet zo 1-2-3).

KP, ik zou hoe dan ook aanraden te duiken in wat "biologie" boeken als AI je interesseert. Veel van de vooruitgangen op het AI gebied zijn geinspireerd op de voortschrijdende inzichten die de biologie ons verschaft (neem alleen al genetic algorithms, swarm intelligence, evolutionary programming en uiteraard neural networks).

Een goed boek wat een aardige opsomming geeft over alles wat zo'n beetje nu bekend is (en onomstreden) van ons neurale systeem kan gevonden worden in Kandel's "The Principles of Neural Science". Het is een heel leesbaar boek en heeft uitstekende hoofdstukken over voortbeweging. Principes worden goed uitgelegd en de namen van neurotransmitters kun je gewoon overheenlezen (het gaat erom wat het doet, niet hoe het heet ;-) )

Interessante sites over voortbeweging zijn het MIT leg lab en PolyPed Lab