Kunstmatige Intelligentie vs Klassieke Algoritmische Programmering

Naar Kunstmatige Intelligentie vanuit Klassieke Algoritmische Programmering

Anthony Quattrone, PhD 30 april 2022

Vooruitgang in kunstmatige intelligentie heeft het mogelijk gemaakt om complexe computationele problemen efficiënt op te lossen die voorheen moeilijk, onhandelbaar of sterk combinatorisch waren. Deze problemen omvatten gezichtsherkenning, objectdetectie, routeplanning en zeer gepersonaliseerde online aanbevelingssystemen.

De uitdaging voor organisaties die de toekomst tegemoet gaan, is voor strategische besluitvormers om te kiezen tussen traditionele klassieke benaderingen en benaderingen met kunstmatige intelligentie voor het oplossen van complexe computationele problemen. Beide methoden hebben unieke uitdagingen bij het leveren van een robuust systeem op het gebied van nauwkeurigheid, kosten, implementatie-moeilijkheidsgraad en onderhoudbaarheid.

De klassieke algoritmische programmeerbenadering voor het oplossen van problemen

Het klassieke programmeerparadigma omvat het oplossen van problemen via prescriptieve algoritmen en het gebruik van een goed gedefinieerde reeks instructies. Inputs worden gedefinieerd en begrensd, waarbij algoritmen worden ontwikkeld om inputs te verwerken via gedefinieerde programmeerparadigma's (Procedureel, Objectgeoriënteerd, Functioneel en Logisch) om outputs te produceren.

Het ontdekken van algoritmen om temporeel en ruimtelijk efficiënte problemen op te lossen is notoir uitdagend. In de computationele complexiteitstheorie zijn problemen ofwel P (Polynomial), NP (Non-deterministic Polynomial), NP-Complete of NP-Hard. Polynomiale problemen kunnen snel worden opgelost en geverifieerd, terwijl niet-polynomiale problemen dat niet kunnen. NP-problemen zijn moeilijk op te lossen via klassieke algoritmische benaderingen.

Een voorbeeld van een P-probleem is het vinden van het kortste pad tussen twee punten, terwijl een voorbeeld van een NP-probleem het handelsreizigerprobleem is: wanneer een reeks locaties wordt gegeven, wat is dan het optimale pad om alle locaties te bezoeken en daarbij de kortst mogelijke afstand af te leggen. Het toeval wil dat veel van de problemen die momenteel computationeel moeten worden opgelost in de NP-categorie vallen. In de meeste gevallen is een benaderende oplossing voor praktische doeleinden vaak voldoende. Bij de aanpak van het dagelijks leven bedenken mensen altijd benaderende oplossingen, d.w.z. navigatie.

Er zijn implementatie-uitdagingen bij het efficiënt oplossen van problemen volgens een klassiek algoritmisch paradigma. Algoritmische complexiteit is een tak van de informatica die zich bezighoudt met hoe efficiënt algoritmes draaien in het temporele (tijdscomplexiteit) en ruimtelijke domein (ruimtecomplexiteit).

Hoewel er veel verschillende manieren zijn om algoritmen te implementeren, wordt een voor de hand liggende maar mogelijk inefficiënte manier om een algoritme te implementeren vaak een “naïef” algoritme genoemd. De meest efficiënte algoritmen zijn niet gemakkelijk te ontdekken, en computerwetenschappers werken al vele jaren om de beste algoritmen te vinden om klassen van problemen op te lossen. Algoritmen in productiesystemen worden op tijdelijk en ruimtelijk efficiënte manieren geïmplementeerd. De grootste softwarebedrijven waarborgen de hoogste algoritmische standaarden via peer-programming, vergelijkbaar met peer-review. Het vereist vele jaren van training en een hoge mate van vaardigheid om algoritmen efficiënt te implementeren.

In praktische zin, hoewel programmeertechnieken zijn geëvolueerd en programmeertalen (d.w.z. C, C++, Java, JavaScript, PHP, Python) in populariteit zijn gevarieerd, zijn de basisprincipes hetzelfde gebleven sinds Bell Labs in de jaren '70 de eerste C-modules schreef. Er zijn enkele praktische manieren om theoretisch uitdagende problemen in productie te laten werken, zoals het gebruik van gedistribueerde systemen. Geavanceerde benaderingen gaan gepaard met hogere kosten en vallen buiten de mogelijkheden van alle behalve de meest technologisch vooruitstrevende organisaties.

Gezien de complexiteit van klassieke algoritmische programmeerbenaderingen, hebben organisaties het al lang moeilijk gevonden om effectieve teams te bouwen die dergelijke systemen intern kunnen produceren. Bovendien hebben velen ook moeite gehad om externe providers te vinden om niche-uitdagingen op te lossen die theoretisch mogelijk te implementeren zijn. Het ontwerpen van een specifiek algoritme wordt aanzienlijk complexer naarmate de complexiteit van het probleem toeneemt. Dit geldt in het bijzonder voor multivariate problemen. Het is het beste om klassieke algoritmische benaderingen te gebruiken voor situaties waarin een algoritme een probleem snel kan oplossen en in de meeste gevallen werkt.

De AI-benadering voor het oplossen van problemen

Het paradigma van kunstmatige intelligentie probeerde problemen algemeen op te lossen door inputs en gewenste outputs in een systeem te voeden en het systeem te laten leren hoe problemen op te lossen. Huidige AI-benaderingen draaien op klassieke computers via klassieke programmeertechnieken. De meest opwindende AI-methoden zijn neurale netwerken en reinforcement learning.

Kunstmatige neurale netwerken maken gebruik van menselijk begrip van hoe het menselijk brein leert en problemen generaliseert. Reinforcement learning gebruikt agents die een doelstatus en een reeks scenario's invoeren. Het leeralgoritme behoudt voorkeursuitkomsten en laat ongewenste uitkomsten los over meerdere iteraties. Reinforcement learning is analoog aan operante conditionering. De agent leert hoe het doel kan worden bereikt over veel trainingsiteraties.

Een vereiste voor het trainen van oplossingen met kunstmatige intelligentie is ofwel een goed gedefinieerde uitgebreide dataset, meestal samengesteld met behulp van een combinatie van verschillende datawarehuizen of crowdsourcing, of een systeem kan leren een doelstatus te bereiken door een reeks iteraties uit te voeren. Een voorbeeld hiervan is een systeem dat een spel tegen zichzelf speelt, zoals Schaak of Go, om verder te leren hoe het strategieën kan ontwikkelen om de resultaten te verbeteren. Kunstmatige netwerken en reinforcement learning worden beide uitgevoerd op scenario's waarvoor ze niet zijn getraind en op vergelijkbare wijze geëvalueerd als andere machine learning-benaderingen. Deze benaderingen generaliseren goed en bieden efficiënte oplossingen voor een bepaalde klasse van problemen. Op kunstmatige intelligentie gebaseerde oplossingen zijn geschikt voor problemen die niet gemakkelijk kunnen worden gedefinieerd met een reeks instructies; in plaats daarvan vereisen ze meer 'intuïtie' en waardeoordelen.

Doorgaans worden kunstmatige intelligentiesystemen getraind met behulp van datasets en later geëvalueerd op een evaluatieset. Hoe meer hoogwaardige trainingsdata in een AI-systeem worden ingevoerd, des te groter de kans dat het systeem op hoog niveau presteert. Het voordeel van AI-benaderingen is dat ze in de loop der tijd kunnen blijven verbeteren naarmate het systeem meer leert. Zo kunnen complexe problemen worden gegeneraliseerd en opgelost door computersystemen. Dit omvat problemen die traditioneel door menselijke inbreng werden opgelost, hoewel smalle AI kan worden gezien als een aanvulling op bestaande menselijke inbreng om betere resultaten te waarborgen.

Kunstmatige intelligentie en Machine Learning worden al lang met de nodige voorzichtigheid bekeken door organisaties vanwege het ontbreken van traceerbaarheid en bepaalbaarheid van dergelijke systemen met betrekking tot hoe ze zullen reageren op use cases. AI kan daardoor in zeldzame omstandigheden optreden en onvoorspelbaar reageren wanneer het het minst wordt verwacht. Daarom is het belangrijk om duidelijk gedefinieerde use cases te hebben voor wanneer AI wordt gebruikt, welke foutniveaus worden geaccepteerd en hoe de outputs die door AI-systemen worden geproduceerd door menselijke invoer worden beoordeeld om de nauwkeurigheid te waarborgen.

Over het algemeen voorspellen we dat de verbeterde nauwkeurigheid die AI-systemen zullen brengen, in combinatie met de efficiëntie die wordt behaald door menselijke inbreng te augmenteren, een te grote financiële prikkel zal vormen voor veel organisaties om in de komende jaren te negeren; AI-systemen zullen alomtegenwoordig worden.

Wanneer te kiezen voor Artificial Intelligence en wanneer de klassieke algoritmische programmeerbenadering te selecteren om problemen op te lossen

Hoewel er geen vaste en snelle regels zijn voor wanneer u welke benadering moet gebruiken, is als algemene regel dat problemen die benaderde oplossingen vereisen en doelgerichte langetermijnplanning, complexe patroonherkenning en verwerking van een veelheid aan variabelen met zich meebrengen, beter geschikt zijn voor AI. Klassieke algoritmische benaderingen zijn beter geschikt voor exacte of bijna-optimale oplossingen die zware logica en berekeningen met zich meebrengen.

Het kiezen van de juiste aanpak kan aanzienlijke voordelen opleveren voor uw organisatie, terwijl het kiezen van een minder optimale methode kan leiden tot aanzienlijk kapitaalverlies, aangezien technologische projecten duur zijn. Het vaak kiezen voor bewezen en demonstreerbare systemen zoals Telemus AI™ kan organisaties helpen succes te verzekeren in hun digitale transformatie met kunstmatige intelligentie.

Neem vandaag nog contact met ons op voor een gratis adviesgesprek over hoe de Telemus AI™ in uw organisatie kan worden geïntegreerd.