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.
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
Hoe algoritmes werken
Om te werken, hebben algoritmes vijf eigenschappen nodig:
- Invoer: Goed gedefinieerde data die worden getransformeerd tijdens de verwerking.
- Uitvoer: Data afkomstig van die berekening.
- Bepaaldheid: Specifieke berekeningsstappen.
- Effectiviteit: Haalbare berekeningsstappen.
- 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?
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.