Andersons vinkel
10 Bästa Algoritmer för Maskinlärning

Även om vi lever i en tid av extraordinär innovation inom GPU-accelererad maskinlärning, presenterar de senaste forskningsartiklarna ofta (och framträdande) algoritmer som är flera decennier gamla, i vissa fall 70 år gamla.
Vissa kan hävda att många av dessa äldre metoder hör till kategorin “statistisk analys” snarare än maskinlärning, och föredrar att datera maskinlärningens uppkomst tillbaka till 1957, med uppfinningen av Perceptron.
Med tanke på den utsträckning till vilken dessa äldre algoritmer stöder och är sammanflätade med de senaste trenderna och rubrikerna inom maskinlärning, är det en tvivelaktig ståndpunkt. Så låt oss ta en titt på några av de “klassiska” byggstenarna som ligger till grund för de senaste innovationerna, samt några nyare insatser som gör en tidig ansats för att komma in i AI-hallen.
1: Transformers
2017 ledde Google Research en forskningssamarbete som resulterade i artikeln Attention Is All You Need. Arbetet presenterade en ny arkitektur som främjade uppmärksamhetsmekanismer från “piping” i encoder/decoder och återkommande nätverksmodeller till en central transformationell teknologi i sin egen rätt.
Tillvägagångssättet kallades Transformer, och har sedan blivit en revolutionerande metodik inom Natural Language Processing (NLP), som driver, bland många andra exempel, den autoregressiva språkmodellen och AI-poster child GPT-3.

Transformers löste elegant problemet med sekvenstransduktion, också kallat “transformation”, som sysslar med bearbetning av ingångssekvenser till utgångssekvenser. En transformer tar också emot och hanterar data på ett kontinuerligt sätt, snarare än i sekventiella batchar, vilket tillåter en “beständighet av minne” som RNN-arkitekturer inte är utformade för att uppnå. För en mer detaljerad översikt av transformers, se vår referensartikel.
I motsats till de återkommande neurala nätverken (RNN) som hade börjat dominera ML-forskning under CUDA-eran, kunde Transformer-arkitekturen också enkelt parallelliseras, vilket öppnade vägen för att produktivt hantera en mycket större mängd data än RNN.
Vanligt användningsområde
Transformers tog den offentliga fantasin 2020 med utgivningen av OpenAI:s GPT-3, som skröt med en då rekordbrytande 175 miljarder parametrar. Detta tycktes vara en imponerande prestation som senare överträffades av senare projekt, som 2021 utgivning av Microsofts Megatron-Turing NLG 530B, som (som namnet antyder) har över 530 miljarder parametrar.

En tidsaxel för hyperskala Transformer NLP-projekt. Källa: Microsoft
Transformer-arkitekturen har också korsat över från NLP till datorseende, och driver en ny generation av bildsyntesramverk som OpenAI:s CLIP och DALL-E, som använder text>bild-domänmappning för att slutföra ofullständiga bilder och syntetisera nya bilder från tränade domäner, bland en växande mängd relaterade tillämpningar.

DALL-E försöker slutföra en partiell bild av en byst av Plato. Källa: https://openai.com/blog/dall-e/
2: Generativa Adversariala Nätverk (GANs)
Även om transformers har fått en extraordinär mediebevakning genom utgivningen och antagandet av GPT-3, har Generativa Adversariala Nätverk (GAN) blivit ett igenkännligt varumärke i sin egen rätt, och kan så småningom komma att ansluta sig till deepfake som ett verb.
Först föreslagen 2014 och främst används för bildsyntes, består en Generativ Adversarial Network arkitektur av en Generator och en Discriminator. Generatoren cyklar genom tusentals bilder i en dataset, iterativt försöker återskapa dem. För varje försök, graderar Diskriminatoren Generatons arbete och skickar tillbaka Generatoren för att göra bättre, men utan någon insikt i det sätt som den tidigare rekonstruktionen felade.

Källa: https://developers.google.com/machine-learning/gan/gan_structure
Detta tvingar Generatoren att utforska en mångfald av vägar, istället för att följa de potentiella blindgator som skulle ha uppstått om Diskriminatoren hade sagt att den gick fel (se #8 nedan). När utbildningen är över, har Generatoren en detaljerad och omfattande karta över relationer mellan punkter i datasetet.

Från artikeln Improving GAN Equilibrium by Raising Spatial Awareness: ett nytt ramverk cyklar genom den ibland mystiska latenta rummet för en GAN, vilket ger responsiv instrumentering för en bildsyntesarkitektur. Källa: https://genforce.github.io/eqgan/
Med analogi, detta är skillnaden mellan att lära sig en enda tråkig pendling till centrala London, eller att noggrant förvärva The Knowledge.
Resultatet är en högnivåsamling av funktioner i det latenta rummet för den tränade modellen. Den semantiska indikatorn för en högnivåfunktion kunde vara ‘person’, medan en nedgång i specificitet relaterad till funktionen kan avslöja andra lärdade egenskaper, såsom ‘man’ och ‘kvinna’. På lägre nivåer kan underfunktionerna brytas ned till, ‘blond’, ‘kaukasisk’, etc.
Inbäddning är ett betydande problem i det latenta rummet för GAN och encoder/decoder-ramverk: är leendet på en GAN-genererad kvinnlig ansikte en inbäddad funktion av hennes ‘identitet’ i det latenta rummet, eller är det en parallell gren?

GAN-genererade ansikten från thispersondoesnotexist. Källa: https://this-person-does-not-exist.com/en
De senaste åren har sett en växande mängd nya forskningsinitiativ i detta avseende, kanske banar väg för funktionnivå, Photoshop-liknande redigering av det latenta rummet för en GAN, men för tillfället är många transformationer effektivt ‘allt eller inget’-paket. Noterbart, NVIDIAs EditGAN-utgivning i slutet av 2021 uppnår en hög nivå av tolkbarhet i det latenta rummet genom att använda semantisk segmentering av masker.
Vanligt användningsområde
Bredvid deras (i själva verket ganska begränsade) inblandning i populära deepfake-videor, har bild/video-centrerade GAN har förökat sig under de senaste fyra åren, fascinerande forskare och allmänheten. Att hålla jämna steg med den yrande takten och frekvensen av nya utgivningar är en utmaning, men GitHub-repositoriet Awesome GAN Applications syftar till att tillhandahålla en omfattande lista.
Generativa Adversariala Nätverk kan i teorin härleda funktioner från vilken väldefinierad domän som helst, inklusive text.
3: SVM
Ursprungligen 1963, är Support Vector Machine (SVM) en kärnalgoritm som dyker upp ofta i ny forskning. Under SVM kartlägger vektorer den relativa dispositionen av datapunkter i en dataset, medan stöd vektorer avgränsar gränserna mellan olika grupper, funktioner eller egenskaper.

Stödvektorer definierar gränserna mellan grupper. Källa: https://www.kdnuggets.com/2016/07/support-vector-machines-simple-explanation.html
Den härledda gränsen kallas en hyperplan.
På låga funktionsnivåer är SVM tvådimensionell (bild ovan), men där det finns ett högre erkänt antal grupper eller typer, blir det tredimensionell.

En djupare array av punkter och grupper kräver en tredimensionell SVM. Källa: https://cml.rhul.ac.uk/svm.html
Vanligt användningsområde
Eftersom Support Vector Machines kan effektivt och agnostiskt hantera högdimensionell data av många slag, dyker de upp bredvid en mängd olika maskinlärningssektorer, inklusive deepfake-detektion, bildklassificering, hatprat-klassificering, DNA-analys och befolkningsstrukturprediktion, bland många andra.
4: K-Means Clustering
Clustering i allmänhet är en oövervakad inlärning som syftar till att kategorisera datapunkter genom täthetsuppskattning, skapar en karta över distributionen av den data som studeras.

K-Means clustering avslöjar segment, grupper och samhällen i data. Källa: https://aws.amazon.com/blogs/machine-learning/k-means-clustering-with-amazon-sagemaker/
K-Means Clustering har blivit den mest populära implementeringen av detta tillvägagångssätt, som herdar datapunkter till distinkta ‘K-grupper’, som kan indikera demografiska sektorer, online-samhällen eller någon annan möjlig hemlig aggregation som väntar på att upptäckas i råa statistiska data.

Kluster bildas i K-Means-analys. Källa: https://www.geeksforgeeks.org/ml-determine-the-optimal-value-of-k-in-k-means-clustering/
Värdet K i sig är den bestämmande faktorn i processens användbarhet, och i att fastställa ett optimalt värde för en kluster. Initialt tilldelas värdet K slumpmässigt, och dess funktioner och vektoregenskaper jämförs med dess grannar. De grannar som mest liknar datapunkten med det slumpmässigt tilldelade värdet tilldelas dess kluster iterativt tills datat har gett alla grupperingar som processen tillåter.
Plotten för den kvadrerade felet, eller ‘kostnaden’ för olika värden bland klustren kommer att avslöja en armbågs punkt för datat:

Armbågs punkten i en klustergraf. Källa: https://www.scikit-yb.org/en/latest/api/cluster/elbow.html
Armbågs punkten är liknande i koncept till det sätt som förlust plattar ut till avtagande avkastning i slutet av en utbildningssession för en dataset. Det representerar den punkt vid vilken inga ytterligare distinktioner mellan grupper kommer att bli uppenbara, vilket indikerar ögonblicket att gå vidare till efterföljande faser i datapipelinen, eller att rapportera resultaten.
Vanligt användningsområde
K-Means Clustering, av uppenbara skäl, är en primärteknologi i kundanalys, eftersom den erbjuder en tydlig och förklarlig metodik för att översätta stora mängder kommersiella poster till demografiska insikter och ‘leads’.
Utöver detta tillämpningsområde används K-Means Clustering också för jordskredsprediktion, medicinsk bildsegmentering, bildsyntes med GAN, dokumentklassificering, och stadsplanering, bland många andra potentiella och faktiska användningsområden.
5: Random Forest
Random Forest är en ensemble-inlärning som genomsnittsar resultatet från en mängd besluts-träd för att fastställa en övergripande förutsägelse för resultatet.

Källa: https://www.tutorialandexample.com/wp-content/uploads/2019/10/Decision-Trees-Root-Node.png
Om du har forskat det, även om du bara har sett Tillbaka till framtiden-trilogin, är ett besluts-träd ganska lätt att konceptualisera: ett antal vägar ligger framför dig, och varje väg grenar ut till ett nytt resultat som i sin tur innehåller ytterligare möjliga vägar.
I förstärkt inlärning kan du backa från en väg och starta om från en tidigare position, medan besluts-träd åtar sig sina resor.
Således är Random Forest-algoritmen i princip en spridningsinsats för beslut. Algoritmen kallas ‘slumpmässig’ eftersom den gör ad hoc-urval och observationer för att förstå median-summan av resultaten från besluts-trädsarrayen.
Eftersom den tar hänsyn till en mängd faktorer kan en Random Forest-ansats vara svårare att konvertera till meningsfulla grafer än ett besluts-träd, men är troligen mer produktiv.
Besluts-träd är benägna att överanpassning, där resultaten som erhålls är dataspecifika och inte troligen generaliserbara. Random Forests slumpmässiga urval av datapunkter bekämpar denna tendens, och borrar igenom till meningsfulla och användbara representativa trender i datat.

Besluts-träd regression. Källa: https://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression.html
Vanligt användningsområde
Som med många av algoritmerna i den här listan, opererar Random Forest vanligtvis som en ‘tidig’ sorterare och filter av data, och dyker därför upp i nya forskningsartiklar. Några exempel på Random Forest-användning inkluderar Magnetisk resonansbildsyntes, Bitcoin-prisförutsägelse, befolkningssegmentering, textklassificering och kreditkortbedrägeriupptäckt.
Eftersom Random Forest är en lågnivåalgoritm i maskinlärningsarkitekturer, kan den också bidra till prestandan hos andra lågnivåmetoder, samt visualiseringsalgoritmer, inklusive induktiv clustering, funktionstransformationer, klassificering av textdokument med sparade funktioner, och visning av pipelines.
6: Naiv Bayes
Kombinerad med täthetsuppskattning (se 4 ovan), är en naiv Bayes-klassificerare en kraftfull men relativt lätt algoritm som kan uppskatta sannolikheter baserat på de beräknade funktionerna i datat.

Funktionsrelationer i en naiv Bayes-klassificerare. Källa: https://www.sciencedirect.com/topics/computer-science/naive-bayes-model
Termen ‘naiv’ hänvisar till antagandet i Bayes sats att funktioner är orelaterade, känd som villkorlig oberoende. Om du antar denna ståndpunkt, är att gå och prata som en anka inte tillräckligt för att fastställa att vi har att göra med en anka, och inga ‘uppenbara’ antaganden antas i förväg.
Denna nivå av akademisk och undersökande rigor skulle vara överdriven där ‘allmänna förnuft’ är tillgängligt, men är en värdefull standard när man navigerar i de många tvetydigheter och potentiellt orelaterade korrelationer som kan finnas i en maskinlärningsdataset.
I en ursprunglig Bayesian-nätverk är funktioner föremål för poängfunktioner, inklusive minimal beskrivningslängd och Bayesisk poäng, som kan införa begränsningar på datat i termer av de uppskattade anslutningarna som hittats mellan datapunkterna, och riktningen i vilken dessa anslutningar flödar.
En naiv Bayes-klassificerare, å andra sidan, opererar genom att anta att funktionerna för ett givet objekt är oberoende, och använder sedan Bayes sats för att beräkna sannolikheten för ett givet objekt, baserat på dess funktioner.
Vanligt användningsområde
Naiv Bayes-filtrer är väl representerade i sjukdomsprediktion och dokumentkategorisering, skräppostfilter, sentimentklassificering, rekommendationssystem, och bedrägeridetektering, bland andra tillämpningar.
7: K- Närmaste Grannar (KNN)
Först föreslagen av den amerikanska flygvapnets skola för flygmedicin 1951, och som måste anpassa sig till den tekniska utvecklingen av mitten av 1900-talet, är K- Närmaste Grannar (KNN) en smal algoritm som fortfarande figurerar framträdande i akademiska papper och privata sektorns maskinlärningsforskningsinitiativ.
KNN har kallats ‘den late lärlingen’, eftersom den uttömmande scannar en dataset för att utvärdera relationerna mellan datapunkter, snarare än att kräva utbildning av en fullfjädrad maskinlärningsmodell.

En KNN-gruppering. Källa: https://scikit-learn.org/stable/modules/neighbors.html
Även om KNN är arkitektoniskt smal, placerar dess systematiska tillvägagångssätt ett betydande krav på läs- och skrivoperationer, och dess användning i mycket stora dataset kan vara problematisk utan bindesteknologier som Principal Component Analysis (PCA), som kan omvandla komplexa och högvolymdata till representativa grupperingar som KNN kan traversera med mindre ansträngning.
En nylig studie utvärderade effektiviteten och ekonomin hos ett antal algoritmer som tilldelades uppgiften att förutsäga om en anställd kommer att lämna ett företag, och fann att den 70-åriga KNN förblev överlägsen de mer moderna konkurrenterna i termer av noggrannhet och prediktiv effektivitet.
Vanligt användningsområde
För all sin populära enkelhet i koncept och exekvering, är KNN inte fast i 1950-talet – det har anpassats till en mer DNN-fokuserad ansats i ett förslag från Pennsylvania State University 2018, och förblir en central tidig fas (eller post-process analytiskt verktyg) i många mer komplexa maskinlärningsramverk.
I olika konfigurationer har KNN använts för onlinesignaturverifiering, bildklassificering, textmining, skördeprediktion, och ansiktsigenkänning, förutom andra tillämpningar och inkorporeringar.

En KNN-baserad ansiktsigenkänningssystem i utbildning. Källa: https://pdfs.semanticscholar.org/6f3d/d4c5ffeb3ce74bf57342861686944490f513.pdf
8: Markov Decision Process (MDP)
En matematisk ram introducerad av den amerikanska matematikern Richard Bellman 1957, är Markov Decision Process (MDP) en av de mest grundläggande byggstenarna i förstärkt inlärning-arkitekturer. En konceptuell algoritm i sin egen rätt, har den anpassats till en mängd andra algoritmer, och återkommer ofta i den nuvarande skörden av AI/ML-forskning.
MDP utforskar en data-miljö genom att använda sin utvärdering av sin nuvarande tillstånd (dvs. ‘var’ det är i datat) för att bestämma vilken nod av datat som ska utforskas nästa.

Källa: https://www.sciencedirect.com/science/article/abs/pii/S0888613X18304420
En grundläggande Markov Decision Process prioriterar nära fördelar över mer önskvärda långsiktiga mål. Av denna anledning är det vanligtvis inbäddat i sammanhanget av en mer omfattande policyarkitektur i förstärkt inlärning, och är ofta föremål för begränsande faktorer som diskonterad belöning, och andra modifierande miljövariabler som kommer att förhindra det från att skynda till ett omedelbart mål utan hänsyn till den bredare önskade resultatet.
Vanligt användningsområde
MDP:s lågnivåkoncept är utbrett i både forskning och aktiva distributioner av maskinlärning. Det har föreslagits för IoT-säkerhetsförsvarssystem, fiskodling, och marknadsprognoser.
Förutom dess uppenbara tillämplighet på schack och andra strikt sekventiella spel, är MDP en naturlig kandidat för procedurträning av robotiksystem, som vi kan se i videon nedan.
9: Term Frekvens-Invers Dokument Frekvens
Term Frekvens (TF) delar antalet gånger ett ord förekommer i en dokument med det totala antalet ord i det dokumentet. Således har ordet säl som förekommer en gång i en artikel på tusen ord en termfrekvens på 0,001. På egen hand är TF i stort sett värdelös som en indikator för termvikt, på grund av det faktum att meningslösa artiklar (såsom a, och, den, och det) dominerar.
För att få en meningsfull värdering för en term, beräknar Invers Dokument Frekvens (IDF) TF för ett ord över flera dokument i en dataset, och tilldelar låga betyg till mycket frekventa stoppord, såsom artiklar. De resulterande funktionsvektorerna är normaliserade till heltal, med varje ord tilldelat en lämplig vikt.

TF-IDF viktning av termers relevans baserat på frekvens över ett antal dokument, med sällsynt förekomst som en indikator för betydelse. Källa: https://moz.com/blog/inverse-document-frequency-and-the-importance-of-uniqueness
Även om detta tillvägagångssätt förhindrar att semantiskt viktiga ord förloras som utliggare, så innebär invertering av frekvensvikt inte automatiskt att ett lågfrekvent term inte är en utliggare, eftersom vissa saker är sällsynta och värdelösa. Därför kommer en lågfrekvent term att behöva bevisa sin värdering i den bredare arkitektoniska sammanhanget genom att förekomma (även vid låg frekvens per dokument) i ett antal dokument i datasetet.
Trots sin ålder är TF-IDF en kraftfull och populär metod för initiala filterpass i Natural Language Processing-ramverk.
Vanligt användningsområde
Eftersom TF-IDF har spelat en viss roll i utvecklingen av Googles i stort sett okända PageRank-algoritm under de senaste tjugo åren, har det blivit mycket allmänt antaget som en manipulativ SEO-taktik, trots John Muellers förnekande av dess betydelse för sökresultat.
På grund av hemligheten kring PageRank, finns det inga tydliga bevis för att TF-IDF inte för närvarande är en effektiv taktik för att stiga i Googles rankningar. Kontroversiell diskussion bland IT-proffs nyligen indikerar en allmän förståelse, korrekt eller inte, att termmissbruk kan fortfarande resultera i förbättrad SEO-placering (även om ytterligare anklagelser om monopolutnyttjande och överdriven reklam suddar ut gränserna för denna teori).
10: Stokastisk Gradientnedgång
Stokastisk Gradientnedgång (SGD) är en alltmer populär metod för att optimera utbildningen av maskinlärningsmodeller.
Gradientnedgång i sig är en metod för att optimera och kvantifiera den förbättring som en modell gör under utbildning.
I detta sammanhang indikerar ‘gradient’ en lutning nedåt (snarare än en färgbaserad gradation, se bild nedan), där den högsta punkten på ‘kullen’, till vänster, representerar början av utbildningsprocessen. Vid denna punkt har modellen ännu inte sett hela datat ens en gång, och har inte lärt sig tillräckligt om relationer mellan datat för att producera effektiva transformationer.

En gradientnedgång på en FaceSwap-utbildningssession. Vi kan se att utbildningen har plattat ut under en tid i den andra halvan, men har så småningom återhämtat sig på väg nedåt gradienten mot en acceptabel konvergens.
Den lägsta punkten, till höger, representerar konvergens (den punkt vid vilken modellen är så effektiv som den någonsin kommer att bli under de påtvingade begränsningarna och inställningarna).
Gradienten fungerar som en post och förutsägare för diskrepansen mellan felet (hur exakt modellen har för närvarande kartlagt datarelaterade relationer) och vikterna (de inställningar som påverkar sättet som modellen kommer att lära).
Denna post om framsteg kan användas för att informera en inlärningshastighetsschema, en automatisk process som talar om för arkitekturen att bli mer granulär och exakt när de tidiga vaga detaljerna omvandlas till tydliga relationer och kartor. I effekt, gradientförlust tillhandahåller en just-in-time-karta över var utbildningen ska gå nästa, och hur den ska fortsätta.
Det innovativa med Stokastisk Gradientnedgång är att den uppdaterar modellens parametrar på varje utbildningsexempel per iteration, vilket vanligtvis accelererar resan till konvergens. På grund av hyperskale-dataset som har dykt upp under de senaste åren, har SGD vuxit i popularitet som en möjlig metod för att hantera de efterföljande logistiska problemen.
Å andra sidan har SGD negativa implikationer för funktionsskalning, och kan kräva fler iterationer för att uppnå samma resultat, vilket kräver ytterligare planering och ytterligare parametrar, jämfört med vanlig Gradientnedgång.
Vanligt användningsområde
På grund av sin konfigurerbarhet, och trots dess brister, har SGD blivit den mest populära optimeringsalgoritmen för att passa neurala nätverk. En konfiguration av SGD som blir alltmer dominant i nya AI/ML-forskningsartiklar är valet av Adaptive Moment Estimation (ADAM, introducerad 2015) optimizer.
ADAM anpassar inlärningshastigheten för varje parameter dynamiskt (‘adaptiv inlärningshastighet’), samt inkorporerar resultat från tidigare uppdateringar i den efterföljande konfigurationen (‘momentum’). Dessutom kan det konfigureras för att använda senare innovationer, såsom Nesterov Momentum.
Men vissa hävdar att användningen av momentum kan också skynda ADAM (och liknande algoritmer) till ett underoptimalt slut. Som med de flesta av maskinlärningsforskningssektorns framkant, är SGD ett pågående arbete.
Publicerad första gången 10 februari 2022. Ändrad 10 februari 20.05 EET – formatering.












