Alan T. Norman
Machinaal Leren in Actie

Machinaal leren in actie

Een primer voor de Leek

Alan T. Norman

Vertaler: Zaim Mohamed

Copyright © Alan T. Norman 2018. Alle rechten voorbehouden.

Geen enkel deel van deze publicatie mag worden gereproduceerd, gedistribueerd of verzonden in welke vorm of op welke manier dan ook, inclusief fotokopiëren, opnemen of andere elektronische of mechanische methoden, of door een systeem voor het opslaan en ophalen van informatie zonder de voorafgaande schriftelijke toestemming van de uitgever, behalve in het geval van zeer korte citaten die opgenomen zijn in kritische recensies en bepaalde andere niet-commerciële toepassingen die door het auteursrecht toegestaan zijn.

Waarom ik dit boek geschreven heb

Welkom in de wereld van machinaal leren!

Kunstmatige intelligentie is klaar om de loop van de menselijke geschiedenis te veranderen, misschien wel meer dan welke technologie dan ook. Een groot deel van die revolutie is machinaal leren.

Machinaal leren is de wetenschap van het leren van computers om voorspellingen op basis van gegevenste te doen. Op een basisniveau houdt machinaal leren in dat u een computer een set gegevens geeft en deze om een voorspelling te doen vraagt. Al vroeg krijgt de computer veel verkeerde voorspellingen. In de loop van duizenden voorspellingen zal de computer zijn algoritme echter opnieuw aanpassen om betere voorspellingen te doen.

Dit type voorspellend computergebruik was voorheen onmogelijk. Computers konden eenvoudigweg niet genoeg gegevens opslaan of deze snel genoeg verwerken om effectief te leren. Nu, elk jaar, worden computers in rap tempo slimmer. Vooruitgang in gegevensopslag en verwerkingskracht drijven deze trend naar slimmere machines. Het resultaat is dat computers tegenwoordig dingen doen die tien of twee jaar geleden ondenkbaar waren.

Machinaal leren heeft al invloed op uw dagelijkse leven. Amazon gebruikt machinaal leren om te voorspellen welke producten u wilt kopen. Gmail gebruikt het om spamberichten uit je inbox te filteren. Je filmaanbevelingen op Netflix zijn op machinaal leren algoritmen gebaseerd.

De invloed van machinaal leren houdt hier echter niet op. Algoritmen voor machinaal leren doen voorspellingen in allerlei bedrijfstakken, van landbouw tot gezondheidszorg. Bovendien zullen de gevolgen ervan elk jaar in nieuwe industrieën en op manieren voelbaar zijn. Naarmate deze nieuwe toepassingen van machinaal leren opduiken, zullen we ze geleidelijk als onderdeel van het normale leven accepteren. Niettemin is deze nieuwe afhankelijkheid van intelligente machines een keerpunt in de geschiedenis van de technologie, en de trend versnelt alleen maar.

In de toekomst zullen machinaal leren en kunstmatige intelligentie over het algemeen de automatisering van veel taken die mensen tegenwoordig uitvoeren sturen. Zelfrijdende auto's vertrouwen op machinaal leren voor beeldherkenning en ze zullen in toenemende mate deel van het vervoer uitmaken, net als zelfrijdende vrachtwagens en andere voertuigen om goederen te vervoeren. Een groot deel van de landbouw en productie is nu geautomatiseerd, zodat machinaal leren het voedsel dat we consumeren en goederen die we gebruiken levert. De trend naar automatisering versnelt alleen maar. Andere machinaal leren-toepassingen kunnen het dagelijkse werk van mensen fundamenteel veranderen naarmate machines bedrevener in het beheren van processen en het voltooien van kenniswerk worden.

Aangezien machinaal leren zo'n grote impact op het dagelijks leven zal hebben, is het belangrijk dat iedereen toegang tot informatie over hoe het werkt, heeft. Daarom heb ik dit boek geschreven. Het huidige landschap voor machinaal leren-informatie is opgesplitst.

Ten eerste, zijn er verklaringen voor het grote publiek die de concepten verzachten. Deze uitleggers zorgen ervoor dat machinaal leren lijkt op iets wat alleen een expert begrijpen kan.

Ten tweede, zijn er de technische documenten geschreven door experts voor experts. Ze sluiten het grote publiek met jargon en complexiteit uit. Het is duidelijk dat het schrijven en uitvoeren van een machinaal leren-algoritme een enorme technische prestatie is, en deze technische uitleg belangrijk is. Er zit echter een gat in de huidige literatuur over machinaal leren.

Hoe zit het met de leek die deze technologische revolutie echt wil begrijpen, niet per se om code te schrijven, maar om inzicht te krijgen in de veranderingen die om hem heen plaatsvinden? Het begrijpen van de kernconcepten van machinaal leren moet niet tot een technologische elite beperkt blijven. Deze veranderingen zijn van invloed op ons allemaal. Ze hebben ethische consequenties, en het is belangrijk dat het publiek alle voor- en nadelen van machinaal leren kent.

Daarom heb ik dit boek geschreven. Als dat interessant voor je klinkt, hoop ik dat je ervan geniet.

Dit boek gaat niet over het coderen van algoritmen voor machinaal leren

Als dat manifesto van een inleiding niet duidelijk genoeg was: dit is geen boek over codering. Het is niet bedoeld voor computer wetenschappers om te leren hoe ze algoritmen voor machinaal leren kunnen creëren.

Om te beginnen ben ik bij lange na niet gekwalificeerd om zo'n boek te schrijven. Mensen besteden jaren aan het leren van de fijne kneepjes van het schrijven van algoritmen en trainingsnetwerken. Er zijn hele PhD-programma's die de randen van het veld verkennen, op basis van lineaire algebra en voorspellende statistieken. Als je diep in de details van machinaal leren duikt en er genoeg van houdt om een doctoraat te behalen, zou je gemakkelijk $ 300.000 tot $ 600.000 kunnen verdienen door voor een groot technologiebedrijf te werken. Dat is hoe zeldzaam en waardevol deze vaardigheden zijn.

Ik heb die kwalificaties niet, en ik denk dat dat een goede zaak is. Als je dit boek opgepakt hebt, betekent dit dat je een beginner bent die geïnteresseerd is in machinaal leren. U bent waarschijnlijk niet technisch, of als u dat wel bent, bent u op zoek naar en basisboek om u op weg te helpen met de basisconcepten. Als technologieschrijver leer ik constant over technologieën. Ik ben een student machinaal leren, en ik herinner me hoe het is om een beginner te zijn. Ik kan helpen de basisconcepten uit te leggen op een manier die gemakkelijk te begrijpen is. Als je dit boek eenmaal gelezen hebt, heb je een goed begrip van de kernprincipes die het gemakkelijker maken om naar een geavanceerder boek te gaan als je meer wilt weten.

Dat gezegd hebbend, als je denkt dat je de kernprincipes al begrijpt of als je echt een boek wilt dat je de moeren en bouten van het schrijven en trainen van een machinaal leren-algoritme kan leren, dan is dit waarschijnlijk niet het boek voor u.

Een inleiding voor de Leek

Het echte doel van dit boek is om een gemakkelijk leesbare inleiding tot machinaal leren te zijn. Mijn doel is om een boek te schrijven dat iedereen zou kunnen lezen, terwijl ik trouw aan de principes van machinaal leren blijf en niet de begrippen verdoezelt. Ik heb vertrouwen in de intelligentie van mijn lezers, en ik denk niet dat een beginnersboek noodzakelijkerwijs complexiteit en nuance moet opofferen. Dat gezegd hebbend, dit is geen groot boek, en het is lang niet allesomvattend. Degenen die in het onderwerp geïnteresseerd zijn, zullen dieper willen ingaan met andere boeken en onderzoeken.

In dit boek kijken we naar de basisconcepten en soorten machinaal leren. We zullen onderzoeken hoe ze werken. Vervolgens onderzoeken we de problemen van datasets, schrijven en trainen een algoritme. Ten slotte zullen we enkele praktijkvoorbeelden voor machinaal leren bekijken en plaatsen waar machinaal leren gebruikt kan worden.

Nogmaals welkom bij machinaal leren. Laten we aan de slag gaan.

Hoofdstuk 1. Wat is machinaal leren?

Het doel van dit eerste hoofdstuk is om een kader voor de rest van wat je in dit boek gaat lezen te scheppen. Hier zullen we de basisconcepten die we in toekomstige hoofdstukken in meer detail zullen onderzoeken vastleggen. Dit boek bouwt zichzelf op voort, en dit hoofdstuk is de barebones.

Dat gezegd, de logische plaats om te beginnen is door te definiëren wat we bedoelen als we het over machinaal leren hebben.

Mijn simpele definitie luidt als volgt: door machinaal leren kan een computer van ervaring leren.

Dat klinkt misschien triviaal, maar als je die definitie opsplitst, heeft dat diepgaande implicaties. Vóór machinaal leren konden computers niet door ervaring verbeteren. In plaats daarvan, wat de code ook zei, is wat de computer deed.

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 leren maken, en ze hebben allemaal een bepaald niveau van culturele, geslacht, ras, opleiding of andere vooroordelen ingebouwd in de data sets die hen trainen.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.