Artificial Intelligence (AI) betekent letterlijk ‘kunstmatige intelligentie’. Hiermee wordt bedoeld: intelligentie van computers die (in zekere mate) vergelijkbaar is aan intelligentie van mensen.
AI maakt het mogelijk om machines en systemen taken te laten uitvoeren, waarbij normaalgesproken menselijke intelligentie voor nodig is. Met AI kunnen computers dus eigenlijk zelf ‘denken’, zonder dat alles van tevoren is geprogrammeerd. Ze kunnen bijvoorbeeld:
Google Maps
Een goed voorbeeld van AI is bijvoorbeeld Google Maps. Google Maps gebruikt verschillende AI-algoritmes om:
ChatGPT
Een ander goed voorbeeld van AI is chatGPT. Nog nooit van gehoord? Dan zou ik zeggen: ff het nieuws checken.
ChatGPT is een nieuwe soort ‘chatbot’. Nee, niet zo eentje die vraagt: ‘is uw vraag nu beantwoord’, wat eigenlijk een retorische vraag is, omdat dit nooit het geval is. Deze chatbot is zo verfijnd en gespecialiseerd dat het natuurlijke dialogen kan voeren met een gebruiker.
Omdat dit zó interessant is, komen we hier later in deze blog nog even op terug.
Voor het gemak, worden de concepten ‘machines, systemen en computers’ vanaf nu ‘computers genoemd’. Scheelt jou weer wat leestijd!
Om computers zelf te kunnen laten denken, is wel degelijk menselijke intelligentie/interventie nodig. De computer moet immers (gedeeltelijk) worden geprogrammeerd.
Er zijn verschillende manieren om een computer zodanig te programmeren dat deze zelf kan nadenken. Deze verschillende manieren bestaan uit AI-algoritmes en AI-technieken. Deze stellen de computer in staat om:
Bovenstaande functionaliteiten zijn in principe de basis van AI, waarmee verschillende soorten algoritmes en technieken kunnen worden toegepast.
In principe zijn er drie vormen van AI, namelijk:
AI speelt een cruciale rol in de moderne app-ontwikkeling. Door AI-technieken zoals machine learning en deep learning kunnen apps patronen herkennen, voorspellingen doen en op basis daarvan beslissingen nemen. Dit kan de gebruikerservaring aanzienlijk verbeteren en de functionaliteit van apps uitbreiden. Bovendien kan AI ontwikkelaars helpen bij het automatiseren van bepaalde taken, zoals testen en debugging, wat leidt tot efficiëntere ontwikkelingsprocessen.
Als je overweegt een AI-app te laten ontwikkelen, is het belangrijk om te begrijpen wat AI kan betekenen voor jouw app. AI kan bijvoorbeeld helpen bij het personaliseren van de gebruikerservaring, het verbeteren van de beveiliging of het automatiseren van interacties met gebruikers door middel van chatbots. Voordat je met de ontwikkeling begint, is het belangrijk om helder te hebben wat jouw doelen zijn en hoe AI daarbij kan helpen.
AI speelt een steeds grotere rol in de ontwikkeling van mobiele apps. Door het inzetten van AI kunnen ontwikkelaars apps maken die beter aansluiten bij de behoeften van de gebruikers. AI kan bijvoorbeeld worden ingezet voor het aanbieden van gepersonaliseerde content, het voorspellen van gebruikersgedrag of het verbeteren van de beveiliging. Daarnaast kan AI ook worden gebruikt om het ontwikkelingsproces zelf efficiënter en effectiever te maken.
Functies aangedreven door AI zijn overal om ons heen in de apps die we dagelijks gebruiken. Zo gebruiken muziekstreaming-apps zoals Spotify machine learning om gepersonaliseerde afspeellijsten te maken op basis van luistergewoontes. En zaken als spraakherkenning, gezichtsherkenning en nog veel meer. Foto-apps gebruiken AI voor beeldherkenning om foto’s te categoriseren en te sorteren. Navigatie-apps zoals Waze gebruiken AI om verkeersinformatie te voorspellen en optimale routes te bepalen. Deze voorbeelden tonen aan hoe AI kan helpen om intelligente functies te creëren die de gebruikerservaring verbeteren.
De toekomst van AI in app-ontwikkeling ziet er veelbelovend uit. AI blijft evolueren en wordt steeds geavanceerder, waardoor de mogelijkheden voor app-ontwikkeling blijven uitbreiden. In de toekomst kunnen we een grotere focus op personalisatie verwachten, waarbij apps steeds beter worden in het afstemmen van inhoud en functionaliteiten op de individuele gebruiker. Daarnaast kunnen we vooruitgang verwachten op het gebied van spraak- en beeldherkenning, waardoor apps nog interactiever en gebruiksvriendelijker worden. Ten slotte zal AI waarschijnlijk een steeds grotere rol gaan spelen in de ontwikkeling van apps zelf, door taken zoals testen en debuggen te automatiseren.
De integratie van AI in app-ontwikkeling vereist een goed begrip van zowel AI-technologieën als app-ontwikkelingsprocessen. Het is belangrijk om te weten hoe AI-algoritmes werken, welke data nodig is voor het trainen van deze algoritmes en hoe deze algoritmes kunnen worden ingezet in een app.
Omdat AI soms zeer gecompliceerd kan zijn, beschrijven we hier de basis van AI. Volgens Neil Jacobstein, kan AI worden gespecificeerd in verschillende lagen (op basis van abstractieniveau).
Hoe ziet dit eruit?
In de basis is AI een subgroep van computerwetenschappen. Je zou AI kunnen zien als de alles omvattende visie voor ‘intelligente computers’.
Een subgroep van AI is ‘machine learning’. Dit is de methode waarbij computers kennis ontwikkelen en taken uitvoeren. Het omvat eigenlijk de methoden, modellen/algoritmes, processen en ondersteunende technologie om AI mogelijk te maken.
Een subgroep van machine learning is ‘deep learning’. Dit is een concept waarbij de computer zelf in staat is om patronen te herkennen en voorspellingen te doen. Je zou dit kunnen zien als ‘machine learning at the largest scale’. Of wel: machine learning met toepassing van neural networks, grote datasets en een krachtig vermogen.
Dus, dit ziet er als volgt uit:
AI is een subgroep van computerwetenschappen.
AI is een techniek die ervoor zorgt dat computers zich kunnen ‘gedragen’ als mensen.
Door AI toe te passen kunnen computers:
Machine learning is een subgroep van AI.
Machine learning zorgt ervoor dat computers leren van data, en op basis hiervan voorspellingen kunnen doen.
Machine learning kan worden toegepast door verschillende methoden:
Supervised learning, ook wel ‘begeleid’ leren, is een methode (algoritme) om computers te trainen op basis van gelabelde voorbeelden.
In dit geval ontvangt het systeem invoergegevens en een gewenste uitvoer. Op basis hiervan kan het systeem voorspellingen doen op nieuwe, niet-gelabelde gegevens.
Supervised learning algoritmes zijn gebaseerd op ‘classification’. Voorbeelden van algoritmen die hierbij horen, zijn:
Unsupervised learning, ook wel ‘ongecontroleerd’ leren, is een methode (algoritme) om computer te trainen, zonder gelabelde gegevens of gewenste uitvoer.
Het systeem dient zelf patronen en structuren te ontdekken op basis van de gegeven data, zonder voorafgaande begeleiding.
Unsupervised learning algoritmes zijn gebaseerd op ‘clustering’. Voorbeelden van algoritmen die hierbij horen zijn:
Reinforcement learning, ook wel ‘versterkend’ leren, is een methode (algoritme) om de computer te trainen, op basis van interactie met een omgeving. Hierbij ontvangt het systeem beloningen en straffen. Het doel is om een strategie te ontwikkelen om zoveel mogelijk beloningen en zo weinig mogelijk straffen te ontvangen.
Voorbeelden van algoritmen die hierbij horen zijn:
Deep learning is een subgroep van machine learning.
Deep learning is een manier waarop computers leren van data. Het is gebaseerd op het concept ‘neural networks’. Het repliceert de werking van het menselijk brein, op basis van kunstmatige neuronen die informatie transporteren en verwerken.
Deep learning wordt gebruikt om complexe patronen in data te leren, op basis van meerdere lagen. Het maakt gebruik van geavanceerde architecturen, zoals:
Deze architectuur is gericht op het verwerken van gestructureerde gegevens. Denk hierbij bijvoorbeeld aan afbeeldingen en video’s. Het maakt gebruik van verschillende lagen, zoals:
Op deze manier kan CNN kenmerken en patronen identificeren.
Deze architectuur is gericht op het verwerken van sequentiële gegevens. Denk hierbij aan tekst of spraak. Het zorgt ervoor dat de uitvoer van een ‘neuron’ kan worden teruggevoerd als invoer naar dezelfde ‘neuron’. Hierdoor zijn RNN’s in staat om context te behouden.
Deze architectuur bestaat uit 2 verschillende neurale netwerken, namelijk:
Een DMB is gericht op het ontdekken van patronen én genereren/aanvullen van gegeves. Het bestaat uit meerdere lagen (van zogenaamde ‘Boltzmann Machines’). Elke laag bestaat uit een verzameling van kunstmatige neuronen. Deze werken samen om gegevens te verwerken en om hiervan te leren, doordat de lagen verbonden zijn waardoor informatie kan doorstromen. Het systeem leert geleidelijk, doordat de gewichten van neuronen worden aangepast.
Transformer netwerken zijn een relatief nieuwe vorm van neurale netwerk architectuur. Ze zijn ontworpen om complexe patronen en structuren in taal te begrijpen én genereren.
Transformer netwerken maken gebruik van self-attention. Dierdoor zijn ze in staat om afhankelijkheden tussen specifieke woorden in een zin te herkennen.
De twee bekendste modellen van Transformer Networks zijn BERT en GPT.
BERT: Bidirectional Encoder Representations from Transformers
BERT is een Transformer-model dat is getraind om de betekenis en context van woorden en zinnen te begrijpen en is gericht op grote hoeveelheden tekst.
GPT: Generative Pre-trained Transformer
GPT is een Transformer-model dat ook is gericht op grote hoeveelheden tekst. Het is getraind om grote hoeveelheden tekst te herkennen én genereren, en dat terwijl de tekst correct is en natuurlijk klinkt. Een goed voorbeeld hiervan is, de naam zegt het al, ChatGPT. Lees hier later in dit artikel meer over.
Kansen
Bedreigingen:
Er zijn veel verschillende toepassingsgebieden voor AI. Alles omvattend kun je AI inzetten voor:
ChatGPT is een web-based programma. Het is een prototype van een nieuwe soort ‘chatbot’, die zó verfijnd en gespecialiseerd dat het natuurlijke dialogen kan voeren met een gebruiker. Enkele voorbeelden van wat deze chatbot kan (om je een beeld te geven van de wauw-factor):
ChatGPT kan zich eigenlijk precies gedragen als jouw eigen personal assistant. Alles wat jij normaalgesproken aan jouw assistent zou vragen, kun je vragen aan ChatGPT. Je kunt dus niet alleen informatie opvragen, maar hem ook taken laten uitvoeren. Zoals:
ChatGPT is gebaseerd op het GPT-model (eerder in dit artikel toegelicht). Het is getraind om grote hoeveelheden tekst te interpreteren en genereren, om natuurlijke (menselijke) dialogen te simuleren. Ook maakt het systeem gebruik van self-attention, zodat het begrijpt welke delen van de input belangrijk zijn en welke niet. Zo kan een relevant antwoord gegeven worden. Daarnaast kan het systeem meerdere lagen van de context onthouden, waardoor ook de relevantie van de antwoorden wordt verhoogd.
Neurale netwerken
ChatGPT maakt gebruik van verschillende lagen van neurale netwerken. Deze maken het mogelijk om de tekst te interpreteren en genereren. De volgende lagen worden toegepast:
Het trainingsproces
Tijdens het bouwen van het model ontvangt het systeem grote hoeveelheden tekst. Vervolgens past het systeem zich systeem past zich steeds meer aan. Het leert (semantische) betekenissen, verbanden en zinsstructuren.
Beperkingen
ChatGPT is een statistisch model. Het is getraind, en beschikt niet over échte menselijke intelligentie. Het kan daarom beperkt zijn in de mate waarin het systeem de input begrijpt. Daarnaast baseert ChatGPT zijn antwoorden op informatie die het kan vinden op het internet. Dit betekent dat er beperkingen zijn in de nauwkeurigheid en context van de antwoorden.
Voorbeeld
Als ik vraag aan ChatGPT of hij zichzelf op een laagdrempelige manier wil voorstellen, is dit het antwoord:
‘’Natuurlijk kan ik dat! Ik ben ChatGPT, een vriendelijk computerprogramma dat is ontworpen om met mensen te praten en vragen te beantwoorden. Ik ben getraind op heel veel informatie en kennis, zodat ik je kan helpen met allerlei onderwerpen.
Ik werk door de woorden die je typt te lezen en te begrijpen. Daarna gebruik ik mijn opgeslagen informatie om je een passend antwoord te geven. Ik probeer zo behulpzaam en nauwkeurig mogelijk te zijn, maar soms kan ik ook fouten maken.
Je kunt me alles vragen! Of het nu gaat om huiswerk, weetjes, spelletjes of gewoon een gezellig gesprek, ik sta voor je klaar! Dus, stel gerust je vragen en ik zal mijn best doen om je te helpen!”
Hebben we je nieuwsgierigheid getriggerd? Of heb je behoefte aan wat meer handvaten bij het ontwikkelen van jouw app? Bekijk dan vooral:
Ben je benieuwd hoe je AI kan toepassen binnen jouw app (idee)? Neem vooral (vrijblijvend) contact met ons op! Wij helpen je graag verder.
Ik help je graag met al je vragen. Je mag me altijd even bellen of mailen.