-
Notifications
You must be signed in to change notification settings - Fork 1
/
techniek_introductie.html
225 lines (222 loc) · 21.1 KB
/
techniek_introductie.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="css/normalize.css" rel="stylesheet">
<link href="css/ai.css" rel="stylesheet" type="text/css" />
<link href="css/menus.css" rel="stylesheet" type="text/css" />
<link href="css/treeview.css" rel="stylesheet" type="text/css" />
<script src="treeview.js"></script>
<title>Kunstmatige Intelligentie</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] }
});
</script>
</head>
<body id="technieken" onload="initTreeview();" >
<a name="Inleiding" style="counter-reset: subsection 0;"></a>
<header class="paragraaf titel">Introductie</header>
<section>
<h4 class="pad" id="path_lead"><a href="index.htm" target="_parent">Kunstmatige Intelligentie</a>/<a href="inleiding_technieken.html" target="_parent">Technieken</a>/Introductie</h4>
<div style="height: 100px;">
<div style="float:right;">
<a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
<img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
<br />This work is licensed under a
<br />
<a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">Creative Commons Attribution-NonCommercial-ShareAlike
4.0
<br />International License</a>.
</div>
</div>
</section>
<div class="navbar">
<div class="centreer">
<a href="#Inleiding">Introductie</a>
<a href="#Data_gestuurd">Data gestuurd</a>
<a href="#ml">Machine en deep learning</a>
<a href="#nl">Niet lerende AI</a>
<a href="#kenmerken">Kenmerken voor AI-toepassingen</a>
</div>
</div>
<article>
<p>Voordat we een aantal verschillende AI-technieken bekijken, stellen we eerst de vraag: wanneer is het handig om kunstmatige intelligentie te gebruiken en wanneer niet?
</p>
<div class="rechts theorie" style="width: 300px;">
<img src="images/AlgebraRobot.jfif" style="width: 300px;"/><br/>
<caption><a href="https://www.quantamagazine.org/symbolic-mathematics-finally-yields-to-neural-networks-20200520/" target="techniek">AI doet algebra?<a/> Kan het nog verwarrender? De link brengt je naar een succesvolle poging om het integreren op een bepaalde manier door AI te laten doen. Het is zeker nog geen algemeen inzetbare tool.
</caption>
</div>
<p>Kunstmatige intelligentie heeft volgens de meeste definities iets te maken met het uitvoeren van complexe taken waarvoor intelligentie nodig wordt geacht. Er zijn echter genoeg voorbeelden van software die ook zeer complexe taken uitvoeren door gebruik te maken van heel complexe algoritmen. Voorbeelden hiervan zijn computer algebra systemen (CAS). Met deze systemen kun je wiskundige problemen exact laten doorrekenen. Tijdens je wiskunde toetsen zouden die goed van pas komen. Helaas verboden tijdens examens.
</p>
<p>Een ander voorbeeld van complexe software zonder AI kan een robot in een productielijn zijn. Iedere keer wordt zeer precies en in de juiste volgorde een serie handelingen verricht. Er zijn echter ook weer robots in een productielijn die wel AI gebruiken om een deeltaak te verrichten. Een postsorteerrobot moet bijvoorbeeld (handgeschreven) postcodes kunnen lezen. Lezen ofwel beeldherkenning is een taak die we indelen bij AI. Het wordt trouwens steeds meer regel dan uitzondering dat productierobots ook van beeldherkenning gebruik maken.
</p>
<a id="Data_gestuurd"></a><br/>
<h2>Data gestuurd</h2>
<p>Wat maakt de intelligentie van AI nu anders dan de intelligentie in CAS systemen of andersoortige niet-AI systemen? Waarom maakt beeldherkenning een deel uit van AI en het exact oplossen van een complexe wiskundige vergelijking niet? Bekijk eerst de volgende indeling binnen de AI applicaties.
</p>
<div class="midden theorie">
<img src="images/AI_ML_DL.jpg" style="width: 95%;"/><br/>
<caption>Figuur 1: Onderverdeling AI.
</caption>
</div>
<a id="ml"></a><br/>
<h2>Machine en deep learning</h2>
<p>Ingewikkelde neurale netwerken vallen onder "deep learning". Deze groep is bevat in de groep "machine learning" van lerende AI, die weer onderdeel uitmaakt van AI in zijn geheel. We beschouwen eerst het anders zijn van machine learning en deep learning ten opzichte van niet AI-systemen.
</p>
<p>Het verschil tussen de "niet AI-systemen" en machine learning zit in de programmeerbaarheid van een directe oplossing. De wiskunde kent een grote maar eindige overzichtelijke verzameling van bekende functies en strategieën om een wiskundig probleem op te lossen. Een CAS systeem bevat al die functies en strategieën. Geef je zo'n systeem een probleem dan kan de precieze, van te voren geprogrammeerde, oplossingsstrategie worden opgezocht en uitgevoerd.
</p>
<p>Je hebt in de introductie het Quickdraw spel gespeeld, een applicatie gebaseerd op AI. Het heeft je vast ook verbaasd dat jouw slechte tekening werd herkend. Ook in de Quickdraw applicatie moet worden gezocht naar een oplossing van een vraag. In dit geval: In welke categorie behoort die mooie tekening? Het is zeer onwaarschijnlijk dat jouw tekening precies terug kan worden gevonden in de database van tekeningen waarop Quickdraw is gebaseerd. Sterker nog, het is zowat onmogelijk dat jouw tekening beeldpunt voor beeldpunt overeenkomt met een andere tekening.
</p>
<p>Er is dus wel een algoritme dat direct onderzoekt tot welke categorie jouw tekening behoort. Het stuurt jouw data door een recept (algoritme) ongeveer net zo als het CAS systeem dat doet. Maarrrrrr....., het recept dat jouw vragen beantwoordt is niet van te voren in de applicatie geprogrammeerd maar tot stand gekomen met behulp van een algoritme dat door middel van <strong>training</strong> die dit recept filtert uit <strong>data</strong>. De mogelijkheid tot aanpassen van een applicatie aan data noemt men het <strong>adaptieve vermogen</strong>. AI toepassingen hebben alle een adaptief vermogen. De data vormt de invoer van het trainingsproces. Een AI applicatie is dus <strong>data-gestuurd</strong>. Het trainingsalgoritme is natuurlijk wel van te voren geprogrammeerd.
</p>
<p>De Quickdraw app heeft dus een algoritme dat tot stand is gekomen door training, dit algoritme is niet het algoritme van het leerproces maar is het resultaat van de training. De Quickdraw app wordt dan een <strong>agent</strong> (vertegenwoordiger) genoemd van het geleerde.
</p>
<p>Bij training is het noodzakelijk dat er een <strong>input-output relatie</strong> is, ofwel de data moet op de een of andere manier worden gekoppeld aan de oplossing. Je zult straks zien dat bij <a href="techniek_associatie_analyse.html" class="book">winkelmandjes analyse</a> (associatie analyse) en <a href="techniek_cluster_analyse.html" class="book">clustering</a> deze koppeling vast ligt in het trainingsalgoritme. Alleen de data zorgt dan voor de variatie in het recept. Het verkregen recept of wel het algoritme van de agent wordt een <strong>statistisch resultaat</strong>.
</p>
<p>Bij deep learning en eenvoudigere neurale netwerken (b.v. postcode herkennen), is ook de input-output relatie niet bekend. Bij deze vorm van AI wordt verwacht dat de training plaats vindt met input en bijbehorende output. Echter het is niet bekend hoe de relatie tussen die input en die output is. Het trainingsalgoritme heeft dan de taak de input-output relatie te schatten. Het algoritme geeft geen zekerheid over de gevonden relatie. De gevonden input-output relatie, die wordt gebruikt in de agent, is nu zelf ook een <strong>statistisch resultaat</strong>.
In figuur 2 is dit weergegeven. Een applicatie die geen AI is en die eventueel gebruikt maakt van data verwerkt de invoer direct tot een uitvoer. De agents in de rechter twee diagrammen berekenen ook direct de uitvoer bij een invoer, maar kunnen dit pas nadat het algoritme in de agent door training is gemaakt.
</p>
<div class="midden theorie">
<img src="images/App_AI_ML_DL.svg" style="width: 95%;"/><br/>
<caption>Figuur 2: Verschil tussen lerende en niet lerende applicaties. De agent is een zelfstandige uitvoerder (vertegenwoordiger) van het geleerde die reageert op invoer. Er zijn trouwens ook agents die zelf nog bij kunnen leren, maar die situatie is hier niet in beeld gebracht.
</caption>
</div><br/>
<div class="theorie example">Voorbeeld: N-term
<div style="padding-left 20px;">
<div class="rechts">
<img src="images/fokke-en-sukke-rekenen.gif" style="width:300px;"/><br/>
<caption>Figuur 3: <a href="https://www.foksuk.nl" target="techniek">Fokke en Sukke</a>
</caption>
</div>
<p>We geven een simpel voorbeeld van een onderscheid tussen een rechttoe rechtaan berekening en één die gebaseerd is op een statistisch resultaat. Neem jouw eindrapportcijfer voor informatica. Dit cijfer is een gemiddelde van behaalde cijfers. Haal jij gemiddeld lager dan een 5,5 dan wordt jij bij de leerlingen met een onvoldoende ingedeeld. De grens 5,5 is door de school vast gekozen. Het recept is een simpele wiskundige berekening: vergelijk het cijfer met 5,5.
</p>
<p>Nu bekijken we jouw resultaat voor het wiskunde op het eindexamen. Je docent kijkt dan jouw werk na en geeft het puntentotaal door aan het College voor Examens (CVE). Het CVE krijgt de cijfers binnen van alle leerlingen die een examentoets (bijvoorbeeld wiskunde) maken, maar gebruikt slechts een deel van die cijfers voor het bepalen van de **N-term** voor dit examen. De N-term is één getal, behorend bij het examen van één vak, waarmee jouw puntenaantal wordt omgezet in een cijfer voor het examen. Leerlingen en docenten zitten na afloop van de examens in spanning af te wachten wat de N-termen voor de vakken dit examenjaar weer zullen zijn. **Deze N-termen zijn op data gebaseerd en daarom een statistisch resultaat**. Je kunt het gebruik van de N-term in het bepalen van het eindcijfer nu beschouwen als een statistisch recept (b.v. <a href="https://www.examenblad.nl/9336121/d/ex2021/omzet/vlk4oglb5pvs_havo_vwo_tv2/vwo-tv2.htm" target="techniek">vwo 2-de tijdvak 2021</a>, <a href="https://www.examenblad.nl/9336119/d/ex2019/omzet/vkz5je2x54u4_havo_vwo/havo-tv1.htm" target="techniek">havo 1-ste tijdvak</a>).
</p>
</div>
</div>
<p>Het voorbeeld van het examencijfer voor wiskunde is nog te simpel om er AI voor in te zetten. Er hoeft maar één getal te worden bepaald op basis van data die ook slechts uit de score van de leerlingen bestaat. <a href="https://www.examenblad.nl/onderwerp/n-term/2021" target="techniek">Het algoritme om de N-term te bepalen</a> is daarom relatief eenvoudig. Het wordt pas nuttig om AI in te zetten als het recept of de data complex is. Deze complexiteit is er vaak al snel. Hoe kan een auto zelf rijden? Hoe herkent een postsorteerrobot een bijvoorbeeld een postcode? Hoe krijg je al die aanvullingen bij je zoekopdrachten in Google? Hoe kan ik een verzameling cd's zo goed mogelijk in groepen indelen? Hoe kan Quickdraw herkennen wat je getekend hebt? Op dit laatste voorbeeld gaan we verder in.
</p>
<p>Het Quickdraw voorbeeld is vergelijkbaar met het postcode lezen door de robot. Voordat Quickdraw jouw plaatje kan classificeren moet er dus een classificeringsrecept worden gemaakt. Dit classificeringsrecept moet worden gemaakt op basis van voorbeeldtekeningen. Eén tekening is wel maar één datapunt, maar dit datapunt is complex. Het bestaat uit heel veel beeldpunten, namelijk de grootte van het canvas. Al die beeldpunten moeten worden meegenomen, waardoor het datapunt dus niet maar één getal is, zoals bij het N-term voorbeeld hierboven.
</p>
<p>Om het nog lastiger te maken zijn de beeldpunten niet onafhankelijk van elkaar, een lijnstuk is een verzameling van punten. Deze relatie moet door de AI applicatie worden ontdekt. Ieder van die beeldpunten krijgt invloed door daar een getal (parameter) aan te koppelen. Net als bij de bepaling van de N-term moeten al deze parameters worden geschat. Dit gaat helaas niet in één keer. Er wordt een set parameters gekozen, dan wordt er gekeken of de output behorende bij de trainingsdata door het nieuwe recept goed worden voorspeld. Zo nee dan worden de parameters in het recept weer aangepast enz. <strong>Het trainen van AI is in het algemeen een algoritme waarin herhaling (recursie) aanwezig is</strong>.
</p>
<a id="nl"></a><br/>
<h2>Niet lerende AI</h2>
<p>In de bovenstaande sectie hebben we het verschil tussen een applicatie die geen AI bevat en lerende AI bekeken. Er is ook <a href="https://www.linkedin.com/pulse/what-artificial-intelligence-without-machine-learning-claudia-pohlink" target="techniek">AI die niet leert</a>. Voorbeelden voor het gebruik van AI zonder ML zijn op regels gebaseerde systemen zoals de eerste chatbots (b.v. <a href="https://www.chatbots.org/chatbot/eliza/" target="techniek">Eliza</a>,
<a href="https://www.chatbots.org/chatbot/parry/" target="techniek">Parry</a>,
<a href="http://www.jabberwacky.com/" target="techniek">Jabberwacky</a> ). Door de mens gedefinieerde regels laten de chatbot vragen beantwoorden en - in beperkte mate - klanten helpen . Er is geen machine learning nodig en de chatbot krijgt zijn intelligentie alleen door een grote hoeveelheid kennis door menselijke inbreng. In 1985 kreeg dit type AI zelfs een naam: <a href="https://www.cambridge.org/core/books/cambridge-handbook-of-artificial-intelligence/gofai/FCF7D6DD921658FE8AE9F2A2B0FECBDD" target="techniek">“Good Old-Fashioned Artificial Intelligence”</a> (GOFAI). Een ander voorbeeld is natuurlijke taalverwerking (NLP), waarbij de kennis van experts met betrekking tot grammatica en de betekenis van woorden van menselijke taal wordt gecodeerd in computermodellen en methoden om taal te interpreteren en te produceren. De GOFAI bevat dus een grote hoeveelheid kennis, die moeilijk te volgen is door een enkele persoon en vaak de kennis van een enkele persoon overtreft. Deze kennis vormt de data van de applicatie en juist door de ingewikkeldheid van die data heeft men dit soort applicaties AI genoemd.
</p>
<a id="kenmerken"></a><br/>
<h2>Kenmerken voor AI-toepassingen</h2>
<p>Na de koppeling tussen AI en data te hebben gelegd geven we hier een aantal argumenten om AI in te zetten.
</p>
<dl>
<dt>Je kunt geen direct algoritme schrijven voor het vraagstuk.
</dt>
<dd>Bij het examencijfer voorbeeld kan de statistische N-Term met een relatief eenvoudig direct algoritme worden bepaald. Als de data complex is dan lukt dat vaak niet en wordt het vinden van het beste statistische algoritme complex.
</dd>
<dt>De invoer die het programma krijgt, is niet volledig te bepalen en is complex .
</dt>
<dd>De invoer is bepalend voor de uitkomst van het algoritme. Als niet alle mogelijke invoer beschikbaar is (b.v. alle mogelijke schetsen van een kat) en bovendien de input niet zo simpel is dat er een direct algoritme kan worden gemaakt dan kan AI worden ingezet.
</dd>
<dt>De oplossingsstrategie is niet bekend.
</dt>
<dd>Met behulp van kunstmatige intelligentie is het vaak mogelijk een oplossingsstrategie te vinden. Deze oplossingsstrategie is dan niet verklarend, maar werkt wel.
</dd>
</dl>
<p>In de volgende secties behandelen we Machine Learning (ML). We beginnen met een algemeen deel <a href="techniek_machine_learning.html" class="book">machine learning</a> waarin we het leerproces algemeen beschouwen. Daarna ga je leren wat de algoritmen van de meest verklaarbare ML technieken <a href="techniek_associatie_analyse.html" class="book">associatie analyse</a> en <a href="techniek_cluster_analyse.html" class="book">cluster analyse</a>. Vervolgens behandelen we de minder verklaarbare resultaten van <a href="techniek_neurale_netwerken.html" class="book">neurale netwerken</a> gebruikt in deep learning (DL) en als laatste de inzet van deze technieken in <a href="techniek_multi_agent.html" class="book">multi-agent systemen</a>.
</p>
<div class ='hammer treeview'>Vragen
<div style="padding-left: 20px;">
<ol>
<li>Leg uit wat het verschil is tussen het algoritme dat het probleem beantwoordt bij een applicatie die op AI is gebaseerd en een applicatie die dat niet is.
<div class="caret doel">antwoord</div>
<ul class="nested">
<li>Bij een op AI gebaseerde applicatie is het algoritme dat het probleem beantwoordt een een statistisch resultaat na training met data. Het algoritme dat het probleem beantwoordt in het andere geval is een bedacht algoritme dat het probleem direct oplost.
</li>
</ul>
</li>
<li>Wanneer is voor een probleemstelling kunstmatige intelligentie te gebruiken? Welke kenmerken ken je?
<div class="caret doel">antwoord</div>
<ul class="nested">
<li>In de theorie worden 3 kenmerken genoemd:
<ul>
<li>Je kunt geen direct algoritme te schrijven voor het vraagstuk.
</li>
<li>De invoer die het programma krijgt, is niet volledig te bepalen en is complex.
</li>
<li>De oplossingsstrategie is niet bekend.
</li>
</ul>
</li>
</ul>
</li>
<li>Geef een voorbeeld van een vraagstuk waar kunstmatige intelligentie toe te passen is. Geef ook aan waarom dit zo is.
<div class="caret doel">antwoord</div>
<ul class="nested">
<li>...
</li>
</ul>
</li>
<li>Geef van de volgende toepassingen aan welke van de 3 kenmerken de grootste rol speelt en verklaar waarom.
<ol style="list-style-type: upper-roman;">
<li>Suggesties voor andere producten in een webwinkel</li>
<li>Het herkennen van postcodes</li>
<li>Het indelen in groepjes van vergelijkbare films.</li>
</ol>
<div class="caret doel">antwoord</div>
<ul class="nested">
<li>
<ol style="list-style-type: upper-roman;">
<li>De invoer die het programma krijgt, is niet volledig te bepalen en is complex. Er is een algoritme voor dit probleem. Echter, de aankopen van andere klanten bepalen welke suggesties je krijgt.</li>
<li>De oplossingsstrategie is niet bekend. Hoewel het voor ons brein heel eenvoudig is om cijfers en letters te herkennen, is het niet mogelijk om uit te leggen hoe je dat precies aanpakt. Een direct algoritme kan niet worden geschreven.</li>
<li>De invoer die het programma krijgt, is niet volledig te bepalen en is complex. Je kunt een aantal kenmerken aan een film koppelen en daar de film op laten indelen. Echter de hele verdeling van de eigenschappen over de films is niet bekend. De AI groepeert dan op de meeste overeenkomsten in de kenmerken.</li>
</ol>
</li>
</ul>
</li>
<li>Geef de termen waarvan AI, DL, ML de afkortingen zijn en zet die in de volgende zin.<br/>
... is een onderdeel van ... dat weer onderdeel is van ...
<div class="caret doel">antwoord</div>
<ul class="nested">
<li>Deep learning is een onderdeel van machine learning dat weer een onderdeel is van artificiële intelligentie.
</li>
</ul>
</li>
<li>Noem een techniek die onder kunstmatige intelligentie valt maar niet onder machine learning.
<div class="caret doel">antwoord</div>
<ul class="nested">
<li>De oudere chatbots of natuurlijke taalverwerking.
</li>
</ul>
</li>
<li>Leg uit wat adaptief vermogen van een applicatie is.
<div class="caret doel">antwoord</div>
<ul class="nested">
<li>Het adaptief vermogen van een applicatie is dat de werking van een applicatie door het aanbieden van trainingsdata kan veranderen.
</li>
</ul>
</li>
<li>Verdedig de uitspraak "Het aanscherpen van de Corona maatregelen is gebaseerd op een statistisch resultaat".
<div class="caret doel">antwoord</div>
<ul class="nested">
<li>Het RIVM houdt bij hoeveel besmettingen er per dag zijn, hoeveel personen er in de ziekenhuizen belanden. De test, om vast te stellen of iemand besmet is, is niet 100% betrouwbaar. Bovendien laat niet iedereen zich testen. Er zijn dus onzekerheden in de data die ervoor zorgen dat de afgeleide informatie statistisch is. Op basis van deze informatie worden besluiten genomen.
</li>
</ul>
</li>
<li>Verdedig de uitspraak "Het aanscherpen van de Corona maatregelen is gebaseerd op een vaste regel".
<div class="caret doel">antwoord</div>
<ul class="nested">
<li>De rijksoverheid heeft een <a href="https://www.rijksoverheid.nl/binaries/rijksoverheid/documenten/publicaties/2021/04/13/routekaart-coronamaatregelen/routekaart-coronamaatregelen.pdf" target="techniek">routekaart</a> voor het reageren op Covid-19 gemaakt waarin verschillende risiconiveaus zijn aangegeven. De grenzen, om van het ene risiconiveau naar het andere over te gaan, zijn door de overheid vastgesteld en lijken vooralsnog onafhankelijk van de virusvariant die er heerst. Hoewel er statistische variatie is in de data zijn de grenzen onveranderlijk gesteld. De grens is vooralsnog niet adaptief.
</li>
</ul>
</li>
</ol>
</div>
</div>
</article>
</body>
</html>