Education, study and knowledge

Djupa neurala nätverk: vad de är och hur de fungerar

Djupa neurala nätverk är ett koncept som utgör den huvudsakliga tekniska arkitekturen som används i Deep Learning-modeller. Dessa strukturer kan inte förstås utan att förstå den allmänna idén om artificiella neurala nätverk, grundläggande för artificiell intelligens.

Neurala nätverk används för tusen saker: att känna igen registreringsskyltar, sånger, ansikten, röster eller till och med frukterna i vårt kök. De är en särskilt användbar teknik och trots att de bara nyligen har blivit praktiska kommer de att bli mänsklighetens framtid.

Nästa Vi kommer att se på djupet idén om artificiella neurala nätverk och djupa, förstå hur de fungerar, hur de tränas och hur interaktionerna mellan de olika neuronerna som utgör dem sker.

  • Relaterad artikel: "Vad är kognitionsvetenskap? Dess grundläggande idéer och utvecklingsfaser"

Vad är djupa neurala nätverk och vad kännetecknar dem?

Djupa neurala nätverk är det en av de viktigaste tekniska arkitekturerna som används i Deep Learning eller Deep Learning. Just dessa konstgjorda nätverk har haft en svindlande tillväxt de senaste åren eftersom de utgör en grundläggande aspekt när det gäller att känna igen alla typer av mönster. Artificiell intelligens existerar tack vare driften av just dessa nätverk som, i I grund och botten kommer de att vara en kopia av hur våra hjärnor fungerar, fastän i en teknisk och matematik.

instagram story viewer

Innan vi går vidare in på vad djupa neurala nätverk är måste vi först förstå hur artificiella neurala nätverk fungerar i allmänhet och vad de är till för. Lneurala nätverk är en gren av "Machine Learning" som har haft en enorm inverkan de senaste åren, hjälpa programmerare och datavetare att bygga saker som chatbots som, när vi pratar med dem, får oss att tro att vi pratar med riktiga människor.

Konstgjorda neurala nätverk har också använts med självkörande bilar, mobilapplikationer som känner igen vårt ansikte och förvandlar det till det vi vill ha och många fler funktioner. Dess tillämpbarhet är mycket omfattande och fungerar som grunden för modern artificiell intelligens och har oändliga fördelaktiga användningsområden för vår dagliga dag.

Artificiellt nervsystem

Låt oss föreställa oss att vi är i vårt kök och vi bestämmer oss för att leta efter en apelsin, en mycket enkel uppgift.. Vi vet hur man identifierar en apelsin väldigt lätt och vi vet också hur vi skiljer den från andra frukter som vi hittar i köket, som bananer, äpplen och päron. Som? För i vår hjärna har vi väldigt assimilerat vad som är de typiska egenskaperna hos en apelsin: dess dess storlek, dess form, färgen den har, hur den doftar... Det här är alla parametrar som vi använder för att hitta en orange.

Det är en enkel uppgift för människor, men... Kan en dator göra det också? Svaret är ja. I princip skulle det vara tillräckligt att definiera samma parametrar och tilldela ett värde till en nod eller något som vi väl skulle kunna kalla en "konstgjord neuron". Vi skulle berätta för den neuronen hur apelsiner är, och ange deras storlek, vikt, form, färg eller någon annan parameter som vi tillskriver denna frukt. Med denna information förväntas det att neuronen kommer att veta hur man identifierar en apelsin när den presenteras med en.

Om vi ​​har valt parametrarna väl kommer det att vara lätt för dig att skilja på apelsiner och saker som inte är apelsiner helt enkelt genom att ta hänsyn till dessa egenskaper. När den presenteras med en bild av vilken frukt som helst, kommer den neuronen att söka efter egenskaperna associerad med apelsinen och bestäm om den ska inkluderas i kategorin "orange" eller i kategorin "övrigt frukt". I statistiska termer skulle det vara att hitta en region i en parametergraf som motsvarar vad som är letar efter en region som skulle omfatta alla fruktbitar som delar samma storlek, form, färg, vikt och arom som apelsiner.

Till en början låter allt detta väldigt enkelt att koda, och det är det faktiskt. Det fungerar väldigt bra att skilja en apelsin från en banan eller ett äpple, eftersom de har olika färger och former. Men vad händer om vi presenterade en grapefrukt för dig? och en mycket stor mandarin? De är frukter som perfekt kan förväxlas med en apelsin. Kommer den artificiella neuronen att själv kunna skilja mellan apelsiner och grapefrukter? Svaret är nej, och i själva verket tros de förmodligen vara desamma.

Problemet med att bara använda ett lager av artificiella neuroner, eller vad som är samma sak, att bara använda enkla neuroner först, är att genererar väldigt oprecisa beslutsgränser när du presenteras för något som har många gemensamma egenskaper med det du borde kunna känna igen, men i verkligheten är det inte det. Om vi ​​presenterar något som ser ut som en apelsin, till exempel en grapefrukt, även om det inte är den frukten, kommer det att identifiera den som sådan.

Dessa beslutsgränser, om de är representerade i form av en graf, kommer alltid att vara linjära. Att använda en enda artificiell neuron, det vill säga en enda nod som har integrerade parametrar konkreta, men inte kan lära sig bortom dem, kommer mycket nära beslutsgränser att erhållas. diffus. Dess huvudsakliga begränsning är att den använder två statistiska metoder, specifikt multiklassregression och logistisk regression, vilket innebär att när man är osäker inkluderar den något som inte är vad vi förväntade oss att det skulle vara. kommer att identifiera.

Om vi ​​skulle dela upp alla frukter i "apelsiner" och "inte apelsiner", med bara en neuron, är det tydligt att bananer, päron, äpplen, vattenmeloner och all frukt som inte stämmer överens i storlek, färg, form, arom och så vidare med apelsiner skulle jag lägga dem i kategorin "nej". apelsiner”. Däremot skulle grapefrukter och mandariner placera dem i kategorin "apelsiner", vilket gör jobbet som de har designats dåligt för.

Och när vi pratar om apelsiner och grapefrukt kan vi mycket väl prata om hundar och vargar, höns och höns, böcker och anteckningsböcker... Alla Dessa situationer är fall där en enkel serie av "om..." ("om...") inte skulle räcka för att tydligt skilja mellan det ena och det andra. Övrig. Det behövs ett mer komplext, icke-linjärt system, vilket är mer exakt när det gäller att skilja mellan olika element. Något som tar hänsyn till att det mellan likheterna kan finnas skillnader. Det är här neurala nätverk kommer in.

Fler lager, mer lik den mänskliga hjärnan

Artificiella neurala nätverk, som namnet antyder, är beräkningsbaserade artificiella modeller inspirerade av i den mänskliga hjärnans neurala nätverk, nätverk som i själva verket efterliknar detta organs funktion biologisk. Detta system är inspirerat av neural funktion och dess huvudsakliga tillämpning är igenkänning av mönster av alla slag: ansiktsidentifiering, röstigenkänning, fingeravtryck, handstil, registreringsskyltar… Mönsterigenkänning fungerar för nästan allt..

Eftersom det finns olika neuroner är parametrarna som tillämpas olika och en högre grad av precision erhålls. Dessa neurala nätverk är system som tillåter oss att dela upp objekt i kategorier när skillnaden kan vara subtil, separera dem på ett icke-linjärt sätt, något som skulle vara omöjligt att göra annars sätt.

Med en enda nod, med en enda neuron, är det som görs när man hanterar informationen en multiklassregression. Genom att lägga till fler neuroner, eftersom var och en av dem har sin egen icke-linjära aktiveringsfunktion som, översatt till ett enklare språk, gör att de har beslutsgränser som är mer exakt, är grafiskt representerad i en krökt form och tar hänsyn till fler egenskaper när man skiljer mellan "apelsiner" och "inte apelsiner", för att fortsätta med det exemplet.

Krökningen av dessa beslutsgränser kommer direkt att bero på hur många lager av neuroner vi lägger till vårt neurala nätverk. Dessa lager av nervceller, som gör systemet mer komplext och mer exakt, är i själva verket djupa neurala nätverk. I princip gäller att ju fler lager av djupa neurala nätverk vi har, desto mer exakt och liknande kommer programmet att jämföras med den mänskliga hjärnan.

Kort sagt, neurala nätverk är inget annat än ett intelligent system som gör att mer exakta beslut kan fattas, på ett väldigt liknande sätt som vi människor gör det. Människor bygger på erfarenhet, lärande av vår omgivning. Till exempel, om vi går tillbaka till fallet med apelsin och grapefrukt, om vi aldrig har sett en, kommer vi perfekt att missta den för en apelsin. När vi har blivit bekanta med det, kommer det att vara då när vi redan vet hur vi ska identifiera det och skilja det från apelsiner.

Det första som görs är att ge några parametrar till de neurala nätverken så att de vet hur det är som vi vill att det ska lära sig att identifiera. Sedan kommer inlärnings- eller träningsfasen, så att den blir allt mer exakt och successivt har en mindre felmarginal. Detta är den tid då vi skulle presentera vårt neurala nätverk med en apelsin och andra frukter. I utbildningsfasen kommer de att få fall där de är orange och fall där de inte är orange, för att se om de fick rätt svar och berätta det rätta svaret.

Vi kommer att försöka göra många försök och så nära verkligheten som möjligt.. På detta sätt hjälper vi det neurala nätverket att fungera när verkliga fall kommer och det vet hur det ska särskilja ordentligt, på samma sätt som en människa skulle göra i verkliga livet. Om utbildningen har varit adekvat, efter att ha valt bra igenkänningsparametrar och har klassificerats väl kommer det neurala nätverket att ha en mycket hög framgångsfrekvens för mönsterigenkänning. hög.

  • Du kanske är intresserad av: "Hur fungerar neuroner?"

Vad är de och hur fungerar de exakt?

Nu när vi har sett den allmänna idén om vad neurala nätverk är och vi kommer att förstå mer fullständigt vad de är och hur dessa emulatorer av neuronerna i den mänskliga hjärnan fungerar och var målar djupa neurala nätverk i allt detta bearbeta.

Låt oss föreställa oss att vi har följande neurala nätverk: vi har tre lager av artificiella neuroner. Låt oss säga att det första lagret har 4 neuroner eller noder, det andra 3 och det sista har bara 2. Allt detta är ett exempel på ett artificiellt neuralt nätverk, ganska lätt att förstå.

Det första lagret är det som tar emot data., det vill säga den information som mycket väl kan komma i form av ljud, bild, aromer, elektriska impulser... Denna första lager är inmatningsskiktet och ansvarar för att ta emot all data för att senare kunna skicka den till följande skikten. Under träningen av vårt neurala nätverk kommer detta att vara det lager som vi kommer att arbeta med först, vilket ger det data som vi kommer att använda för att se hur bra du är på att göra förutsägelser eller identifiera informationen du får ger.

Det andra lagret i vår hypotetiska modell är det dolda lagret, som sitter precis i mitten av det första och sista lagret., som om vårt neurala nätverk vore en smörgås. I det här exemplet har vi bara ett dolt lager, men det kan vara så många vi vill. Vi kan prata om 50, 100, 1000 eller till och med 50 000 lager. I huvudsak är dessa dolda lager den del av det neurala nätverket som vi skulle kalla det djupa neurala nätverket. Ju större djup, desto mer komplext är det neurala nätverket.

Slutligen har vi det tredje lagret i vårt exempel som är utdatalagret. Detta lager, som namnet anger, ansvarar för att ta emot information från de tidigare lagren, fatta beslut och ge oss ett svar eller resultat.

I det neurala nätverket är varje artificiell neuron kopplad till alla följande. I vårt exempel, där vi har kommenterat att vi har tre lager med 4, 3 och 2 neuroner, är de fyra i ingångslagret kopplat till 3 i det dolda lagret och 3 i det dolda lagret med 2 i utgången, vilket ger oss totalt 18 anslutningar.

Alla dessa neuroner är kopplade till de i nästa lager, och skickar informationen i ingångs->dold->utgångsriktningen.. Om det fanns fler dolda lager skulle vi prata om ett större antal anslutningar, skicka informationen från dolt lager till dolt lager tills det når utdatalagret. Utdatalagret, när det väl har tagit emot informationen, vad det kommer att göra är att ge oss ett resultat baserat på informationen det har fått och dess sätt att bearbeta den.

När vi tränar vår algoritm, det vill säga vårt neurala nätverk, kommer denna process som vi just har förklarat att göras många gånger. Vi ska leverera en del data till nätverket, vi ska se vad resultatet ger oss och vi ska analysera det och jämföra det med vad vi förväntade oss att resultatet skulle ge oss. Om det är stor skillnad mellan vad som förväntas och vad som erhålls betyder det att det finns en hög felmarginal och att det därför är nödvändigt att göra några modifieringar.

Hur fungerar artificiella neuroner?

Nu ska vi förstå den individuella funktionen hos neuronerna som arbetar inom ett neuralt nätverk. Neuronen tar emot en inmatning av information från den tidigare neuronen. Låt oss säga att denna neuron tar emot tre informationsingångar, var och en kommer från de tre neuronerna i det föregående lagret. I sin tur genererar denna neuron utgångar, i det här fallet låt oss säga att den bara är kopplad till en neuron i nästa lager.

Varje koppling som denna neuron har med de tre neuronerna i det föregående lagret ger ett "x"-värde, vilket är värdet som den föregående neuronen skickar oss.; och den har också ett värde "w", vilket är vikten av denna anslutning. Vikt är ett värde som hjälper oss att lägga större vikt vid en anslutning framför andra. Kort sagt, varje anslutning med de tidigare neuronerna har ett "x" och ett "w" värde, som multipliceras (x·w).

Det ska vi också ha ett värde som kallas "bias" eller bias representerat med "b" vilket är antalet fel som uppmuntrar vissa neuroner att aktiveras lättare än andra. Dessutom har vi en aktiveringsfunktion inom neuronet, vilket är det som gör dess klassificering av olika element (s. apelsiner) är inte linjär. På egen hand har varje neuron olika parametrar att ta hänsyn till, vilket gör att hela systemet, detta är det neurala nätverket, klassificeras på ett icke-linjärt sätt.

Hur vet neuronen om den måste aktiveras eller inte? dvs när vet man om man måste skicka information till nästa lager? Tja, detta beslut styrs av följande ekvation:

neuralt nätverk

Denna formel kommer att betyda att summan av alla vikter "w" multiplicerat med alla värden på "x" som neuronen tar emot från föregående lager måste göras. Till detta läggs förspänningen "b".

Resultatet av denna ekvation skickas till en aktiveringsfunktion, vilket helt enkelt är en funktion som säger oss att om resultatet av denna ekvation är större än a ett visst antal kommer neuronen att skicka en signal till nästa lager och om det är mindre kommer det inte att göra det att skicka den Så det här är hur en artificiell neuron bestämmer om den ska skicka information till neuronerna enligt följande: lager med hjälp av en utgång som vi kommer att kalla "y", en utgång som i sin tur är ingången "x" för följande nervcell.

Och hur tränar man ett helt nätverk?

Det första som görs är att leverera data till det första lagret, som vi tidigare har kommenterat. Detta lager kommer att skicka information till följande lager, som är de dolda lagren eller det djupa neurala nätverket. Neuronerna i dessa lager kommer att aktiveras eller inte, beroende på vilken information som tas emot. Slutligen kommer utgångsskiktet att ge oss ett resultat, som vi kommer att jämföra med värdet vi väntade på för att se om det neurala nätverket har lärt sig vad det ska göra på rätt sätt.

Om han inte lärde sig bra kommer vi att utföra en annan interaktion, det vill säga vi kommer att presentera information igen och se hur det neurala nätverket beter sig. Beroende på de erhållna resultaten kommer "b"-värdena att justeras, det vill säga förspänningen för varje neuron, och "w", detta är vikten av varje anslutning med varje neuron för att minska felet. För att ta reda på hur stort felet är kommer vi att använda en annan ekvation, som är följande:

neuralt nätverk

Denna ekvation är rotmedelkvadratfelet. Vi kommer att göra summan av y (x) som är värdet som vårt nätverk gav oss i interaktionen minus "a", vilket är värdet som vi förväntade oss att det skulle ge oss, upphöjt till kvadraten. Slutligen kommer vi att multiplicera denna summa med 1/2n, vilket är det "n" antalet interaktioner som vi har skickat för att träna vårt neurala nätverk.

Anta till exempel att vi har följande värden

neuralt nätverk

Den första kolumnen "y (x)" representerar vad vårt nätverk har gett oss i var och en av de fyra interaktioner som vi har testat det. De värden som vi har erhållit, som kan ses, motsvarar inte de i den andra kolumnen "a", som är de önskade värdena för var och en av de testade interaktionerna. Den sista kolumnen representerar felet för varje interaktion.

Genom att tillämpa ovannämnda formel och använda dessa data här, tänk på att i detta fall n = 4 (4 interaktioner) ger oss ett värde på 3,87, vilket är medelkvadratfelet som vårt neurala nätverk har i dessa ögonblick. Att känna till felet, vad vi måste göra nu är, som vi har kommenterat tidigare, ändra bias och vikter av var och en av neuronerna och deras interaktioner med avsikten att på detta sätt felet är minska.

Vid det här laget ansöker ingenjörer och datavetare en algoritm som kallas gradient descent med vilken de kan erhålla värden för att testa och modifiera bias och vikt för varje artificiell neuron så att på detta sätt ett allt mindre fel erhålls, som närmar sig förutsägelsen eller resultatet efterlyst. Det handlar om att testa och ju fler interaktioner som görs, desto mer träning blir det och desto mer lär sig nätverket.

När det neurala nätverket väl är utbildat kommer det att ge oss korrekta och pålitliga förutsägelser och identifieringar. Vid denna tidpunkt kommer vi att ha ett nätverk som i var och en av sina neuroner kommer att ha ett värde av definierad vikt, med en kontrollerad bias och med en beslutskapacitet som kommer att göra systemet arbete.

Bibliografiska referenser:

  • Puig, A. [AMP Tech] (2017, 28 juli). Hur fungerar neurala nätverk? [Videofil]. Återhämtad från https://www.youtube.com/watch? v=IQMoglp-fBk&ab_channel=AMPTech
  • Santaolalla, J. [Ge dig själv en vlogg] (2017, 11 april) CienciaClip Challenge - Vad är neurala nätverk? [Videofil]. https://www.youtube.com/watch? v=rTpr6DuY4LU&ab_channel=DateunVlog
  • Schmidhuber, J. (2015). "Djupt lärande i neurala nätverk: en översikt". Neurala nätverk. 61: 85–117. arXiv: 1404.7828. doi: 10.1016/j.neunet.2014.09.003. PMID 25462637. S2CID 11715509
Stonehenge: vad är det och vilken funktion hade detta förhistoriska monument?

Stonehenge: vad är det och vilken funktion hade detta förhistoriska monument?

På medeltiden sades det ha byggts av trollkarlen Merlin. Senare, på 1600-talet, kommenterades det...

Läs mer

Didaktisk enhet: definition, vad den är till för och hur man förbereder den

Undervisnings- och lärandeprocessen är en komplex process., vilket gör att vi kan skaffa oss kuns...

Läs mer

Vad studeras inom humaniora?

Vad förstår vi med "Humaniora" och vad studeras i denna typ av karriär? I en allt mer specifik oc...

Läs mer

instagram viewer