Algoritmes

Wat zijn ze en waarom zijn ze belangrijk

Een algoritme is een lijst van stapsgewijze instructies ontworpen om een specifieke taak uit te voeren of een specifiek probleem op te lossen. Als je er op deze manier over nadenkt, zijn algoritmes alomtegenwoordig. Zo is een recept voor Franse uiensoep een algoritme. Combineer deze invoer om een uitvoer te genereren. Algoritmes werken in principe op dezelfde manier met computers. Ze zetten bijvoorbeeld binaire getallen om in letters zodat je kunt lezen wat er op je tabletscherm staat of bevelen aandelen aan op basis van je risicotolerantie. Algoritmes zijn fundamenteel in moderne computing. Deze pagina gaat over computeralgoritmes.

Algoritmes - een korte geschiedenis

Algoritmes voelen wellicht als een nieuwe uitvinding, maar de term is meer dan een millennium oud en dateert terug naar de Perzische wiskundige Muḥammad ibn Mūsā al-Khwārizmī (in het Latijn 'Algoritmi') die aanzienlijke bijdragen heeft geleverd aan de wiskunde. In 1800 werd het concept omarmd door de Duitse wiskundige Carl Friedrich Gauss die een eenvoudig algoritme ontwierp om te bepalen op welke dag van het kalenderjaar Pasen valt.

In het midden van de 20e eeuw maakten algoritmes hun entree in de computerwereld, toen de beroemde Britse computerwetenschapper Alan Turing een theorie bedacht over hoe machines een complexe reeks instructies konden uitvoeren. Hoewel zijn primitieve schaakalgoritme 'Turochamp' tijdens Turing's leven nooit een mens versloeg, vormde het de basis voor wat we vandaag de dag kennen als kunstmatige intelligentie.

Met het toenemen van de rekenkracht in de daaropvolgende decennia, nam ook de behoefte aan complexere algoritmes toe. Vandaag de dag zijn algoritmes fundamenteel voor moderne computers. Ze helpen ons van A naar B te rijden, de volgende film te kiezen of zelfs verliefd te worden.

Veel computerprogramma's zijn eigenlijk een opeenvolging van algoritmes, geschreven op een manier die de computer kan begrijpen.

Productie

Voorspellende analyse en AI leveren een succesvolle klantervaring

Het Amerikaans basketbalteam Orlando Magic gebruikt mobiele app-gegevens en machine learning-algoritmes om de ervaring van fans te personaliseren en realiseerde vier keer zo veel in-app-aankopen als daarvoor.

Algoritmes in de hedendaagse wereld

Algoritmes vervangen steeds meer menselijke beslissingen in de samenleving en sommige hebben het potentieel om levens te veranderen. Daarom zijn er mensen die vinden dat we eerlijkheid in algoritmes verder moeten onderzoeken, vooral in het strafrecht en de gezondheidszorg.

Benieuwd wie die algoritmes ontwikkelt waarmee je de maatschappij voor je ogen ziet veranderen? Deze whitepaper van Harvard Business Review kijkt naar de mensen achter de vooruitgang op het gebied van computers en automatisering die de wereld vooruit stuwen.

Algoritmes kunnen zelfs helpen het regenwoud te redden. Door dagelijks miljoenen beelden te doorzoeken op vroege tekenen van ontbossing, kunnen computer vision-algoritmes beleidsmakers en hulporganisaties helpen om bedreigde bossen te beschermen voordat het te laat is.

Het Netflix-algoritme

Als jij Netflix kijkt, houden algoritmen je in de gaten. Het wordt de 'Netflix Recommendation Engine' genoemd en het bestaat uit geavanceerde algoritmes die rekening houden met wat het bedrijf over jou weet om te voorspellen hoe waarschijnlijk het is dat je een bepaalde titel uit de catalogus zult bekijken. Vandaag de dag wordt 80% van de schermtijd op Netflix gerealiseerd via personalisatie. Invoer voor het algoritme zijn je kijkgeschiedenis, je favoriete genres en de tijd van de dag waarop je kijkt. Hoe meer Netflix je kijkt, hoe nauwkeuriger de algoritmes, waardoor je weer meer Netflix wilt kijken. En zo is het cirkeltje rond. 

Hoe algoritmes werken

Om te werken, hebben algoritmes vijf eigenschappen nodig:

  1. Invoer: Goed gedefinieerde data die worden getransformeerd tijdens de verwerking. 
  2. Uitvoer: Data afkomstig van die berekening. 

  3. Bepaaldheid: Specifieke berekeningsstappen. 
  4. Effectiviteit: Haalbare berekeningsstappen. 
  5. Eindigheid: Een eindigde hoeveelheid stappen.

Dat brengt ons bij wiskundige en op regels gebaseerde algoritmes.

Wiskunde algoritmes
Omdat de meeste algoritmes numeriek van aard zijn, is het geen verrassing dat veel algoritmes gebaseerd zijn op wiskunde. Neem het meest eenvoudige voorbeeld: 1 + 1 = 2. Dit is een wiskundig algoritme waar de enen de invoer zijn en de twee de uitvoer is. Extrapoleer dit voorbeeld en je krijgt een aantal van de belangrijkste algoritmes die vandaag de dag worden gebruikt, waaronder algoritmes die signalen opsplitsen in frequenties, computers coderen en zelfs de Google-zoekpositie van een website bepalen.

Regelgebaseerde algoritmes
Naarmate mensen meer leren over AI, zien we dat sommige dingen niet enkel verklaard kunnen worden met wiskundige constructies. Als je tekstanalysesoftware ontwikkelt en je hebt een algoritme nodig om een zelfstandig naamwoord in het meervoud te zetten, dan kun je niet gewoon een -s- toevoegen aan elk zelfstandig naamwoord. Denk aan uitzonderingen zoals matrix en matrices. We hebben regels voor die speciale gevallen. Op regels gebaseerde algoritmes zijn het beste voor het analyseren van gegevens die een mix van numerieke en kwalitatieve attributen bevatten.

Natuurlijk kun je meer dan één type algoritme gebruiken om een bepaald probleem op te lossen, bijvoorbeeld om iemands inkomen te voorspellen. Om deze berekening uit te voeren, zou je een wiskundig algoritme kunnen gebruiken waarbij je variabelen zoals leeftijd, postcode, opleiding, enz. in overweging neemt. Je zou ook een op regels gebaseerd algoritme kunnen gebruiken dat bijvoorbeeld inkomen voorspelt op basis van leeftijd en postcode. Maar welke manier is de beste?

Dat brengt ons bij concurrerende algoritmes. Algoritmes worden vaak tegen elkaar afgewogen om te zien welke het meest effectief is. Laten we eens kijken naar het voorbeeld van de soep: er zijn concurrerende recepten die allemaal resulteren in Franse uiensoep. Hetzelfde geldt voor computeralgoritmes. Misschien is algoritme A langzamer maar accurater dan algoritme B. Maar B is eenvoudiger om te valideren. Het juiste algoritme voor een bepaalde taak is afhankelijk van de verschillende criteria die je gebruikt om de taak te beoordelen. Heeft het de taak volbracht? Heeft het de taak snel volbracht? Heeft het de taak efficient volbracht?

Geïnspireerd door de natuur

Vandaag de dag vertrouwen de meeste AI-projecten op meerdere data science-technologieën. Volgens Gartner heet het gebruik van een combinatie van verschillende AI-technieken om het beste resultaat te bereiken composite AI

Algoritmes kunnen worden gezien als een shortcut naar menselijk denken. Als zodanig zijn ze vaak geïnspireerd op elementen uit de natuur. Genetische algoritmes kopiëren bijvoorbeeld de biologie van hoe organismen in de loop van de tijd evolueren. Deze algoritmes zullen samen gecombineerde beslissingspunten opleveren, om nakomelingen te creëren met de eigenschappen van hun ouders. Ook neurale netwerken zijn geïnspireerd op het biologische brein. Ze worden gebruikt om verschillende problemen op te lossen, zoals computer vision en natuurlijke-taalverwerking.

Populaire soorten algoritmes

Algoritmes kunnen worden onderverdeeld in basiscategorieën en geavanceerde categorieën.

Basis
Je beseft het misschien niet, maar algoritmes sturen zelfs de meest elementaire computerfuncties aan. Hier zijn drie basisalgoritmes die tegenwoordig veel worden gebruikt.

Compressiealgoritmes
Wanneer de meeste mensen een computer gebruiken, doen ze iets alledaags, zoals een artikel lezen of afbeeldingen bekijken. Dit is mogelijk door algoritmes die bestanden comprimeren zodat ze kunnen worden bekeken, gedeeld en hersteld. Laten we een jpg-bestand als voorbeeld nemen. Wanneer je een foto bekijkt van de nieuwe boomhut van je neefje, kijk je eigenlijk naar een bitmap-afbeelding die door een zogenaamd 'lossy compressie'-algoritme is gehaald om miljoenen numerieke representaties van pixels om te zetten in de afbeelding op je scherm waar je zo blij van wordt. 

Binair zoekalgoritme
Binair zoeken is een snel zoekalgoritme dat werkt op basis van het verdeel en heers principe. Stel, je zoekt op je laptop naar belastingaangifte2020.pdf. Met binair zoeken kiest het algoritme een observatie in het midden van de gegevensset en controleert of het gevonden subject_id het gewenste subject_id is. Als dit het geval is, stopt het algoritme. Is dit niet het geval, dan kan het algoritme, omdat de tabel gesorteerd is, bepalen of de gewenste observatie boven of onder de gevonden observatie ligt en het zoekbereik herdefiniëren zodat het de helft van het originele bestand is. Het algoritme kiest dan de observatie in het midden van het nieuwe zoekbereik en het proces herhaalt zich tot de pdf is gevonden. Ja, je hebt vorig jaar te weinig belasting betaald. 

Vermenigvuldigingsalgoritme
Er zijn zelfs eenvoudigere algoritmes dan hierboven staan beschreven. Sterker nog, een van de populairste algoritmes is een algoritme dat getallen vermenigvuldigt. Bijna alles wat je met een algoritme doet, vereist dat twee of meer getallen worden vermenigvuldigd. Zelfs bij een op woorden gebaseerd gebied zoals tekstanalyse, evalueer je zaken als woordfrequenties en documentfrequenties, en daar zit vaak een vermenigvuldigingsfactor in. 

Geavanceerd
Aan de andere kant van het spectrum staan geavanceerde algoritmes. Deze bouwen voort op basisalgoritmes met nieuwe ideeën. En ze gaan vaak over het verwerken van enorme datasets.

Machine learning-algoritmes
Machine learning gebruikt algoritmes die invoergegevens ontvangen en analyseren om uitvoerwaarden binnen een aanvaardbaar bereik te voorspellen. Wat zo opvallend is aan deze algoritmes, is dat ze leren van andere algoritmes. Terwijl nieuwe gegevens worden doorgegeven aan algoritmes voor machine learning, leren en optimaliseren ze hun activiteiten om de prestaties te verbeteren, waardoor ze na verloop van tijd intelligenter worden. Er zijn vier typen machine learning-algoritmes: supervised (onder toezicht), semisupervised (deels onder toezicht), unsupervised (zonder toezicht) en reinforcement (versterking).

Deep learning-algoritmes
Deep learning-algoritmes gebruiken meerdere lagen om geleidelijk kenmerken van een hoger niveau uit de invoergegevens te extraheren. Deze algoritmes bootsen het menselijk brein na en proberen soortgelijke conclusies te trekken als mensen door gegevens voortdurend te analyseren met behulp van zogenaamde kunstmatige neurale netwerken. De uitvoer van deze complexe algoritmes kan levensveranderend zijn en gebruikt worden voor zelfrijdende auto's of het in een oogwenk vertalen van boeken van het Engels naar het Arabisch.

Gradient boosting-algoritmes
Voorspellingsmodellen helpen bedrijven om bijvoorbeeld de verkoop en de prijzen van goederen te voorspellen op basis van de verwachte vraag. Gradient boosting is een krachtig algoritme voor het bouwen van deze voorspellingsmodellen. Het werkt door zwakke beslissingsbomen te boosten tot sterke beslissingsbomen, waardoor de nauwkeurigheid van een voorspelling wordt verbeterd. Het algoritme staat bekend om zijn snelheid en nauwkeurigheid, vooral bij grote en complexe datasets. 

Welk algoritme moet je gebruiken?

Beginners willen vaak weten welk algoritme ze moeten gebruiken. Het antwoord is afhankelijk van veel verschillende factoren:

  • De omvang, kwaliteit en aard van de data. 
  • De beschikbare berekeningstijd. 
  • De urgentie van de taak. 
  • Wat je wilt doen met de data.

Zelfs een ervaren gegevenswetenschapper kan niet voorspellen welk algoritme het beste zou presteren zonder er verschillende te proberen. Bij het kiezen van een algoritme, is het slim om de volgende aspecten te overwegen: nauwkeurigheid, trainingstijd en gebruiksgemak. Veel gebruikers vinden nauwkeurigheid het belangrijkst, terwijl beginners zich vaak richten op algoritmes die ze het beste kennen. Wanneer je een dataset voorgeschoteld krijgt, is het eerste waar je over moet nadenken hoe je resultaten verkrijgt, ongeacht hoe die resultaten eruitzien. Als je resultaten hebt en bekend bent met de data, kun je ervoor kiezen om meer tijd te besteden aan het gebruik van geavanceerdere algoritmes om je inzicht in de gegevens te vergroten en zo de resultaten nog verder te verbeteren. Lees meer over het selecteren van algoritmes.

Vervolgstappen

Bij SAS ben je op de juiste plaats om meer te leren over algoritmes.

Nog maar tien jaar geleden vereiste het werken met algoritmes een universitaire graad en een encyclopedisch begrip van wiskunde en informatica. Tegenwoordig zijn 's werelds meest geavanceerde algoritmes netjes samengebracht in software, zodat zelfs intensieve gebruikers baanbrekend werk kunnen leveren zonder te hoeven puzzelen met formules.  

Eén zo'n oplossing is SAS® Visual Data Mining and Machine Learning. In dit product zijn enkele van de meest geavanceerde algoritmes ter wereld opgenomen, waarmee gebruikers van alle achtergronden complexe analytische problemen kunnen oplossen. Deze zeer goed beoordeelde software biedt een overvloed aan algoritmes om je te helpen bij het maken van voorspellingsmodellen en het identificeren van winstgevende zakelijke kansen.

Neem contact op met SAS en kom erachter wat we voor u kunnen doen.