Meny
Är gratis
checka in
den huvudsakliga  /  Firmware / Neurala nätverk med enkla ord. Enkla ord om svårt: Vad är neurala nätverk? Historia av neurala nätverk

Neurala nätverk är enkla ord. Enkla ord om svårt: Vad är neurala nätverk? Historia av neurala nätverk

James Loy, Georgia Technology University of Technology. Guide för nybörjare, varefter du kan skapa ditt eget neurala nätverk på Python.

Motivering:fokuserar på personlig erfarenhet Vid lärande djup träning bestämde jag mig för att skapa ett neuralt nätverk från början utan ett komplext träningsbibliotek, till exempel. Jag tror att för nybörjare vetenskapsman är det viktigt att förstå den interna strukturen.

Den här artikeln innehåller det jag lärde mig, och hoppas det blir användbart för dig! Andra användbara artiklar om ämnet:

Vad är ett neuralt nätverk?

De flesta artiklar om neurala nätverk utförs med hjärnans paralleller. Jag är lättare att beskriva mig neurala nätverk Som en matematisk funktion, som visar den angivna ingången till önskat resultat, inte detalj.

Neurala nätverk består av följande komponenter:

  • inloppsskikt, x
  • godtyckligt tal Dolda lager
  • utgångsskiktet, ŷ
  • uppsättning väga och förskjutningar Mellan varje lager W. och b.
  • urval för varje doldt lager σ ; I det här arbetet använder vi SIGMOID-aktiveringsfunktionen.

Diagrammet nedan visar arkitekturen i ett tvåskiktigt neuralt nätverk (Observera att ingångsnivån vanligtvis utesluts när du räknar antalet lager i det neurala nätverket).

Skapa en neural nätverksklass på Python ser enkelt ut:

Utbildning Neural Network

Produktion ŷ enkelt tvåskikt neuralt nätverk:

I ovanstående ekvation är vikt W och Offset B de enda variablerna som påverkar utgången ŷ.

Naturligtvis bestämmer de korrekta värdena för vikter och förskjutningar noggrannheten hos förutsägelser. Bearbeta tunn inställning Vågar och förskjutningar från ingångsdata är känt som.

Varje iteration av inlärningsprocessen består av följande steg

  • beräkning av den förutspådda avfarten ŷ kallas direktfördelning
  • uppdatering av vikter och förskjutningar som heter

Serie-grafen nedan illustrerar processen:

Direktfördelning

Som vi har sett på diagrammet ovan är direktdistribution helt enkelt en enkel databehandling, och för det neurala nätverket för bas 2-skikt, ges återkallandet av det neurala nätverket med formeln:

Låt oss lägga till en direkt distributionsfunktion till vår kod på Python-E för att göra detta. Observera att för enkelhet föreslog vi att offset är lika med 0.

Men du behöver ett sätt att utvärdera "kvalitet" av våra prognoser, det vill säga hur långt våra prognoser är). Förlustfunktion Låt oss bara göra det.

Förlustfunktion

Det finns många tillgängliga förlustfunktioner, och arten av vårt problem bör diktera oss valet av förlustfunktionen. I det här arbetet kommer vi att använda summan av kvadraterna av fel Som en funktion av förlust.

Mängden felkvadrater är den genomsnittliga skillnaden mellan varje förutspådd och verkligt värde.

Syftet med lärandet är att hitta en uppsättning skalor och förskjutningar som minimerar förlustfunktionen.

Inverse distribution

Nu när vi mätt vårt prognosfel (förlust) måste vi hitta ett sätt Spridning av fel tillbaka och uppdatera våra vikter och förskjutningar.

För att ta reda på rätt mängd för att justera vikterna och förskjutningarna, måste vi känna till förlustens derivatfunktion med avseende på vikterna och förskjutningarna.

Återkalla från analysen som derivatfunktionen är en tangentvinkel för lutningsvinkel.

Om vi \u200b\u200bhar ett derivat, kan vi helt enkelt uppdatera vikter och offsets, vilket ökar / minskar dem (se diagram ovan). Det kallas .

Vi kan emellertid inte direkt beräkna derivatet av förlustfunktionen i förhållande till vikterna och förskjutningarna, eftersom ekvationen av förlustfunktionen inte innehåller skalor och förskjutningar. Därför behöver vi en kedjeregel för att hjälpa till med beräkningen.

Fuch! Det var besvärligt, men fick få det vi behöver - ett derivat (tilt) av förlustfunktionerna i förhållande till vikterna. Nu kan vi på lämpligt sätt justera vikterna.

Lägg till backpropagationsfunktionen i vår kod på Python-E:

Kontrollera arbetet med neurosetik

Nu när vi har vår fullständiga kod på Python-E för att utföra direkt och omvänd distribution, låt oss titta på vårt neurala nätverk i exemplet och se hur det fungerar.


Den perfekta uppsättningen av skalor

Vårt neurala nätverk ska utforska den perfekta uppsättningen skalor för att presentera den här funktionen.

Låt oss träna det neurala nätverket för 1500 iterationer och se vad som händer. Med tanke på schemat för förluster på iterationer nedan kan vi tydligt se att förlusten minskas med ett minimum. Detta överensstämmer med algoritmen för den gradientens nedstigning, som vi tidigare sagt.

Låt oss titta på den slutliga förutsägelsen (utgång) från det neurala nätverket efter 1500 iterationer.

Vi gjorde det!Vår direkta och returspridningsalgoritm visade den framgångsrika driften av det neurala nätverket och förutsägelser konvergerar på sanna värden.

Observera att det finns en liten skillnad mellan förutsägelser och faktiska värden. Detta är önskvärt eftersom det förhindrar det neuronala nätverket bättre att generalisera osynliga data.

Slutliga reflektioner

Jag lärde mig mycket i färd med att skrapa mitt eget neurala nätverk. Även om bibliotek av djup inlärning, som tensorflöde och kej, tillåter skapandet av djupa nätverk utan en fullständig förståelse för det neurala nätverkets inre arbete, finner jag att nybörjaren Data Scientist-Am är användbar för att få sin djupare förståelse.

Jag investerade mycket av min personliga tid i detta jobbOch jag hoppas det kommer att vara bra för dig!


Många av villkoren i neurala nätverk är förknippade med biologi, så låt oss börja från början:

Hjärnan är komplicerad, men den kan delas in i flera huvuddelar och operationer:

Orsaksmedlet kan vara inre(till exempel en bild eller en idé):

Och ta nu en titt på huvud och förenklad delarhjärna:


Hjärnan är i allmänhet lik kabelnätet.

Nervcell- Den huvudsakliga enheten av kalkyl i hjärnan, den tar emot och bearbetar de kemiska signalerna från andra neuroner, och, beroende på ett antal faktorer, eller gör ingenting, eller genererar en elektrisk puls eller åtgärdspotentialen, som sedan driver signalerna att justera anslutenneuroner:

Drömmar, minnen, självreglerande rörelser, reflexer och faktiskt allt du tänker eller gör - allt händer på grund av denna process: miljoner, eller till och med miljarder neuroner arbetar på olika nivåer och skapar anslutningar som skapar olika parallella delsystem och är biologiska neurala netto.

Naturligtvis är det alla förenklat och generaliseringar, men tack vare dem kan vi beskriva en enkel
Neuralt nätverk:

Och det är formaliserat att beskriva det med ett diagram:

Vissa förklaringar krävs här. Muggar är neuroner, och linjer är anslutningar mellan dem,
Och inte att komplicera i detta skede, försoningrepresenterar direkt rörelse av information från vänster till höger. Första Neuron B. det här ögonblicket Aktiv och markerad grå. Vi tilldelade honom också ett nummer (1 - om det fungerar, 0 - om inte). Siffror mellan neurons show viktkommunikation.

Grafer ovan visar nätverkstidens ögonblick, för mer exakt kartläggning, måste du dela den i tillfälliga segment:

För att skapa ditt neurala nätverk måste du förstå hur vikter påverkar neuroner och hur neuroner är utbildade. Som ett exempel, ta en kanin (testkanin) och lägg den i villkoren i det klassiska experimentet.

När de skickas av en säker luft, kaniner, som människor, blinka:

Denna beteendemodell kan dras av grafer:

Som i föregående schema visar dessa grafer bara det ögonblick då kaninen känner avblåsningen, och vi är så kodningblinka som ett logiskt värde. Dessutom beräknar vi om den andra neuronen utlöses, baserat på viktvärde. Om det är lika med 1, arbetar Touch Neuron, vi blinkar; Om vikt är mindre än 1 blinkar vi inte: den andra neuronen begränsa- 1.

Vi presenterar ett annat element - säkert ljudsignal:

Vi kan simulera kaninens intresse så här:

Huvudskillnaden är att nu är vikten lika noll-Så vi fick inte en blinkande kanin, ja, för närvarande, åtminstone. Lär dig nu kaninen som blinkar på laget, blandar
Stimuli (pip och blåser):

Det är viktigt att dessa händelser inträffar i olika tillfälliga epokI diagrammen kommer det att se ut så här:

I sig gör ljudet ingenting, men luftflödet gör fortfarande kaninens blinkning, och vi visar det genom vikter multiplicerat med stimuli (röd).

Träningkomplexa beteenden kan förenklas som en gradvis viktförändring mellan associerade neuroner över tiden.

För att träna kanin, upprepa åtgärden:

För de tre första försöken kommer systemet att se ut så här:

Observera att vikt för ljudstimulans växer efter varje upprepning (markerad i rött), detta värde är nu godtyckligt - vi valde 0,30, men numret kan vara något, ännu negativt. Efter den tredje upprepningen kommer du inte att märka förändringarna i kaninbeteendet, men efter det fjärde omvänden kommer något överraskande att hända - beteendet kommer att förändras.

Vi tog bort effekterna av luft, men kaninen blinkar fortfarande, har hört en pip! Förklara detta beteende kan vårt senaste system:

Vi tränade kaninen för att reagera på ljudet av blinkande.


I ett verkligt experiment kan detta slag kräva mer än 60 repetitioner för att uppnå resultatet.

Nu kommer vi att lämna den biologiska världen i hjärnan och kaninerna och försöka anpassa allt som
Ta reda på för att skapa ett artificiellt neuralt nätverk. Till att börja med, låt oss försöka göra en enkel uppgift.

Antag att vi har en maskin med fyra knappar, vilket ger mat när du trycker på rätt
Knappar (brunn eller energi, om du är en robot). Uppgiften är att ta reda på vilken knapp som ger en ersättning:

Vi kan skildra (schematiskt), vilket gör knappen när den trycks på enligt följande:

Denna uppgift är bättre att lösa det hela, så låt oss titta på alla möjliga resultat, inklusive rätt:


Klicka på 3: e knappen för att få din middag.

För att reproducera det neurala nätverket i koden måste vi göra en modell eller ett diagram för att börja med vilket du kan matcha nätverket. Här är ett schema som är lämpligt för uppgiften, dessutom visar den sin biologiska analoga:

Detta neurala nätverk mottar helt enkelt inkommande information - i det här fallet blir det uppfattningen av vilken knapp som knappen trycks in. Därefter ersätter nätverket inkommande information om vikt och gör utmatningen baserat på tillägget av skiktet. Det låter lite förvirrande, men låt oss se hur knappen presenteras i vår modell:


Observera att alla vikter är lika med 0, så det neurala nätverket, som en bebis, är helt tomt, men helt interrelated.

Således jämför vi den externa händelsen med inloppsskiktet i det neurala nätverket och beräkna värdet vid dess utgång. Det kan sammanfalla eller inte sammanfalla med verkligheten, men vi ignorerar fortfarande och börjar beskriva en tydlig dators uppgift. Låt oss börja med inmatningen av vågorna (vi ska använda JavaScript):

VAR-ingångar \u003d; varvikter \u003d; // För bekvämlighet kan dessa vektorer kallas
Nästa steg är att skapa en funktion som samlar inmatningsvärden och vikter och beräknar värdet vid utgången:

Funktion EvaluateneureNetwork (InputVector, WeightVector) (VAR Resultat \u003d 0; InputVector.foreach (Layervalue \u003d InputValue * WeightVector; Resultat + \u003d Layervalue;)); Retur (resultat. Tänk på (2));) / / kan verka komplexa, men allting Att hon gör är att jämföra vikt / inmatningspar och lägger till resultatet
Som förväntat, om vi startar den här koden får vi samma resultat som i vår modell eller grafik ...

EvaluateneureNetwork (ingångar, vikter); // 0,00
Live Exempel: Neural Net 001.

Nästa steg i förbättringen av vår neuralition kommer det att finnas ett sätt att kontrollera sina egna helger eller resulterande värden som är jämförbara med den verkliga situationen,
Låt oss först kodifiera den här verkligheten i variabeln:

För att upptäcka inkonsekvenser (och hur många) kommer vi att lägga till en felfunktion:

Fel \u003d Verklighet - Neural Net Output
Med det kan vi utvärdera vårt neurala nätverks arbete:

Men ännu viktigare - vad sägs om situationer när verkligheten ger ett positivt resultat?

Nu vet vi att vår modell av det neurala nätverket inte fungerar (och vi vet hur mycket), bra! Och det är bra för att vi nu kan använda felfunktionen för att hantera vårt lärande. Men allt detta kommer att säkerställa mening om vi omdefinierar felfunktionen enligt följande:

Fel \u003d. Önskad utmatning. - Neural Net Output
Elusiv, men en så viktig skillnad, som tyst visar att vi ska
Använd tidigare erhållna resultat för jämförelse med framtida åtgärder
(Och för lärande, som vi kommer att se då). Det finns i det verkliga livet, fullt
repetitiva mönster, så det kan bli en evolutionär strategi (bra, i
flesta fall).

VAR-ingång \u003d; varvikter \u003d; var önskadResult \u003d 1;
Och ny funktion:

Funktion Evaluateneurror (önskad, faktiskt);) // Efter att ha utvärderat både nätverket och felet skulle vi få: // "Neural Net Output: 0.00 Fel: 1"
Live Exempel: Neural Net 002.

Låt oss sammanfatta resultatet. Vi började med uppgiften, gjorde det enkel modell I form av ett biologiskt neuralt nätverk och en metod för att mäta prestanda jämfört med verkligheten eller önskat resultat erhölls. Nu måste vi hitta ett sätt att korrigera nonconformity - en process, både för datorer och människor kan betraktas som träning.

Hur tränar man ett neuralt nätverk?

Grunden för utbildning både biologiskt och artificiellt neuralt nätverk är en upprepning.
och utbildningsalgoritmerSå vi kommer att arbeta med dem separat. Låt oss börja med S.
Utbildningsalgoritmer.

I naturen hänvisas under utbildningsalgoritmerna till förändringar i fysisk eller kemisk
Egenskaper hos neuroner efter experiment:

En dramatisk illustration av hur två neuroner förändras efter tid i koden och vår modell "Learning Algorithm" betyder att vi helt enkelt kommer att ändra något för en tid för att lindra ditt liv. Låt oss därför lägga till en variabel för att utse graden av lindring av liv:

Var learningRate \u003d 0,20; // det större värdet, desto snabbare kommer det att bli en inlärningsprocess :)
Och vad kommer den här förändringen?

Detta kommer att förändra vikt (precis som en kanin!), Speciellt vikten av den utgång vi vill få:

Så här kodar du en sådan algoritm - ditt val, jag lägger till en viktlärningskoefficient för enkelhet, här är det i form av en funktion:

Funktion Lär dig (WeightVector.foreach (funktion (vikt, index, vikter) (om (InputVector\u003e 0) (vikter \u003d vikt + learningRate;)));)
När den används, kommer denna träningsfunktion helt enkelt att lägga till vår vikt vektor träningskoefficient aktiv neurona, Före och efter kretsen av lärande (eller upprepning), kommer resultaten att vara sådana:

// Originalvikt Vector: // Neural Net Output: 0.00 Fel: 1 Lär dig (inmatning, vikter); // Ny vikt Vector: // Neural Net Output: 0.20 Fel: 0.8 // Om det inte är uppenbart, är återkallandet av det neurala nätverket nära 1 (kycklingutgivning) - vad vi ville ha, så vi kan dra slutsatsen att vi är rör sig i rätt riktning
Live Exempel: Neural Net 003.

Okej, nu när vi flyttar i rätt riktning, kommer den sista detaljerna i detta pussel att introducera upprepa.

Det här är inte så svårt, i naturen gör vi bara samma sak igen och igen, och i koden anger vi helt enkelt antalet repetitioner:

Var försök \u003d 6;
Och införandet av antalet repetitioner kommer att se ut så här i vårt Neural Network.

Funktionståg (försök) (för (i \u003d 0; i< trials; i++) { neuralNetResult = evaluateNeuralNetwork(input, weights); learn(input, weights); } }
Tja, vår slutrapport:

Neural Net Output: 0.00 Fel: 1.00 Vikt Vector: Neural Net Output: 0.20 Fel: 0,80 Vikt Vector: Neural Net Output: 0,40 Fel: 0,60 Vikt Vector: Neural Net Output: 0,60 Fel: 0,40 Vikt Vector: Neural Net Output: 0.80 Fel : 0,20 Vikt vektor: Neural Net Output: 1.00 Fel: 0.00 Vikt Vector: // Kyckling middag!
Live Exempel: Neural Net 004.

Nu har vi en viktvektor, som bara ger ett resultat (kyckling till middag), om ingångsvektorn motsvarar verkligheten (tryck på den tredje knappen).

Så vad är det coola vi gjorde just?

I det betongfodral Vårt neurala nätverk (efter träning) kan känna igen ingångsdata och säga att det kommer att leda till det önskade resultatet (vi måste fortfarande programmera specifika situationer):

Dessutom är det en skalbar modell, leksak och verktyg för vårt lärande med dig. Vi kunde lära oss något nytt om maskininlärning, neurala nätverk och artificiell intelligens.

Varning Användare:

  • Lagringsmekanismen hos de studerade skalorna är inte anordnad, så det här neurala nätverket kommer att glömma allt som vet. När du uppdaterar eller startade om koden behöver du minst sex framgångsrika upprepningar så att nätverket är helt utbildat, om du tror att en person eller maskin kommer att trycka på knapparna i slumpmässig ordning ... det tar lite tid.
  • Biologiska nätverk för att lära viktiga saker har snabbhetens hastighet 1, så du behöver bara en framgångsrik upprepning.
  • Det finns en algoritm för lärande, vilket är mycket lik biologiska neuroner, hans catchy name: widrof-Hoff Rule, eller lärande Widroff-Hoff.
  • Trösklar av neuroner (1 i vårt exempel) och effekterna av omskolning (med ett stort antal repetitioner kommer resultatet att vara större än 1) beaktas inte, men de är mycket viktiga i naturen och är ansvariga för stora och komplexa block av beteendereaktioner. Som negativa vikter.

Anteckningar och referenser för vidare läsning

Jag försökte undvika matematik och stränga villkor, men om du är intresserad byggde vi en Percepron, som definieras som algoritmen för kontrollerad utbildning (träning med läraren) av dubbla klassificerare - en tung sak.

Den biologiska hjärnans struktur är inte en enkel fråga, delvis på grund av felaktigheter, delvis på grund av dess komplexitet. Det är bättre att börja med Neuroscience (Purves) och kognitiv neurovetenskap (Gazzaniga). Jag förändras och anpassas ett exempel med en kanin från Gateway to Memory (Gluck), som också är en utmärkt ledare in i världen av grafer.

En annan chic resurs En introduktion till neurala nätverk (Gurney) är lämplig för alla dina EI-relaterade behov.

Och nu Python! Tack ILEE Andshmidt för den medföljande versionen på Python:

Ingångar \u003d vikter \u003d desired_result \u003d 1 learning_rate \u003d 0,2 prövningar \u003d 6 def evaluate_neural_network (input_array, weight_array): result \u003d 0 for i in intervallet (len (input_array)): layer_value \u003d input_array [i] * weight_array [i] resultatet + \u003d layer_value Skriv ut ("Evaluate_neural_network:" + STR (resultat)) Skriv ut ("vikter:" + str (vikter)) returresultat def Evaluate_Error (önskat, faktiskt): Fel \u003d önskat - Faktiskt tryck ("Evaluate_Error:" + STR (fel) RETURN ERROR DEF LEARN (INPUT_ARRAY, wEIGHT_ARRAY): print ( "Learning ...") för i i intervallet (LEN (INPUT_ARRAY)): om input_array [i]\u003e 0: weight_array [i] + \u003d Learning_Rate Def Tåg (Trials) : for i in range (försök): neural_net_result \u003d evaluate_neural_network (Ingångar, Vikter) Läs (Ingångar, vikter) Tåg (Trials)
Och nu på GO! Tack för den här versionen Kirana Maher.

Paket Huvudimport ("FMT" "Math") FUNC MAIN () (FMT.Println ("Skapa ingångar och vikter ...") Ingångar: \u003d Float64 (0,00, 0,00, 1,00, 0,00) Vikter: \u003d Float64 (0,00, 0,00, 0,00, 0,00) Önskat: \u003d 1,00 Learningrate: \u003d 0,20 Trials: \u003d 6 Tåg (Trials, ingångar, vikter, Önskade, Learningrate)) FUNC Train (FÖRSÖK INT, iNGÅNGAR FLOAT64, VIKTER FLOAT64, Önskad Float64, Learningrate Float64) ( För jag: \u003d 1; jag< trials; i++ { weights = learn(inputs, weights, learningRate) output:= evaluate(inputs, weights) errorResult:= evaluateError(desired, output) fmt.Print("Output: ") fmt.Print(math.Round(output*100) / 100) fmt.Print("\nError: ") fmt.Print(math.Round(errorResult*100) / 100) fmt.Print("\n\n") } } func learn(inputVector float64, weightVector float64, learningRate float64) float64 { for index, inputValue:= range inputVector { if inputValue > 0,00 (weightVector \u003d weightVector + learningRate)) retur weightVector) func utvärdera (inputVector float64, weightVector float64) float64 (resultat: \u003d 0,00 för index, Invärde: \u003d sträcker inputVector (layerValue: \u003d Invärde * weightVector result \u003d resultera + layerValue) retur resultat ) FUNC Evaluerror (önskad float64, Faktisk flyt64) Float64 (returnera önskad - faktisk)

Du kan hjälpa och översätta lite pengar på platsutveckling.

 

Neuraletas är nu på modet, och inte förgäves. Med deras hjälp kan du till exempel känna igen objekt i bilder eller tvärtom dra mardrömmar av Salvador Dali. Tack vare de praktiska biblioteken skapas de enklaste neurala nätverken av hela paret av koden, kommer inte längre att överklaga till den artificiella IBM-intelligensen.

Teori

Biologer vet fortfarande inte exakt hur hjärnan fungerar, men principen om operation enskilda element Nervsystemet är väl studerat. Den består av neuroner - specialiserade celler som utbyter elektrokemiska signaler bland dem själva. Varje neuron har många dendriter och en axon. Dendriti kan jämföras med ingångarna genom vilken data tas emot i neuron, axonet tjänar sin utgång. Föreningarna mellan dendriter och axon kallas synapser. De sänder inte bara signaler, men kan också ändra sin amplitud och frekvens.

Transformationer som uppstår på nivån av enskilda neuroner är mycket enkla, men även mycket små neurala nätverk är kapabla till mycket. All olika maskens beteende Caenorhabditis elegans - rörelse, matsökning, olika reaktioner på yttre stimuli och mycket mer är kodad på bara tre hundra neuroner. Och okej maskar! Även myror griper 250 tusen nervceller, och vad de gör, bilarna är definitivt inte.

Nästan sextio år sedan amerikanske forskaren Frank Rosenblatt försökt att skapa datorsystem, ordnad i hjärnans bild och likhet, men möjligheterna till hans skapelse var extremt begränsade. Intresset för neurala nätverk har blockerats flera gånger, men när tiden visade det sig att datorkraft saknar vid någon avancerad neurala nätverk. Under det senaste decenniet har mycket förändrats i detta avseende.

Elektromekanisk hjärna med motor

Rosenblatts bil kallades Mark i Perceptron. Det var tänkt att känna igen bilder - de uppgifter som datorer fortfarande klara sig så. Mark Jag var utrustad med ett urval av ögat av ögat: en fyrkantig matris på 400 fotoceller, tjugo vertikalt och tjugo horisontellt. Fotoceller i slumpmässigt anslutna till elektroniska neuroner, och de, i sin tur till åtta utgångar. Som synapser som förbinder elektroniska neuroner, fotoceller och utgångar, använde Rosenblatt potentiometrar. Vid utbildning av en Perceptron 512-stegmotorer roteras potentiometerns handtag automatiskt, justering av spänningen på neuronerna, beroende på noggrannheten i utgångsresultatet.

Här i de två orden, hur det fungerar till Neurallet. Artificiell neuron, som är verklig, har flera ingångar och en utgång. Varje ingång har en viktkoefficient. Genom att ändra dessa koefficienter kan vi träna det neurala nätverket. Beroendet av signalen vid utloppet från ingångssignalerna bestämmer den så kallade aktiveringsfunktionen.

I percepton av Rosenblatt viks aktiveringsfunktionen vikten av alla ingångar till vilka den logiska enheten mottogs och jämförde sedan resultatet med tröskelvärdet. Hennes minus var att en liten förändring i ett av viktkoefficienterna med detta tillvägagångssätt kan ha en oproportionerligt viktig inverkan på resultatet. Detta gör det svårt att undervisa.

I moderna neurala nätverk används vanligtvis icke-linjära aktiveringsfunktioner, såsom SigMoid. Dessutom hade gamla neurala nätverk för få lager. Nu mellan ingången och utgången har ett eller flera dolda lager av neuroner vanligtvis. Det är det som är det mest intressanta.

För att göra det lättare att förstå vad vi pratar om, titta på det här systemet. Detta är ett neuralt nätverk av direktfördelning med ett dolt skikt. Varje cirkel motsvarar neuron. Vänster är neuroner av inloppsskiktet. Till höger - utmatningsskiktets neuron. I mitten finns ett doldt lager med fyra neuroner. Utgångarna från alla neuroner av ingångsskiktet är anslutna till varje neuron av det första dolda skiktet. I sin tur är ingångarna i neuronutmatningsskiktet associerat med alla utgångar av de dolda skiktneuronerna.

Inte alla neurala nätverk är ordnade på detta sätt. Till exempel finns det (om än mindre vanliga) nätverk, där signalen från neuroner appliceras inte bara till nästa lager, som ett direkt distributionsnät från vårt schema, men också i motsatt riktning. Sådana nätverk kallas återkommande. Helt anslutna lager är också bara ett av alternativen, och vi berör även ett av alternativen.

Öva

Så, låt oss försöka bygga det enklaste neurala nätverket med egna händer och hantera sitt arbete under vägen. Vi kommer att använda Python med numpybiblioteket (man kan göra utan numpy, men med numpy en linjär algebra tar mindre styrka). Det aktuella exemplet är baserat på Tracke Rack.

Vi behöver funktioner för beräkning av sigmoid och dess derivat:

Fortsättning är endast tillgänglig för deltagarna

Alternativ 1. Gå med i webbplatsen för att läsa alla material på webbplatsen

Medlemskap i samhället under den angivna perioden öppnar dig tillgång till alla material av hacker, kommer att öka din personliga ackumulativa rabatt och ackumulera en professionell Xakep-poängvärdering!

Under första halvåret 2016 hörde världen många utvecklingar inom neurala nätverk - deras algoritmer demonstrerades av Google (nätverksspelare i Alphago), Microsoft (ett antal tjänster för att identifiera bilder), MSQRD, Prisma-startups och andra .

Till bokmärken

Redaktionen säger att de är neurala nätverk, för vilka de behövs, varför de fångade planeten nu, och inte år tidigare eller senare, hur många på dem kan tjäna och vem är de viktigaste marknadsaktörerna. Experter från Mipt, Yandex, Mail.ru Group och Microsoft delades också av sina åsikter.

Vad är neurala nätverk och vilka uppgifter de kan lösa

Neurala nätverk är en av anvisningarna i utvecklingen av konstgjorda intelligenssystem. Tanken är att så nära simulera det mänskliga nervsystemet - nämligen dess förmåga att lära sig och korrigera fel. Detta består huvud funktion Alla neurala nätverk kan studera självständigt och agera på grundval av tidigare erfarenheter, vilket gör mindre och mindre fel varje gång.

Neuraletima mimics inte bara aktivitet, utan också strukturen i det mänskliga nervsystemet. Ett sådant nätverk består av ett stort antal individuella beräkningselement ("neuroner"). I de flesta fall hänvisar varje "neuron" ett specifikt lager av nätverk. Inmatningsdata bearbetas i följd på alla lager av nätverket. Parametrarna för varje "neuron" kan variera beroende på resultaten som erhållits på tidigare ingångssatser, vilket ändrar hela systemets funktion.

Chefen för "Sök mail.ru" i mail.ru Group Andrei Kalinin noterar att neurala nätverk kan lösa samma uppgifter som andra maskininlärningsalgoritmer, skillnaden ligger bara i närhet till lärande.

Alla uppgifter som kan lösa neurala nätverk är på något sätt relaterade till lärande. Bland de viktigaste områdena i neurala nätverk förutsäger, beslutsfattande, bildigenkänning, optimering, dataanalys.

Direktör för Microsoft-tekniska samarbetsprogram I Ryssland noterar Vlad sershulsky att neurala nätverk nu används överallt: "Till exempel använder många stora webbplatser för att göra ett svar på användarnas beteende av en mer naturlig och användbar publik. Neuraletas ligger till grund för majoriteten moderna system Erkännande och syntes av tal, såväl som erkännande och bildbehandling. De används i vissa navigationssystem, oavsett industrirobotar eller obemannade bilar. Neurala nätverksbaserade algoritmer skyddar informationssystem från angripare attacker och hjälpa till att identifiera olagligt innehåll på nätverket. "

I den närmaste framtiden (5-10 år) tror sershulsky, neurala nätverk kommer att användas ännu bredare:

Föreställ dig jordbrukskombinationen, vars verkställande mekanismer är utrustade med en mängd olika videokameror. Han gör fem tusen bilder per minut av varje växt i banan av hans bana och, med hjälp av neuralt nätverk, analyser - oavsett om det inte är något ogräs, oavsett om det inte påverkas av sjukdomen eller skadedjur. Och bearbetar varje växt individuellt. Fiktion? Inte längre alls. Och om fem år kan det bli normen. - Vlad Shershulsky, Microsoft

Chef för laboratoriet för neurala system och djupt träningscenter för levande system MFTI Mikhail Burtsev leder en påstådd karta över utvecklingen av neurala nätverk för 2016-2018:

  • erkännande system och klassificering av objekt på bilderna;
  • röstgränssnitt interaktion för internet av saker;
  • servicekvalitetsövervakningssystem i callcenter;
  • felsökningssystem (inklusive förutsägande tid underhåll), anomalier, cyber-fysiska hot;
  • intellektuella säkerhets- och övervakningssystem;
  • byte av bots av en del av funktionerna i Call Center Operators;
  • video Analytics Systems;
  • självlärningssystem som optimerar hanteringen av materialflöden eller platsen för objekt (i lager, transport);
  • intelligenta, självlärande hanteringssystem för industriella processer och enheter (inklusive robotik);
  • framväxten av system för universell översättning "på flugan" för konferenser och personligt bruk
  • utseendet på Bot Consultants teknisk support eller personliga assistenter, på roliga funktioner till en person.

Yandex Technology Director of Gregory Bakunov anser att grunden för distributionen av neuralt nätverk under de närmaste fem åren kommer att vara sådana systems förmåga att acceptera olika beslut: "Det viktigaste är att neurala nätverk nu gör för en person - spara det från alltför stort beslutsfattande. Så de kan användas nästan överallt, där det inte finns alltför intelligenta lösningar på en levande person. Under de närmaste fem åren kommer denna färdighet att drivas, vilket kommer att ersätta beslutsfattandet på ett enkelt fordon. "

Varför neurala nätverk har blivit så populära nu

Forskare är engagerade i utvecklingen av konstgjorda neurala nätverk över 70 år. Det första försöket att formalisera det neurala nätverket hänvisas till 1943, när två amerikanska forskare (Warren McKallock och Walter Pitts) lämnade in en artikel om den logiska kalkylen av mänskliga idéer och nervös aktivitet.

Fram till nyligen säger Andrei Kalinin från Mail.ru-gruppen, vars hastighet för det neurala nätverket var för lågt så att de kan bli utbredd, och därför användes sådana system huvudsakligen i utvecklingen av datorsyn och andra algoritmer användes i Andra områden. Maskininlärning.

Den tidskrävande och långa delen av den neurala nätverksutvecklingsprocessen är sin utbildning. För att det neurala nätverket ska kunna lösa uppdragen är det nödvändigt att "springa" sitt arbete på tiotals miljoner inmatningssatser. Det är med uppkomsten av olika teknologier av accelererat lärande och associera spridningen av Neural Network Andrei Kalinin och Grigory Bakunov.

Det viktigaste som hände nu är olika knep som tillåter neuronala nätverk, betydligt mindre mottagliga för omskolning. - Gregory Bakunov, Yandex

"För det första uppträdde ett stort och offentligt tillgängligt utbud av markerade bilder som du kan studera. För det andra tillåter moderna videokort ett hundra gånger snabbare att undervisa neurala nätverk och använda dem. För det tredje, färdiga, prepakterade neurala nätverk, erkänner bilder, på grundval av vilka du kan göra dina applikationer, inte engagera sig i långsiktig förberedelse av det neurala nätverket att fungera. Allt detta garanterar en mycket kraftfull utveckling av neurala nätverk precis när det gäller bildigenkänning, "Kalinin noterar.

Vad är volymerna på den neurala nätverksmarknaden

"Det är väldigt lätt att beräkna. Du kan ta något område där lågutbildade arbetskraft används - till exempel arbetet med callcenter operatörer - och helt enkelt dra av alla mänskliga resurser. Jag skulle säga att vi pratar om en multi-miljard dollarmarknad även inom ett separat land. Hur många människor i världen är involverade i lågutbildat arbete, kan lätt förstås. Så även väldigt abstrakt talande tror jag att vi pratar om den gata-miljarder marknaden runt om i världen, säger Gregory Bakunov, chef för spridning av Yandex Technologies.

Enligt vissa uppskattningar kommer mer än hälften av yrkena att automatiseras - det här är den maximala volymen som marknaden för maskininlärningsalgoritmer (och neurala nätverk i synnerhet) kan ökas .- Andrei Kalinin, Mail.ru Group

"Maskininlärningsalgoritmer är nästa steg i automatisering av eventuella processer i utvecklingen av någon programvara. Därför sammanfaller marknaden åtminstone med hela marknaden av programvara, utan snarare överträffar den, eftersom det blir möjligt att göra nya intellektuella lösningar otillgängliga för den gamla mjukvaran, fortsätter huvudet på "Sök mail.ru" i posten. Ru Group Andrei Kalinin.

Varför utvecklarna av neurala nätverk skapar mobila applikationer för massmarknaden

Under de senaste månaderna uppträdde flera högprofilerade underhållningsprojekt som använder neurala nätverk på marknaden - det här är en populär videoservice som socialt nätverk Facebook, I. ryska applikationer För bearbetning av bilder (i juni, investering från mail.ru-gruppen) och andra.

Förmågan hos sina egna neurala nätverk demonstrerades av Google (Alphaago-tekniken vann på Go-mästaren. I mars 2016 sålde bolaget på auktionen av 29 målningar som dras av neurala nätverk och så vidare) och Microsoft (CAPTTTIONBOT-projektet, som känner igen bilder I bilderna och automatiskt genererar signaturer till dem; WhatDog-projektet, i bilden som definierar hundens ras; Howold service, som bestämmer åldern för en person i bilden och så vidare) och Yandex (i juni, laget har byggt en tjänst för att känna igen bilar i bilen; albumet; i maj skapade ett projekt likemo.net för att dra i stil med kända konstnärer).

Sådana underhållningstjänster skapas snarare att inte lösa globala uppgifter för vilka de neurala nätverken syftar till och att visa förmågan hos det neurala nätverket och genomföra sin utbildning.

"Spel är ett karakteristiskt inslag i vårt beteende som en biologisk art. Å ena sidan kan nästan alla typiska scenarier av mänskligt beteende simuleras, och å andra sidan - både skaparna av spelen och, särskilt spelare kan få mycket nöje från processen. Det finns en rent utilitaristisk aspekt. Ett väldesignat spel ger inte bara spelarens tillfredsställelse: I samband med spelet lär de den neurala nätverksalgoritmen. När allt kommer omkring är det neurala nätverket baserat på exempel, säger Vlad Shershulsky från Microsoft.

"Först och främst är detta gjort för att visa möjligheten till teknik. En annan anledning, i själva verket nej. Om vi \u200b\u200bpratar om Prisma är det klart vad de gjorde. Killarna byggde lite pipline, vilket gör det möjligt för dem att arbeta med bilder. För att visa detta valde de ett ganska enkelt sätt att skapa stylisering. Varför inte? Det är bara en demonstration av algoritmernas arbete, säger Gregory Bakunov från Yandex.

Andrei Kalinin från Mail.ru Group följer andra åsikter: "Det är självklart spektakulärt när det gäller offentligt. Å andra sidan skulle jag inte säga att underhållningsprodukter inte kan tillämpas på mer användbara områden. Till exempel är uppgiften att styla bilder extremt relevant för en mängd olika branscher (design, datorspel, Animering är bara några exempel), och den fulla användningen av neuralt nätverk kan avsevärt optimera kostnaden och metoderna för att skapa innehåll för dem. "

De viktigaste aktörerna på den neurala nätverksmarknaden

Som Andrei Kalinin noterar, i stort sett, skiljer sig de flesta av de neurala nätverk som finns på den neurala nätverksmarknaden från varandra. "All teknik är ungefär samma. Men användningen av neuralt nätverk är ett nöje att inte alla har råd med. För att självständigt undervisa ett neuralt nätverk och lägga många experiment på det, behöver du stora träningsuppsättningar och parkeringsplatser med dyra videokort. Självklart finns det sådana möjligheter stora företag"Han säger.

Bland de viktigaste aktörerna på marknaden nämner Kalinin Google och dess Google Deepmind-division som skapade Alphaago-nätverket och Google-hjärnan. Microsofts egen utveckling är på detta område - de är engagerade i Microsoft Research Laboratory. Skapandet av neurala nätverk är engagerade i IBM, Facebook (Facebook AI Research), Baidu (Baidu Institute of Deep Learning) och andra. Många utvecklingar hålls i tekniska universitet runt om i världen.

Direktör för spridning av Yandex Technologies Gregory Bakunov konstaterar att intressanta utvecklingar inom neurala nätverk finns bland uppstart. "Jag skulle komma ihåg, till exempel, Clarifai. Detta är en liten uppstart gjord av någon gång med Google. Nu är de kanske att världens innehåll bäst kan bestämma innehållet på bilden. " Dessa förrätter inkluderar MSQRD, och Prisma, och andra.

I Ryssland är inte bara uppstart, utan även stora tekniska företag engagerade i utvecklingen inom neurala nätverk - till exempel mail.ru-grupp som håller neurala nätverk för bearbetning och klassificering av texter i "Sök", bildanalys. Företaget bedriver också experimentell utveckling i samband med bots och dialogsystem.

Yandex är engagerad i att skapa sitt eget neurala nätverk: "I grund och botten används sådana nätverk redan i att arbeta med bilder, med ljud, men vi utforskar deras möjligheter på andra områden. Nu lägger vi mycket experiment i att använda ett neuralt nätverk för att arbeta med texten. " Utvecklingen bedrivs i universitet: i Skoltech, MFT, MSU, HSE och andra.

Under första halvåret 2016 hörde världen många utvecklingar inom neurala nätverk - deras algoritmer demonstrerades av Google (nätverksspelare i Alphago), Microsoft (ett antal tjänster för att identifiera bilder), MSQRD, Prisma-startups och andra .

Till bokmärken

Redaktionen säger att de är neurala nätverk, för vilka de behövs, varför de fångade planeten nu, och inte år tidigare eller senare, hur många på dem kan tjäna och vem är de viktigaste marknadsaktörerna. Experter från Mipt, Yandex, Mail.ru Group och Microsoft delades också av sina åsikter.

Vad är neurala nätverk och vilka uppgifter de kan lösa

Neurala nätverk är en av anvisningarna i utvecklingen av konstgjorda intelligenssystem. Tanken är att så nära simulera det mänskliga nervsystemet - nämligen dess förmåga att lära sig och korrigera fel. Det här är det viktigaste inslaget i något neuralt nätverk - det kan studera självständigt och agera på grundval av tidigare erfarenheter, vilket gör mindre och mindre fel varje gång.

Neuraletima mimics inte bara aktivitet, utan också strukturen i det mänskliga nervsystemet. Ett sådant nätverk består av ett stort antal individuella beräkningselement ("neuroner"). I de flesta fall hänvisar varje "neuron" ett specifikt lager av nätverk. Inmatningsdata bearbetas i följd på alla lager av nätverket. Parametrarna för varje "neuron" kan variera beroende på resultaten som erhållits på tidigare ingångssatser, vilket ändrar hela systemets funktion.

Chefen för "Sök mail.ru" i mail.ru Group Andrei Kalinin noterar att neurala nätverk kan lösa samma uppgifter som andra maskininlärningsalgoritmer, skillnaden ligger bara i närhet till lärande.

Alla uppgifter som kan lösa neurala nätverk är på något sätt relaterade till lärande. Bland de viktigaste områdena i neurala nätverk förutsäger, beslutsfattande, bildigenkänning, optimering, dataanalys.

Direktör för Microsoft-tekniska samarbetsprogram I Ryssland noterar Vlad sershulsky att neurala nätverk nu används överallt: "Till exempel använder många stora webbplatser för att göra ett svar på användarnas beteende av en mer naturlig och användbar publik. Neuraletas är baserade på de flesta moderna taligenkänningssystem och talsyntes samt erkännande och bildbehandling. De används i vissa navigationssystem, oavsett industrirobotar eller obemannade bilar. Neurala nätverksbaserade algoritmer skyddar informationssystem från angripare attacker och hjälpa till att identifiera olagligt innehåll på nätverket. "

I den närmaste framtiden (5-10 år) tror sershulsky, neurala nätverk kommer att användas ännu bredare:

Föreställ dig jordbrukskombinationen, vars verkställande mekanismer är utrustade med en mängd olika videokameror. Han gör fem tusen bilder per minut av varje växt i banan av hans bana och, med hjälp av neuralt nätverk, analyser - oavsett om det inte är något ogräs, oavsett om det inte påverkas av sjukdomen eller skadedjur. Och bearbetar varje växt individuellt. Fiktion? Inte längre alls. Och om fem år kan det bli normen. - Vlad Shershulsky, Microsoft

Chef för laboratoriet för neurala system och djupt träningscenter för levande system MFTI Mikhail Burtsev leder en påstådd karta över utvecklingen av neurala nätverk för 2016-2018:

  • erkännande system och klassificering av objekt på bilderna;
  • röstgränssnitt interaktion för internet av saker;
  • servicekvalitetsövervakningssystem i callcenter;
  • felsökningssystem (inklusive förutsägande av underhållstid), anomalier, cyber fysiska hot;
  • intellektuella säkerhets- och övervakningssystem;
  • byte av bots av en del av funktionerna i Call Center Operators;
  • video Analytics Systems;
  • självlärningssystem som optimerar hanteringen av materialflöden eller platsen för objekt (i lager, transport);
  • intelligenta, självlärande hanteringssystem för industriella processer och enheter (inklusive robotik);
  • framväxten av system för universell översättning "på flugan" för konferenser och personligt bruk
  • framväxten av BOT-konsulter av teknisk support eller personliga assistenter, för funktioner nära människan.

Yandex Technology Director of Gregory Bakunov anser att grunden för distributionen av neuralt nätverk under de närmaste fem åren kommer att vara sådana systems förmåga att acceptera olika beslut: "Det viktigaste är att neurala nätverk nu gör för en person - spara det från alltför stort beslutsfattande. Så de kan användas nästan överallt, där det inte finns alltför intelligenta lösningar på en levande person. Under de närmaste fem åren kommer denna färdighet att drivas, vilket kommer att ersätta beslutsfattandet på ett enkelt fordon. "

Varför neurala nätverk har blivit så populära nu

Forskare är engagerade i utvecklingen av konstgjorda neurala nätverk över 70 år. Det första försöket att formalisera det neurala nätverket hänvisas till 1943, när två amerikanska forskare (Warren McKallock och Walter Pitts) lämnade in en artikel om den logiska kalkylen av mänskliga idéer och nervös aktivitet.

Fram till nyligen säger Andrei Kalinin från Mail.ru-gruppen, vars hastighet för det neurala nätverket var för lågt så att de kan bli utbredd, och därför användes sådana system huvudsakligen i utvecklingen av datorsyn och andra algoritmer användes i Andra områden. Maskininlärning.

Den tidskrävande och långa delen av den neurala nätverksutvecklingsprocessen är sin utbildning. För att det neurala nätverket ska kunna lösa uppdragen är det nödvändigt att "springa" sitt arbete på tiotals miljoner inmatningssatser. Det är med uppkomsten av olika teknologier av accelererat lärande och associera spridningen av Neural Network Andrei Kalinin och Grigory Bakunov.

Det viktigaste som hände nu är olika knep som tillåter neuronala nätverk, betydligt mindre mottagliga för omskolning. - Gregory Bakunov, Yandex

"För det första uppträdde ett stort och offentligt tillgängligt utbud av markerade bilder som du kan studera. För det andra tillåter moderna videokort ett hundra gånger snabbare att undervisa neurala nätverk och använda dem. För det tredje, färdiga, prepakterade neurala nätverk, erkänner bilder, på grundval av vilka du kan göra dina applikationer, inte engagera sig i långsiktig förberedelse av det neurala nätverket att fungera. Allt detta garanterar en mycket kraftfull utveckling av neurala nätverk precis när det gäller bildigenkänning, "Kalinin noterar.

Vad är volymerna på den neurala nätverksmarknaden

"Det är väldigt lätt att beräkna. Du kan ta något område där lågutbildade arbetskraft används - till exempel arbetet med callcenter operatörer - och helt enkelt dra av alla mänskliga resurser. Jag skulle säga att vi pratar om en multi-miljard dollarmarknad även inom ett separat land. Hur många människor i världen är involverade i lågutbildat arbete, kan lätt förstås. Så även väldigt abstrakt talande tror jag att vi pratar om den gata-miljarder marknaden runt om i världen, säger Gregory Bakunov, chef för spridning av Yandex Technologies.

Enligt vissa uppskattningar kommer mer än hälften av yrkena att automatiseras - det här är den maximala volymen som marknaden för maskininlärningsalgoritmer (och neurala nätverk i synnerhet) kan ökas .- Andrei Kalinin, Mail.ru Group

"Maskininlärningsalgoritmer är nästa steg i automatisering av eventuella processer i utvecklingen av någon programvara. Därför sammanfaller marknaden åtminstone med hela marknaden av programvara, utan snarare överträffar den, eftersom det blir möjligt att göra nya intellektuella lösningar otillgängliga för den gamla mjukvaran, fortsätter huvudet på "Sök mail.ru" i posten. Ru Group Andrei Kalinin.

Varför utvecklarna av neurala nätverk skapar mobila applikationer för massmarknaden

Under de senaste månaderna har flera högprofilerade underhållningsprojekt som använder neurala nätverk dykt upp på marknaden - det här är den populära videotjänsten, som är ett socialt nätverk Facebook och ryska applikationer för bearbetning av bilder (i juni investering från mail.ru Grupp) och andra.

Förmågan hos sina egna neurala nätverk demonstrerades av Google (Alphaago-tekniken vann på Go-mästaren. I mars 2016 sålde bolaget på auktionen av 29 målningar som dras av neurala nätverk och så vidare) och Microsoft (CAPTTTIONBOT-projektet, som känner igen bilder I bilderna och automatiskt genererar signaturer till dem; WhatDog-projektet, i bilden som definierar hundens ras; Howold service, som bestämmer åldern för en person i bilden och så vidare) och Yandex (i juni, laget har byggt en tjänst för att känna igen bilar i bilen; albumet; i maj skapade ett projekt likemo.net för att dra i stil med kända konstnärer).

Sådana underhållningstjänster skapas snarare att inte lösa globala uppgifter för vilka de neurala nätverken syftar till och att visa förmågan hos det neurala nätverket och genomföra sin utbildning.

"Spel är ett karakteristiskt inslag i vårt beteende som en biologisk art. Å ena sidan kan nästan alla typiska scenarier av mänskligt beteende simuleras, och å andra sidan - både skaparna av spelen och, särskilt spelare kan få mycket nöje från processen. Det finns en rent utilitaristisk aspekt. Ett väldesignat spel ger inte bara spelarens tillfredsställelse: I samband med spelet lär de den neurala nätverksalgoritmen. När allt kommer omkring är det neurala nätverket baserat på exempel, säger Vlad Shershulsky från Microsoft.

"Först och främst är detta gjort för att visa möjligheten till teknik. En annan anledning, i själva verket nej. Om vi \u200b\u200bpratar om Prisma är det klart vad de gjorde. Killarna byggde lite pipline, vilket gör det möjligt för dem att arbeta med bilder. För att visa detta valde de ett ganska enkelt sätt att skapa stylisering. Varför inte? Det är bara en demonstration av algoritmernas arbete, säger Gregory Bakunov från Yandex.

Andrei Kalinin från Mail.ru Group följer andra åsikter: "Det är självklart spektakulärt när det gäller offentligt. Å andra sidan skulle jag inte säga att underhållningsprodukter inte kan tillämpas på mer användbara områden. Till exempel är uppgiften att styla bilder extremt relevant för ett antal industrier (design, dataspel, animering - här är bara några exempel), och den fulla användningen av neuralt nätverk kan avsevärt optimera kostnaderna och metoderna för att skapa innehåll för dem. "

De viktigaste aktörerna på den neurala nätverksmarknaden

Som Andrei Kalinin noterar, i stort sett, skiljer sig de flesta av de neurala nätverk som finns på den neurala nätverksmarknaden från varandra. "All teknik är ungefär samma. Men användningen av neuralt nätverk är ett nöje att inte alla har råd med. För att självständigt undervisa ett neuralt nätverk och lägga många experiment på det, behöver du stora träningsuppsättningar och parkeringsplatser med dyra videokort. Självklart finns det sådana möjligheter för stora företag, säger han.

Bland de viktigaste aktörerna på marknaden nämner Kalinin Google och dess Google Deepmind-division som skapade Alphaago-nätverket och Google-hjärnan. Microsofts egen utveckling är på detta område - de är engagerade i Microsoft Research Laboratory. Skapandet av neurala nätverk är engagerade i IBM, Facebook (Facebook AI Research), Baidu (Baidu Institute of Deep Learning) och andra. Många utvecklingar hålls i tekniska universitet runt om i världen.

Direktör för spridning av Yandex Technologies Gregory Bakunov konstaterar att intressanta utvecklingar inom neurala nätverk finns bland uppstart. "Jag skulle komma ihåg, till exempel, Clarifai. Detta är en liten uppstart gjord av någon gång med Google. Nu är de kanske att världens innehåll bäst kan bestämma innehållet på bilden. " Dessa förrätter inkluderar MSQRD, och Prisma, och andra.

I Ryssland är inte bara uppstart, utan även stora tekniska företag engagerade i utvecklingen inom neurala nätverk - till exempel mail.ru-grupp som håller neurala nätverk för bearbetning och klassificering av texter i "Sök", bildanalys. Företaget bedriver också experimentell utveckling i samband med bots och dialogsystem.

Yandex är engagerad i att skapa sitt eget neurala nätverk: "I grund och botten används sådana nätverk redan i att arbeta med bilder, med ljud, men vi utforskar deras möjligheter på andra områden. Nu lägger vi mycket experiment i att använda ett neuralt nätverk för att arbeta med texten. " Utvecklingen bedrivs i universitet: i Skoltech, MFT, MSU, HSE och andra.