XOR

We beginnen aan de ‘to do‘ lijst.

De ‘top 3’ van de lijst bestaat uit met elkaar samenhangende onderwerpen. Preciezer gezegd: deep learning speelt zich af in het domein van de neurale netwerken dat zelf weer geheel binnen het generiekere begrip machine learning valt, onderdeel van AI in algemene zin.

Ik schreef hier al eerder in algemene termen over het doel van machine learning, dat zo iets is als het herkennen en toepassen van patronen uit grote hoeveelheden data om een bepaald doel te bereiken.

In het geval van een groot taalmodel (LLM) is dat doel het voorspellen van het meest waarschijnlijke vervolg van een conversatie, op basis van woorden die er al staan en de context waarin de conversatie verloopt. Letterlijk het voorspellen van ‘het volgende woord’. Daar kom ik later weer op terug.

In een eerder bericht schreef ik over de perceptron en het McCulloch-Pitts model dat gebruikt kan worden bij binaire classificaties. Op een van mijn zijpaden in de historie van AI las ik dat een model met één laag niet meer werkt bij niet-lineaire verbanden. De publicatie (1969) hierover van Minsky en Papert veroorzaakte de eerste AI winter.

De ontdooiing kwam pas met de multilayer perceptron (MLP), of in meer algemene zin de neurale netwerken met (meerdere) ‘hidden layers‘). Daarom wilde ik graag weten bij welk soort vraagstukken een enkele laag in het neurale netwerk voldoende is, en in welke situaties een of meer extra lagen nodig zijn. Ik heb inmiddels aardig wat tutorials gelezen of als video gezien. De crux is, ik herhaal wat ik lees, dat situaties waarin sprake is van een zg. ‘uitsluitende of‘ (in logische terminologie: XOR) niet meer met een enkele laag te modelleren zijn.

Ik zocht ook eenvoudige voorbeelden die ik hier zou kunnen gebruiken, maar dat viel nog niet mee. Daarom probeer ik zelf een voorbeeld te construeren aan de hand waarvan ik kan uitleggen hoe het volgens mij in elkaar steekt.

De situatie is als volgt. Mijn fictieve ik werkt bij een organisatie waarin thuiswerken is toegestaan. Het is mij om het even of ik thuis werk of op kantoor, behalve als het regent, ik heb een enorme hekel aan nat worden. Mijn partner en ik hebben samen één auto en ook één paraplu. Mijn kantoor heeft een inpandige parkeergarage zodat er geen enkel probleem is als ik met de auto naar het werk kan. Met het OV gaat het ook wel als ik de paraplu bij me heb, maar ik vind het toch minder. Zonder auto of paraplu werk ik het allerliefst thuis.

Ik heb de machine geleerd uitspraak te doen of ik, in een gegeven situatie, thuis zal werken of op kantoor. Ik gebruik daarvoor het model van een neuraal netwerk.

De input nodes (x) zijn 0 of 1 waarden (niet of wel).
Voor de output node (y) geldt: y=1 betekent dat ik op kantoor werk, bij y=0 werk ik thuis.

  • x_1=1 als ik over de auto kan beschikken, anders x_1=0
  • x_2=1 als ik de paraplu mag, anders x_2=0
  • En x_3 staat voor de weersituatie: x_3=1 als het mooi weer is, x_3=0 als het regent.
  • Van belang is nog een constante, een referentiewaarde die in het jargon ‘bias‘ wordt genoemd. In dit voorbeeld is die benaming op zijn plaats, deze waarde drukt mijn weerzin uit tegen nat op kantoor komen, maar het is de term die algemeen gehanteerd wordt.

Mijn beslissing om naar kantoor te gaan of thuis te blijven hangt af van de gewogen samenhang van de genoemde factoren. We kennen er letterlijk gewichten (w) aan toe.

  • Laten we mijn bias op 2 stellen, b=2.
  • Het gewicht van het kunnen beschikken over de auto stel ik op 5, w_1=5.
    Voor het wel of niet regenen maak ik w_3=4.
    En de paraplu is minder van belang, w_2=3.
  • De output y wordt bepaald door de waarde van de zg. activatiefunctie. In dit geval is dat f=x_1*w_1 + x_2*w_2 + x_3*w_3 - b.
  • y=1 als f een waarde boven 0 heeft, anders y=0.

Hoe pakt het uit?

  • het regent maar ik kan beschikken over de auto en paraplu. Dan is f = 5*1 + 3*1 + 4*0 - 2 = 6
  • Het regent maar ik heb geen auto, wel een paraplu. f = 5*0 + 3*1 +4*0 - 2 = 1
  • Het regent en ik heb auto noch paraplu. f = 5*0 + 3*0 + 4*0 - 2 = -2
  • Het is droog en ik heb auto noch paraplu. f = 5*0 + 3*0 + 4*1 - 2 = 2
  • (en met auto en paraplu wordt f nog meer)

Conclusie: de machine voorspelt bij deze bias dat ik bijna altijd op kantoor ga werken, maar niet als het regent en ik geen auto en geen paraplu heb. Merk op dat het verhogen van b naar bijv. 3 of 4 er toe leidt dat ik vaker thuis werk als het regent.

Tot hier is het voorbeeld volkomen lineair, het kan met de enkellaags perceptron gemodelleerd worden.

We voegen een kleine complicatie toe.

Mijn eigen situatie blijft hetzelfde, maar op kantoor moet ik mijn werkplek delen met een collega. We kunnen niet tegelijkertijd op kantoor werken. En daarbovenop: onze werkgever vindt onze aanwezigheid op kantoor zo belangrijk dat er altijd één van ons aanwezig moet zijn. In de praktijk moet dus óf ik óf mijn collega op kantoor zijn (en samen kan dus niet).

Dit is een min of meer natuurlijke (nou ja) XOR situatie, een úitsluitende of. En ja, het eenlaags model stort onmiddellijk in. Niet uitsluitend mijn eigen situatie met zijn gewichten en bias bepaalt (activeert) of ik naar kantoor ga of niet. Mijn f, om het zo te zeggen, bepaalt nu of ik naar kantoor zou willen of niet, maar als mijn collega er is op een droge dag zal ik toch thuis moeten werken. En als het regent terwijl ik geen auto of paraplu heb zal ik toch nat naar kantoor moeten gaan als mijn collega niet gaat.

Om deze situatie door de machine te laten voorspellen is een extra laag in het model nodig, het wordt een neuraal netwerk met 2 hidden layers. Het zou er als volgt uit kunnen zien, met q als mijn collega ex machina, die waarschijnlijk zijn eigen deel van het netwerk heeft om te beslissen of hij naar kantoor gaat of niet, maar dat blijft hier achterwege. Zowel x (voor mijzelf) als q (voor mijn collega) kunnen de waarde 0 of 1 aannemen, de uitkomst voor y is in logische notatie XOR(x, q). Een wiskundig equivalent zou (x+q)\mod 2 kunnen zijn.

Machine learning in een neuraal netwerk met meer dan 3 lagen (incl. input en output) wordt deep learning genoemd.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *