Neuraal netwerk en uitlegbaarheid

Inleiding

Dit artikel gaat over de artificiële intelligentie methode “neurale netwerken” zoals uitgelegd en geprogrammeerd in Tariq Rashid’s fantastische “Make Your Own Neural Network” en enige opmerkingen ten aanzien van de uitlegbaarheid van een neuraal netwerk.

In dit artikel is de voorbeeldvraag een voor de mens simpele vraag: welk cijfer in een gegeven plaatje wordt gerepresenteerd? Met de neurale netwerk methode kun je de computer dit met 98% nauwkeurigheid laten zeggen.

Het neurale netwerk

Het neurale netwerk is bedacht naar analogie van hersenen: neuronen geven meer of minder sterke signalen af naar één of meerdere volgende neuronen. In de computer wordt dit nagebouwd met nodes (knooppunten) die verbonden zijn en sterktes waar het signaal mee doorgegeven wordt tussen de nodes.

Input zijn in deze voorbeeldvraag de geschreven cijfers in de vorm van de grijswaarden van een plaatje van het geschreven cijfer van 28 bij 28 pixel. De waarde van de eerste pixel gaat voor ieder cijfer steeds de eerste node in en zo verder. Er zijn 28 keer 28 inputnodes nodig.

In bovenstaand plaatje zijn de paarse bolletjes de nodes. Iedere node heeft input en output. De inputnodes geven hun input met de weging van de groene pijlen door naar de volgende laag. De node in de volgende laag krijgt de gewogen input binnen van de vorige laag. Dit wordt allemaal opgeteld, er wordt een sigmoide bewerking op toegepast waarmee het signaal afvlakt en het wordt weer doorgegeven met de weging van de groene pijlen aan de volgende laag. De outputlaag bestaat in ons geval uit de 10 nodes die ieder één van de cijfers voorstelt. Zo hebben we een neuraal netwerk.

Maar dit netwerk moet eerst “getraind” worden. Training houdt in dat de weegfactoren optimaal ingesteld worden. De training gebeurt op basis van gelabelde input; het goede antwoord moet bekend zijn om te trainen. Per cijfer wordt het cijfer ingelezen. Dit wordt met de wegingen en de sigmoide bewerking naar de volgende lagen gebracht. Aan het einde worden de waarden van de nodes in de outputlaag vergeleken met wat het antwoord zou moeten zijn. De fout van het totale netwerk wordt berekend. Op basis van deze fout worden de wegingen met behulp van differentiaalrekening iets aangepast. En het volgende cijfer wordt ingelezen.

Niet uit te leggen

Inleiding

AI zal groeien. Sommige financiële bedrijven gebruiken AI om zonder menselijke tussenkomst vast te stellen of iemand een lening krijgt. Als iemand nou geen lening krijgt, kan dat dan uitgelegd worden? Vinden wij het als maatschappij wenselijk of nodig dat zo’n besluit uitgelegd kan worden?

Onderstaande negen wordt door bovenstaand ontwikkeld neuraal netwerk aangezien voor een drie! Zie je hem aan mijn balie staan en zeggen: “U ziet toch dat ik een negen ben! Hoe kunt u mij nou voor een drie aanzien?” Hoe moet ik dat dan uitleggen?

Onvoldoende uitleg

Ik ga gewoon eerst proberen het uit te leggen en zal gelijk aangeven of ik mijns inziens slaag in een goede uitleg:

  • Je kunt uitleggen dat de pixels in het plaatje van de negen worden omgezet naar getallen. Dit is een stap die niet aansluit bij hoe mensen over plaatjes nadenken. Mensen denken dat de getoonde negen bestaat uit vormen, en dat zou ook de uitleg zijn waarom het een negen is. Iets in de trant van: Het is een negen want het is een klein rondje en dan een haal eronder rechtsonder van het rondje te beginnen en daar weer linksonder eindigend. Maar dat is meer de verklaring die het bewustzijn in woorden geeft, als dat iemand zou weten hoe het in zijn hoofd werkt dat hij gelijk ziet dat het een negen is.
  • Je kunt verklaren dat een bepaalde pixel die zwart of wit of grijs is, een grotere kans geeft op een 9 of een drie. De aannemelijkheid wordt hiermee verhoogd, zonder dat een mens echt doorziet wat er gebeurt.
  • Je kunt visueel de overlapping laten zien tussen de pixels in de te herkennen negen en de ideale negen en de te herkennen negen en de ideale drie. Zie onderstaand plaatje. Qua overlap is lichtblauw waar zwart met zwart overeenkomt en oranje waar wit met wit overeenkomt. Ik heb nou geen “O, nou zie ik het.” Het is vaag aannemelijk dat het fout gaat.

Uitleggen

Dan de theorie erbij. Wat is uitleggen? Uitleggen is volgens van Dale: verklaren, laten begrijpen.

Verklaren kan ik het wel. Ik kan laten zien hoe het netwerk in elkaar zit en kan het hele netwerk printen en laten zien dat na het toepassen van alle wegingen de kans dat het een drie is het hoogste is.

Uitleggen is een nogal subjectief begrip. Het zegt iets over een interactie tussen twee mensen, waarin de ontvanger van de uitleg uiteindelijk zegt: “Ik begrijp het” … of niet. En bij de uitleg van bijvoorbeeld wiskunde aan mensen die er minder goed in waren dan ik, heb ik vaak genoeg met de handen in mijn haar gestaan van: “Ja maar, dit is de uitleg. Dat is toch logisch? Zie je dat niet? Waarom snap je dat niet?” En ik heb ook aan de andere kant gestaan, waarbij ik het niet begreep, en niet eens kon uitleggen wat ik dan niet begreep.

Kortom, ik kan niet definiëren wat een goede uitleg is, en kan dus ook niet uitleggen waarom ik het gevoel heb dat ik aan de negen niet helder kan uitleggen waarom het netwerk haar als een drie ziet.

Je kunt niet in je hoofd nalopen of visualiseren wat het netwerk doet.

Toevalligheid van de methode

Het heeft zeker ook te maken met de niet-deterministische bepaling van de uitkomst. Als ik aan iemand vraag: Hoe weten jullie dat de raket op de maan terechtkomt, en hij laat de formules en berekeningen zien waarmee de baan van de raket is uitgerekend, dan “snap” ik dat er formules zijn. En ik weet dat als een capabel iemand dat zou narekenen er hetzelfde uitkomt.

In een neuraal netwerk zit toeval en een heuristische manier om tot een oplossing te komen. In een anders getraind netwerk, dat ook 2% fout doet, zou de negen er wel als negen uit kunnen komen, maar zou dan weer andere fouten maken. Dat maakt het zo onzeker en wat mij betreft zo onverteerbaar.

Er is geen voor de mens logisch te volgen uitleg: er is geen volgordelijke redenatie om een gestelde vraag te beantwoorden; er is wel een volgordelijk stappenplan (algoritme) wat de computer kan doorlopen om tot een antwoord te komen.

Conclusie

Een neuraal netwerk werkt en zelfs ik kan er een maken.

Wat is het gevolg dat je geen inzicht hebt in hoe het antwoord tot stand is gekomen? Zoals Tariq Rashid het zegt op pagina 178: “Once a neural network is trained, and performs well on test data, you essentially have a mysterious black box. You don’t really know how it works out the answer – it just does”. En de conclusie hieruit verwoordt hij ook beknopt en welsprekend: “The learning doesn’t often translate into understanding or wisdom about the problem the black box has learned to solve.”

In het geval van getallen herkennen is dat geen probleem, in het geval dat mensen wel of geen hypotheken krijgen lijkt het mij belangrijk dat de reden voor de mens zelf en voor de maatschappij duidelijk is.

Wat doe je met de foutieve 2%? Je zou als organisatie kunnen zeggen dat klachten altijd door mensen worden herbeoordeeld. We moeten misschien ook wetten opstellen waarbij in bepaalde gevallen AI geen besluitvormende macht mag hebben.

Architecture Framework from The Open Group (TOGAF)

I studied TOGAF for the last four months. After training in April and May 2017, and a lot of study, I did the exam and was certified at level 2, with a score of 88,5%. During my studies I have made a summary of the basic concepts based on the study guide. And I have made some summaries per ADM phase: the objectives, the chapters, the deliverables, the steps in phase A, B, C, D, E and F and the steps in phases P, G, H and RM. I have retyped the table of contents, summarized chapter 23 the architecture principles  and made overviews of all figures and all figures very small.

And I made my own overview, not following a TOGAF scheme, but sort of an onion scheme of the organization and the deliverables per layer.

TOGAF

TOGAF is a good piece of work. A lot of cross-references are made how the different concepts relate to each other. Sometimes the method is too elaborate in describing every detailed step, like the step “schedule meeting”. The business-part makes it sometimes difficult, because it is the thing that manages the architecture, whereas at the same time the architecture development wants to change it. All this together makes it a lot and difficult to come to grips with the standard.

TOGAF is 70% process. The content model part IV is where you really learn something about how to design an architecture. Summaries of the contentmodel and the artifacts are helas missing in this post.

TOGAF is very top-down, whereby there seems nothing left for the application-design to do. The flebility is in using the method itself, in defining the iterations any way you deem necessary.

Architecture versus application design

Where stops architecture development and begins application design? It seems like TOGAF does not make the distinction; the method can be applied to architecture and application design. While modelling an IT-problem the granularity of the requirements and of the solutions need to match.

What are architecture requirements and how are they related to business requirements? At first I thought architecture requirements were a subset of or were derived from business requirements. But it is the other way around: business requirements are a subset of architecture requirements, next to data-, application- and technology-requirements.

In what detail do you document the architecture requirements? Intuitively I expect an architecture to be more global, about how systems work together. TOGAF does not say anything about the detail needed; it seems like all requirements are architecture requirements and need to be documented. My interpretation would be: architecture requirements need to be documented to the level they influence the architecture, to the level the architect deems necessary.

Zachman is clearer in this aspect. The basic idea is that you reificate from the conceptual level to the concrete level; from the business-idea to working code. And in between there is a level where the architect is responsible.