-

Hoe doen computers slimme dingen? Zo werkt machine learning

Verreweg het meest voorkomende gebruik van machine learning op dit moment bestaat uit toepassingen van supervised leren. Bij supervised leren leert een computer van voorbeelden. De voorbeelden bestaan altijd uit input en output. Kan de computer zo een makelaar overbodig maken?

Om de zin van de onzin te scheiden op het gebied van machine learning, data science en AI – de naam doet er eigenlijk niet zoveel toe – maak ik serie van zes artikelen over ‘hoe computers slimme dingen doen’. Het eerste artikel liet zien hoe computers, door middel van een goed idee, een (wiskundige) formalisatie, en daarna optimalisatie, een leuke film voor vanavond kunnen aanraden. Maar nu eerst de tweede stap: supervised leren.

Stap 2: Hoe leren computers van voorbeelden?

Verreweg het meest voorkomende gebruik van machine learning op dit moment bestaat uit toepassingen van supervised leren. Bij supervised leren leert een computer van voorbeelden. De voorbeelden bestaan altijd uit input en output: als een computer voldoende input-output paren heeft gezien, kan zij leren op basis van een nieuwe input een output te voorspellen. Dat klinkt abstract, maar er zijn legio voorbeelden:

  • Het herkennen van letters (de beoogde output) op basis van geschreven tekst (de input).
  • Het herkennen van personen (de output) op basis van foto’s van gezichten (de input).
  • Het voorspellen van de levensduur van een machine (de output) op basis van de eigenschappen van de machine zoals de leeftijd, de gebruiksfrequentie en het aantal onderhoudsbeurten (gezamenlijk de input).
  • Het voorspellen van de levensduur van een patiënt (output) op basis van zijn of haar huidige ziektebeeld, genetische opmaak, en gedrag (gezamenlijk de input).

En ga zo maar door. Er zijn verrassend veel ‘slimme taken’ die te beschrijven zijn als het leren van een relatie tussen input en output, en het is daarom goed om te beseffen hoe computers dit doen.

Om de manier waarop computers leren van voorbeelden tastbaar te maken bespreek ik een simpel voorbeeld: het leren van de prijs van een huis (de beoogde output) op basis van de grootte van een huis (de – erg simpele – input). Hieronder alvast een tabel met tien voorbeelden:

Dus, het eerste huis is 65 vierkante meter groot (de input), en kost 158.779 Euro (de output).

Net als bij het kiezen van een film begint het leren van voorbeelden met een goed idee. In dit geval is het niet lastig om een goed idee te bedenken wanneer we de voorbeelden visualiseren:

De visualisatie maakt direct duidelijk: Des te groter het huis, des te duurder. De relatie tussen de grootte van het huis en de prijs is dan ook voor te stellen als een stijgende lijn:

En dan komen we bij de kern van het idee: we kunnen zoeken naar een wiskundige relatie tussen input en output, in dit geval de rode lijn, die zo goed mogelijk de voorbeelden beschrijft. Een goed idee is echter niet genoeg, het idee moet nog geformaliseerd, en geoptimaliseerd worden. In dit geval zoeken we naar een formalisatie van een ‘lijn’, en van ‘zo goed mogelijk’. De eerste formalisatie is simpel: een rechte lijn is een wiskundige functie:

beoogde prijs = a + b* grootte

Iedere keuze van de zogenaamde parameters a en b geeft een andere lijn. De formalisatie van “zo goed mogelijk” is conceptueel ook niet heel lastig: we kunnen voor elke gegeven lijn, dus elke keuze van a en b, voor ieder voorbeeld, uitrekenen hoever de beoogde prijs (of voorspelde) prijs af ligt van de daadwerkelijke prijs: als ik a = 10000 en b = 2000 kies, dan is mijn voorspelde prijs voor een huis van 65 vierkante meter

10000 + 65*2000 = 140000 euro

Dat is redelijk dicht bij de werkelijke prijs van 158.799. Ik kan de afstand tussen de voorspelde prijs en de werkelijke prijs voor ieder voorbeeld uitrekenen en deze bij elkaar optellen: dit geeft een maat voor hoe goed mijn lijn is voor al mijn voorbeelden gezamenlijk.

Nadat we zowel de ‘lijn’ als ‘zo goed mogelijk’ wiskundig hebben gedefinieerd hoeven we alleen nog te optimaliseren: we kunnen telkens nieuwe keuzes van a en b proberen – dus telkens een nieuwe lijn – en kijken hoe goed de lijn is. Dit kunnen we blijven herhalen tot we de beste lijn hebben gevonden. In dit voorbeeld is de beste lijn de volgende lijn:

beoogde prijs = 17412 + 1294*grootte

Als we nu een nieuw huis zien, bijvoorbeeld eentje van honderd vierkante meter, dan voorspellen we dat dit huis 303.524 euro kost. Op deze manier kunnen we een computer leren om – enkel doormiddel van simpele input-output voorbeelden – een makelaar te vervangen.

De stap van dit voorbeeld naar andere toepassingen – zoals het herkennen van gezichten of het voorspellen van medische uitkomsten – lijkt groot, maar is conceptueel minimaal. Bij alle vormen van supervised leren beginnen we met de specificatie van een relatie tussen input en output: in ons voorbeeld een rechte lijn, in werkelijk interessante toepassingen vaak een veel complexere wiskundige functie. Abstract schrijven we:

beoogde output = f(input)

Daarna formaliseren we hoe goed de functie is: de afstand tot de werkelijke output in de voorbeelden wordt hiervoor veelvuldig gebruikt. En ten slotte ‘draaien we aan de knoppen’: door de parameters van de functie aan te passen – net zoals we in het voorbeeld hierboven a en b konden aanpassen – optimaliseren we onze oplossing totdat we de beste hebben gevonden. De verschillende vormen van supervised waar je wellicht van hebt gehoord, zoals neurale netwerken, regressie bomen, of random forest, zijn simpelweg andere keuzes van de gebruikte wiskundige functie.

Het bovenstaande voorbeeld geeft enigszins aan hoe computers kunnen leren van voorbeelden. En dit begrip stelt je direct in staat wat zin van onzin te scheiden: zo zijn neurale netwerken – zeer complexe functies — niet altijd beter dan simpele regressie modellen – het soort lijnen dat we in het voorbeeld bespraken. Dat ligt aan de beschikbare voorbeelden en aan de keuze van parameters.

Daarbij is het duidelijk dat de kwaliteit van de modellen direct afhankelijk is van de kwaliteit van de voorbeelden: de voorbeelden van huizenprijzen komen uit Nijmegen, en deze voorbeelden leveren een slechte voorspelling voor Amsterdam op. Ten slotte is het duidelijk dat de kwaliteit van een model nogal afhangt van de gebruikte input: we weten allemaal dat de grootte van een huis niet het enige is wat de prijs bepaalt, dus om echt een makelaar te vervangen zullen we veel meer input moeten meenemen, en veel meer voorbeelden moeten verzamelen. Maar, als we maar genoeg kwalitatief goede voorbeelden hebben, en in de input alles meenemen wat van belang is, dan kunnen computers prima input aan output linken.

Deel dit bericht

Plaats een reactie

Uw e-mailadres wordt niet op de site getoond