Termen als 'machine learning', 'deep learning', 'neurale netwerken', 'kunstmatige intelligentie' of 'A.I.', 'data science' en meer zijn de sleutelwoorden van de laatste jaren in de technologie. Vanwege de vooruitgang in rekenkracht en een toename van de hoeveelheid beschikbare gegevens, kunnen technieken die al tientallen jaren bekend zijn nu in de praktijk worden gebracht.

Maar wat bedoelen ze eigenlijk?

Wiskundige vergelijkingen geven machines een basiskennis van iets dat we als mens hebben geleerd.

De meesten van ons zijn zich bewust van de verklaring van 10.000 voet in de trant van: "Het draait allemaal om het leren van computers om problemen voor ons op te lossen," maar veel mensen zijn waarschijnlijk niet op de hoogte van wat er feitelijk aan de hand is. De basisprincipes van machine learning zijn eenvoudig genoeg, intuïtief genoeg en, nog belangrijker, interessant genoeg om door iemand in relatief korte tijd te worden opgepikt.

Deze eenvoudige uitleg over hoe machine learning wordt gebruikt om een ​​computer te leren een probleem op te lossen, is bedoeld voor mensen zonder kennis van machine learning of voor mensen die helemaal opnieuw willen beginnen.

De best passende lijn

Velen van ons herinneren zich misschien iets van school dat de 'best passende lijn' wordt genoemd met betrekking tot gegevenspunten die in een grafiek zijn uitgezet. De best passende lijn is een lijn die zodanig door punten wordt getrokken dat deze weergeeft wat de gegevens weergeven. Het kan er zo uitzien:

Een lijn die het best past bij geplotte gegevenspunten. Alle afbeeldingen: Dan Harris

Dit concept is eigenlijk machine learning op zijn meest basale. In plaats van deze punten zelf te plotten en onze eigen best passende lijn te trekken, kunnen we de gegevens aan een computer geven.

We kunnen ons bijvoorbeeld voorstellen dat de gegevens in de bovenstaande grafiek de schoenmaat en -hoogte zijn voor een aantal mensen. Het punt linksonder staat voor een persoon korter dan de anderen met kleinere voeten, en het punt rechtsboven staat voor een persoon die groter is en grotere voeten heeft. Omdat schoenmaat en -hoogte niet volledig gecorreleerd zijn, passen niet alle punten bij de stelling dat 'langere mensen grotere voeten hebben', maar de lijn van de beste pasvorm suggereert dat het in het algemeen waar is.

Met de best passende lijn kunnen we gefundeerde schattingen maken over nieuwe gegevens. Stel dat je een schoen vindt. U kunt bepalen welke maat het is en vervolgens de grafiek raadplegen om een ​​gefundeerde schatting te maken van de lengte van de eigenaar van de schoen:

Een gok maken met behulp van de best passende lijn.

Simpel toch? In machine learning staat dit bekend als "lineaire regressie". Laat je niet afschrikken door de naam. Als je alles hierboven begrijpt, dan begrijp je lineaire regressie. Het is een eenvoudige machine-learningtechniek die wordt gebruikt om voorspellingen te doen over datasets met een lineaire vorm.

Het proces van lineaire regressie voor machine learning gaat als volgt:

  1. Verzamel gegevenspunten.
  2. Geef de gegevenspunten aan een programma dat daarop lineaire regressie kan toepassen om een ​​lijn te krijgen die het beste past.
  3. Gebruik de best passende regel om voorspellingen te doen over nieuwe gegevens.

Het wordt "machine learning" genoemd omdat de computer (of machine) heeft geleerd (of een wiskundige vergelijking heeft gemaakt: in dit geval één voor een regel) over hoe schoenmaat en -hoogte aan elkaar gerelateerd zijn. De wiskundige vergelijking geeft de machine een basiskennis van iets dat we als mens hebben geleerd: over het algemeen hebben langere mensen grotere voeten.

Andere scenario's waarin je lineaire regressie zou kunnen gebruiken, zijn de kosten van een huis raden op basis van het aantal kamers of het aantal tantes en ooms dat een kind heeft op basis van het aantal geschenken dat ze onder hun kerstboom hebben.

Het probleem met lineaire regressie

Lineaire regressie is geweldig wanneer de gegevens een beetje de vorm hebben van een lijn zoals in het bovenstaande voorbeeld. Maar hoe goed leert het over de vormen van gegevenssets die er niet uitzien als lijnen? Misschien zien de gegevens er ongeveer zo uit:

Gegevenspunten die niet echt een lineaire vorm hebben.

Het toevoegen van een lijn die het beste bij deze gegevens past, kan er zo uitzien:

Niet-lineaire gegevenspunten met een best passende lijn.

De best passende lijn is goed geschikt om de gegevens te matchen, maar het lijkt erop dat het veel beter kan. Omdat de vorm van de gegevens niet helemaal een rechte lijn is, past de lijn met de best passende lijn niet goed bij de gegevens. Dit is een probleem bij machinaal leren, ook wel 'underfitting' genoemd: de best passende lijn past niet echt bij de gegevens. Maar als we de lijn wijzigen die het beste past om te worden gebogen, kan dit beter werken.

Niet-lineaire gegevenspunten met een gebogen beste lijn.

We kunnen ons gemakkelijker voorstellen om deze curve te gebruiken om nauwkeurige, weloverwogen gissingen te maken op dezelfde manier als we deden met een rechte lijn van de beste pasvorm. Dit is een eenvoudige uitbreiding van lineaire regressie, ook wel 'polynomiale regressie' genoemd. Nogmaals, laat je niet afschrikken door de naam. Als u begrijpt waarom gebogen lijnen nuttiger kunnen zijn dan rechte lijnen bij het uitwerken van de vorm van een gegevensset, dan begrijpt u hoe polynoomregressie nuttig is.

Nu we een model kunnen maken, dat wil zeggen, een best passende lijn of curve voor een set gegevenspunten kunnen vinden voor gegevens met een rechte of gebogen vorm, zijn we klaar, toch? Niet eens in de buurt. Maar we kunnen op deze concepten voortbouwen.

De nauwkeurigheid van een model kiezen

Het probleem met polynoomregressie is dat we moeten beslissen hoeveel flexibiliteit we het geven voordat we het gebruiken, wat lastig kan zijn. Laten we terugkeren naar onze eerste set gegevens:

De lineaire reeks gegevenspunten.

We gebruikten eerder lineaire regressie om een ​​rechte lijn door deze gegevenspunten te plaatsen. Maar in plaats daarvan hadden we polynoomregressie kunnen gebruiken om een ​​best passende curve door de gegevens te halen die beter zou werken dan een rechte lijn. Het ziet er ongeveer zo uit:

Lineaire gegevensset met een kubische best-fit curve.

Een ding over polynoomregressie is dat we het precies kunnen vertellen hoe curvy we de best passende curve willen zijn. Hoe krommer het is, hoe meer flexibiliteit het heeft bij het beschrijven van de dataset. De best passende curve hierboven is vrij eenvoudig, maar we hadden verder kunnen gaan en een best passende curve zoals deze hebben gevonden:

Lineaire dataset met een best passende curve.

Of we hadden de best passende lijn voor iets dergelijks nog boeiender kunnen maken:

Lineaire gegevensset met een sextische best-fit curve.

Elk van de best passende curven hierboven lijkt de gegevensset beter en beter te beschrijven, maar er voelt iets een beetje verkeerd, vooral in het laatste voorbeeld. Door de polynoomregressie veel flexibiliteit te geven bij het bepalen van de kromming van de best passende curve, heeft het te hard geprobeerd om direct door veel van de gegevenspunten te gaan. Het resultaat is een curve die minder nuttig lijkt om te voorspellen dan een rechte lijn die het beste past.

Als we bijvoorbeeld het voorbeeld van de schoenmaat en -hoogte opnieuw toepassen, kunnen we door enkele gissingen aan de grafiek toe te voegen zien dat de zeer bochtige best-fit curve dezelfde hoogte geeft voor twee verschillende schoenmaten:

Een best passende curve die de gegevens overwerkt.

Dit probleem bij machine learning wordt "overfitting" genoemd en is het tegenovergestelde van underfitting. Het betekent dat de best passende curve die we hebben gemaakt niet erg goed generaliseert. Het doet geweldig werk met het matchen van de gegevens die we hebben, maar het helpt niet om verstandige schattingen te maken voor nieuwe gegevens. Een van de belangrijkste aandachtspunten bij machine learning is het vinden van een best passende lijn of curve die net curvy genoeg is om de algemene vorm van een gegevensset na te bootsen, maar niet zo curvy is dat deze niet kan worden gegeneraliseerd om goede gissingen te kunnen maken over nieuwe gegevenspunten.

Dit is waar polynoomregressie omvalt. We moeten polynoomregressie expliciet vertellen hoe curvy we willen dat de best passende curve is voordat we deze gebruiken, en dat is niet gemakkelijk om te beslissen, vooral als de gegevens ingewikkelder zijn.

In de voorbeelden tot nu toe hadden onze gegevenspunten slechts twee dimensies - zoals een waarde voor schoenmaat en een andere voor hoogte - wat betekent dat we ze in tweedimensionale grafieken hebben kunnen plotten. Daarbij is het vrij eenvoudig om de algemene vorm van de gegevens te zien. Maar dit is niet vaak het geval bij problemen met machine learning die meer dan twee dimensies hebben. En als we niet weten welke vorm de gegevens hebben, kunnen we polynoomregressie niet echt vertellen hoe curvy een best passende lijn moet maken.

Met een beetje extra moeite kunnen neurale netwerken ook worden gebruikt om ja / nee-vragen over de gegevens te beantwoorden in plaats van terugkerende nummers.

Een optie is om polynoomregressie vaak te proberen met verschillende niveaus van flexibiliteit en te kijken welke het beste werkt. Maar wat we echt nodig hebben, is een techniek voor machinaal leren die de flexibiliteit heeft om zo curvy te zijn als het moet zijn, maar ook de kromming beperkt om goed te kunnen doen in het generaliseren van nieuwe gegevens.

Dit flexibiliteitsprobleem is wanneer gegevenswetenschappers over het algemeen van lineaire en polynomiale regressie overstappen naar een neuraal netwerk. Op zichzelf lijkt een neuraal netwerk sterk op polynoomregressie doordat het in staat is om datasets te leren die zeer bochtige vormen hebben. Ze lossen het probleem van overfitting zelf niet op, maar in combinatie met een techniek die regularisatie wordt genoemd, komt alles goed.

De implementatiedetails van hoe neurale netwerken en regularisatie werken, zijn niet echt belangrijk voor het begrijpen van de basisprincipes van machine learning. De belangrijkste dingen om te onthouden zijn dat neurale netwerken erg goed zijn in het leren van de vormen van gecompliceerde gegevensverzamelingen - meer nog dan lineaire of polynomiale regressie - en dat regularisatie helpt voorkomen dat het neurale netwerk de gegevens overfitting.

Computers vragen laten beantwoorden

Voor de tot nu toe behandelde technieken - lineaire regressie, polynoomregressie en neurale netwerken - hebben we alleen gekeken naar hoe we computers kunnen trainen om ons een getal te geven, afhankelijk van de gegevens die we het geven. Het schoenmaat- en hoogtemodel geeft ons een hoogtegetal wanneer we het een schoenmaatgetal geven; op dezelfde manier geeft het model voor huiskosten volgens het aantal kamers ons een kostennummer wanneer we het een kamernummer geven.

Maar een nummeruitvoer is niet altijd wat we willen. Soms willen we in plaats daarvan een model voor machinaal leren om een ​​vraag te beantwoorden. Als u bijvoorbeeld uw huis verkoopt, bent u misschien niet alleen geïnteresseerd in een machine die uitwerkt hoeveel uw huis waard is, maar wilt u misschien ook weten of het huis binnen zes weken wordt verkocht.

Het goede nieuws is dat er technieken voor machinaal leren beschikbaar zijn - vergelijkbaar met degene die we al hebben gezien - die een specifieke vraag beantwoorden in plaats van een nummer te geven. Een machine-learning model kan worden opgezet om een ​​ja / nee-antwoord te geven op de vraag binnen zes weken wanneer we enkele basisinvoergegevens leveren, zoals het aantal kamers, de kosten en de vierkante meters. Het is duidelijk dat het nooit een perfect model zou kunnen zijn, omdat de huizenmarkt geen exacte regels volgt, maar modellen voor machinaal leren worden gebruikt om antwoorden op dit soort vragen te geven met een hoge mate van nauwkeurigheid (afhankelijk van de kwaliteit van de gegevens).

Voor lineaire regressie zou het betrokken analogon een lineaire vorm van logistieke regressie zijn. (Nogmaals, laat je niet afschrikken door de terminologie. De onderliggende methoden zijn eigenlijk heel intuïtief.) Het kan vragen beantwoorden als "Is dit e-mail spam?" Of "Zal het morgen regenen?" Beide methoden - lineaire en logistieke regressie - zou een best passende lijn berekenen, maar ze verschillen in hoe ze die lijn gebruiken. Ter herinnering, hier is het lineaire regressiemodel dat we hebben gebruikt voor de gegevensset om een ​​ander getal voor ons te voorspellen:

Logistieke regressie werkt op dezelfde manier, maar vindt een best passende regel die de gegevens in twee groepen scheidt. Deze lijn kan vervolgens worden gebruikt om te voorspellen of een nieuw gegevenspunt in de ene groep of de andere ligt, afhankelijk van aan welke kant van de lijn het zich bevindt.

Lineair logistiek regressiemodel voor spamfiltering.

Net als bij lineaire regressie, kan logistieke regressie worden uitgebreid met een curvy gevoerd polynoommodel dat meer flexibiliteit heeft bij het aanpassen van de vorm van de gegevens. Met een beetje extra moeite kunnen neurale netwerken ook worden gebruikt om ja / nee-vragen over de gegevens te beantwoorden in plaats van terugkerende nummers.

Als we vragen willen beantwoorden die ingewikkelder zijn dan vragen die op zoek zijn naar ja / nee-antwoorden, kunnen we een techniek gebruiken die bekend staat als multinomiale logistieke regressie, of we kunnen neurale netwerken aanpassen om ook deze gevallen te kunnen behandelen. Modellen die op deze manier zijn gemaakt, kunnen een vraag beantwoorden als "Wordt het morgen regenachtig, zonnig of sneeuwachtig?" Het gedeelte "Multinomiaal" betekent gewoon dat het antwoord een van de vele opties kan zijn. In het voorbeeld zijn de drie mogelijke antwoorden regenachtig, zonnig of sneeuwachtig.

Deel twee in deze machine learning-serie is nu beschikbaar en is hier te vinden:

Als je dit artikel en zijn formaat leuk vindt, wil je misschien mijn serie bekijken ...