machinaal leren, in zijn eenvoudigste uitleg, houdt in dat een computer zijn reacties kan variëren en een terugkoppeling voor goede en slechte reacties moet introduceren. Dit betekent dat algoritmen voor machinaal leren fundamenteel verschillen van de computerprogramma's die hen zijn voorgegaan. Het verschil begrijpen tussen expliciet programmeren en algoritme-training is de eerste stap om te zien hoe machinaal leren de informatica fundamenteel verandert.
Expliciet programmeren versus algoritme-training
Op een paar recente uitzonderingen na, is bijna elk stukje software dat je in je leven gebruikt hebt expliciet geprogrammeerd. Dat betekent dat een mens een reeks regels geschreven heeft die de computer moet volgen. Alles, van het besturingssysteem van je computer tot internet, tot apps op je telefoon, heeft code die een mens geschreven heeft. Zonder dat mensen een computer een reeks regels geven om te handelen, zou de computer niets kunnen doen.
Expliciet programmeren is geweldig. Het is de ruggengraat van alles wat we momenteel met computers doen. Het is ideaal als u een computer nodig heeft om gegevens te beheren, een waarde te berekenen of relaties voor u bij te houden. Expliciet programmeren is erg krachtig, maar heeft een bottleneck: de mens.
Dit wordt problematisch als we complexe dingen met een computer willen doen, zoals hem vragen om een foto van een kat te herkennen. Als we expliciete programmering zouden gebruiken om een computer te leren waarnaar hij bij een kat moet zoeken, zouden we jaren besteden aan het schrijven van code voor elke onvoorziene gebeurtenis. Wat als u niet alle vier poten op de foto kunt zien? Wat als de kat een andere kleur heeft? Kon de computer een zwarte kat op een zwarte achtergrond of een witte kat in de sneeuw uitkiezen?
Dit zijn allemaal dingen die we als mensen als vanzelfsprekend beschouwen. Onze hersenen herkennen dingen snel en gemakkelijk in veel contexten. Computers zijn daar niet zo goed in, en er zijn miljoenen regels expliciete code voor nodig om een computer te vertellen hoe hij een kat moet identificeren. In feit is het misschien helemaal niet mogelijk om een computer expliciet te programmeren om katten 100% nauwkeurig te identificeren, omdat de context altijd kan veranderen en je code kan verknoeien.
Dit is waar algoritmen in het spel komen. Met expliciete programmering probeerden we de computer te vertellen wat een kat is en rekening te houden met elke onvoorziene gebeurtenis in onze code. Daarentegen stellen machinaal leren-algoritmen de computer in staat om te ontdekken wat een kat is.
Om te beginnen bevat het algoritme mogelijk enkele belangrijke functies. We kunnen de computer bijvoorbeeld vertellen om naar vier poten en een staart te zoeken. Vervolgens voeden we het algoritme veel afbeeldingen. Sommige van de afbeeldingen zijn katten, maar anderen kunnen honden, bomen of willekeurige afbeeldingen zijn. Als het algoritme een schatting maakt, versterken we de juiste schattingen en geven we negatieve evaluatie voor onjuiste schattingen.
Na verloop van tijd zal de computer het algoritme gebruiken om zijn eigen model te bouwen van waarnaar moet worden gezocht om een kat te identificeren. De componenten in het computermodel zijn misschien dingen waar we in eerste instantie niet eens aan dachten. Met meer versterking en duizenden afbeeldingen, zal het algoritme geleidelijk beter worden in het identificeren van katten. Het zal misschien nooit 100% nauwkeurigheid bereiken, maar het zal nauwkeurig genoeg zijn om een beeldlabel van een menselijke kat te vervangen en efficiënter te zijn.
Algoritmen zijn richtlijnen, maar het zijn geen expliciete regels. Ze zijn een nieuwe manier om een computer te vertellen hoe hij een taak moet aanpakken. Ze introduceren terugkoppeling die zichzelf corrigeren in de loop van honderden of duizenden proeven bij een taak.
Definities: kunstmatige intelligentie versus machinaal leren versus neurale netwerken
Dit boek gaat over machinaal leren, maar die term past binnen een grotere context. Omdat machinaal leren steeds populairder wordt, krijgt het veel berichtgeving. In die artikelen gebruiken journalisten de termen kunstmatige intelligentie, machinaal leren en neurale netwerken vaak door elkaar. Er zijn echter kleine verschillen tussen de drie termen.
Kunstmatige intelligentie is de oudste en breedste van de drie termen. Kunstmatige intelligentie, bedacht in het midden van de 20e eeuw, verwijst naar elk moment dat een machine zijn omgeving observeert en erop reageert. Kunstmatige intelligentie staat in contrast met natuurlijke intelligentie bij mens en dier. In de loop van de tijd is de reikwijdte van kunstmatige intelligentie echter veranderd. Tekenherkenning was bijvoorbeeld een grote uitdaging voor AI. Nu is het routine en wordt het niet langer beschouwd als onderdeel van AI. Terwijl we nieuwe toepassingen voor AI ontdekken, integreren we ze in ons referentiekader voor wat normaal is, en de reikwijdte van AI strekt zich uit tot wat het volgende nieuwe ding ook is.
Machinaal leren is een specifieke subset van AI. We hebben het in dit hoofdstuk al enige tijd besteed om het te definiëren, maar het verwijst naar het geven van een terugkoppeling aan een machine waardoor het van ervaring kan leren. Als term bestaat machinaal leren pas sinds de jaren tachtig. Pas, in de afgelopen 10-15 jaar, hadden we de verwerkings- en gegevensopslagkracht om machinaal leren echt op schaal te implementeren.
Neurale netwerken zijn een onderdeel van machinaal leren en zijn momenteel de populairste trend in de branche. Een neuraal netwerk bestaat uit vele knooppunten die samenwerken om een antwoord te produceren. Elk van de laagste knooppunten heeft een specifieke functie. Als u bijvoorbeeld naar een afbeelding kijkt, kunnen de knooppunten op laag niveau specifieke kleuren of lijnen identificeren. Latere knooppunten kunnen de lijnen in vormen groeperen, afstanden meten of zoeken naar kleurdichtheid. Elk van deze knooppunten wordt vervolgens op basis van hun impact op het uiteindelijke antwoord gewogen. In het begin zal het neurale netwerk veel fouten maken, maar in de loop van vele tests zal het de weging van elk knooppunt om beter te worden in het vinden van het juiste antwoord bijwerken.
Als u nu een artikel over AI leest, machinaal leren of neurale netwerken, begrijpt u het verschil. De sleutel is om te beseffen dat het subsets zijn. Neurale netwerken zijn slechts één type machinaal leren dat op zijn beurt slechts een onderdeel van kunstmatige intelligentie is.
Basisbegrippen
Machinaal leren kan in veel gevallen ingezet worden. Zolang er belangrijke gegevens zijn om te analyseren, kan machinaal leren helpen om er inzicht in te krijgen. Als zodanig is elk machinaal leren-project anders. Er zijn echter vijf kernonderdelen van elke machinaal leren-toepassing:
1. Het probleem
Machinaal leren is overal nuttig waar u patronen wilt herkennen en gedrag wilt voorspellen op basis van historische gegevens. Het herkennen van patronen kan van alles betekenen, van tekenherkenning tot voorspellend onderhoud tot het aanbevelen van producten aan klanten op basis van eerdere aankopen.
De computer begrijpt echter de gegevens of het probleem niet inherent. In plaats daarvan moet een datawetenschapper de computer met de juiste terugkoppeling leren waarnaar hij moet zoeken. Als de datawetenschapper het probleem niet goed definieert, levert zelfs het beste algoritme dat getraind is op de grootste dataset niet de gewenste resultaten op.
Het is duidelijk dat machinaal leren nog niet goed geschikt voor symbolisch redeneren op hoog niveau is. Een algoritme kan bijvoorbeeld een mand, kleurrijke eieren en een veld identificeren, maar het zou niet kunnen zeggen dat het een zoektocht naar paaseieren is, zoals de meeste mensen zouden doen.
Machinaal leren-projecten hebben doorgaans een zeer beperkt, specifiek probleem waarop ze een antwoord vinden. Een ander probleem vereist een nieuwe aanpak en mogelijk een ander algoritme.
2. De gegevens
Machinaal leren is mogelijk op schaal vanwege de hoeveelheid gegevens die we de afgelopen jaren zijn begonnen te verzamelen. Deze grote data-revolutie is de sleutel die tot complexe algoritmetraining geleid heeft. Gegevens vormen de kern van het afstemmen van een machinaal leren-algoritme om de juiste respons te geven.
Omdat data zo centraal bij machinaal leren staat, zijn de resultaten een directe weerspiegeling van de input. Als er een biased in de gegevens zit, zal het algoritme voor machinaal leren leren om vooringenomen te zijn. Voorspellers voor het aannemen van kandidaten, aanbevelingen voor gerechtelijke veroordelingen en medische diagnoses bijvoorbeeld allemaal gebruik van machinaal