Ralf Herbrich, directeur van Machine Learning bij Amazon, begon met programmeren toen hij elf jaar oud was, met een ZX 81. Hij studeerde informatica en richtte zich aanvankelijk op kunstmatige intelligentie. Later richtte hij zich op machine learning. We spreken met hem over ML en Amazon.

Wat is de definitie van Machine Learning (ML)?

"Er zijn verschillende scholen in het denken over machine learning systemen, maar wat ze allemaal gemeen hebben, is dat machine learning een verzameling van algoritmen is, die voorspellingen doet over de toekomst op basis van gegevens die in het verleden zijn verzameld. Of je nu hoort bij de neurale netwerk leerschool of de Bayesiaanse school van de expert systemen, dit geldt voor iedereen. Er zijn verschillen waar het gaat om het wiskundige datamodel en de voorspelfuncties en de optimalisatie-algoritmen die worden gebruikt als resultaat van dat wiskundige model."

Als ontwikkelaar moet je schipperen tussen mogelijkheden, tijd en eisen van de business. Bekijk de special over Development in de Cloud en geef je mening!
Wanneer ben je begonnen met ML?

"Ik begon in 1995 AI te studeren, maar na de AI-winter lag de nadruk op onderzoek in de machine learning. (AI-winter: tussen 1974-1980 keerde AI terug naar een toestand van verminderde investeringen en interesse, red). Tussen 1999 en 2003 werkte ik aan de theorie van machine learning waarna ik op het gebied van Bayesian machine learning actief was. AI kreeg in 2012 weer momentum en daarmee begon de tweede bloeiperiode van AI. Je weet wel, in de toegepaste machine learning heb je twee ingrediënten die ervoor zorgen dat de methoden nu zo goed werken: enorme hoeveelheid berekeningen om voorspellende functies te berekenen, en enorme hoeveelheden data-gegevens om die voorspellende functies uit af te leiden (leren). In het midden van de jaren negentig hadden we noch voldoende rekenkracht, noch voldoende gegevens. Vandaag hebben we veel meer sensoren om de gegevens die zinvol zijn voor menselijke interactie met machines te verzamelen en we hebben de rekenkracht in de cloud. Nu beginnen de algoritmen die bijna twintig jaar geleden werden uitgevonden echt van betekenis te worden voor de maatschappij.

"We zitten in een tijdperk waar een individu rekenkracht en opslag in de cloud kan huren, waar je voorheen een heel gebouw voor nodig had. En je kunt naar behoefte zoveel schalen als nodig is voor een taak. Of het nu machine learning, gegevensopslag of gegevensanalyse betreft, je kunt het echt elastisch beschikbaar maken met behulp van Amazon Web Services. De kracht van cloud-diensten in het algemeen en Amazon Web Services in het bijzonder, is het feit dat een persoon daadwerkelijk pieken in de vraag kan volgen. Dit is een van de grote enablers voor ML vandaag en in de toekomst."

Twee verschillende stadia

"Bij Machine Learning, heb je twee verschillende fasen: de eerste fase is de training, waarbij een klant een data-opslag-systeem heeft en nu een algoritme wil hebben om de patronen te vinden in de gegevens. Training betekent het aanpassen van de parameters van de voorspellende functie aan de datamodellen. Zonder de cloud is het nauwelijks mogelijk om dit op een economische manier te doen. In de tweede fase, die we voorspelling (prediction) noemen, is er de voortdurende behoefte aan rekencapaciteit bij het toepassen van de voorspellende functie ten behoeve van toekomstige prognoses."

Dus Amazon verkeerde in een goede uitgangspositie om machine learning aan te bieden.

"Eigenlijk gebruikt Amazon al sinds vele jaren op grote schaal ML-algoritmes voor search, vraagvoorspelling en aanbevelingen. Om een voorbeeld te geven: door het voorspellen van de vraag naar producten zijn we in staat om meer keuze en lagere prijzen aan te bieden aan onze klanten. De patronen die door de ML-systemen gedetecteerd worden, kunnen namelijk door onze inventarismanagementsystemen benut worden. Doordat we vroeg begonnen zijn met machine learning, leerden we ook de obstakels kennen bij het gebruik van dergelijke systemen voor ontwikkelaars. We hebben veel geleerd van de lessen in deze jaren. Toen we Amazon Machine Learning (AML) bouwden, de ML-service op Amazon Web Services (AWS), verwijderden we juist die obstakels, omdat we weten dat ze een barrière vormen voor de toegang voor softwareontwikkelaars. We wilden het niet moeilijker maken.

Volgende pagina: Obstakels bij machine learning Probeer het zelf en maak gratis een account aan op AWS

"Eén van de obstakels was dat de optimalisatie algoritme-instellingen vervelend waren, dat je er vakkennis voor nodig had en dat het te lang duurde om ze goed te zetten. We verwijderen de behoefte aan de optimalisatie van de algoritme-instelling van Amazon Machine Learning. Het tweede obstakel was brede integratie met gegevensbronnen: ML kan niet bestaan zonder gegevens. AWS biedt klanten een van de meest uitgebreide dataopslagsystemen waarmee ze op een veilige manier hun eigen data kunnen opslaan en beheren. We geven niet alleen de tools om gestructureerde gegevens in te zien, zoals met Amazon Redshift of een tool voor het real-time streaming van data zoals Amazon Kinesis maar ook elastische, schaalbare en veilige opslag zoals Amazon S3. Wanneer klanten hun data al in de AWS cloud hebben, maakt dat Machine Learning op AWS heel eenvoudig."

Beelden en emoties

"Een mooi voorbeeld van een AWS-klant die gebruik maakt van ML voor het verbeteren van de ervaring van hun klanten is een startup hier in Berlijn, genaamd EyeEm. Die traint modellen om emotie van beelden te voorspellen. In hun systeem, trainen ze de adaptiesterkte in gelaagde processing units, zogenaamde neurale netwerken. Het trainen van deze adaptiesterkte op miljoenen beelden kan tot een week duren, zelfs op moderne GPU's die zijn geoptimaliseerd voor matrixvermenigvuldiging. De basisoperatie die je uitvoert bij het trainen van deze netwerken is namelijk een matrixvermenigvuldiging. Het resultaat is natuurlijk bijzonder indrukwekkend. Als je eenmaal je model getraind hebt, kun je één ​​enkele afbeelding uploaden en door het neurale netwerk voeren en je krijgt als uitkomst alle emoties die mensen ermee zouden associëren."

Forward and back computation

"De eerste fase wordt van de afbeelding naar de emotie-vector berekend door de intensiteiten van elke beeld pixel te vermenigvuldigen met gewichten om de emotie-vector te berekenen. Er wordt eerst voorwaarts gerekend, en vervolgens vergelijkt het algoritme de voorspelde emoties met de werkelijke emoties waarmee de afbeelding gelabeld is. Als er een verschil is zal het verschil teruggepropagereerd worden en veranderingen aanbrengen met betrekking tot het gewicht dat de grootste bijdrage had aan de voorwaartse stap. Dit algoritme is bekend als back propagation. Dat is het algoritme dat leert. Het itereren van deze stappen in voorwaartse en achterwaartse richting vormt een zeer zware belasting voor de processoren. Het is een enorme belasting omdat je de foto's weergeeft als een lange vector, een lange reeks van getallen in een andere array van getallen. Het is een matrix-vermenigvuldiging en GPU's zijn daarvoor geoptimaliseerd. Je kunt het zien als het aantal pixels maal het aantal staten. Als je 1.000.000 pixels en 1.000 staten hebt, word je meteen geconfronteerd met 10^10 berekeningen (tien miljard) voor één enkel beeld. Als je dit uitvoert met meer dan een miljoen foto's, dan is het 10^16 (dat is ongeveer een biljoen)."

Moet je een expert zijn om met ML te werken?

"We hebben bij Amazon de Amazon Machine Learning service zo ontworpen dat klanten juist geen ML-experts hoeven te zijn. Ze hoeven bijvoorbeeld niet te weten wat het verschil is tussen een online Bayes punt machine algoritme of een online logistic regression. Als klant bied je het gegevensbestand aan de service aan, geeft aan wat de inhoud van elke kolom is, alsmede welke kolom de gebruikersinteractie bevat die de service moet voorspellen. Vanaf dat moment kiest de service automatisch de juiste algoritmen, de combinaties van de invoergegevens, en kiest automatisch de juiste optimalisatie-parameters om te trainen. Klanten kennen hun data, ze hoeven niet de wiskundige details van het leeralgoritme te kennen. Het is vergelijkbaar met databasemanagement: als klant hoef je niet te weten hoe de relationele database elk veld in het bestandssysteem van het besturingssysteem schrijft om het efficiënt te gebruiken; je vraagt gewoon je data op in via een eenvoudige querytaal als SQL."

Volgende pagina: Wat zijn de meest voorkomende fouten bij machine learing? Probeer het zelf en maak gratis een account aan op AWS Wat zijn de meest voorkomende fouten bij machine learning?

"Een veelgemaakte fout is dat je binnen een applicatie de betekenis van een veld gaat veranderen. Je hebt bijvoorbeeld een veld dat categorietype heet, maar na verloop van tijd na een reorganisatie verander je de productcatalogus en begin je dezelfde identifiers te hergebruiken, omdat de applicatielogica veranderd is. De ML-service kan dat niet weten, en begint onnauwkeurige voorspellingen te doen.

"Een andere is het gebruiken van gegevens die niet geoptimaliseerd zijn voor het maken van voorspellingen. Als je met behulp van gegevens wil voorspellen hoe groot de kans de klant terug zal komen, zal een gegeven als de browserbreedte waarschijnlijk niet erg voorspellend zijn. Je kunt geen magie van een ML-algoritme verwachten. Als je onzorgvuldig bent en je je gewoon nooit afvraagt wat de betekenis van een veld is, het naar het algoritme slingert en hoopt op het beste, dan is het niet erg waarschijnlijk dat je een nauwkeurige voorspelling krijgt. Je krijgt nog steeds voorspellingen, maar ze zijn niet nauwkeurig."

Waar staat ML over vijf of tien jaar vanaf nu?

"Ik vind het moeilijk om de toekomst te voorspellen, maar ik zie wel patronen. Gespecialiseerde hardware is echt iets dat een snellere iteratiecyclus mogelijk maakt maar is zelfs vandaag de dag nog duur. Een GPU kan enkele duizenden dollars kosten en als je die alleen maar voor in de trainingsfase nodig hebt, dan is het zeker veel economischer om er als service gebruik van te maken. De doorbraak moet wel van de hardware komen omdat dat snelle iteraties mogelijk maakt.

"Als je kijkt naar de algoritmes die momenteel op die hardware draaien, dan zijn die 20 tot 25 jaar oud. Ik zie die trend zich voortzetten, maar ik zie dat ook bij een tweede trend, die voor alle klanten erg belangrijk is, maar in het bijzonder voor cloud-klanten. ML is nu een gecentraliseerde dienst: data gaat van het apparaat naar de cloud. Ik denk dat we in de komende vijf jaar in staat zullen zijn werkmodellen niet alleen in de cloud te trainen, maar ook op het apparaat. In het Internet of Things, zullen apparaten genoeg rekenkracht hebben om het mogelijk te maken om voorspellingen te doen, zonder dat het nodig is dat kritieke delen van de gegevens daadwerkelijk ooit uw apparaten verlaten."

Wanneer we denken aan de uitspraak van Pedro Domingos, zal er ooit een machine learning algoritme zijn dat alle denkbare kennis uit data destilleren kan?

"We kunnen daar alleen achter komen als we het proberen en als we primitieve functies vinden die beschikbaar zijn voor een breder scala van mensen, maar domeindeskundigheid is nog steeds de grote differentiator in het vermogen van een systeem om te leren. Er is voor mij nog niet genoeg overtuigend bewijs dat een model leert om te leren, wat wij noemen zelfreferentieel leren. Leeralgoritmen worden bedacht door mensen.

"Ik durf te wedden dat we altijd domeinkennis nodig zullen hebben om betere voorspellingen te krijgen. Maar tien jaar geleden ML voorbehouden aan slechts een enkel bedrijf. Vandaag kun je het gewoon doen op de ML servers in de cloud. Net zoals databases beter schaalbaar en geavanceerder in hun indexering geworden zijn, zal ML dat ook worden. ML is al een gereedschap en zal dat steeds meer geworden."

Probeer het zelf en maak gratis een account aan op AWS