AI-For-Beginners/translations/nl/lessons/3-NeuralNetworks/03-Perceptron
localizeflow[bot] 7a9b37f3b1 chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:07:34 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:07:34 +00:00
Perceptron.ipynb 🌐 Update translations via Co-op Translator 2025-12-12 20:42:50 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:07:34 +00:00

README.md

Introductie tot Neurale Netwerken: Perceptron

Pre-lecture quiz

Een van de eerste pogingen om iets te implementeren dat lijkt op een modern neuraal netwerk werd in 1957 gedaan door Frank Rosenblatt van het Cornell Aeronautical Laboratory. Het was een hardware-implementatie genaamd "Mark-1", ontworpen om primitieve geometrische figuren te herkennen, zoals driehoeken, vierkanten en cirkels.

Frank Rosenblatt The Mark 1 Perceptron

Afbeeldingen van Wikipedia

Een invoerafbeelding werd weergegeven door een 20x20 fotocelarray, waardoor het neurale netwerk 400 ingangen had en één binaire uitvoer. Een eenvoudig netwerk bevatte één neuron, ook wel een drempelloogica-eenheid genoemd. De gewichten van het neurale netwerk fungeerden als potentiometers die handmatig moesten worden aangepast tijdens de trainingsfase.

Een potentiometer is een apparaat waarmee de gebruiker de weerstand van een circuit kan aanpassen.

De New York Times schreef destijds over de perceptron: het embryo van een elektronische computer die [de marine] verwacht te kunnen laten lopen, praten, zien, schrijven, zichzelf reproduceren en zich bewust zijn van zijn bestaan.

Perceptronmodel

Stel dat we N kenmerken in ons model hebben, in welk geval de invoervector een vector van grootte N zou zijn. Een perceptron is een model voor binaire classificatie, wat betekent dat het onderscheid kan maken tussen twee klassen van invoergegevens. We gaan ervan uit dat voor elke invoervector x de uitvoer van ons perceptron ofwel +1 of -1 is, afhankelijk van de klasse. De uitvoer wordt berekend met de formule:

y(x) = f(wTx)

waarbij f een stap-activatiefunctie is

Het trainen van de Perceptron

Om een perceptron te trainen, moeten we een gewichtenvector w vinden die de meeste waarden correct classificeert, oftewel resulteert in de kleinste fout. Deze fout E wordt gedefinieerd door het perceptroncriterium op de volgende manier:

E(w) = -∑wTxiti

waarbij:

  • de som wordt genomen over die trainingsdatapunten i die resulteren in een verkeerde classificatie
  • xi de invoergegevens zijn, en ti ofwel -1 of +1 is voor respectievelijk negatieve en positieve voorbeelden.

Dit criterium wordt beschouwd als een functie van de gewichten w, en we moeten het minimaliseren. Vaak wordt een methode genaamd gradient descent gebruikt, waarbij we beginnen met enkele initiële gewichten w(0), en vervolgens bij elke stap de gewichten bijwerken volgens de formule:

w(t+1) = w(t) - η∇E(w)

Hierbij is η de zogenaamde leersnelheid, en ∇E(w) de gradiënt van E. Na het berekenen van de gradiënt krijgen we:

w(t+1) = w(t) + ∑ηxiti

Het algoritme in Python ziet er als volgt uit:

def train(positive_examples, negative_examples, num_iterations = 100, eta = 1):

    weights = [0,0,0] # Initialize weights (almost randomly :)
        
    for i in range(num_iterations):
        pos = random.choice(positive_examples)
        neg = random.choice(negative_examples)

        z = np.dot(pos, weights) # compute perceptron output
        if z < 0: # positive example classified as negative
            weights = weights + eta*weights.shape

        z  = np.dot(neg, weights)
        if z >= 0: # negative example classified as positive
            weights = weights - eta*weights.shape

    return weights

Conclusie

In deze les heb je geleerd over een perceptron, een model voor binaire classificatie, en hoe je het kunt trainen met behulp van een gewichtenvector.

🚀 Uitdaging

Als je zelf een perceptron wilt bouwen, probeer dan deze lab op Microsoft Learn, die gebruikmaakt van de Azure ML designer.

Post-lecture quiz

Herziening & Zelfstudie

Om te zien hoe we een perceptron kunnen gebruiken om een eenvoudig probleem en ook echte problemen op te lossen, en om verder te leren - ga naar het Perceptron notebook.

Hier is ook een interessant artikel over perceptrons.

Opdracht

In deze les hebben we een perceptron geïmplementeerd voor een binaire classificatietaak, en we hebben het gebruikt om onderscheid te maken tussen twee handgeschreven cijfers. In deze lab wordt je gevraagd om het probleem van cijferclassificatie volledig op te lossen, oftewel te bepalen welk cijfer het meest waarschijnlijk overeenkomt met een gegeven afbeelding.