Grunderna i AI
Vad är CNN (Convolutional Neural Networks)?
Kanske har du undrat hur Facebook (META ) eller Instagram kan automatiskt känna igen ansikten på en bild, eller hur Google (GOOGL ) låter dig söka på webben efter liknande foton genom att bara ladda upp en egen bild. Dessa funktioner är exempel på datorseende, och de drivs av convolutional neural networks (CNNs). Men vad är egentligen convolutional neural networks? Låt oss ta en djupdykning i arkitekturen för en CNN och förstå hur de fungerar.
Vad är Neurala Nätverk?
Innan vi börjar prata om convolutional neural networks, låt oss ta en stund att definiera vanliga neurala nätverk. Det finns en annan artikel om ämnet neurala nätverk tillgänglig, så vi kommer inte att gå för djupt in i dem här. Men för att kort definiera dem är de beräkningsmodeller inspirerade av den mänskliga hjärnan. Ett neuralt nätverk fungerar genom att ta in data och manipulera datan genom att justera “vikter”, som är antaganden om hur indatafunktionerna är relaterade till varandra och objektklassen. När nätverket tränas justeras vikternas värden och de kommer förhoppningsvis att konvergera till vikter som korrekt fångar relationerna mellan funktionerna.
Detta är hur ett feed-forward neuralt nätverk fungerar, och CNNs består av två halvor: ett feed-forward neuralt nätverk och en grupp convolutionella lager.
Vad är Convolutionella Neurala Nätverk (CNNs)?
Vad är “konvolutioner” som sker i ett convolutionellt neuralt nätverk? En konvolution är en matematisk operation som skapar en uppsättning vikter, vilket i princip skapar en representation av delar av bilden. Denna uppsättning vikter kallas en kernel eller filter. Filtreringen som skapas är mindre än den kompletta indata-bilden, och täcker bara en undersektion av bilden. Värdena i filtret multipliceras med värdena i bilden. Filtret flyttas sedan till att bilda en representation av en ny del av bilden, och processen upprepas tills hela bilden har täckts.
En annan sätt att tänka på detta är att föreställa sig en mur av tegelstenar, där tegelstenarna representerar pixlarna i indata-bilden. Ett “fönster” flyttas fram och tillbaka längs muren, vilket är filtret. Teglarna som syns genom fönstret är pixlarna som får sina värden multiplicerade med värdena i filtret. Av denna anledning kallas denna metod för att skapa vikter med ett filter ofta för “rullande fönster”-tekniken.
Utmatningen från filtren som flyttas runt hela indata-bilden är en tvådimensionell array som representerar hela bilden. Denna array kallas en “funktion-karta”.
<b.Varför är Konvolutioner Väsentliga
Vad är syftet med att skapa konvolutioner över huvud taget? Konvolutioner är nödvändiga eftersom ett neuralt nätverk måste kunna tolka pixlarna i en bild som numeriska värden. Funktionen hos de convolutionella lagren är att omvandla bilden till numeriska värden som det neurala nätverket kan tolka och sedan extrahera relevanta mönster från. Uppgiften för filtren i det convolutionella nätverket är att skapa en tvådimensionell array av värden som kan skickas till de senare lagren i ett neuralt nätverk, som kommer att lära sig mönstren i bilden.
Filtar Och Kanaler

Foto: cecebur via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)
CNNs använder inte bara ett filter för att lära sig mönster från indata-bilderna. Flera filter används, eftersom de olika arrayer som skapas av de olika filtren leder till en mer komplex, rik representation av indata-bilden. Vanliga antal filter för CNNs är 32, 64, 128 och 512. Ju fler filter det finns, desto fler möjligheter har CNN att undersöka indata och lära sig av den.
En CNN analyserar skillnaderna i pixelvärden för att bestämma objektsgränser. I en gråskalebild skulle CNN bara titta på skillnaderna i svart och vitt, ljust till mörkt. När bilderna är färgbilder, tar CNN inte bara mörkt och ljust i beaktande, utan det måste också ta de tre olika färgkanalerna – röd, grön och blå – i beaktande. I detta fall har filtren 3 kanaler, precis som bilden själv. Antalet kanaler som ett filter har kallas dess djup, och antalet kanaler i filtret måste matcha antalet kanaler i bilden.
Convolutionellt Neuralt Nätverk (CNN) Arkitektur
Låt oss ta en titt på den kompletta arkitekturen för ett convolutionellt neuralt nätverk. Ett convolutionellt lager finns i början av varje convolutionellt nätverk, eftersom det är nödvändigt att omvandla bilddata till numeriska arrayer. Men convolutionella lager kan också komma efter andra convolutionella lager, vilket innebär att dessa lager kan staplas ovanpå varandra. Att ha flera convolutionella lager innebär att utmatningen från ett lager kan undergå ytterligare konvolutioner och grupperas tillsammans i relevanta mönster. I praktiken innebär detta att när bilddata fortskrider genom de convolutionella lagren, börjar nätverket “känna igen” mer komplexa funktioner i bilden.
De tidiga lagren i ett ConvNet är ansvariga för att extrahera de lågnivåfunktioner, såsom pixlarna som utgör enkla linjer. Senare lager i ConvNet kommer att kombinera dessa linjer till former. Denna process med att gå från ytanivåanalys till djupnivåanalys fortsätter tills ConvNet känner igen komplexa former som djur, ansikten och bilar.
Efter att datan har passerat alla convolutionella lager, fortsätter den in i det tätt anslutna delen av CNN. De tätt anslutna lagren är vad ett traditionellt feed-forward neuralt nätverk ser ut, en serie noder arrangerade i lager som är anslutna till varandra. Datan fortskrider genom dessa tätt anslutna lager, som lär sig mönstren som extraherades av de convolutionella lagren, och på så sätt blir nätverket kapabelt att känna igen objekt.












