Självstudie för djupinlärning för nybörjare: Grundläggande om neurala nätverk

⚡ Smart sammanfattning

Djupinlärning är en gren av maskininlärning som bygger på artificiella neurala nätverk som staplar många dolda lager, så att varje lager lär sig en rikare funktion i data än lagret före.

  • 🔘 Skiktad arkitektur: Ett inmatningslager, två eller fler dolda lager och ett utmatningslager skapar ett nätverksdjup.
  • ☑️ Signal styrka: Vikt, bias och aktiveringsfunktion avgör vad varje neuron skickar till nästa lager.
  • Tvåfasslinga: En ickelinjär transform producerar en modell, sedan förbättrar en derivatabaserad metod den, vilket upprepas tills noggrannheten är acceptabel.
  • 🧪 Fyra arkitekturer: Framåtkopplade nätverk, återkommande nätverk, faltningsnätverk och förstärkningsinlärningsagenter.
  • 🛠️ Där det lönar sig: Kreditvärdering inom finans, kandidatscreening inom HR, sentimentanalys i callcenter inom marknadsföring.
  • ⚙️ De verkliga gränserna: Kostnad för märkning, aptit för enorma datamängder och modeller som motstår enkel förklaring.

Självstudie för djupinlärning för nybörjare: Grundläggande om neurala nätverk

Vad är Deep Learning?

Djupinlärning är datorprogramvara som härmar nätverket av nervceller i en hjärna. Det är en delmängd av maskininlärning baserat på artificiella neurala nätverk med representationsinlärning. Det kallas djupinlärning eftersom det använder djupa neurala nätverk. Detta lärande kan vara övervakas, halvövervakad eller oövervakad.

Djupinlärningsalgoritmer konstrueras med sammankopplade lager, som diagrammet nedan visar.

  • Det första lagret kallas Input Layer
  • Det sista lagret kallas Output Layer
  • Alla lager däremellan kallas dolda lager. Ordet djup betyder att nätverket förenar neuroner över mer än två lager.
Djupt neuralt nätverksdiagram som visar ett inmatningslager, två dolda lager av neuroner och ett utgångslager
Inmatningslager, dolda lager och utmatningslager, med kopplingar mellan enskilda neuroner

Varje dolt lager består av neuroner. Neuronerna är sammankopplade med varandra. En neuron bearbetar den mottagna insignalen och sprider sedan resultatet till lagret ovanför. Styrkan på signalen som skickas till en neuron i nästa lager beror på vikten, biasen och aktiveringsfunktionen.

Nätverket förbrukar stora mängder indata och arbetar med den genom flera lager, så nätverket kan lära sig alltmer komplexa egenskaper hos data på varje lager.

Djup inlärningsprocess

Ett djupt neuralt nätverk ger toppmodern noggrannhet i många uppgifter, från objektdetektering till taligenkänning. Sådana nätverk kan lära sig automatiskt, utan fördefinierad kunskap som uttryckligen kodas av programmerarna. I praktiken går ett djupinlärningsprojekt igenom fem steg:

  • Förstå problemet
  • Identifiera data
  • Välj en djupinlärningsalgoritm
  • Träna modellen
  • Testa modellen
Femstegs djupinlärningsprocess från att förstå problemet till att testa modellen

De fem stegen i ett djupinlärningsprojekt, från problemdefinition till testning

För att förstå idén om djupinlärning, föreställ dig en familj med ett spädbarn och föräldrar. Småbarnet pekar på föremål med lillfingret och säger alltid ordet "katt". Eftersom föräldrarna är oroliga för barnets utbildning fortsätter de att säga "Ja, det där är en katt" eller "Nej, det där är inte en katt". Spädbarnet fortsätter att peka på föremål men blir mer exakt med "katter". Det lilla barnet vet innerst inne inte varför det kan säga att det är en katt eller inte. Det har helt enkelt lärt sig att organisera de egenskaper som utgör en katt i en hierarki, titta på husdjuret som helhet och sedan fokusera på detaljer som svansen eller nosen innan det bestämmer sig.

Ett neuralt nätverk fungerar på ungefär samma sätt. Varje lager representerar en djupare kunskapsnivå, det vill säga en kunskapshierarki. Ett neuralt nätverk med fyra lager lär sig mer komplexa funktioner än ett med två lager.

Lärandet sker i två faser:

  • Första fasen: tillämpa en ickelinjär transformation av ingången och skapa en statistisk modell som utdata.
  • Andra fas: förbättra modellen med en matematisk metod baserad på derivator, vilket är hur tillbakaförökning justerar vikterna.

Det neurala nätverket upprepar dessa två faser hundratals till tusentals gånger tills det har nått en tolererbar noggrannhetsnivå. Varje upprepning av de två faserna kallas en iteration.

För att ge ett exempel på djupinlärning, ta en titt på animationen nedan, där modellen försöker lära sig dansa. Efter 10 minuters träning vet modellen inte hur man dansar, och dess resultat ser ut som en klotter.

Animerad figur som rör sig oregelbundet efter tio minuters djupinlärningsträning

Efter 48 timmars inlärning bemästrar datorn dansens konst, vilket den andra animationen visar.

Animerad figur som dansar smidigt efter fyrtioåtta timmars djupinlärningsträning

Klassificering av neurala nätverk

Nätverk grupperas först efter antal dolda lager.

Grunt neuralt nätverk: Det ytliga neurala nätverket har bara ett dolt lager mellan ingången och utgången.

Djupt neuralt nätverk: Djupa neurala nätverk har mer än ett dolt lager. Till exempel räknar GoogLeNet-modellen för bildigenkänning 22 lager.

Idag dyker djupinlärning upp i förarlösa bilar, mobiltelefoner och Google sökmotor, bedrägeriupptäckt och tv.

Typer av nätverk för djupinlärning

Flera arkitekturer har blivit standard, och var och en formas av den typ av data den hanterar. Diagrammet nedan, publicerat av Asimov Institute, kartlägger den bredare familjen.

Diagram över neurala nätverksarkitekturer inklusive perceptron, feedforward, RBF, RNN, LSTM, GRU och autoencoders

Ett diagram över neurala nätverksarkitekturer, från den enda perceptronen till LSTM-, GRU- och autokodarvarianter

Mata framåt neurala nätverk

Detta är den enklaste typen av artificiellt neuralt nätverk. Med denna typ av arkitektur flödar information endast i en riktning, framåt. Det betyder att informationsflödet börjar vid inmatningsskiktet, går till de "dolda" lagren och slutar vid utgångslagret. Nätverket har ingen loop, och informationen stannar vid utgångslagret.

Återkommande neurala nätverk (RNN)

An RNN är ett flerskiktat neuralt nätverk som kan lagra information i kontextnoder, vilket gör att det kan lära sig datasekvenser och mata ut ett tal eller en annan sekvens. Enkelt uttryckt är det ett artificiellt neuralt nätverk vars kopplingar mellan neuroner innefattar loopar. RNN:er är väl lämpade för att bearbeta sekvenser av indata, eftersom utdata matas tillbaka till nätverket som minne.

Blockdiagram för återkommande neurala nätverk med utgången loopad tillbaka till nätverket som minne

Ett RNN skickar sin utdata tillbaka till sig självt, vilket ger nätverksminnet

Om uppgiften till exempel är att förutsäga nästa ord i meningen ”Vill du ha en …?”, fortsätter nätverket så här:

  • RNN-neuronerna tar emot en signal som pekar mot början av meningen.
  • Nätverket tar emot ordet ”Do” som indata och producerar en vektor med siffror. Denna vektor matas tillbaka till neuronen för att ge nätverket ett minne. Detta steg hjälper nätverket att komma ihåg att det mottog ”Do” och att det mottog det i första positionen.
  • Nätverket fortsätter på liknande sätt som med följande ord. Det tar ordet ”du” och sedan ”vill ha”. Nervcellernas tillstånd uppdateras när varje ord tas emot.
  • Det sista steget inträffar efter att ordet ”a” mottagits. Det neurala nätverket ger en sannolikhet för varje engelskt ord som skulle kunna komplettera meningen. En välutbildad RNN tilldelar förmodligen en hög sannolikhet till ”café”, ”drink”, ”burger” och liknande ord.

Vanliga användningar av RNN

  • Hjälp värdepappershandlare att generera analytiska rapporter
  • Upptäck avvikelser i finansiella rapporter
  • Upptäck bedrägliga kreditkortstransaktioner
  • Ge en bildtext för bilder
  • Effekt chatbots
  • Standardanvändningen av RNN sker när utövare arbetar med tidsseriedata eller sekvenser, till exempel ljudinspelningar eller text.

Konvolutionella neurala nätverk (CNN)

A CNN är ett flerskiktat neuralt nätverk med en unik arkitektur utformad för att extracalltmer komplexa egenskaper hos data på varje lager för att bestämma utdata. CNN:er är väl lämpade för perceptuella uppgifter.

CNN-arkitektur med konvolution, ReLU och pooling av funktionsinlärningssteg följt av utplattande, fullständigt ansluten och softmax-klassificering

Funktionsinlärning via konvolution, ReLU och pooling; klassificering via flatten, fully connected och softmax

CNN används oftast när det finns en ostrukturerad datamängd, såsom bilder, och yrkesverksamma behöver extracinformation från den.

Om uppgiften till exempel är att förutsäga en bildtext:

  • CNN tar emot en bild av, låt oss säga, en katt. I datortermer är denna bild en samling pixlar, vanligtvis ett lager för en gråskalig bild och tre lager för en färgbild.
  • Under funktionsinlärningsstadiet, det vill säga de dolda lagren, identifierar nätverket unika egenskaper, till exempel kattens svans eller örat.
  • När nätverket väl har lärt sig att känna igen en bild kan det ange en sannolikhet för varje bildklass det känner till. Etiketten med högst sannolikhet blir nätverkets förutsägelse.

Förstärkningslärande

Förstärkningslärande är ett delområde inom maskininlärning där system tränas genom att få virtuella "belöningar" eller "straff", i huvudsak inlärning genom trial and error. Det är ett inlärningsparadigm snarare än en nätverksform, men dess moderna algoritmer är byggda på djupa nätverk. Googles DeepMind använde förstärkningsinlärning för att besegra en mänsklig mästare i Go. Förstärkningsinlärning används också i videospel för att förbättra spelupplevelsen genom att tillhandahålla smartare robotar.

Några av de mest kända algoritmerna är:

  • Q-lärande
  • Djupt Q-nätverk
  • State-Action-Reward-State-Action (SARSA)
  • Deep Deterministic Policy Gradient (DDPG)

Tabellen nedan sammanfattar när varje arkitektur passar.

Architecture Data som passar Utmärkande drag Typisk uppgift
Feed-forward Tabellinmatning med fast längd Inga loopar; informationen rör sig bara framåt Poängsättning och enkel klassificering
Återkommande (RNN) Sekvenser och tidsserier Kontextnoder ger det minne Textförutsägelse, ljud, prognoser
Konvolutionell (CNN) Rutliknande ostrukturerad data Konvolution och poolning extract funktioner Bildklassificering och textning
Förstärkningslärande En miljö, inte en datamängd Lär sig av belöningar och straff Spelagenter, robotik, kontroll

Exempel på djupinlärningsapplikationer

Dessa arkitekturer är redan i produktion inom mycket olika branscher:

AI inom finans

Finanstekniksektorn har redan börjat använda AI för att spara tid, minska kostnader och skapa mervärde. Djupinlärning förändrar lånebranschen genom mer robust kreditvärdering. Kreditbeslutsfattare kan använda AI för kreditansökningar för att uppnå snabbare och mer exakt riskbedömning, med hjälp av maskinintelligens för att ta hänsyn till sökandes karaktär och kapacitet.

Underwrite är ett fintech-företag som tillhandahåller en AI-lösning för kreditbeslutsfattare. underwrite.ai använder AI för att upptäcka vilken sökande som är mer benägen att betala tillbaka ett lån, en metod som företaget säger överträffar traditionella scorecards.

AI i HR

Under Armour, ett sportklädesföretag, revolutjoniserade rekrytering och moderniserade kandidatupplevelsen med hjälp av AI. Under Armour mötte ett kraftigt ökat intresse 2012 och fick i genomsnitt mer än 30 000 ansökningar i månaden. Att läsa alla dessa ansökningar och sedan påbörja screening- och intervjuprocessen tog för lång tid. Den långa processen att få folk anställda och onboardade påverkade Under Armours förmåga att ha sina butiker fullt bemannade, utökade och redo att fungera.

Vid den tidpunkten hade Under Armour all nödvändig HR-teknik på plats, såsom transaktionella lösningar för sourcing, ansökningar, trackung och onboarding, men dessa verktyg räckte inte ensamma. Under Armour valde HireVue, en AI-leverantör av HR-lösningar, för både on-demand- och liveintervjuer. Resultaten var slående: företaget rapporterade att de minskade tillsättningstiden med 35 % samtidigt som de höjde kvaliteten på den personal de anställde.

AI i marknadsföring

AI är ett värdefullt verktyg för kundtjänsthantering och personaliseringsutmaningar. Förbättrad taligenkänning i callcenterhantering och samtalsdirigering, som ett resultat av tillämpningen av AI-tekniker, möjliggör en mer sömlös upplevelse för kunderna.

Till exempel gör djupinlärningsanalys av ljud det möjligt för system att bedöma en kunds känslomässiga ton. Om kunden svarar dåligt på AI-chatboten kan systemet omdirigera konversationen till en riktig, mänsklig operatör som tar över problemet.

Förutom de tre exemplen på djupinlärning ovan används AI i stor utsträckning inom andra sektorer och branscher.

Varför är djupinlärning viktigt?

Djupinlärning är ett kraftfullt verktyg för att omvandla förutsägelser till handlingsbara resultat. Djupinlärning utmärker sig vid mönsterupptäckt och kunskapsbaserade förutsägelser. Stora data är bränslet för djupinlärning. När båda kombineras kan en organisation skörda resultat inom produktivitet, försäljning, ledning och innovation som tidigare var utom räckhåll.

Djupinlärning kan också överträffa traditionella metoder. Särskilt när det gäller perceptionsproblem har djupa nätverk varit de bästa i åratal: bildklassificering, taligenkänning och ansiktsigenkänning domineras alla av djupa arkitekturer, där ansiktsigenkänningsmodeller når nästan 99 % noggrannhet på vanliga offentliga riktmärken. Vinsten kommer från att nätverket lär sig sina egna funktioner snarare än att förlita sig på handkonstruerade.

Begränsningar för djupinlärning

Dessa resultat kommer med verkliga kostnader.

Datamärkning

De flesta nuvarande AI-modeller tränas genom övervakad inlärning. Det innebär att människor måste märka och kategorisera underliggande data, vilket kan vara en betydande och felbenägen syssla. Till exempel utvecklar företagping Självkörande bilteknik anställer hundratals personer för att manuellt kommentera timmar av videoflöden från prototypfordon för att träna dessa system.

Skaffa enorma utbildningsdatauppsättningar

Det har visats att djupinlärningstekniker som CNN i vissa fall kan imitera kunskapen hos experter inom medicin och andra områden. Den vågen av maskininlärning kräver dock träningsdatauppsättningar som inte bara är märkta utan också tillräckligt breda och universella.

Djupinlärningsmetoder kräver tusentals observationer för att modeller ska bli relativt bra på klassificeringsuppgifter och i vissa fall miljontals för att de ska kunna utföras på mänsklig nivå. Inte överraskande är djupinlärning vanligast hos gigantiska teknikföretag, som använder big data för att samla petabyte av exempel. Den skalan gör det möjligt för dem att skapa imponerande och mycket exakta djupinlärningsmodeller.

Förklara ett problem

Stora och komplexa modeller kan vara svåra att förklara med mänskliga termer, till exempel varför ett visst beslut fattades. Det är en anledning till att accepterandet av vissa artificiell intelligens verktyg är långsamma inom tillämpningsområden där tolkningsbarhet är användbar eller till och med nödvändig.

Dessutom, när tillämpningen av AI expanderar, kan regulatoriska krav också driva på behovet av mer förklarliga AI-modeller.

Vanliga frågor

Klassisk maskininlärning behöver funktioner som konstrueras för hand och fungerar bra på små tabelldata. Djupinlärning lär sig funktioner från ostrukturerad rå data, men vill ha betydligt fler exempel och beräkningar.

Den introducerar icke-linjäritet, så staplade lager kan modellera böjda beslutsgränser istället för att kollapsa till ett linjärt steg. ReLU är den vanliga standarden i dolda lager; sigmoid och softmax formar utdata.

Bakåtpropagering mäter hur mycket varje vikt bidrog till felet och går sedan bakåt genom lagren så att varje vikt knuffas i den riktning som minskar förlusten. Det är den andra fasen i praktiken.

En epok är en fullständig genomgång av träningsdata. Batchstorleken är hur många samplingar nätverket ser innan vikterna uppdateras. Inlärningshastigheten styr hur stor var och en av dessa viktuppdateringar är.

Transformers, som introducerades 2017, ersätter återkommande sekvenser med uppmärksamhet, vilket gör att varje token kan titta på alla andra tokens samtidigt. Eftersom det körs parallellt skalar de mycket bättre än RNN:er och dominerar nu språk- och visionsarbete.

Träning är mestadels stor matrismultiplikation, där GPU:er körs parallellt med mycket hög minnesbandbredd. Att flytta en CNN eller transformator från CPU till en enda tränings-GPU ger vanligtvis flera gånger snabbare hastigheter.

Neural arkitektursökning och AutoML-verktyg testar lagerantal, bredder och hyperparametrar, och behåller sedan den kandidat som validerar bäst. De minskar den manuella genomsökningen dramatiskt, även om en person fortfarande sätter målet och beräkningsbudgeten.

GitHub Copilot utkast TensorFlow och PyTorch-träningsloopar från en kort prompt. Kontrollera inmatningsformerna, förlustfunktionen och seed själv, eftersom den genererade standardtexten ofta gör fel på dem.

Sammanfatta detta inlägg med: