Vad är djupinlärning och hur fungerar det?
Djupinlärning hämtar konceptuellt inspiration från mänsklig inlärning, vilket ofta används som en slogan, men huruvida en maskin faktiskt kan lära sig någonting är en fråga vi överlåter till filosoferna. I nuläget är allt man kan säga att resultaten är lovande. Att ett program utför en uppgift som det inte specifikt tränats för måste, om inte annat, räknas som imponerande. Jämförelsen är alltså inte helt oberättigad.
Innehåll
Vad är djupinlärning
Definition av djupinlärning
Djupinlärning är en teknologi vars syfte är att efterlikna mänsklig inlärning genom bred analys av obehandlad data som förs genom ett neuralt nätverk bestående av minst tre lager. Datan som används för inlärningen lägger grunden för förmågan att självständigt klassificera, kategorisera och sortera information. Några vanliga exempel är automatisk översättning, chatbotar och sökmotorer.
Djupinlärning är en väsentlig teknologisk drivkraft bakom den senaste tidens framsteg inom artificiell intelligens. Genom att applicera djupinlärningsmetoder har man kunnat förbättra automatisering och utförandet av analytiskt tunga uppgifter utan mänsklig inblandning. För att verkligen se resultatet av detta behöver man bara ta en titt på de chatbotar som utvecklas av företag som OpenAI, Microsoft och Google.
Djupinlärning, maskininlärning och AI
Termerna djupinlärning, maskininlärning och artificiell intelligens används ofta felaktigt. Trots att koncepten är relaterade, är de inte synonymer. Artificiell intelligens är ett koncept som avser en maskins förmåga att simulera mänskligt beteende. Maskininlärning är en specifik typ av artificiell intelligens, nämligen AI som använder strukturerad data för att fatta intelligenta beslut givet att man har ett i förväg önskat resultat. Djupinlärning är i sin tur en typ av maskininlärning – och således också en typ av artificiell intelligens – som genom neurala nätverk och en oerhört stor mängd data lär sig fatta självständiga beslut. Resultaten är generellt sett mer träffsäkra om man använder djupinlärning, men också mer resurskrävande.
Maskininlärning använder alltså algoritmer på strukturerad data för att kunna göra bedömningar. Datan organiseras i en tabell och genomgår förbehandling för att därefter nyttjas. Djupinlärning kan däremot bearbeta rå data utan större behov av att den organiseras i förväg. Djupinlärning använder istället funktioner som är konstruerade för att hantera en mer kaotisk uppsättning information. På så vis kan man till exempel få ett program att “känna igen” en bild av ett bord, en stol, osv. Om man skulle göra någonting liknande med enbart maskininlärning, skulle det krävas att kategoriseringen sköts manuellt och fastställs i förväg. Med djupinlärning extraheras relevanta mönster utan att de explicit behöver pekas ut.
Hur fungerar djupinlärning?
Vad innebär det egentligen att försöka “efterlikna den mänskliga hjärnan” eller att “hämta inspiration från mänsklig inlärning”? Här måste påpekas att utsagan bör tas med en nypa salt. Vad man menar är att man genom inmatning av data som ges viss vikt och ordnas enligt visst bias, får ett system som träffsäkert kan känna igen, beskriva och generera bedömningar om vad datan implicit innehåller. För att ta ett exempel – att ett traditionellt bord har fyra ben är en implicit sanning om traditionella bord generellt. En AI kan genom djupinlärning få “förståelse” för detta utan att få det direkt förklarat för sig.
Ett så kallat “djupt” neuralt nätverk, även kända på engelska som deep neural networks, är nätverk som består av flera lager av sammankopplade noder. Inom varje lager sker ytterligare förfining av programmets förmåga att göra bedömningar. Varje lager använder resultatet av det föregående för att systemet i helhet ska kunna förbättras. Denna enkelriktade progression av data kallas för forward propogation. Här delar man upp lager i synliga och dolda, där input och output är av den förstnämnda sorten. I de dolda lagrerna utförs ickelinjära transformationer på datan från input-lagret. Den behandlade datan kan därefter korrekt klassificeras i output-lagret. Vad som skiljer vanliga neurala nätverk från så kallade deep neural networks, är att det finns två eller fler dolda lager.
I kombination med forward propogation används även en teknik som kallas för back propogation, som använder algoritmer för att hitta fel i programmets förmåga att göra förutsägelser. Som namnet antyder utförs detta genom att man går baklänges genom lager som träningsunderlag för modellen. back propogation och forward propogation används i konjunktion för att över tid förbättra algoritmens förmåga att korrekt klassificera och fatta beslut gällande input-data.
Djupinlärning är ett komplext ämne, och vad vi gått igenom ovan är mycket grundläggande. Algoritmer för djupinlärning kommer i många olika former och tenderar att vara väldigt tekniskt komplexa. Vidare finns det väldigt många neurala nätverk som är byggda för att hantera specifika uppgifter och lösa väldigt avgränsade problem. För att få en full förståelse för ämnet krävs att man lägger ned mycket tid och energi. Det är knappast någonting man kan lära sig på en eftermiddag!
Djupinlärningsalgoritmer
Djupinlärning är som sagt ett väldigt brett ämne. Det finns många varianter av neurala nätverk med individuella styrkor och svagheter. Vilken metod som är lämpligast beror på vad det är du försöker åstadkomma. Nedan har du en kortfattad beskrivning av två varianter av neurala nätverk som används inom många implementationer av djupinlärning.
Convolutional neural network (CNN)
Denna typ av neurala nätverk erbjuder förbättrad prestanda när det kommer till bild- ljud- och taligenkänning. CNN:er består av minst tre lager. Det första, ett så kallat convolutional layer, hanterar input och jämför data mot en feature map och sållar information med hjälp av ett filter. Därefter har du ett eller flera pooling layers som på ett liknande sätt sållar data. Skillnaden är att dessa lager saknar weights och istället applicerar en aggregatfunktion i syfte att fylla en output-array. Det sista lagret kallas för fully-connected layer (FC-layer) och hanterar output. Som namnet antyder är noder i detta lager fullt kopplade till noder i föregående.
Recurrent neural network (RNN)
Detta är en variant av neurala nätverk som vanligtvis används för att lösa problem där någon sorts sekventiell omordning krävs. De är speciellt användbara för översättning, språkbehandling (NLP) och röstigenkänning. Några populära tillämpningar av denna metod är till exempel Google Translate och digitala assistenter som kräver röstigenkänning. Vad som kännetecknar just denna varianten är att den har ett sorts minne som kommer ihåg information från föregående inmatningar. Den aktuella inmatningen påverkas således av tidigare resultat. Mer traditionella neurala nätverk antar att input och output är avskärmade, medan output från RNN:er beror på föregående steg i sekvensen.
Djupinlärning – implementationer och exempel
Djupinlärning har blivit en allt större del av människors vardag – i många fall utan att de överhuvudtaget är medvetna om det. Resultaten talar för sig själva. Nedan går vi igenom några områden där djupinlärning har visat sig vara användbart.
Brottsbekämpning
Genom att applicera algoritmer som använder djupinlärning på till exempel transaktioner av pengar och värdepapper kan man identifiera ovanliga mönster och således upptäcka kriminell aktivitet och bedrägerier. Här är egentligen möjligheterna oändliga. Alla system som på något sätt har koppling till den digitala världen kan potentiellt förbättras. Djupinlärning bygger på att känna igen mönster, så även väldigt avancerad tal- och ansiktsigenkänning kan i framtiden bli en möjlighet. Att extrahera mönster från utredningsmaterial kommer underlätta arbetet markant för brottsbekämpande myndigheter. En dag kanske vi till och med har lögndetektorer som bygger på djupinlärningsteknologi.
Finansiella tjänster
Institutioner och företag vars verksamhet bygger på analys eller handel av aktier och värdepapper använder dagligen komplexa algoritmer för att komplettera deras beslutsfattande. I många fall lämnas till och med beslutsfattandet helt över åt AI:n. Inom handel gäller det att vara så snabb som möjligt och ibland kan det röra sig om bara några millisekunder. I dessa fall kommer en algoritm vara mer träffsäker.
Djupinlärning används också för att bygga algoritmer som hjälper företag bedöma affärsrisker, banker att godkänna lån och myndigheter att upptäcka bedrägeri. Allt mer av den finansiella världen styrs av automatiserade algoritmer.
Kundtjänst
För att automatisera delar av kundbemötandet väljer många företag att använda sig av chatbotar. Dessa botar gör det möjligt att svara på enkla frågor och ge användare användbar information utan mänsklig inblandning. Under många år var dessa chatbotar av den enklare sorten och bestod för det mesta av förbestämda menyer. I bästa fall kunde de analysera nyckelord och därigenom ge ett rimligt svar. Numera har vi mer avancerad teknologi som ChatGPT, så avancerade digitala assistenter kommer nog bli vanliga att se lite överallt.
Sjukvård
Eftersom journaler och mycket annat inom sjukvården är digitalt numera, kommer även djupinlärning kunna appliceras på all data som tillgängliggörs. Analys av bilder och prover kan hjälpa specialister att snabbare identifiera vissa sjukdomar. Genom att analysera resultaten av behandlingar i aggregat, kan man också få värdefull insikt beträffande deras effektivitet. Återigen ser vi att där det finns mycket data, finns det även värdefulla tillämpningar av djupinlärningsalgoritmer.
Cybersäkerhet
Djupinlärning har flera värdefulla tillämpningar inom cybersäkerhet. Detta är egentligen föga överraskande med tanke på områdets bredd. Varje digital miljö, system och program har relevans för cybersäkerhet, så att djupinlärning är någonting man kan dra nytta av är självklart. Mer specifikt kan man använda maskin- och djupinlärningsalgoritmer för att upptäcka nätverksintrång, hantera virus, sortera bort spam och analysera användares beteendemönster. Även om djupinlärning ännu inte är tillräckligt sofistikerat för att helt kunna ersätta människor, finns det fortfarande många känsliga uppgifter som kan skyddas genom att använda det.
Vad är bäst – djupinlärning eller maskininlärning?
När det kommer till teknologi är svepande jämförelser inte speciellt användbara. Vad som passar bäst beror på vad det är man vill åstadkomma, hur problemet ser ut och vilka begränsningar man har. Maskininlärning presterar bra på små dataset, medan djupinlärning håller hög prestanda även för större. Målet med maskininlärning är att få output som är så likt det man förväntar sig som möjligt, medan målet med djupinlärning är mer generellt och handlar om att efterlikna den mänskliga förmågan att självständigt känna igen mönster. Den mest slående skillnaden är dock komplexiteten och kapacitet att hantera stora volymer data. Djupinlärning är betydligt mer komplext och kan hantera mycket mer information och ändå ge ett sammanhängande resultat.
Djupinlärning – framtiden
På grund av teknologins drastiska utveckling inom flertalet områden är dess framtida popularitet så nära som säkrad. Man kan aldrig veta exakt vad framtiden har att erbjuda beträffande teknologi, men djupinlärning kommer garanterat spela en väsentlig roll – antingen genom förbättring av befintliga implementationer eller genom utveckling av ny teknologi som bygger på dess konceptuella framsteg. I nuläget befinner sig djupinlärning faktiskt i ett väldigt tidigt skede, trots sin redan stora påverkan på samhället. Vi kan redan se dess potential i avancerade chatbotar som ChatGPT och i övesättningsmjukvara.