Neuralt nätverk [1] (även artificiellt neuralt nätverk , ANN ) är en matematisk modell , såväl som dess mjukvara eller hårdvara, byggd på principen om organisering och funktion av biologiska neurala nätverk - nätverk av nervceller från en levande organism. Detta koncept uppstod när man studerade de processer som förekommer i hjärnan och när man försökte modellera dessa processer. Det första försöket av detta slag var W. McCullochs och W. Pitts ' neurala nätverk [2] . Efter utvecklingen av inlärningsalgoritmer började de resulterande modellerna användas i praktiska syften: för att prognostisera problem , för mönsterigenkänning , i kontrollproblem , etc.
ANN är ett system av anslutna och interagerande enkla processorer ( konstgjorda neuroner ). Sådana processorer är vanligtvis ganska enkla (särskilt jämfört med de processorer som används i persondatorer). Varje processor i ett sådant nätverk hanterar endast de signaler som den regelbundet tar emot och de signaler som den regelbundet skickar till andra processorer. Och ändå, eftersom de är anslutna i ett tillräckligt stort nätverk med kontrollerad interaktion, kan sådana individuellt enkla processorer tillsammans utföra ganska komplexa uppgifter.
Neurala nätverk är inte programmerade i ordets vanliga mening, de är tränade [a] . Förmågan att lära sig är en av de största fördelarna med neurala nätverk jämfört med traditionella algoritmer . Tekniskt sett handlar lärande om att hitta koefficienterna för kopplingar mellan neuroner. I inlärningsprocessen kan det neurala nätverket identifiera komplexa beroenden mellan input och output, samt utföra generalisering . Detta innebär att i händelse av framgångsrik träning kommer nätverket att kunna returnera det korrekta resultatet baserat på data som saknades i träningsprovet, såväl som ofullständiga och / eller "bullriga", delvis förvrängda data.
Föremål av olika karaktär kan fungera som bilder: textsymboler, bilder, ljudmönster etc. Vid utbildning av nätverket erbjuds olika bildmönster med indikation på vilken klass de tillhör. Ett sampel representeras vanligtvis som en vektor av funktionsvärden. I det här fallet måste helheten av alla funktioner unikt bestämma den klass som provet tillhör. Om det inte finns tillräckligt med funktioner kan nätverket associera samma prov med flera klasser, vilket inte är sant. I slutet av nätverksutbildningen kan den presenteras med tidigare okända bilder och få svar om att tillhöra en viss klass.
Topologin för ett sådant nätverk kännetecknas av det faktum att antalet neuroner i utgångsskiktet vanligtvis är lika med antalet definierade klasser. Detta upprättar en överensstämmelse mellan utsignalen från det neurala nätverket och den klass det representerar. När ett nätverk presenteras med en bild, bör en av dess utgångar visa ett tecken på att bilden tillhör denna klass. Samtidigt ska andra utgångar ha ett tecken på att bilden inte tillhör denna klass [18] . Om två eller flera utgångar har ett tecken på att tillhöra en klass, anses det som att nätverket är "osäkert" på sitt svar.
Neurala nätverksarkitekturer som användsDetta problem ligger nära problemet med klassificering. Situationer är föremål för klassificering, vars egenskaper matas till ingången av det neurala nätverket. Vid utgången av nätverket bör ett tecken på beslutet som det fattade visas. I detta fall används olika kriterier för att beskriva det kontrollerade systemets tillstånd som insignaler [19] .
Clustering avser uppdelningen av en uppsättning insignaler i klasser, trots att varken antalet eller egenskaperna hos klasserna är kända i förväg. Efter träning kan ett sådant nätverk avgöra vilken klass insignalen tillhör. Nätverket kan också signalera att insignalen inte tillhör någon av de valda klasserna - detta är ett tecken på att ny data saknas i träningsprovet. Således kan ett sådant nätverk detektera nya, tidigare okända klasser av signaler . Överensstämmelsen mellan de klasser som identifierats av nätverket och de klasser som finns inom ämnesområdet fastställs av en person. Clustering utförs till exempel av Kohonens neurala nätverk .
Neurala nätverk i Kohonens enkla version kan inte vara enorma, så de är uppdelade i hyperlager (hyperkolumner) och kärnor (mikrokolumner). Jämfört med den mänskliga hjärnan bör det ideala antalet parallella lager inte överstiga 112. Dessa lager utgör i sin tur hyperlager (hyperkolonner), i vilka det finns från 500 till 2000 mikrokolumner (kärnor). Dessutom är varje lager uppdelat i en uppsättning hyperkolumner som penetrerar genom dessa lager. Mikrokolumnerna är kodade med siffror och enheter med resultatet som erhålls vid utgången. Vid behov tas extra lager och neuroner bort eller läggs till. Det är idealiskt att använda en superdator för att välja antal neuroner och lager. Ett sådant system tillåter neurala nätverk att vara plastiska.
Neurala nätverksarkitekturer som användsFörmågan hos ett neuralt nätverk att förutsäga följer direkt av dess förmåga att generalisera och lyfta fram dolda beroenden mellan in- och utdata. Efter träning kan nätverket förutsäga det framtida värdet av en viss sekvens baserat på flera tidigare värden och (eller) några för närvarande existerande faktorer. Prognoser är möjliga endast när de tidigare förändringarna verkligen förutbestämmer framtiden till viss del . Att förutsäga aktiekurser baserat på förra veckans aktiekurser kan till exempel vara framgångsrikt eller inte, medan att förutsäga morgondagens lotteriresultat baserat på data från de senaste 50 åren nästan säkert kommer att misslyckas.
Neurala nätverksarkitekturer som användsNeurala nätverk kan approximera kontinuerliga funktioner. En generaliserad approximationssats [20] bevisades : med hjälp av linjära operationer och en kaskadkoppling är det möjligt att erhålla en enhet från ett godtyckligt olinjärt element som beräknar vilken kontinuerlig funktion som helst med en viss förutbestämd noggrannhet . Detta betyder att den icke-linjära egenskapen hos en neuron kan vara godtycklig: från sigmoid till godtyckligt vågpaket eller wavelet , sinus eller polynom . Komplexiteten hos ett visst nätverk kan bero på valet av en olinjär funktion , men med vilken olinjäritet som helst förblir nätverket en universell approximator och kan, med rätt val av struktur, exakt approximera funktionen hos vilken kontinuerlig automat som helst.
Neurala nätverksarkitekturer som användsNeurala nätverks förmåga att identifiera samband mellan olika parametrar gör det möjligt att uttrycka högdimensionell data mer kompakt om data är nära sammankopplade med varandra. Den omvända processen - att återställa den ursprungliga datamängden från en bit information - kallas (auto)associativt minne. Associativt minne låter dig också återställa den ursprungliga signalen/bilden från brusiga/skadade indata. Att lösa problemet med heteroassociativt minne gör det möjligt att implementera innehållsadresserbart minne [19] .
Vissa av dessa steg bör övervägas mer i detalj.
Valet av data för nätverksträning och deras bearbetning är det svåraste steget för att lösa problemet. Utbildningsdataset måste uppfylla flera kriterier:
De initiala uppgifterna omvandlas till den form i vilken de kan skickas till nätverkets ingångar. Varje post i datafilen kallas ett träningspar eller träningsvektor . Träningsvektorn innehåller ett värde för varje nätverksingång och, beroende på typen av träning (övervakad eller oövervakad), ett värde för varje nätverksutgång. Att träna ett nätverk på en "rå" uppsättning ger som regel inte resultat av hög kvalitet. Det finns ett antal sätt att förbättra "uppfattningen" av nätverket.
Dessutom spelar presentationen av både in- och utdata en viktig roll. Anta att nätverket är tränat att känna igen bokstäver i bilder och har en numerisk utdata - numret på bokstaven i alfabetet. I det här fallet kommer nätverket att få det felaktiga intrycket att bokstäverna numrerade 1 och 2 är mer lika än bokstäverna numrerade 1 och 3, vilket i allmänhet inte är sant. För att undvika en sådan situation används en nätverkstopologi med ett stort antal utgångar, när varje utgång har sin egen betydelse. Ju fler utgångar i nätverket, desto större är avståndet mellan klasserna och desto svårare är det att förväxla dem.
Typen av nätverk bör väljas utifrån problembeskrivningen och tillgängliga träningsdata. Övervakat lärande kräver en "expert" bedömning för varje del av provet. Ibland är det helt enkelt omöjligt att få en sådan uppskattning för en stor mängd data. I dessa fall är ett naturligt val ett oövervakat lärande nätverk (t.ex. Kohonen självorganiserande karta eller Hopfield neurala nätverk ). Vid lösning av andra problem (som t.ex. tidsserieprognoser) finns expertbedömning redan i originaldata och kan extraheras under bearbetning. I det här fallet kan du använda en flerskiktsperceptron[ förtydliga ] eller Word - nätverket .
Efter att ha valt den allmänna strukturen är det nödvändigt att experimentellt välja nätverksparametrar. För nätverk som en perceptron kommer detta att vara antalet lager, antalet block i dolda lager (för Word-nätverk), närvaron eller frånvaron av bypass-anslutningar och neuronernas överföringsfunktioner. När man väljer antalet lager och neuroner i dem bör man utgå från det faktum att nätverkets förmåga att generalisera är ju högre, desto större är det totala antalet kopplingar mellan neuroner . Å andra sidan begränsas antalet anslutningar ovanifrån av antalet poster i träningsdatan.
Efter att ha valt en specifik topologi är det nödvändigt att välja träningsparametrarna för det neurala nätverket. Detta steg är särskilt viktigt för övervakade nätverk . Det korrekta valet av parametrar avgör inte bara hur snabbt nätverkets svar kommer att konvergera till de korrekta svaren. Om du till exempel väljer en låg inlärningshastighet ökar konvergenstiden, men ibland undviker du nätverksförlamning . Att öka inlärningsmomentet kan antingen öka eller minska konvergenstiden, beroende på formen på felytan . Baserat på en sådan motsägelsefull påverkan av parametrarna kan man dra slutsatsen att deras värden bör väljas experimentellt, styrt av inlärningsavslutningskriteriet (till exempel minimering av felet eller begränsning av inlärningstiden).
Under inlärningsprocessen skannar nätverket träningsprovet i en viss ordning. Sökordningen kan vara sekventiell, slumpmässig, etc. Vissa oövervakade nätverk ( till exempel Hopfield-nätverk ) skannar provet endast en gång. Andra (som Kohonen-nätverk ), såväl som övervakade nätverk, skannar provet många gånger, med en hel övergång över provet som kallas en inlärningsepok . När man lär sig med en lärare delas uppsättningen av initiala data upp i två delar - själva träningsprovet och testdata; separationsprincipen kan vara godtycklig. Träningsdata matas till nätverket för träning, och testdata används för att beräkna nätverkets fel (testdata används aldrig för att träna nätverket). Således, om felet minskar på testdata, så generaliserar nätverket. Om felet på träningsdata fortsätter att minska, och felet på testdata ökar, har nätverket slutat generalisera och "kommer ihåg" helt enkelt träningsdata. Detta fenomen kallas nätverksöveranpassning eller överanpassning . I sådana fall stoppas träningen vanligtvis. Under träningsprocessen kan andra problem dyka upp, såsom förlamning eller att nätverket hamnar i ett lokalt minimum av felytan. Det är omöjligt att i förväg förutsäga manifestationen av ett visst problem, liksom att ge entydiga rekommendationer för deras lösning.
Allt ovanstående gäller endast iterativa algoritmer för att hitta neurala nätverkslösningar. För dem kan egentligen ingenting garanteras och det är omöjligt att helt automatisera träningen av neurala nätverk. Men tillsammans med iterativa inlärningsalgoritmer finns det icke-iterativa algoritmer som har mycket hög stabilitet och låter dig automatisera inlärningsprocessen helt .
Även i fallet med framgångsrik träning vid första anblicken lär sig nätverket inte alltid exakt vad skaparen ville ha av det. Det finns ett känt fall då nätverket tränades att känna igen bilder av stridsvagnar från fotografier, men senare visade det sig att alla stridsvagnar fotograferades mot samma bakgrund. Som ett resultat "lärde sig" nätverket att känna igen denna typ av terräng, istället för att "lära sig" att känna igen tankar [22] . Nätverket "förstår" alltså inte vad som krävdes av det, utan vad som är lättast att generalisera.
Testning av kvaliteten på utbildning i neurala nätverk bör utföras på exempel som inte deltog i utbildningen. Antalet testfall bör vara desto större desto högre kvalitet på utbildningen. Om neurala nätverksfel har en sannolikhet nära en miljarddel, så behövs en miljard testfall för att bekräfta denna sannolikhet. Det visar sig att testa vältränade neurala nätverk blir en mycket svår uppgift.
I ett antal neurala nätverk kan den aktiverande funktionen bero inte bara på viktkoefficienterna för anslutningar , utan också på tidpunkten för överföring av en impuls (signal) genom kommunikationskanaler . Därför, i allmänhet, har den aktiverande (överförande) funktionen för anslutningen från element till element formen: . Då är ett synkront nät ett sådant nät där överföringstiden för varje anslutning är antingen noll eller en fast konstant . Ett asynkront nätverk är ett nätverk där överföringstiden för varje anslutning mellan element är olika , men också konstant.
I neurala nätverk för feedforward riktas alla anslutningar strikt från ingångsneuroner till utgångsneuroner. Exempel på sådana nätverk är Rosenblatts perceptron , multilayer perceptron , Word-nätverk .
Signalen från utgångsneuronerna eller dolda skiktneuroner överförs delvis tillbaka till ingångarna på ingångsskiktets neuroner ( återkoppling ). Det återkommande Hopfield-nätverket "filtrerar" indata, återgår till ett stabilt tillstånd och gör det således möjligt att lösa problemen med datakomprimering och bygga associativt minne [23] . Dubbelriktade nätverk är ett specialfall av återkommande nätverk. I sådana nätverk finns det kopplingar mellan skikten både i riktningen från ingångsskiktet till utgångsskiktet och i motsatt riktning. Ett klassiskt exempel är Cosco Neural Network .
Neurala nätverk har utvecklats som använder radiella-basic (även kallade RBF) nätverk som aktiveringsfunktioner. Allmän bild av den radiella basfunktionen:
, till exempel,
där är vektorn för neuroninsignaler, är bredden på funktionsfönstret, är en avtagande funktion (oftast lika med noll utanför ett visst segment).
Det radiella basnätverket kännetecknas av tre funktioner:
Sådana nätverk är ett oövervakat konkurrenskraftigt neuralt nätverk som utför uppgiften att visualisera och klustera . Det är en metod för att projicera ett flerdimensionellt utrymme in i ett utrymme med en lägre dimension (oftast tvådimensionellt), det används också för att lösa problem med modellering, prognoser etc. Det är en av versionerna av Kohonens neurala nätverk [ 24] . Kohonens självorganiserande kartor tjänar främst för visualisering och initial (”spaning”) dataanalys [25] .
Signalen till Kohonen-nätverket går till alla neuroner på en gång, vikten av motsvarande synapser tolkas som koordinater för nodens position, och utsignalen bildas enligt principen "vinnaren tar allt" - det vill säga neuron närmast (i betydelsen synapsvikter) ingångssignalen har ett utsignalobjekt som inte är noll. Under inlärningsprocessen justeras synapsvikter på ett sådant sätt att gitternoderna är "lokaliserade" på platser för lokal datakondensering, det vill säga de beskriver datamolnets klusterstruktur, å andra sidan kopplingarna mellan neuroner motsvarar grannskapsrelationerna mellan motsvarande kluster i funktionsutrymmet.
Det är bekvämt att betrakta sådana kartor som tvådimensionella rutnät av noder som ligger i ett flerdimensionellt utrymme. Inledningsvis är en självorganiserande karta ett rutnät av noder sammankopplade med länkar. Kohonen övervägde två alternativ för att ansluta noder - i ett rektangulärt och hexagonalt rutnät - skillnaden är att i ett rektangulärt rutnät är varje nod ansluten till 4 angränsande, och i en hexagonal - till sex närmaste noder. För två sådana nät skiljer sig processen för att bygga ett Kohonen-nätverk endast på den plats där de närmaste grannarna till en given nod korsas.
Den initiala kapslingen av rutnätet i datautrymmet väljs godtyckligt. Författarens SOM_PAK-paket erbjuder alternativ för en slumpmässig initial placering av noder i rymden och en variant för placering av noder i ett plan. Efter det börjar noderna röra sig i rymden enligt följande algoritm:
Datorsystem baserade på neurala nätverk har ett antal kvaliteter som saknas i maskiner med von Neumann-arkitektur (men inneboende i den mänskliga hjärnan):
Indata är aktiekursen för året. Uppgiften är att bestämma morgondagens kurs. Följande transformation genomförs - kursen för idag, igår, i förrgår är uppradad. Nästa rad flyttas efter datum med en dag och så vidare. På den resulterande uppsättningen tränas ett nätverk med 3 ingångar och en utgång - det vill säga utgång: kurs till datum, ingångar: kurs till datum minus 1 dag, minus 2 dagar, minus 3 dagar. Det utbildade nätverket matas med kursen för idag, igår, i förrgår och får svaret för imorgon. I det här fallet kommer nätverket att visa beroendet av en parameter på de tre föregående. Om det är önskvärt att ta hänsyn till någon annan parameter (till exempel det allmänna indexet för branschen), måste den läggas till som en input (och inkluderas i exemplen), träna om nätverket och få nya resultat. För den mest exakta träningen är det värt att använda ORO-metoden , som den mest förutsägbara och lätta att implementera.
En serie verk av M. G. Dorrer och medförfattare ägnas åt studiet av möjligheten att utveckla psykologisk intuition i expertsystem för neurala nätverk [27] [28] . De erhållna resultaten ger ett tillvägagångssätt för att avslöja mekanismen för intuition hos neurala nätverk, vilket visar sig när de löser psykodiagnostiska problem. Ett intuitivt förhållningssätt till psykodiagnostik , som inte är standard för datormetoder , har skapats , vilket består i att utesluta konstruktionen av den beskrivna verkligheten . Det låter dig minska och förenkla arbetet med psykodiagnostiska metoder.
Neurala nätverk används ofta i kemisk och biokemisk forskning [29] . För närvarande är neurala nätverk en av de vanligaste metoderna för kemoinformatik för att söka efter kvantitativa struktur-egenskapsförhållanden [30] [31] , på grund av vilket de aktivt används både för att förutsäga de fysikalisk-kemiska egenskaperna och biologiska aktiviteten hos kemiska föreningar, och för riktad design av kemiska föreningar, föreningar och material med förutbestämda egenskaper, inklusive utveckling av nya läkemedel.
Neurala nätverk används framgångsrikt för syntes av styrsystem för dynamiska objekt [32] [33] .
Inom kontrollområdet används neurala system i problem med objektidentifiering, i algoritmer för prognoser och diagnostik, och även för syntes av optimal ACS. För att implementera ACP baserat på ANN, utvecklas för närvarande intensivt produktion av neurochips och neurocontrollers (NC) .
I en viss mening är ANN en hjärnsimulator som har förmågan att lära sig och navigera i förhållanden av osäkerhet. Ett artificiellt neuralt nätverk liknar hjärnan i två aspekter. Nätverket förvärvar kunskap i inlärningsprocessen, och för att lagra kunskap använder det inte objekten själva, utan deras anslutningar - värdena för koefficienterna för internuronala anslutningar, kallade synaptiska vikter eller synaptiska koefficienter.
ANN-inlärningsproceduren består i att identifiera synaptiska vikter som ger den de nödvändiga transformerande egenskaperna. En egenskap hos ANN är dess förmåga att modifiera parametrarna och strukturen i inlärningsprocessen. [34]
Neurala nätverksalgoritmer används i stor utsträckning inom ekonomi [35] . Med hjälp av neurala nätverk löses problemet med att utveckla algoritmer för att hitta en analytisk beskrivning av funktionsmönster för ekonomiska objekt (företag, industri, region). Dessa algoritmer används för att prognostisera vissa "output"-indikatorer för objekt. Användningen av neurala nätverksmetoder gör det möjligt att lösa vissa problem med ekonomisk och statistisk modellering, öka lämpligheten hos matematiska modeller och föra dem närmare den ekonomiska verkligheten [36] . Eftersom ekonomiska, finansiella och sociala system är mycket komplexa och är resultatet av mänskliga handlingar och reaktioner, är det en mycket svår (om lösbar) uppgift att skapa en komplett matematisk modell , med hänsyn till alla möjliga handlingar och reaktioner. I system av denna komplexitet är det naturligt och mest effektivt att använda modeller som direkt efterliknar samhällets och ekonomins beteende. Detta är precis vad metodiken för neurala nätverk [37] kan erbjuda .
![]() | |
---|---|
I bibliografiska kataloger |
|
Typer av artificiella neurala nätverk | |
---|---|
|
Kunskapsteknik | |
---|---|
Allmänna begrepp | |
Stela modeller | |
Mjuka metoder | |
Ansökningar | |
Maskininlärning och datautvinning | |
---|---|
Uppgifter | |
Att lära sig med en lärare | |
klusteranalys | |
Dimensionalitetsreduktion | |
Strukturell prognos | |
Anomali upptäckt | |
Grafisk probabilistiska modeller | |
Neurala nätverk | |
Förstärkningsinlärning |
|
Teori | |
Tidskrifter och konferenser |
|