Hoofdstuk 1 Inleiding tot de cursus

1.1 In een notedop

In deze cursus zullen we het erg breed domein van machinaal leren (ML; eng: machine learning) aansnijden. Omdat de discipline zo breed is, kunnen onmogelijk alle topics aan bod komen. In plaats daarvan is er gekozen om eerst een brede basis te verschaffen rond de begrippen en principes die belangrijk zijn voor ML om ons daarna specifiek te richten op deep learning. We gaan leren hoe computers beelden kunnen herkennen en gaan zelf aan de slag om zulke algoritmes te configureren en te gebruiken. Deze aangeleerde vaardigheid maakt van een doorsnee IT-er een beginnende datawetenschapper. Gaandeweg zullen we ons echter van bewust moeten maken dat deze vaardigheid ook een aantal verantwoordelijkheden met zich meebrengt. Het gaat dan voornamelijk om ethisch ML en ethische artificiële intelligentie (AI).

1.2 Leerdoelen

Hieronder, in Tabel 1.1, staan de leerdoelen opgesomd zoals ze vermeld staan in de ECTS fiches voor dit opleidingsonderdeel. In de cursus zal er naar deze leerdoelen verwezen worden met vermelding van de bijhorende code.

Tabel 1.1: Leerdoelen voor deze cursus
Code Omschrijving
EA_LD751 Begrijpt de basis principes van machine learning
EA_LD752 Herkent de verschillen tussen supervised, unsupervised en reinforcement learning
EA_LD753 Begrijpt de fundamenten achter deep learning
EA_LD754 Onderkent de basisprincipes van data training & Cross-validatie
EA_LD755 Ontwikkelt het vermogen om zelfstandig technisch-uitdagende online workshops uit te voeren
EA_LD756 Analyseert zelfstandig een probleemstelling met het oog op het bieden van een AI-gerelateerde oplossing
EA_LD757 Ontwikkelt de correcte AI strategie op basis van een probleemstelling
EA_LD758 Past de juiste principes toe tijdens het exploreren, hanteren en opkuisen van data
EA_LD759 Herkent de risico’s van onvolledige en inaccurate data
EA_LD760 Gebruikt een diagnostische toolset om de performantie van ML modellen te meten
EA_LD761 Beeld complexe data uit door middel van hedendaagse visualisatie tools
EA_LD762 Evalueert op gepaste wijze de performantie van een algoritme.
EA_LD763 Rapporteert op correcte wijze de resultaten van een ML analyse

1.3 Cursus vorm

Deze cursus is geschreven in een versie van Markdown. Markdown is een familie van zogenaamde opmaaktalen (eng: mark-up languages) die ervoor zorgen dat inhoud van het document in verscheidene formaten weergegeven kan worden: PDF, HTML, …. Het loskoppelen van inhoud betekent enerzijds dat de auteur zich kan focusseren op de inhoud in plaats van de vorm. Anderzijds betekent het dat de lezer in staat is zijn de vorm van de uitvoer te bepalen, bijvoorbeeld, beter leesbaarheid, donkere achtergrond, …. Voor meer technische documenten biedt Markdown nog veel belangrijkere voordelen. Het maakt het mogelijk om code in de ene of andere taal tussen de lyrische tekst te plaatsen en uit te voeren. Met de juiste IDE (Integrated Development Environment), betekent dit dat de auteur én de lezer in staat zijn om in meerdere programmeertalen tegelijkertijd te werken!

Werking van Markdown. De platte tekst (links) wordt omgezet naar een ander formaat (rechts; hier HTML) door een externe tool als Pandoc. Stijl-regels worden hier automatisch uitgevoerd maar de auteur heeft de mogelijkheid ook deze in detail te configureren. Naast het scheiden van vormgeving en inhoud (hetgeen een merkelijke efficiëntie verbetering met zich meebrengt) ondersteund R Markdown ook meertaligheid, i.e. meerdere programmeertalen in één document. Tussen een aantal talen is er zelfs wederzijdse uitwisseling mogelijk van de actieve variabelen (zie oranje markeringen met pijl). Het voorbeeld met de Mandelbrot fractaal is afkomstig van Li 2017, waarvan de GitHub repository een bondige beschrijving geeft van de Mandelbrot verzameling (eng: Mandelbrot set) met een test die de performantie-winst van Julia t.o.v. R onderzoekt.

Figuur 1.1: Werking van Markdown. De platte tekst (links) wordt omgezet naar een ander formaat (rechts; hier HTML) door een externe tool als Pandoc. Stijl-regels worden hier automatisch uitgevoerd maar de auteur heeft de mogelijkheid ook deze in detail te configureren. Naast het scheiden van vormgeving en inhoud (hetgeen een merkelijke efficiëntie verbetering met zich meebrengt) ondersteund R Markdown ook meertaligheid, i.e. meerdere programmeertalen in één document. Tussen een aantal talen is er zelfs wederzijdse uitwisseling mogelijk van de actieve variabelen (zie oranje markeringen met pijl). Het voorbeeld met de Mandelbrot fractaal is afkomstig van Li 2017, waarvan de GitHub repository een bondige beschrijving geeft van de Mandelbrot verzameling (eng: Mandelbrot set) met een test die de performantie-winst van Julia t.o.v. R onderzoekt.

1.4 Bekijken van deze Cursus

Deze cursus kan je het best bekijken door gebruik te maken van je browser. Voor een betere ervaring zijn je de browser het best op volledig scherm. Er is een sneltoets om wisselen tussen gewoon en volledig-scherm modus (Chrome, Firefox: F11, Safari: Control + ⌘ + F). Heb je meerdere tabs open en vind je het vervelend navigeren in volledig-scherm-modus, is er voor Chrome een leuke extension: QuicKey..

1.5 Code uit de cursus uitvoeren

Via deze github repository krijg je toegang tot de broncode van deze cursus.

Opgelet: De inhoud van de cursus kan mogelijk nog wijzigen. Om steeds de laatste versie te hebben maak je gebruik van git clone.

Je kan met deze broncode alle code blokken uit de RMarkdown-bestanden (*.Rmd) rechtstreeks lokaal uitvoeren. Maar opgelet, sommige code-blokken zijn specifiek voor Bookdown bedoeld en zijn er alleen voor de vormgeving van de cursus. Let er ook op dat je alle variabelen en bibliotheken in scope hebt door de nodige bovenliggende code-blokken eerst uit te voeren.

1.6 Oefeningen maken

Her-en-der verspreid in de cursus zullen er oefeningen voorzien worden. Deze zou je ook rechtstreeks in de broncode van de cursus moeten kunnen uitvoeren. Wanneer je tevreden bent van je oefening, kan je deze via Digitap indienen.

1.7 Licentie voor deze cursus

De inhoud van deze cursus valt onder een GNU Affero General Public v3.0 licentie. Wat er toegelaten is en onder welke voorwaarden staat hieronder opgesomd:

Je mag… Onder voorwaarde dat… Je mag niet…
Commercieel gebruik Ontsluit bron Aansprakelijk stellen
Verspreiden Licentie en copyright notice mee verspreiden Garantie
Aanpassen Netwerk verspreiding
Patenteren Zelfde licentie
Privé gebruiken Bekendmaking wijzigingen

1.8 Verwijzen naar deze cursus

Bibtex-formaat:

@online{dhaese2020machine-learning,
    author = {D’Haese, David},
    title = “Machine Learning”,
    year = “2020”,
    url = “https://ddhaese.github.io/machine-learning/”,
    note = "[Online; accessed

  }

APA-formaat:

D’Haese, D., 2020. Machine learning [WWW Document] [Online; accessed yyyy-mm-dd]. URL https://ddhaese.github.io/machine-learning/

Bronvermelding

Li, C., 2017. Improve r’s performance using juliacall with mandelbrot set example [WWW Document] [Online; accessed 2020-09-14]. URL https://github.com/Non-Contradiction/JuliaCall/tree/master/example/mandelbrot