\documentclass[12pt,a4paper,portrait]{article}
\usepackage[dvips]{graphics,color}
\usepackage{vmargin}
\setpapersize{A4}
%\setmarginsrb{25mm}{20mm}{20mm}{2mm}%
%             {0pt}{0mm}{10pt}{10mm}
\begin{document}

\begin{center}Encyclopedie van de AI, opdracht 2 \\
{\em 0440949 Andreas van Cranenburgh \\
0045101 Jesse Mak } \\
Sat Jan 13 12:26:30 CET 2007\end{center}

\section{De geschiedenis van de AI per decennium}
\subsection{1956 - 1965}
1956: Het ontstaan van de kunstmatige intelligentie.
In de zomer van dat jaar organiseert John McCarthy ``The Dartmouth summer
research project on Artificial Intelligence'', (hij is ook degene die met de
term kunstmatige intelligentie komt). Hij nodigde hier vooraanstaande
wetenschappers bij uit waarmee hij het leerproces en alle andere aspecten
van intelligentie zo goed mogelijk wil gaan omschrijven, zodat het mogelijk
wordt om een machine te bouwen die dat kan simuleren. De problemen die zij
op deze conferentie bespreken zijn zoal: hoe je computers kunt
automatiseren om de taken van machines over te nemen, hoe een computer taal
kan gebruiken, hoe een machine zich zelf kan verbeteren en hoe creativiteit
en willekeur werkt.

Tot 1969 is er veel enthousiasme voor de AI. De eerste jaren zijn vol van
succes, het ene onmogelijk geachte probleem na het andere wordt opgelost.
McCarthy noemt dit het ``Look me, no hands'' tijdperk.

1956: Het eerste AI-programma: ``The Logic Theorist'' is een programma van
Allen Newell, J. C. Shaw en Herbert Simon die het menselijke logisch
redeneren nabootsten. Dit was voor het eerst dat een computer abstracte
beweringen kon bewijzen en niet allen maar specifieke rekensommen
uitvoerden.

1957: ``The General Problem Solver'' (GPS) van Herbert Simon en Allen Newell:
een programma dat symbolische problemen kon oplossen door middel van een
'Means-ends-analysis'. Het programma kreeg een probleem voor gelegd zoal
schaken of de "Toren van Hanoi" en loste dit probleem door met de
beschikbare operaties het doel van het probleem in subdoelen te verdelen,
deze appart op te lossen, en zo tot een eindresultaat te komen.

1958: ``Lisp'' van John McCathy: een van de eerste functionele
programmeertalen gebaseerd op lambda calculus en in die tijd erg populair
in de AI. Lisp staat voor 'List-Processing' en legde de basis voor veel
idee\~{e}n in de computerwetenschap, en wordt (in verbeterde versies) nog
steeds gebruikt.

1961: James Slagle ontwikkelt ``Saint'', het eerste programma dat symbolische
integratie berekent op een hoog niveau.

1962: Unimation is het eerste bedrijf dat robotarmen gaat maken voor
industrieel gebruik.

1963: Thomas Evan ontwikkeld ANALOGY, een programma dat dezelfde
geometrische problemen als in een IQ-test kan oplossen.

1965: Het eerste expert-systeem of kennis-systeem heet DENDRAL een systeem
dat hulp biedt bij het ontrafelen van de moleculaire structuur van
scheikundige verbindingen. DENDRAL wordt gezien als het eerste
geautomatiseerde systeem dat menselijk probleem oplossend vermogen namaakt
en zelflerend is.

\subsection{1966 - 1975}
1966: ELIZA: een programma waarmee je een conversatie aangaat en dat de
vragen van een therapeut imiteert. Gemaakt door Joseph Weisenbaum.

1966: Donald Michie organiseert in Edinburgh de eerste ``Intelligente
Machines'' workshop. Deze invloed rijke workshop wordt nog steeds jaarlijks
gehouden.

1966: De 'National Research Council' stopt met de veel subsidies van AI
nadat een vertaalprogramma de volgende vertaling van Engels via Russisch
terug naar Engels maakt: "The spirit is willing but the flesh is weak",
wordt: "The vodka is good but the meat is rotten".

1968: Terry Winograd schrijft in LISP het programma SHRDLU. Een programma
dat de engelse taal begrijpt (binnen de wereld waarmee hij werkt) en kan
aan de hand van tekst opdrachten uitvoeren.

1969: Het eerste ``International Joint Conference on Artificial
Intelligence'' wordt in Washington D.C. gehouden.

1969: Via ARPAnet wordt de eerste link gelegd tussen twee op zichzelf
staande nerwerken. Dit is de voorloper van het internet.

1970: Doug Engelbart vindt de muis uit. (Toen ook wel 'Bug' genoemd).

1970: De floppy disc wordt ge\"{i}ntroduceerd.

1971: Alain Colmerauer en Phillipe Roussel schrijven de programmeertaal
``ProLog'', dat vooral buiten de V.S. de populairste computertaal wordt. In
de V.S. blijft men vooral LISP gebruiken.

1973: Aan de universiteit van Edinburgh wordt Freddy gebouwd. Een robot die
door middel van zicht houten modellen kan herkennen en maken.

1973: De eerste email wordt over het ARPAnet verstuurd door Ray Tomlinson.

1975: De eerste personal computer komt op de markt. De Altair 8800 heeft
een geheugen van 256 bytes.

1975: Marvin Minsky schrijft een artikel: ``A Framework for Representing
Knowledge''. Dit invloedrijke artikel gaat onder andere over semantiek en
hoe mensen objecten bekijken en herkennen.

\subsection{1976 - 1985}
1979: Luigi Villa, de wereldkampioen backgammon, is de eerste kampioen van
een bordspel die wordt verslagen door een computer.

1979: "The Stanford Cart" is het eerste computer gestuurde autonome
voertuig, die in staat is om door een met traject met obstakels te
navigeren.

1980: Hitachi ontwikkeld met behulp van Fuzzy logic een systeem voor een
Japans metronet. Het zorgt ervoor dat het energieverbruik met 10\% afneemt
en de treinen accurater laat rijden.

1980: John Searle schrijft een paper "Minds, brains and programs", waarin
hij het "Chinese Room" experiment omschrijft als argument tegen sterke AI.
Zijn standpunt is dat computers niet kunnen denken en dat ze geen cognitief
begrip hebben over de taken die zij uitvoeren.

1982: John Hopfield toont aan dat een netwerk van simpele neuronen de kunst
van het calculeren kan worden gegeven.

\subsection{1986 - 1995}
\subsubsection{Polly}
Polly was een robot gebouwd op het MIT. Het technische rapport over deze robot is gepubliceerd in 1993. Het was de eerste robot die met de snelheid van een gemiddeld dier voortbewoog (1 m/s). De robot gebruikt computer vision om obstakels te ontwijken. Het ``polly algoritme'' dat de robot gebruikte werkt door 60 keer per seconde met een lage resolutie camera te kijken of de robot links, rechts of rechtdoor moet. De pixels direct voor de robot worden gehouden voor vrij ruimte, en vergeleken met de rest van de pixels.

Polly was een reactieve robot. Dit betekent dat de robot geen wereldmodel bijhoudt, maar dat zintuigen direct invloed hebben op actuatoren (ie. de motors). Dit soort robots reageert veel sneller op zijn omgeving. Ook een verschil met de oudere (deliberative) robots is dat reactieve robots modulair zijn: het ga-vooruit gedeeld kan getest worden onafhanklijk van het ga-links gedeelte. Dit zorgt ook voor extra robuustheid: als een gedeelte uitvalt hoeft dat niet de rest van het systeem te raken.

\subsubsection{TD-Gammon}
TD-Gammon is een programma wat het spel backgammon speelt op wereldklasse. Het gebruikt een neuraal netwerk met reinforcement learning. D.w.z. het leert door tegen zichzelf te spelen, terwijl bij neurale netwerken meestal gebruik wordt gemaakt van supervised learning, waarbij een gelabelde set data wordt ingevoerd, en doorgetraind wordt tot het juiste resultaat wordt bereikt.

De TD in TD-Gammon staat voor Temporal Difference (Learning). Het neurale netwerk geeft een actie en voorspelde uitkomst waarde van die actie, zodra duidelijk is wat de werkelijke uitkomst is (het spel is gewonnen of verloren), wordt het verschil gebruikt om de gewichten aan te passen. Hierbij is het nog wel een belangrijke taak om te bepalen welke zetten bepalend zijn geweest voor de uitkomst.

Wat waarschijnlijk een belangrijke factor is geweest voor het succes van het TD learning algoritme bij backgammon is dat er in dit spel een element van willekeur zit: de dobbelsteen. Hierdoor komen er vanzelf zeer uiteenlopende spelsituaties, zonder deze in te moeten voeren. Bij deterministische spellen zoals schaken en dammen moet dit element van willekeur door de programmeur toegevoegd worden.

\subsubsection{Robot auto's}
In 1995 reed een door een computer bestuurde auto van Munchen tot Kopenhagen en terug. Enkel in bepaalde kritieke situaties nam een mens de besturing over. De auto ging over snelwegen tot 170 km/u. Deze robot kon objecten herkennen en ontwijken. Ook bewegende objecten, zoals auto's. Hij kon zelfs andere auto's inhalen.

Een verschil met andere robot auto's is dat deze auto, voortgekomen uit het Prometheus project onder leiding van Ernst Dickmanns, geen gebruik maakt van GPS. De robot volgt de weg waar hij op rijdt totdat hij instructies krijgt om iets anders te doen. 

\subsection{1996 - Heden}

\subsubsection{Deep Blue}
In 1996 speelde de supercomputer ``Deep Blue'' tegen de wereldkampioen schaken Gary Kasparov. De computer won de eerste slag, maar Kasparov won er later 3 en speelde 2 keer remise.

Later, in 1997, is Deep Blue uitgebreid en was er een volgende wedstrijd. Toen won Deep Blue met 3.5 - 2.5 (waarbij 0.5 staat voor remise). Dit werd breed uitgemeten in het nieuws en had een positief effect op het aandeel van IBM, de maker van Deep Blue.

Kasparov beschuldigde de makers van Deep Blue echter van fraude. Er waren bepaalde zetten die alleen mensen zouden maken. Deze zijn later echter ook gedaan door andere computerprogramma's; idem voor een `menselijke' fout die Kasparov aanwees. Wel kan er opgemerkt worden dat het vreemd is dat de mensen achter Deep Blue uitgebreid de kans hebben gekregen Kasparovs eerdere wedstrijden te analyseren, en in te spelen op zijn stijl en fouten. Toen Kasparov echter vroeg om transcripties te zien van Deep Blue's wedstrijden werd dit geweigerd. Ook werd het programma van Deep Blue tussen de slagen gewijzigd, om fouten van Deep Blue ten opzichte van Kasparov's speelstijl aan te passen. Ten slotte is de code van Deep Blue's software nooit vrijgegeven, wat niet te verdedigen valt. Er valt absoluut geen geld te verdienen met een schaakprogramma (er zijn al betere), en de enige reden om het niet prijs te geven is dat de code niet bepaald fraai zal zijn (bijv. strategien die specifiek tegen Kasparov bedoeld zijn).

\subsubsection{Google (Web Crawlers)}
In de jaren 90 kwamen de zoekmachines op. Omdat het web ontzettend groot is en ook nog eens snel veranderd, is het belangrijk om de zogeheten web crawlers, die het web doorzoeken om de database van een zoekmachine te vullen, zo veel mogelijk te optimaliseren. Als een pagina gedownload is bekijkt de web crawler welke links er op die pagina staan, en selecteer welke links gevolgd zullen worden.

Een manier om dit te doen is door gebruik te maken van de PageRank, een door google bedacht concept om een pagina een score te geven. De score wordt vooral bepaald door te kijken hoeveel pagina's er naar een bepaalde pagina linken, hoe meer hoe beter. Ook tellen links op een pagina met een hoge score zwaarder dan die van een pagina met een lagere score.

Recentelijk zijn er ook pogingen gedaan om methodes in te bouwen om te beschermen tegen sites die proberen hun pagerank kunstmatig hoog te houden, door zo veel mogelijk links te plaatsen. Een voorbeeld van zo'n ``google poisoning'' is dat tijdens de Amerikaanse presidentsverkiezingen de zoekopdracht ``miserable failure'' direct leidde naar de autobiografie van George Bush jr. -- waarbij de les was dat, ongeacht de ``authoratieve'' status van Google, hen zelf niets verweten kon worden. Dit is te vergelijken met het van Dale woordenboek, dat naar willekeur bijvoorbeeld discriminerende woorden kan weglaten of opnemen.
 
\subsubsection{AI@50 conference}
Precies vijftig jaar na de geboorte van de AI is er een herdenkingsconferentie gehouden. Vijf van de tien originele aanwezigen waren er, en hielden een presentatie.

Minksy zegt geen fan te zijn van ontologieen, omdat ze te rigidie zijn. Verder noemt hij de vele manieren waarop mensen tegen problemen aan te kijken: analogien, plannen, simplificeren, herformuleren etc.

Volgens McCarthy is het nodig om de logica uit te breiden, vooral non-monotone logica. Op de vraag welke leeftijd de kunstmatige intelligentie van nu heeft zegt hij ``op sommige aspecten lopen we vooruit, op andere hebben we niets eens de intelligentie van een 1-jarige.''

Zo zijn er nog tientallen andere presentaties, te veel om hier samen te vatten. Uit de ``polls'' onder het publiek blijkt dat men verdeeld is of menselijke intelligentie te simuleren valt. Wel gelooft een grootte meerderheid dat statistische en probalistische methodes de beste benadering van de werking van het brein zijn. 59\% vindt connectionisme een veelbelovend model.

\section{Twee onderwerpen van de Dartmouth conference nader bekeken}
\subsection{Neurale netwerken}

Neurale netwerken zijn een model van de werking van de hersenen. Er zijn een aantal invoer neuronen, meestal een aantel verborgen neuronen (niet voor invoer of uitvoer), en uitvoer neuronen. Twee verschillen met de neuronen in hersenen zijn dat de verbindingen meestal vooraf bepaald worden en dat de neuronen maar \'{e}\'{e}n uitvoer verbinding hebben. Elke verbinding tussen neuronen heeft een gewicht. Door te trainen worden deze gewichten zo aangepast dat het gewenste resultaat bereikt wordt.

\subsubsection{Geschiedenis}
De neurale netwerken op de computer begonnen met de perceptron, een zogenaamd feed forward netwerk met een enkele laag. Feed forward betekent dat de uitvoer nodes niet gekoppeld zijn aan de invoer nodes. Dat het maar een enkele laag heeft betekent dat de invoer nodes direct gekoppeld zijn aan de uitvoer nodes. Deze vorm kan maar een beperkte set van functies benaderen (bijv. AND, OR en NOT), en de meeste anderen niet (bv. XOR). Minsky bewees dat in een beroemd paper, en stelde (ongegrond) dat dit ook geld voor neurale netwerken met meer lagen. Hierdoor raakten neurale netwerken in diskrediet en kwam er zelfs een ``AI winter'' (minder aandacht en fondsen.)

In de jaren 80 raakten neurale netwerken weer in zwang. Er werd gebruik gemaakt van meerdere lagen en de techniek van Backpropagation werd toegepast om de netwerken (semi)automatisch te laten leren. Backpropagation houdt in dat de uitvoer waarden van het netwerk bij een bepaalde invoer vergeleken worden met het gewenste resultaat. Met een voorgedefinieerde error-functie wordt de fout per neuroon berekent. Door dit proces vaak te herhalen benadert het netwerk het juiste resultaat.

Een geheel andere type is het recurrente neurale netwerk. Hierbij zijn hidden en/of output nodes gekoppeld aan input nodes. Hierdoor kan het netwerk een ``state'' hebben, bijvoorbeeld een getal onthouden zodat een reeks kan worden berekend.

\subsubsection{Toepassingen}
De toepassingen zijn zeer divers. Ten eerste problemen waar ingewikkelde of onbekende functies benaderd moeten worden, zoals beurskoersen en rentes. Ten tweede het herkennen van gezichten, objecten, geluiden etc. Ten derde het classificeren van invoer, zoals spam en niet-spam. In het algemeen zijn neurale netwerken geschikt voor problemen die moeilijk te definieren zijn en/of het met de hand ontwerpen van een functie haalbaar is.

\subsubsection{Beperkingen}
Er zijn twee belangrijke problemen met neurale netwerken. Ten eerste het problemen van ``overtrainen'': als er te veel neuronen zijn en er te lang getraind wordt, dan zal het netwerk nieuwe invoer niet goed generaliseren. Bij te weinig neuronen wordt er weer te veel gegeneraliseerd.

Ten tweede werkt een neuraal netwerk als een ``black box'': er is geen enkele verantwoording of uitleg te verkrijgen over de gegeven antwoorden. Dit beperkt de toepassingen. Totdat we miljarden neuronen kunnen simuleren en het netwerk zichzelf wel zal kunnen uitleggen, natuurlijk . . .
 
%\subsection{ ... }

%\section{Conclusie}
%...

\section{Bronnen}
http://en.wikipedia.org/wiki/History\_of\_artificial\_intelligence \\
http://en.wikipedia.org/wiki/Ernst\_Dickmanns \\
http://en.wikipedia.org/wiki/Deep\_Blue \\
http://en.wikipedia.org/wiki/Pagerank \\
http://www.engagingexperience.com/2006/07/ai50\_ai\_past\_pr.html \\
http://en.wikipedia.org/wiki/Artificial\_neural\_network \\
http://en.wikipedia.org/wiki/Connectionism \\
http://neuron-ai.tuke.sk/NCS/VOL1/P3\_html/ \\
\end{document}
