De lærende maskiner er over os

De lærende maskiner er over os

Share

Maskinlæring er meget mere end en række smarte algoritmer; den vender op og ned på alting

Maskinlæring fylder efterhånden vældig meget – den er over det hele. Digitale assistenter bruger den til at oversætte tale. Facebook bruger den til automatisk at tagge billeder (DeepFace hævder at levere en nøjagtighed på 97,25 procent). Amazon, Spotify og Netflix bruger den til at udvælge de anbefalinger, du får tilsendt. Google inddrog RankBrain i sin søgemaskine i 2015 med henblik på håndtering af søgesemantik, Gmail har sin Smart Reply-tjeneste, og sidste år begyndte Google Maps at bruge maskinlæring til at uddrage vejnavne og husnumre fra billeder.

Disse eksempler er kun toppen af isbjerget. Bag kulisserne har store virksomheder taget maskinlæring til sig. Pengeinstitutter bruger den til at spore markedstendenser, beregne risici og dykke ned i strømmene af finansielle data. Kapløbet om den førerløse bil bliver drevet af maskinlæring.

Enhver virksomhed, der prøver at finde hoved og hale i det datarod, som mennesker laver, kan drage nytte af maskinlæring. Det gælder omtrent alt fra lægevidenskab til forsikringsbranchen. De fem største virksomheder målt i markedsværdi er i øjeblikket Apple, Amazon, Alphabet (Google), Microsoft og Facebook. De har alle foretaget omfattende investeringer i maskinlæring og har adgang til den form for big data, som effektiv udnyttelse af maskinlæring kræver.

Man skal huske, at maskinlæring og kunstig intelligens er to forskellige ting. Kunstig intelligens er en enhed, et program eller et system, der virker “klogt” og som kan handle og reagere på en menneskelignende facon. Maskinlæring er en metode , som AI kan bruge til at fremstå begavet, men det vigtigste er, at maskinlæring kan lære, mens den arbejder. Det er denne evne til at tilpasse sig, der ligger bag revolutionen.

Programmering kontra læring

Et computerprogram er et sæt af instruktioner, der er pænt og logisk. Med udgangspunkt i et input kan man spore data gennem programmets algoritmer og præcist forudsige outputtet. Det er den traditionelle måde, computere virker på – ufleksibelt og noget helt andet end den virkelige verden. Hver opgave kræver, at programmet er skrevet med henblik på netop den specifikke opgave.
Maskinlæring har til formål at lave et program, der efterligner menneskets hjerne – den er ikke en regnemaskine.

I stedet for at prøve at programmere for enhver eventualitet, enhver opgave og enhver form for data laver man en maskine, der tænker mere som et menneske. Her bevæger vi os ind på området for neurale netværk – et system, der er udviklet til at efterlige den flydende måde, hvorpå menneskets hjerne danner og forandrer sine interne forbindelser, mens den tager ved lære.

Det lyder alt sammen vidunderligt moderne og nyopfundet, men det er det faktisk ikke. Ligesom mange andre aspekter af programmering er det faktisk slet ikke så nyt. Den praktiske udnyttelse af maskiner har længe haltet bagefter ideerne. De første genkendelige computeralgoritmer blev skrevet omkring 1837 på et tidspunkt, hvor hardware var en ufærdig masse af tandhjul og løftestænger.

Se også:  Uberegnelig maskinintelligens på gale veje

Maskinlæring er ikke helt så gammel; ideen bliver som regel tilskrevet Arthur Samuel, der lancerede begrebet “maskinlæring” i 1959. Han var med til at skrive et damspillende program, der tog ved lære af sine fejltagelser. Dets rødder rækker dog endnu dybere. I 1943 beskrev neurofysiologen Warren McCulloch og matematikeren Walter Pitts, hvordan et neuralt netværk fungerer, og de lavede en model, der brugte elektriske kredsløb. I 1949 gav psykologen Donald Hebb os Hebbs lov: “Nerveceller, der arbejder sammen, forbinder sig med hinanden”, og den er afgørende for den måde, hvorpå interne forbindelser bliver forstærket gennem læring.

Fremskridtene kom langsomt, hvilket navnlig skyldtes den daværende hardwares tekniske begrænsninger og manglen på vigtige algoritmer såsom tilbagepropagering (der bruges til at beregne vægt. Det vender vi tilbage til). På trods af årtiers forskning og teoretiseren skulle vi frem til 1990, før vi havde udbredte og anvendelige maskinlæringsprogrammer, og det var først i 2010, man kunne lave store neurale netværk, der fungerede.

Prøv det selv

Dette er Quickdraw fra Experiments with Google.

DeepDream http://deepdreamgenerator.com

Neurale netværk kan se alle mulige mønstre i billeder, ligesom vi kan se forskellige figurer i skyer. DeepDream bruger algoritmiske skikkelser til at bringe monstrene til live – levende og psykedelisk. Når et billede bliver bearbejdet talrige gange, sker der sære ting, idet hidtil usete mønstre bliver uddraget. Bizart.

Mitsuku http://pandorabots.com/mitsuku

Denne chatbot har tre gange modtaget Loebner Prize Turing Test. Hun kan chatte på en række platforme, herunder Messenger, Twitch og Telegram, eller blot almindelig webchat. Det er sjovt et stykke tid, men man skal ikke vige langt fra emnet, før hun bliver forvirret. Microsoft CaptionBot www.captionbot.ai Upload et billede, så skriver denne bot en billedtekst for dig. Den har eksisteret i nogen tid, og den burde have haft god tid til træning. Den er dog stadig kun gennemsnitlig – det er ikke særlig svært at lokke den på glatis. Når man kører den, fører dens manglende præcision og komiske gætterier til et væld af practical jokes.

Image-to-image http://affinelayer.com/pixsrv/

Her bliver dine primitive tegninger af katte, bygninger, sko eller håndtasker udsat for en trænet maskinlæring-engine, der på baggrund af dem genererer kunstige fotografiske billeder. De kan rangere fra klamme til ret gode, navnlig bygningerne. Jo bedre din tegning er, desto bedre bliver resultatet.

Experiments with Google http://experiments. withgoogle.com

Dette site omfatter masser af interaktive maskinlæring-eksperimenter, som er blevet samlet af Googles ingeniører i årenes løb. Der er data, som er kortlagt på nye måder; tricks med billeder; håndskrift; tekst; lyde og meget mere.

TensorFire http://tenso.rs/demos/ fast-neural-style/

Upload et billede til dette site, så omdanner et neuralt netværk det til et kunstværk – eller rettere et interessant stiliseret billede ud fra et udvalg af forskellige metoder. Resultaterne bliver genereret forbavsende hurtigt, og de kan faktisk se vældig godt ud.

Se også:  Fokus: Maskinlæring

TensorFlow Playground http://playground. tensorflow.org

Et simuleret neuralt netværk på en browserside. Kast et hurtigt blik på det, hvis du vil se, hvor kompliceret maskinlæring er på trods af den relativt enkle underliggende teori. Der er endda tale om et lille og simpelt netværk. Advarsel: indeholder matematik.

Et neuralt netværk består af et sæt af input- og outputenheder. Mellem dem er der et net af kunstige neuroner, også kaldet noder. De er arrangeret i lag, og outputtet fra ét lag bliver leveret videre til det næste. Forbindelserne får tildelt en vægt, en grad af indflydelse, der ændrer sig i takt med, at netværket lærer. Hver node bliver fodret med data, foretager en handling og sender resultatet videre i overensstemmelse med vægten.

Et neuralt netværk kræver undervisning (bevares, ikke dem alle, men det kommer vi senere ind på). En udbredt brug er mønstergenkendelse i billeder. Hvis man for eksempel udsætter sit netværk for et billede, der bærer titlen “indeholder kat”, kender netværket det ønskede output, og konfigurationen af noden er derfor enkel. Så dynger man flere billeder på: sorte katte, røde katte, løbende katte, sovende katte, beskårede billeder og billeder uden katte.

Nvidia har trænet dette deep learning-system til reduktion af billedstøj med 50.000 billeder. Det mest imponerende er, at systemet blev trænet ved hjælp af fejlbehæftede billeder.

Hver gang skal forbindelsens vægt justeres, således at man til stadighed får det korrekte output – ikke kun for det aktuelle billede, men også for alle de foregående. I takt med at netværket lærer, bliver hver forbindelses vægt etableret mellem noderne.

Nu opstår der et system af mønstergenkendelse i netværket – det lærer en kats konturer, dens øjnes og ørers placering og så videre. Til sidst kan man udsætte netværket for et foto uden at afsløre det korrekte output, og systemet vil korrekt se – eller ikke se – en kat. Dette er klassificeringsmodellen; den forsøger at forudsige et eller flere resultater. Regressionsmodellen fungerer tilsvarende, men outputtet er en kontinuerlig variabel, for eksempel et antal kroner eller et flydende komma-tal.

Magien ved et neuralt netværk består i, at den interne proces er skjult. Man har måske selv lavet det, men når det er blevet trænet i at løse en opgave, ved man faktisk ikke, hvad vægten er for hver node. Det bruger måske faconen på en kats øje til at identificere den, eller også gør det noget andet. Man kan ikke nøjagtig vide, hvordan det opnår sine resultater, og her er vi langt fra den fikserede logik i et traditionelt program.

Der er en indlysende ulempe: Det er fejlbarligt. Der er en vis grad af nøjagtighed, og man har aldrig 100 procents garanti. Det er usædvanligt for et computerprogram, hvor outputsvipsere bliver betragtet som programfejl – fejl i koden, som kan afhjælpes. Et neuralt netværk er mere menneskeligt og har derfor også fået vores evne til at fejle. Det har ikke den store betydning, når vi tagger billeder af katte på Facebook, men det er noget, man skal tage i betragtning, når man udvikler et system til en førerløs bil.

Denne lille fugl blev genereret af et Microsoft-forskningsprojekt ved navn Drawing Bot.
Billedet blev lavet ud fra en billedtekst: “Denne fugl er rød og hvid og har et meget kort næb”.

Del denne