Artificiell intelligens, förkortat AI, är en teknik som forskare länge fascinerats av och arbetat med. Samtidigt är det bara under de senaste åren som termen har fått genomslag hos den breda massan, framförallt i takt med att denna teknik blivit alltmer avancerad och tillgänglig för allmänheten.
Utveckligen av artificiell går idag i en rasande takt och framstegen som görs leder till alltmer avancerade och kapabla verktyg för en mängd olika uppgifter och arbetsområden.
Förmågan som AI har är minst sagt imponerande men resan hit har pågått i många årtionden och mycket resurser och tid har lagts på att utveckla tekniken till vad den är idag.
Med det sagt är AI en otroligt avancerad teknik som består av flera olika komponenter och system för att kunna fungera effektivt. Men vad exakt är det som går in i AI för att möjliggöra denna otroliga teknik? Det är precis vad vi ska titta närmare på i denna artikel.
I den här artikeln ska vi utforska de grundläggande komponenterna som är nödvändiga för att artificiell intelligens ska fungera effektivt. Dessa komponenter består i korthet av data, vilket är en byggsten i alla AI-system, algoritmer, och naturligtvis hårdvara och infrastruktur som är nödvändig för att driva AI-system., även om hårdvara i sig inte är en del av själva AI-tekniken.
Data: Grundstenen i AI
Data spelar en helt central roll i all artificiell intelligens. Det är den mest grundläggande komponenten som möjliggör själva utveckligen och även funktionen av AI-system. Generellt sett kan man säga att desto mer data som ett AI-system tränas på, desto mer kapabel blir den.
För att AI ska kunna lära sig hur den ska agera, imitera mänskligt beslutsfattande, och lärande krävs enorma mängder data. Vi pratar alltså miljontals eller hundratals miljoner datapunkter eller mer för att utveckla avancerade system.
Visst går det att utveckla en AI med betydligt mindre data men dess kapacitet och kvalitet kommer att vara begränsad som ett resultat.
Datan som AI-systemet tränas på fungerar som en input som AI-systemet analyserar och sedan lär sig ifrån genom komplexa algoritmer.
Typer av data som används i AI
Sättet som AI-system tränas på men också typen av data kan variera ganska mycket.
De viktigaste typerna av data som användas för att träna datasystem är följande:
- Strukturerad data: Detta inkluderar data som är korrekt och noga organiserad och formaterat så att de enkelt kan läsas och hanteras av maskiner. Detta kan till exempel byta att datan kommer i form av databastabeller med definierade kolumner.
- Ostrukturerad data: Detta är precis som det låter, data som inte är strukturerad utan ”rådata” som inte följer en specifik modell eller format. Detta kan inkludera allt från textdokument, bilder, video och ljudfiler. Ostrukturerad data är svårare att bearbeta och analysera för AI:n men det är samtidigt värdefull information som AI-systemen kan lära sig mycket av.
- Big Data: Sist men inte minst har vi big data. Detta är som det låter extremt stora datamängder (miljontals datapunkter, ofta hundratals miljoner), och dessa samlas ofta in från källor där stora mängder data kan hittas, såsom från sociala medier, sökmotorer, med mera. Big data kräver mer avancerade tekniker för att hanteras, lagras, och analyseras. Samtidigt är denna typ av data ovärderlig för att AI-systemen ska bli så kapabla som möjligt och ha en god kunskap om omvärlden, specifika lösningar, eller i allmänhet hur den ska utföra olika uppgifter.
Användningen av data i AI
AI-systemen måste hantera och processa datan som den matas med på flera olika sätt för att kunna utnyttja och lära sig från den. Processen att samla in och träna AI-system kan brytas ned i ett antal viktiga steg.
Först och främst måste datan samlas ihop från relevanta källor. Datan som AI-systemet tränas på måste naturligtvis vara relevant för dess syfte och de uppgifter som den ska utföra. För att skapa högkvalitativa AI-system måste datan vara relevant och hålla hög kvalitet. Om AI:n tränas på data som är irrelevant eller bristfällig för de uppgifter som den ska utföra kommer systemet inte att prestera väl.
Dataförberedelse
När datan väl har samlats in behöver datan ”rengöras” och förberedas. Detta görs normalt genom att analysera datan för att hantera eventuella saknade värden, korrigera fel, och även normalisera data för att undvika bias i AI-modellen man skapar.
Dataanalys
När datan har förberetts använder AI-systemet statistiska metoder och maskininlärningstekniker för att analysera datan och identifiera mönster eller tendenser. Denna analys är viktig för att systemet ska kunna förstå datan och för att utforma lämpliga algoritmer.
Med datan som systemet har tillgänglig lär sig sedan AI-systemet genom en process som kallas träning. Detta innebär att modellen kontinuerligt justeras utifrån datan och feedbacken den ger med syfte av att minimera fel, förbättra resultaten, och öka kvaliteten på sättet som den utför uppgifter på.
Som diskuterat tidigare, desto mer data som systemet tränas på, desto mer kapabel och kvalitativ blir systemet, med förbättrad förmåga att leverera noggranna resultat.
Slutligen, när AI-modellen har tränats färdigt behöver den testas med nya data, alltså data som inte användes under träningen. Detta för att ställa systemet inför en ny och okänd situation för att se hur den presterar ute ”i det vilda”.
Algoritmer och modeller
Algoritmer och modeller kan bäst beskrivas som hjärtat av AI-system. Det är algoritmerna och modellerna som gör det möjligt för AI-modeller att identifiera mönster, göra prognoser, fatta beslut, med mera. Kort sammanfattat kan man säga att det är algoritmerna och modellerna som programmerar AI:n om vilka uppgifter den ska utföra och hur den ska utföra dem. På ett bredare gör dessa algoritmer dt möjligt för AI-systemen att lära sig från data och utföra specifika uppgifter, identifiera mönster, göra prognoser, fatta beslut baserat på tidigare erfarenheter och data – och mycket mer.
Typer av AI-algoritmer
AI-algoritmer kan delas in i flera kategorier beroende på hur de lär sig och vilken typ av data de hanterar. Det finns tre huvudmetoder som AI-algoritmerna tränas:
- Övervakad inlärning: Övervakad inlärning är den vanligaste formen av maskininlärning (processen att träna AI-system). Detta innebär att modellen tränas på ett så kallad märkt dataset. Det innebär att varje exempel i träningsdatan är märkt med rätt svar (eller output). Modellen tränas sedan att förutsäga outputen baserat på ”inputdatan”.
- Oövervakad inlärning: Övervakad inlärning innebär algoritmer tränas med data som inte är märkt. Syftet med denna inlärningsmetod är att identifiera inbäddade mönster eller datastrukturer utan att ha förhandskunskap om outputen. Detta innefattar bland annat klusteranalys eller associationsregler.
- Förstärkt inlärning: Förstärkt inlärning innebär att en modell lär sig att fatta beslut genom att utföra åtgärder och motta belöningar eller bestraffningar beroende på resultatet. Om systemet utför en uppgift korrekt får den en belöning, om den utför uppgiften fel ”straffas den”. Detta gör att systemet över tid lär sig vad den ska göra och vad den inte ska göra – och desto mer den tränas, desto bättre blir den. Denna form av inlärning är särskilt användbar inom områden som spelteori, robotik och navigering då modeller behöver anpassa sig efter ständigt föränderliga förhållanden – och därmed måste tränas för att ha denna förmåga.
Modellträning och validering
Medan data är en helt central del av AI-modeller är träning och validering andra viktiga komponenter.
När man tränar AI-modeller justerar man löpande modellens parametrar så att den minimerar fel mellan förutsagda och faktiska resultat. Denna justering görs genom olika optimeringstekniker. ”Gradient descent” är en av de mest använda opptimeringsteknikerna som används för att hitta minimipunkter i förlustfunktionen. Validering av modellen är en annan viktig del som görs för att säkerställa att modellen kan prestera och fungera som den ska ”ute i den riktiga världen” och inte bara presterar väl på träningsdata utan också på ny data och i nya situationer som den kommer att stöta på.
Hårdvara och infrastruktur
Även om AI-system är en form av mjukvara behöver dem hårdvara och infrastruktur för att fungera. Många AI-system idag drivs i molnet men de behöver fortfarande datakraft och servrar för att drivas.
Med det sagt är en viktig komponent för effektiviteten och kapaciteten hos AI-system den underliggande hårdvaran och infrastrukturen. Eftersom att AI måste kunna hantera stora datamängder och komplexa beräkningar måste den underliggande hårdvaran vara tillräckligt kraftfull. Detta är en anledning till att Nvidia, en av världens främsta grafikprocessorutvecklare (GPU), har blivit ett av de mest omtalade teknikföretagen på senare år.
Några av de viktigaste komponenterna i hårdvaran är följande:
Central Processing Units (Processor, CPUs)
CPU:s är traditionella processorer som äreffektiva för generella beräkningar och grundläggande AI-uppgifter. De är dock inte alltid optimala för mer avancerade AI-applikationer som kräver större beräkningskraft.
Graphics Processing Units (Grafikprocessor, GPUs): En grafikprocessor är specialiserad på parallella beräkningar, alltså att den kan utföra flera beräkningar simultant. Detta gör att de är idealiska för att hantera stora datamängder och komplexa algoritmer, någonting som är vanligt inom just djupinlärning och neurala närverk. GPU:er har en mycket snabbare bearbetningstid för AI jämför med traditionella CPUs.
Tensor Processing Units (TPUs): TPUs är kretsar som är specifikt utvecklade för maskininlärningsuppgifter. Den utvecklades av Google för neural maskininlärning och använder Googles egna TensorFlow mjukvara.
Dessa kretsar har en ännu högre effektivitet och processorkraft för just AI-beräkningar och är därför väldigt lämpliga och effektiva för att skala upp neurala nätverk i stora datacenter.
Field-Programmable Gate Arrays (FPGAs): Sist men inte minst, FPGAs är programmerbara kretsar som kan konfigureras efter tillverkningen för specifika uppgifter, däribland AI-beräkningar. Tack vare denna flexibilitet, tillsammans med deras goda energieffektivitet är de populära för användning i AI-applikationer
Infrastruktur för AI
Utöver själva hårdvaran för att driva AI-system behövs också infrastruktur. Det är framförallt tre olika komponenter som spelar en viktig roll här, nämligen datacenter, molnbaserade lösningar, och edge computing. Alla dessa används inte nödvändigtvis på en och samma gång och av alla AI-system.
Datacenter
Datacenter är en term som många har blivit bekanta med i takt med att användningen av aI har blivit alltmer utbredd. Att driva avancerade datasystem och processa stora mängder data krävs robusta datacenter som kan hantera både datalagringsbehov och avancerade beräkningar. Datacenter behöver inte minst avancerade datorer och system men också avancerad kylning för att hålla alla datorer som arbetar hårt svala. När datorerna arbetar på högvarv genereras troligt mycket värme vilket är varför kylning är så viktig i datacenter.
Molnbaserade lösningar
Många AI-system använder sig av molntjänster såsom Amazon Web Services, Google Cloud och Microsoft Azure då de erbjuder ett effektivt och skalbar sätt att driva dessa applikationer. Dessa molntjänster erbjuder också specialiserad AI-hårdvara som GPUs och TPUs, vilket naturligtvis är en förutsättning för att driva dessa AI-system. Många utvecklare av AI-system väljer att använda sig av just molntjänster då man bara betalar för det man använder och slipper att investera i egna dyra datacenter och serverhallar som man kanske inte ens behöver vid ett senare skede.
Edge computing
Edge computing innebär att AI-beräkningar sker lokalt på enheten, mer specifikt vid ”kanten” av nätverket, därav namnet ”edge”. Fördelen med detta är att det minimerar latens genom att undvika att skicka data till molnet för bearbetning – processande sker alltså lokalt. Denna teknik är särskilt angelägen där minimal latens är kritiskt, såsom självkörande bilar.
Programvara och verktyg
Den sista delen som AI behöver för att fungera är programvara och verktyg. Detta är inte kopplat specifikt själva driften av AI-system utan snarare själva utvecklingen av dem.
AI-system är otroligt avancerade och komplexa och naturligtvis är utveckligen av dem likaså. Med det sagt behöver AI-utvecklare en mängd olika verktyg för att på ett effektivt sätt kunna utveckla dessa system.
Utvecklingsverktyg för AI
Först och främst behöver AI-utvecklare så kallade maskininlärningsramverk. Detta är bibliotek och miljöer som erbjuder förbyggda kodblock och funktioner vars syfte är att möjliggöra träning, skapande, och validering av AI-modeller. Några av de mest populära ramverken är TensorFlow som är utvecklat av Google, PyTorch som är utvecklat av Facebook, samt Scikit-learn. Alla dessa ramverk har olika egenskaper och fördelar beroende på syfte och användningsområde.
Integrerade utvecklingsmiljöer (IDEs) och kodredigerare
AI-utvecklare använder avancerade integrerade utvecklingsmiljöer för att skriva och testa kod på ett effektivt sätt.
Jupyter Notebook är ett populärt alternativ och är en interaktiv webbplattform för att skapa och dela dokument som innehåller levande kod, ekvationer, visualiseringar och förklarande text.
En annan populär plattform är Visual Studio Code som är en plattformsoberoende kodredigerare. Den stödjer många olika programmeringsspråk och erbjuder även plugins som är specifikt utformade för just AI-utveckling.
Verktyg för datavetenskap
Datavetenskapliga verktyg är också viktiga för AI-utvecklare utöver utvecklingsramar. Dessa verktyg är viktiga för att hantera och bearbeta data innan de används i AI-modeller.
Databehandling och analysverktyg: Verktyg som Pandas, NumPy, och Matplotlib i Python ekosystemet är används av AI-utvecklare för att hantera och visualisera data.
Big Data-teknologier: Plattformar som Apache Hadoop och Apache Spark är populära för att bearbeta och analysera stora datamängder som ofta är nödvändiga för träning av AI-modeller.