Lite kommentarer till rättningen
Rent allmänt är jag glad att se att folk svarade så bra, uppenbarligen var
ämnet inte hopplöst trots den virrige doktoranden som föreläste :-)
Jag har rättat utgående från ungefär följande tänkta "idealsvar":
I vanlig programmering specificerar man ett problem och hur det ska
lösas, och sedan skriver man explicit kod för att utföra detta.
Koden använder komplexa datastrukturer och algoritmer för att lösa
detta. I ett neuronnät, som består av många enkla noder tätt
kopplade i ett nätverk, sker användningen genom att man tränar
nätverket att producera rätt resultat (nätverkets kopplingstruktur
och inlärningsmetoden varierar beroende på problemet). Man anger
alltså inte explicit hur problemet ska lösas, utan hur man kan lära
sig lösa det.
Fördelarna med neuronnät är att man inte behöver veta hur lösningen
ska se ut för att kunna lära sig den, den kan vara rätt vagt
specificerad, genom att information är fördelad mellan många neuroner
spelar det ingen roll om vissa faller bort, nätet tål ofta störningar
hyfsat och kan generaliser a till nya fall. Nackdelarna är att man
inte kan vara säker på att lösningen är den bästa eller alltid
korrekt (validering är svårt), det krävs en hel del datorkraft för
att träna och köra stora nätverk, ibland kan det vara svårt att hitta
bra sätt att träna vissa problem och ofta behövs det mycket
övningsdata för att kunna ge en tillräckligt bra inlärningsbas.
ANN vs GA
Ganska många blandar ihop neuronnät med genetiska algoritmer (ibland
kallade evolutionära algoritmer). Båda är "svart låda"-inlärning,
man ger systemet ett problem/data att lösa/lära sig och bryr sig inte
om hur systemet egentligen gör det. Skillnaden (och den är rätt
stor) är att man tränar ett neuronnät med en inlärningsregel (t.ex.
övervakad inlärning, oövervakad inlärning eller
förstärkningsinlärning), medan i genetiska algoritmer har man en hel
population av objekt (som kan vara neuronnät, program eller andra
datastrukturer) som tävlar om att bli bra genom att de får "ungar"
med varandra, och de bästa individerna går vidare. Neuronnät arbetar
så att säga på individnivån (vad man lär sig under livet), genetiska
algoritmer på populationsnivån (hur utvecklas en art). Naturligtvis
kan de kombineras, vilket är ett spännande forskningsfält idag.
Hårdvara
Ett annat vanligt misstag är att man tror att neuronnät måste köra på speciell
hårdvara, att varje neuron motsvaras av en processor.
Det gör man sällan, specialhårdvara är dyrt, så man simulerar istället
alla neuronerna i mjukvara på en vanlig dator.
Det fungerar bra även på små datorer, även om det är jobbigt.
En dag kanske riktiga neuron-datorer dyker upp, men de är ovanliga idag.
Dilemman
En vanlig "nackdel" med neuronnät som uppgavs var att de skulle kunna
bli intelligenta och därmed leda till svåra etiska frågor, oväntade
problem eller rent av ta över världen. Jag har inte gett några poäng
för detta, eftersom (1) etiska/politiska/ekonomis ka dilemman inte kan
sägas vara en nackdel i själva tekniken (Internet och mediateknik i
allmänhet har ju också en otrolig massa dilemman och konsekvenser ,
både bra och dåliga, men det är ju ingen direkt nackdel för tekniken),
och (2) detta är för närvarande helt hypotetiska frågor, som kan bli
relevanta i framtiden men inte kan ses som ett problem hos tekniken
idag, vilket var vad jag frågade om.
Jag kanske hypade neuronnät och AI lite väl mycket på min föreläsning
och gav er för stora förhoppningar. Jag diskuterar naturligtvis
gärna konsekvenserna av neuronnät, AI och liknande saker, men det är
snarare frågor för en rejäl uppsats eller en rolig diskussion än en
tentafråga.