Machine Learning Overzicht

In dit Blog wil ik bespreken welke soorten van Machine Learning systemen er tegenwoordig zijn. Met systemen bedoel ik dan niet zozeer welke applicaties of libraries er zijn, maar veel meer welke methodes van Machine Learning er zijn, wat de achterliggende concepten zijn en voor wat soort problemen of toepassingen ze het meest geschikt zijn. En wat is Machine Learning nu eigenlijk precies. Hoe heeft het zich in de tijd ontwikkeld, en hoe zijn we gekomen waar we nu zijn.

Categoriën

Er zijn veel verschillende types van Machine Learning systemen, en er zijn dus ook meerdere bruikbare categorie indelingen mogelijk:

  • Of ze al dan niet onder menselijke supervisie getraind worden.
  • Of ze in batch-mode getraind worden of on-the-fly telkens wanneer een nieuw trainings-voorbeeld beschikbaar komt.
  • De zogenaamde “classifiers” die proberen te voorspellen tot welke categorie een nieuw datapunt behoort (bv. het taggen van foto’s).
  • De zogenaamde “regressors” die een bepaalde waarde proberen te voorspellen (bv. het voorspellen van beurskoersen).
  • etc.

Om het nog niet te moeilijk te maken, we beginnen immers pas net, zou ik mij voor nu nog even willen beperken tot de categorie indeling van de wat traditionelere vormen van Machine Learning tegenover de recente state-of-the-art systemen als Deep Learning, wat grotendeels stoelt op het gebruik van zogenaamde Deep Neural Networks. Neurale netwerken die opgebouwd zijn uit veel met elkaar verbonden lagen van neuronen.

Generaliseren

Hoewel Machine Learning als onderdeel van “Big Data” nogal een gehypte term is bestaat het eigenlijk al een flinke tijd. Bij Machine Learning leren we een computer (een machine) om gegeven een bepaalde context zelfstandig bepaalde beslissingen te nemen. Al zolang als er computers bestaan werken wetenschappers aan het ontwikkelen en vervolmaken van systemen waarmee dit kan.

Computer-programma’s worden door de software-ontwikkelaar geschreven als een opeenvolging van commando’s die de computer achtereenvolgens moet uitvoeren om tot de oplossing te komen. Elke mogelijke tussenoplossing, en elke mogelijke variant van het “probleem” wordt vooraf onderkend en daar wordt in de loop van het programma rekening mee gehouden. Dit leidt tot vrij rigide systemen die maar weinig kunnen generaliseren. Een gemiddeld computer-programma is ontwikkeld om één bepaald probleem op te lossen, kan alleen input accepteren dat aan een vooraf bepaald format voldoet, en alles wat daar ook maar enigszins van afwijkt daar heeft het moeite mee.

Wat nu als we computers konden leren zelf na te denken? Zelf verbanden leggen in de data die zij aangeboden krijgen, zonder dat een programmeur aan hoeft te geven naar welke verbanden ze moeten zoeken? Dit is heel abstract wat Machine Learning beoogt te bereiken.

Leren

Leren is een tijdrovende aangelegenheid. Dat is bij mensen het geval, maar bij computers zelfs nog veel meer. Bij Machine Learning leren we computer door ze een grote hoeveelheid training-voorbeelden aan te bieden, en de computer vervolgens zelf de verbanden tussen de verschillende gegevens te laten vinden. Er zijn verschillende vormen van leren:

  • Supervised learning
  • Unsupervised learning
  • Semisupervised learning
  • Reinforcement learning

In een volgend blog bespreek ik deze verschillende vormen van leren, maar ik kan nu alvast verklappen dat bij alle vier grote hoeveelheden data nodig zijn. Dit kan variëren van duizenden trainings-voorbeelden voor de wat kleinere data-analyses tot honderdduizenden of zelfs miljoenen trainings-voorbeelden voor de echt grote data-analyses.

Er is overigens nog een andere vorm van leren en dat is het zogenaamde Transfer learning. Transfer learning is echter geen leer-methode zoals de andere vier, maar meer een methode om leer-resultaten van andere data-analyses rechtstreeks in de eigen data-analyse te kunnen gebruiken. Het voordeel hiervan kan zijn dat veel minder eigen data benodigd is en een veel kortere leertijd.

De benodigde resources in rekenkracht en opslag voor het verwerken van zulke grote hoeveelheden data is lange tijd het grote bottleneck geweest waardoor Machine Learning maar moeizaam van de grond kwam.

Cloud Computing

De opkomst van Cloud Computing heeft hier voor de grote omslag gezorgd. Met Cloud Computing kwamen grote hoeveelheden rekenkracht en opslag voor iedereen makkelijk toegankelijk tegen redelijke prijzen en zonder zelf grote investeringen te hoeven doen in grote hoeveelheden hardware. Pay-as-you-go is hier het concept, als klant betaal je alleen voor wat je daadwerkelijk verbruikt.

Traditional vs non-traditional Machine Learning

Traditional vs non-traditional Machine Learning is zeker geen officiële category indeling, maar desondanks wel relevant om een gevoel te krijgen welk soort Machine Learning systemen er zijn. Er zijn een groot aantal Machine Learning systemen zoals Linear Regression, Logistic Regression, Support Vector Machines, Decision Trees, en vele anderen, die alweer wat langer meegaan. De modellen die we met deze systemen bouwen zijn relatief eenvoudig en voor mensen relatief makkelijk te doorgronden. Deze systemen zou je kunnen beschouwen als de wat traditionelere Machine Learning systemen. Een meer recentere ontwikkeling is het ontstaan van Deep Learning. Deep Learning is gebaseerd op het gebruik van nearale netwerken, waarbij de term “Deep” verwijst naar het gebruik van een groot aantal zogenaamde hidden layers.

Ook Deep Learning en neurale netwerken zijn zeker niet nieuw, maar tot een jaar of 10 - 15 geleden was de performance van neurale netwerken niet veel beter dan andere vormen van kunstmatige intelligentie. De ontdekking van backpropagation heeft de performance van Deep Learning spectaculair verbeterd. De modellen die we bouwen met Deep Learning zijn over het algemeen complexer dan de modellen die we gebruiken bij traditionelere vormen van Machine Learning, en waar de modellen van traditionelere Machine Learning systemen nog relatief makkelijk door mensen te doorgronden zijn kenmerkt Deep Learning zich toch veel meer als een black box benadering, waarbij het niet zomaar duidelijk is wat zich binnen die black box precies afspeelt.

comments powered by Disqus