In AI Branches leerde je dat neurale netwerken lagen hebben. Een netwerk met één of twee verborgen lagen is ondiep. Voeg meer lagen toe — 10, 50, 100+ — en je hebt een diep neuraal netwerk. Dat ene woord, "diep", is wat de deep in deep learning geeft.
Elke laag leert een ander abstractieniveau:
Laag 1 → Randen en eenvoudige texturen
Laag 2 → Hoeken en contouren
Laag 3 → Delen van objecten (ogen, wielen)
Laag 4 → Hele objecten (gezichten, auto's)
Laag 5+ → Scènes en context
Stel je voor dat je een boek leest. Laag 1 herkent letters, Laag 2 herkent woorden, Laag 3 begrijpt zinnen, en Laag 4 begrijpt de volledige betekenis. Een ondiepe lezer vast op Laag 1 zou alleen letters zien — zonder ooit het verhaal te begrijpen.
Vroege onderzoekers probeerden veel lagen te stapelen, maar training bleef mislukken. De boosdoener: verdwijnende gradiënten. Foutsignalen worden door elke laag vermenigvuldigd met getallen tussen 0 en 1, tot het signaal bijna nul bereikt.
1. ReLU Activatie — Gradiënt is exact 1 voor positieve inputs, signalen passeren zonder te krimpen.
2. Skip-Verbindingen — Het signaal kan lagen overslaan. Als een laag niets nuttigs toevoegt, stromen de data gewoon door.
3. Batch Normalisatie — Normaliseert inputs van elke laag zodat waarden in een gezond bereik blijven.
Vóór deze doorbraken waren netwerken dieper dan 10 lagen bijna onmogelijk te trainen. Daarna trainden onderzoekers succesvol netwerken met meer dan 1.000 lagen!
ResNet introduceerde skip-verbindingen en won ImageNet met een 152-laags netwerk. Elk blok leert het residu — het verschil tussen wat je hebt en wat je wilt.
De Transformer-architectuur verving sequentiële verwerking door een zelf-aandachtsmechanisme. In plaats van tekst woord voor woord te lezen, kijkt het naar alle woorden tegelijk.
"De kat zat op de mat omdat hij moe was"
Zelf-aandacht vraagt: waar verwijst "hij" naar?
"hij" ←→ "kat" (hoge aandachtsscore: 0.82)
"hij" ←→ "mat" (lage aandachtsscore: 0.11)
Transformers zijn de architectuur achter GPT, Claude, Llama en vrijwel elk modern LLM. We gaan dieper in de volgende les.
Een diep netwerk van nul trainen vereist miljoenen voorbeelden. Transfer learning laat je het meeste werk overslaan: neem een voorgetraind model en fine-tune het op jouw dataset.
Stap 1: Start met een voorgetraind model
Stap 2: Bevries de vroege lagen (zij kennen al randen, vormen, texturen)
Stap 3: Vervang de laatste laag door jouw taak
Stap 4: Train alleen de laatste lagen op jouw data
Stap 5: Klaar! Hoge nauwkeurigheid met een fractie van de data en tijd.
Transfer learning is als een ervaren chef die overschakelt van Franse naar Japanse keuken. Hij hoeft niet opnieuw te leren hoe je een mes vasthoudt — die vaardigheden worden overgedragen.
Neurale netwerktraining is voornamelijk matrixvermenigvuldiging. CPU's verwerken deze één voor één. GPU's verwerken duizenden tegelijkertijd. Moderne AI-doorbraken zouden onmogelijk zijn zonder GPU's.
model = load_pretrained_model("resnet50")
for layer in model.layers:
layer.trainable = False
model.final_layer = DenseLayer(input_size=2048, output_size=3)
model.final_layer.trainable = True
train_data = load_images("bloemen/train/", categories=["roos", "zonnebloem", "tulp"])
val_data = load_images("bloemen/val/", categories=["roos", "zonnebloem", "tulp"])
model.compile(optimizer="adam", loss="cross_entropy", learning_rate=0.001)
model.fit(train_data, validation_data=val_data, epochs=5)
accuracy = model.evaluate(val_data)
print(f"Validatie nauwkeurigheid: {accuracy:.1%}")
Merk op hoe weinig data we nodig hebben! Transfer learning maakt deep learning toegankelijk, zelfs zonder enorme datasets.
In de volgende les duiken we in Grote Taalmodellen — de motoren achter ChatGPT, Claude en de AI-revolutie. 📝