Meny
Är gratis
registrering
Hem  /  Installation och konfiguration/ Program för bildigenkänning på neurala nätverk. Utveckling av ett bildigenkänningssystem baserat på apparaten för artificiella neurala nätverk

Bildigenkänningsprogram på neurala nätverk. Utveckling av ett bildigenkänningssystem baserat på apparaten för artificiella neurala nätverk

1

Ett neuralt nätverk är en matematisk modell och dess implementering i form av mjukvara eller hårdvara-mjukvaruimplementering, som är baserad på modellering av aktiviteten hos biologiska neurala nätverk, som är nätverk av neuroner i en biologisk organism. Vetenskapligt intresse för denna struktur uppstod eftersom studiet av dess modell gör att man kan få information om ett visst system. Det vill säga, en sådan modell kan ha praktisk implementering i ett antal grenar av modern vetenskap och teknik. Artikeln diskuterar frågor relaterade till användningen av neurala nätverk för konstruktion av bildidentifieringssystem som används flitigt i säkerhetssystem. Frågor relaterade till ämnet bildigenkänningsalgoritmen och dess tillämpning undersöks i detalj. Ger kortfattat information om metodiken för att träna neurala nätverk.

neurala nätverk

lärande med neurala nätverk

bildigenkänning

lokalt uppfattningsparadigm

säkerhetssystem

1. Yann LeCun, J.S. Denker, S. Solla, R.E. Howard och L. D. Jackel: Optimal Brain Damage, i Touretzky, David (Eds), Advances in Neural Information Processing Systems 2 (NIPS * 89). - 2000 .-- 100 sid.

2. Zhigalov K.Yu. Metod för fotorealistisk vektorisering av laseravståndsdata för vidare användning i GIS // Izvestiya vysshikh uchebnykh zavod. Geodesi och flygfotografering. - 2007. - Nr 6. - S. 285–287.

3. Ranzato Marc'Aurelio, Christopher Poultney, Sumit Chopra och Yann LeCun: Effektivt lärande av sparsamma representationer med en energibaserad modell, i J. Platt et al. (Red), Advances in Neural Information Processing Systems (NIPS 2006). - 2010 .-- 400 sid.

4. Zhigalov K.Yu. Förberedelse av utrustning för användning i system automatiserad kontroll vägbyggen // Natur- och teknikvetenskap. - M., 2014. - Nr 1 (69). - S. 285–287.

5. Y. LeCun och Y. Bengio: Convolutional Networks for Images, Speech, and Time-Series, i Arbib, M. A. (Eds) // The Handbook of Brain Theory and Neural Networks. - 2005 .-- 150 sid.

6. Y. LeCun, L. Bottou, G. Orr och K. Muller: Efficient BackProp, i Orr, G. och K. Muller (red.) // Neural Networks: Tricks of the trade. - 2008 .-- 200 sid.

Idag täcker tekniska och forskningsmässiga framsteg alla nya horisonter och går snabbt framåt. En av dem är att modellera den omgivande naturen med hjälp av matematiska algoritmer. I denna aspekt finns det triviala, till exempel modellering av havsvibrationer, och extremt komplexa, icke-triviala, flerkomponentsuppgifter, till exempel modellering av den mänskliga hjärnans funktion. I processen att studera denna fråga identifierades ett separat koncept - ett neuralt nätverk. Ett neuralt nätverk är en matematisk modell och dess implementering i form av mjukvara eller hårdvara-mjukvaruimplementering, som är baserad på modellering av aktiviteten hos biologiska neurala nätverk, som är nätverk av neuroner i en biologisk organism. Vetenskapligt intresse för denna struktur uppstod eftersom studiet av dess modell gör att man kan få information om ett visst system. Det vill säga, en sådan modell kan ha praktisk implementering i ett antal grenar av modern vetenskap och teknik.

En kort historik över utvecklingen av neurala nätverk

Det bör noteras att begreppet "neuralt nätverk" initialt har sitt ursprung i de amerikanska matematikerna, neurolingvisterna och neuropsykologernas arbete W. McCulloch och W. Pitts (1943), där författarna först nämner det, definierar det och gör det första försöket att bygga en modell neuralt nätverk... Redan 1949 föreslog D. Hebb den första inlärningsalgoritmen. Sedan fanns det ett antal studier inom området neural inlärning, och de första fungerande prototyperna dök upp runt 1990-1991. förra århundradet. Ändå räckte inte beräkningskraften hos den tidens utrustning till tillräckligt snabbt drift av neurala nätverk. År 2010 har kraften hos GPU-videokort ökat kraftigt och konceptet med programmering direkt på grafikkort dök upp, vilket avsevärt (3-4 gånger) ökade datorernas prestanda. 2012 vann neurala nätverk för första gången ImageNet-mästerskapet, vilket markerade deras fortsatta snabba utveckling och framväxten av termen Deep Learning.

V modern värld neurala nätverk har en kolossal täckning, forskare anser forskning som utförs inom området för att studera beteendeegenskaper och tillstånd hos neurala nätverk mycket lovande. Listan över områden där neurala nätverk har hittat tillämpning är enorm. Detta inkluderar igenkänning och klassificering av bilder, och prognoser, och lösning av approximationsproblem, och vissa aspekter av datakomprimering, dataanalys och, naturligtvis, tillämpning i säkerhetssystem av en annan karaktär.

Studiet av neurala nätverk pågår aktivt i forskarsamhällen idag. olika länder... Med ett sådant övervägande presenteras det som ett specialfall av ett antal mönsterigenkänningsmetoder, diskriminantanalys och klustringsmetoder.

Det bör också noteras att under det senaste året har medel till startups inom området bildigenkänningssystem allokerats för mer än de föregående 5 åren, vilket indikerar en ganska hög efterfrågan på denna typ av utveckling på slutmarknaden.

Tillämpning av neurala nätverk för bildigenkänning

Tänk på standarduppgifterna som löses av neurala nätverk när de tillämpas på bilder:

● identifiering av föremål;

● igenkänning av delar av föremål (till exempel ansikten, armar, ben etc.);

● semantisk definition av objektens gränser (låter dig endast lämna objektens gränser i bilden);

● semantisk segmentering (låter dig dela upp bilden i olika separata objekt);

● val av ytnormaler (låter dig konvertera tvådimensionella bilder till tredimensionella bilder);

● markera uppmärksamhetsobjekt (låter dig bestämma vad en person skulle uppmärksamma i en given bild).

Det bör noteras att problemet med bildigenkänning har en slående karaktär, lösningen av detta problem är en komplex och extraordinär process. När man utför igenkänning kan föremålet vara ett mänskligt ansikte, en handskriven siffra, liksom många andra föremål som kännetecknas av ett antal unika egenskaper, vilket avsevärt komplicerar identifieringsprocessen.

I denna studie kommer vi att överväga en algoritm för att skapa och lära oss att känna igen handskrivna symboler för ett neuralt nätverk. Bilden kommer att läsas av en av ingångarna i det neurala nätverket, och en av utgångarna kommer att användas för att mata ut resultatet.

I detta skede är det nödvändigt att kort uppehålla sig vid klassificeringen av neurala nätverk. Idag finns det tre huvudtyper:

● konvolutionella neurala nätverk (CNN);

● återkommande nätverk (djupinlärning);

● förstärkningsinlärning.

Ett av de vanligaste exemplen på att bygga ett neuralt nätverk är den klassiska neurala nätverkstopologin. Ett sådant neuralt nätverk kan representeras som en helt ansluten graf, dess karaktäristiska särdrag är framåtriktad spridning av information och bakåtspridning av signalering om ett fel. Denna teknik har inte rekursiva egenskaper. Ett illustrativt neuralt nätverk med klassisk topologi kan avbildas i fig. 1.

Ris. 1. Neuralt nätverk med den enklaste topologin

Ris. 2. Neuralt nätverk med 4 lager av dolda neuroner

En av de klart betydande nackdelarna med denna nätverkstopologi är redundans. På grund av redundansen vid tillförsel av data i form av exempelvis en tvådimensionell matris till ingången kan en endimensionell vektor erhållas. Så för bilden av en handskriven latinsk bokstav som beskrivs med en 34x34-matris krävs 1156 ingångar. Detta tyder på det beräkningskraft, spenderas på genomförandet av hårdvaru-mjukvarulösningen för denna algoritm kommer att vara för stor.

Problemet löstes av den amerikanske vetenskapsmannen Ian Le Koon, som analyserade Nobelpristagarnas arbete i medicin T. Wtesel och D. Hubel. Som en del av deras studie var syftet med studien den visuella cortexen i kattens hjärna. Analys av resultaten visade att cortex innehåller ett antal enkla celler, samt ett antal komplexa celler. Enkla celler reagerade på bilden av raka linjer som tas emot från de visuella receptorerna och komplexa celler - på translationell rörelse i en riktning. Som ett resultat utvecklades principen för att konstruera neurala nätverk, kallad faltning. Tanken med denna princip var att för att implementera det neurala nätverkets funktion, växling av faltningslager, som vanligtvis betecknas som C - Lager, delsamplingslager S - Lager och helt anslutna lager F - Lager, vid utgången från det neurala nätverket används.

I hjärtat av att bygga ett nätverk av detta slag är tre paradigm - paradigmet för lokal perception, paradigmet för delade vikter och paradigmet för delsampling.

Kärnan i det lokala perceptionsparadigmet är att inte hela bildmatrisen matas till varje ingångsneuron, utan en del av den. Resten av delarna matas till andra ingångsneuroner. I det här fallet kan du observera mekanismen för parallellisering, med den här metoden kan du spara bildens topologi från lager till lager, multidimensionellt bearbeta den, det vill säga ett antal neurala nätverk kan användas under bearbetningen.

Paradigmet för delade vikter antyder att en liten uppsättning vikter kan användas för flera relationer. Dessa uppsättningar kallas även "kärnor". För det slutliga resultatet av bildbehandling kan vi säga att de delade vikterna har en positiv effekt på egenskaperna hos det neurala nätverket, vars studie av beteendet ökar förmågan att hitta invarianter i bilder och filtrera bruskomponenter utan att bearbeta dem.

Baserat på det föregående kan vi dra slutsatsen att när man tillämpar bildvikningsproceduren på basis av kärnan, kommer en utdatabild att visas, vars element kommer att vara huvudkaraktären för graden av överensstämmelse med filtret, det vill säga en funktionskarta kommer att genereras. Denna algoritm visas i fig. 3.

Ris. 3. Algoritm för att generera en funktionskarta

Delsamplingsparadigmet är att ingångsbilden reduceras genom att minska den rumsliga dimensionen av dess matematiska ekvivalent - en n-dimensionell matris. Behovet av delsampling uttrycks i invarians till originalbildens skala. När man tillämpar tekniken med alternerande lager blir det möjligt att generera nya funktionskartor från befintliga, det vill säga en praktisk implementering den här metoden ligger i det faktum att förmågan att degenerera en flerdimensionell matris till en vektormatris och sedan helt till en skalär kvantitet kommer att förvärvas.

Implementera utbildning i neurala nätverk

Befintliga nätverk är indelade i 3 klasser av arkitekturer när det gäller lärande:

● övervakat lärande (percepton);

● oövervakat lärande (adaptiva resonansnätverk);

● blandat lärande (nätverk av funktioner på radiell basis).

Ett av de viktigaste kriterierna för att utvärdera prestandan hos ett neuralt nätverk i fallet med bildigenkänning är kvaliteten på bildigenkänning. Det bör noteras att för en kvantitativ bedömning av kvaliteten på bildigenkänning med användning av ett neuralt nätverks funktion, används root-mean-square felalgoritmen oftast:

(1)

I detta beroende är Ep det p:te igenkänningsfelet för ett par neuroner,

Dp är den förväntade utsignalen från det neurala nätverket (vanligtvis bör nätverket sträva efter 100 % igenkänning, men detta händer inte i praktiken), och konstruktionen O (Ip, W) 2 är kvadraten på nätverkets utdata, vilket beror på den p:te ingången och inställningen av viktkoefficienterna W. Denna konstruktion inkluderar både faltningskärnorna och viktkoefficienterna för alla lager. Felberäkningen består i att beräkna det aritmetiska medelvärdet för alla par av neuron.

Som ett resultat av analysen härleddes en regelbundenhet att viktens nominella värde, när felvärdet är minimalt, kan beräknas utifrån sambandet (2):

(2)

Från detta beroende kan vi säga att problemet med att beräkna den optimala vikten är den aritmetiska skillnaden mellan derivatan av första ordningens felfunktion med avseende på vikten, dividerad med derivatan av andra ordningens felfunktion.

De givna beroenden gör det möjligt att trivialt beräkna felet som finns i utlagret. Beräkningen av felet i de dolda lagren av neuroner kan implementeras med hjälp av metoden för felåterförökning. Huvudidén med metoden är att sprida information, i form av att signalera ett fel, från utgångsneuroner till ingångsneuroner, det vill säga i motsatt riktning till spridningen av signaler genom det neurala nätverket.

Det är också värt att notera att utbildningen av nätverket utförs på speciellt förberedda databaser med bilder klassificerade i ett stort antal klasser och tar ganska lång tid.
Idag är den största databasen ImageNet (www.image_net.org). Hon har fri tillgång för akademiska institutioner.

Slutsats

Som ett resultat av ovanstående bör det noteras att neurala nätverk och algoritmer, implementerade enligt principen om deras funktion, kan användas i system för att känna igen ett fingeravtryckskort för organ med inre angelägenheter. Ofta är det det mjukvarukomponent ett mjukvaru- och hårdvarukomplex som syftar till att känna igen en så unik komplex bild som en ritning, som är en identifieringsdata, löser inte helt de uppgifter som tilldelats den. Ett program baserat på algoritmer baserat på ett neuralt nätverk kommer att vara mycket mer effektivt.

För att sammanfatta kan vi sammanfatta följande:

● neurala nätverk kan hitta tillämpningar, både i frågan om igenkänning av bilder och texter;

● denna teori gör det möjligt att tala om skapandet av en ny lovande klass av modeller, nämligen modeller baserade på intelligent modellering;

● neurala nätverk är kapabla att lära, vilket indikerar möjligheten att optimera processen från att fungera. Denna förmåga är ett extremt viktigt alternativ för praktiskt genomförande algoritm;

● Utvärdering av mönsterigenkänningsalgoritmen med hjälp av en neural nätverksstudie kan ha en kvantitativ betydelse, följaktligen finns det mekanismer för att justera parametrarna till det erforderliga värdet genom att beräkna de erforderliga viktkoefficienterna.

Idag verkar ytterligare forskning av neurala nätverk vara ett lovande forskningsområde som framgångsrikt kommer att tillämpas i ännu fler grenar av vetenskap och teknik, såväl som mänskliga aktiviteter. Utvecklingsfokus moderna system erkännande håller nu på att övergå till fältet för semantisk segmentering av 3D-bilder inom geodesi, medicin, prototyper och andra områden av mänsklig aktivitet - dessa är ganska komplexa algoritmer och detta beror på:

● brist på ett tillräckligt antal databaser med referensbilder;

● brist på ett tillräckligt antal kostnadsfria experter för den inledande utbildningen av systemet;

● bilder lagras inte i pixlar, vilket kräver ytterligare resurser från både datorn och utvecklarna.

Det bör också noteras att det idag finns ett stort antal standardarkitekturer för att konstruera neurala nätverk, vilket i hög grad underlättar uppgiften att bygga ett neuralt nätverk från grunden och reducerar det till valet av en lämplig specifik uppgift nätverksstruktur.

För närvarande finns det ett ganska stort antal innovativa företag på marknaden som är engagerade i bildigenkänning med hjälp av neurala nätverksinlärningsteknologier för systemet. Det är säkert känt att de uppnådde en bildigenkänningsnoggrannhet i området 95 % med hjälp av en databas med 10 000 bilder. Ändå är alla prestationer relaterade till statiska bilder, med videosekvenser i för närvarande allt är mycket mer komplicerat.

Bibliografisk referens

Markova S.V., Zhigalov K.Yu. TILLÄMPNING AV ETT NEURALT NÄTVERK FÖR ATT SKAPA ETT SYSTEM FÖR IGENKÄNNING AV BILDER // Grundläggande forskning. - 2017. - Nr 8-1. - S. 60-64;
URL: http://fundamental-research.ru/ru/article/view?id=41621 (åtkomstdatum: 03.24. Vi uppmärksammar dig på tidskrifterna publicerade av "Academy of Natural Sciences"

Ganska mycket har redan sagts som ett av verktygen för att lösa svårformaliserade uppgifter. Och här, på Habré, visades det hur man använder dessa nätverk för bildigenkänning, i förhållande till uppgiften att knäcka captcha. Det finns dock en hel del typer av neurala nätverk. Och är det klassiska fullt uppkopplade neurala nätverket (PNN) så bra för problemet med bildigenkänning (klassificering)?

1. Uppgift

Så vi ska lösa problemet med bildigenkänning. Det kan vara igenkänning av ansikten, föremål, symboler etc. Jag föreslår att börja med att överväga problemet med att känna igen handskrivna siffror. Denna uppgift är bra av flera skäl:

    För att känna igen en handskriven karaktär är det ganska svårt att komponera en formaliserad (inte intelligent) algoritm, och detta blir tydligt, du måste bara titta på samma nummer som skrivits av olika personer

    Uppgiften är ganska relevant och har att göra med OCR (optisk teckenigenkänning)

    Det finns en gratis handskriven symboldatabas tillgänglig för nedladdning och experiment

    Det finns en hel del artiklar om detta ämne och det är väldigt enkelt och bekvämt att jämföra olika tillvägagångssätt.

Det föreslås att MNIST-databasen används som indata. Denna databas innehåller 60 000 träningspar (bild - etikett) och 10 000 test (bilder utan etiketter). Bilderna är normaliserade i storlek och centrerade. Storleken på varje siffra är inte mer än 20x20, men de är inskrivna i en 28x28 kvadrat. Ett exempel på de första 12 siffrorna från träningsuppsättningen i MNIST-databasen visas i figuren:

Uppgiften är alltså formulerad enligt följande: skapa och träna ett neuralt nätverk för att känna igen handskrivna karaktärer, ta deras bilder som indata och aktivera en av 10 utgångar... Med aktivering menar vi värdet 1 vid utgången. I det här fallet bör värdena för de andra utgångarna (helst) vara lika med -1. Jag kommer att förklara senare varför skalan inte används.

2. "Vanliga" neurala nätverk.

De flesta människor förstår med "vanliga" eller "klassiska" neurala nätverk fullt anslutna neurala nätverk för framkoppling med bakåtpropagation av ett fel:

Som namnet antyder, i ett sådant nätverk är varje neuron ansluten till var och en, signalen går bara i riktningen från ingångsskiktet till utgången, det finns inga rekursioner. Vi kommer att kalla ett sådant nätverk i förkortad form PNS.

Först måste du bestämma hur du ska skicka data till ingången. Den enklaste och nästan obestridda lösningen för PNS är att uttrycka den tvådimensionella bildmatrisen som en endimensionell vektor. De där. för bilden av en handskriven figur med storleken 28x28 kommer vi att ha 784 ingångar, vilket redan är ganska mycket. Vad som sedan händer är det som många konservativa forskare inte gillar forskare i neurala nätverk och deras metoder för - valet av arkitektur. Och de gillar det inte, eftersom valet av arkitektur är ren shamanism. Hittills finns det inga metoder som gör det möjligt att entydigt bestämma strukturen och sammansättningen av ett neuralt nätverk baserat på beskrivningen av problemet. Till försvar kommer jag att säga att en sådan metod knappast kommer att skapas för uppgifter som är svåra att formalisera. Dessutom finns det många olika tekniker för nätverksreduktion (t.ex. OBD) samt olika heuristik och tumregler. En av dessa regler säger att antalet neuroner i det dolda lagret måste vara minst en storleksordning större än antalet ingångar. Om vi ​​tar med i beräkningen att omvandlingen från en bild till en klassindikator i sig är ganska komplex och i huvudsak icke-linjär, räcker det inte med ett lager här. Baserat på det föregående uppskattar vi grovt att antalet neuroner i de dolda lagren kommer att vara i storleksordningen av 15000 (10 000 i det 2:a lagret och 5 000 i det tredje). Dessutom, för en konfiguration med två dolda lager, numret anpassningsbara och träningsbara länkar det blir 10 miljoner mellan ingångarna och det första dolda lagret + 50 miljoner mellan det första och det andra + 50 tusen mellan det andra och helgen, om vi antar att vi har 10 utgångar, som var och en anger ett tal från 0 till 9. Totalt ungefär 60 000 000 anslutningar... Det var inte förgäves som jag nämnde att de är anpassningsbara, vilket innebär att du under träning måste beräkna felgradienten för var och en av dem.

Vad kan du göra här, skönheten med artificiell intelligens kräver uppoffringar. Men om du tänker på det, kommer det att tänka på att när vi omvandlar en bild till en linjär sträng av byte, så förlorar vi något oåterkalleligt. Dessutom, för varje lager blir denna förlust bara värre. Och så är det - vi tappar bildens topologi, d.v.s. förhållandet mellan dess enskilda delar. Dessutom innebär igenkänningsuppgiften det neurala nätverkets förmåga att vara motståndskraftigt mot små förskjutningar, rotationer och förändringar i bildskalan, d.v.s. det måste extrahera från data några invarianter som inte är beroende av handstilen hos den eller den personen. Så vad ska ett neuralt nätverk vara för att inte vara särskilt komplicerat beräkningsmässigt och samtidigt mer oföränderligt för olika bildförvrängningar?

3. Konvolutionella neurala nätverk

Lösningen på detta problem hittades av den fransk-amerikanske vetenskapsmannen Ian LeCune, inspirerad av Nobelpristagarnas arbete inom medicinområdet Torsten Nils Wiesel och David H. Hubel. Dessa forskare undersökte den visuella cortexen i kattens hjärna och fann att det finns så kallade enkla celler som reagerar särskilt starkt på raka linjer i olika vinklar och komplexa celler som reagerar på linjers rörelse i en riktning. Yang LeCun föreslog att man skulle använda så kallade konvolutionella neurala nätverk.

6. Resultat

Matlabcentral-programmet innehåller en fil med ett redan tränat neuralt nätverk, samt ett GUI för att demonstrera resultatet av arbetet. Nedan följer exempel på erkännande:



Länken har en jämförelsetabell över igenkänningsmetoder baserade på MNIST. Första plats för konvolutionella neurala nätverk med ett resultat av 0,39 % igenkänningsfel. De flesta av dessa felidentifierade bilder känns inte igen korrekt av alla. Dessutom användes elastiska förvrängningar av ingångsbilderna i arbetet, samt preliminär oövervakad träning. Men om dessa metoder som något annat i en annan artikel.

Länkar.

  1. Yann LeCun, J. S. Denker, S. Solla, R. E. Howard och L. D. Jackel: Optimal Brain Damage, i Touretzky, David (red), Advances in Neural Information Processing Systems 2 (NIPS * 89), Morgan Kaufman, Denver, CO, 1990
  2. Y. LeCun och Y. Bengio: Convolutional Networks for Images, Speech, and Time-Series, i Arbib, M. A. (Eds), The Handbook of Brain Theory and Neural Networks, MIT Press, 1995
  3. Y. LeCun, L. Bottou, G. Orr och K. Muller: Efficient BackProp, i Orr, G. och Muller K. (Eds), Neural Networks: Tricks of the trade, Springer, 1998
  4. Ranzato Marc "Aurelio, Christopher Poultney, Sumit Chopra och Yann LeCun: Effektivt lärande av glesa representationer med en energibaserad modell, i J. Platt et al. (red), Advances in Neural Information Processing Systems (NIPS 2006), MIT Press , 2006

Vänner, vi fortsätter historien om neurala nätverk, som vi startade förra gången, och om.

Vad är ett neuralt nätverk

I det enklaste fallet är ett neuralt nätverk en matematisk modell som består av flera lager av element som utför parallella beräkningar. Ursprungligen skapades en sådan arkitektur i analogi med de minsta datorelementen i den mänskliga hjärnan - neuroner. De minsta beräkningselementen i ett artificiellt neuralt nätverk kallas också neuroner. Neurala nätverk består vanligtvis av tre eller flera lager: ett ingångslager, ett dolt lager (eller lager) och ett utdatalager (Fig. 1), i vissa fall tas inte hänsyn till ingångs- och utdatalager, och sedan antalet lager i nätverket räknas av antalet dolda lager. Denna typ av neurala nätverk kallas perceptron.

Ris. 1. Den enklaste perceptronen

En viktig egenskap hos ett neuralt nätverk är dess förmåga att lära genom exempel, detta kallas övervakat lärande. Det neurala nätverket tränas på ett stort antal exempel som består av input-out-par (ingång och utgång som motsvarar varandra). I problem med objektigenkänning kommer ett sådant par att vara ingångsbilden och motsvarande etikett - objektets namn. Att lära ut ett neuralt nätverk är en iterativ process som minskar avvikelsen av nätverkets utdata från ett givet "lärarsvar" - en etikett som motsvarar en given bild (Fig. 2). Denna process består av steg som kallas inlärningsepoker (de är vanligtvis i tusental), vid var och en av vilka "vikterna" för det neurala nätverket - parametrarna för de dolda lagren i nätverket - justeras. Efter avslutad träningsprocessen är kvaliteten på det neurala nätverket vanligtvis tillräckligt bra för att utföra uppgiften som det tränades för, även om den optimala uppsättningen parametrar som perfekt känner igen alla bilder ofta är omöjlig att hitta.


Ris. 2. Träning av det neurala nätverket

Vad är djupa neurala nätverk

Djupa, eller djupa, neurala nätverk är neurala nätverk som består av flera dolda lager (Fig. 3). Denna figur är en bild av ett djupt neuralt nätverk, vilket ger läsaren en allmän uppfattning om hur ett neuralt nätverk ser ut. Den verkliga arkitekturen för djupa neurala nätverk är dock mycket mer komplex.


Ris. 3. Ett neuralt nätverk med många dolda lager

Skaparna av konvolutionella neurala nätverk inspirerades naturligtvis först av det visuella systemets biologiska strukturer. De första beräkningsmodellerna baserade på begreppet hierarkiskt primat visuellt flöde är kända som Fukushima Neocognitron (Figur 4). Den moderna förståelsen av det visuella systemets fysiologi liknar typen av informationsbehandling i faltningsnätverk, åtminstone för snabb objektigenkänning.


Ris. 4. Diagram som visar samband mellan lager i Neocognitron-modellen.

Senare implementerades detta koncept av den kanadensiska forskaren Ian LeCune i hans konvolutionella neurala nätverk, som han skapade för att känna igen handskrivna karaktärer. Detta neurala nätverk bestod av två typer av lager: konvolutionella lager och subsampling lager (eller pooling lager). I det har varje lager en topografisk struktur, det vill säga varje neuron är associerad med en fast punkt i den ursprungliga bilden, såväl som med ett mottagligt fält (ett område av ingångsbilden som bearbetas av denna neuron). På varje plats i varje lager finns det ett antal olika neuroner, var och en med sin egen uppsättning ingående vikter associerade med neuronerna i den rektangulära delen av det föregående lagret. Olika ingående rektangulära fragment med samma uppsättning vikter är associerade med neuroner från olika platser.

Den allmänna arkitekturen för ett djupt neuralt nätverk för mönsterigenkänning visas i figur 5. Ingångsbilden representeras som en uppsättning pixlar eller små områden av bilden (till exempel 5 x 5 pixlar)


Ris. 5. Konvolutionellt neuralt nätverksdiagram

Som regel avbildas djupa neurala nätverk i en förenklad form: som bearbetningssteg, som ibland kallas filter. Varje steg skiljer sig från ett annat i ett antal egenskaper, såsom storleken på det mottagliga fältet, vilken typ av funktioner nätverket lär sig känna igen i ett givet lager och vilken typ av beräkning som utförs i varje steg.

Användningsområdena för djupa neurala nätverk, inklusive faltningsnätverk, är inte begränsade till ansiktsigenkänning. De används ofta för tal- och ljudsignaligenkänning, bearbetning av avläsningar från olika typer sensorer eller för segmentering av komplexa flerskiktsbilder (t.ex satellitkartor) eller medicinska bilder (röntgen, fMRI-bilder - se).

Neurala nätverk inom biometri och ansiktsigenkänning

För att uppnå hög igenkänningsnoggrannhet är det neurala nätverket förtränat på ett stort antal bilder, till exempel i MegaFace-databasen.Detta är den huvudsakliga träningsmetoden för ansiktsigenkänning.


Ris. 6. MegaFace-databasen innehåller 1 miljon bilder av mer än 690 tusen människor

Efter att nätverket har tränats att känna igen ansikten kan ansiktsigenkänningsprocessen beskrivas enligt följande (Figur 7). Först bearbetas bilden med hjälp av en ansiktsdetektor: en algoritm som känner av en rektangulär del av bilden med ett ansikte. Detta fragment är normaliserat för att lättare kunna bearbetas av det neurala nätverket: det bästa resultatet kommer att uppnås om alla ingående bilder är samma storlek, kromaticitet, etc. Den normaliserade bilden matas till ingången av det neurala nätverket för bearbetning av algoritmen. Denna algoritm är vanligtvis en unik utveckling av företaget för att förbättra kvaliteten på igenkänningen, men det finns också "standard" lösningar för detta problem. Det neurala nätverket bygger en unik egenskapsvektor, som sedan överförs till databasen. Söksystem jämför det med alla funktionsvektorer som finns lagrade i databasen, och ger ett sökresultat i form av ett visst antal namn eller användarprofiler med liknande ansiktsdrag, som var och en tilldelas ett visst nummer. Detta nummer representerar graden av likhet mellan vår funktionsvektor med den som finns i databasen.


Ris. 7. Process för ansiktsigenkänning

Bestämma kvaliteten på algoritmen

Noggrannhet

När vi väljer vilken algoritm som ska tillämpas på ett objekt- eller ansiktsigenkänningsproblem måste vi ha ett sätt att jämföra effektiviteten hos olika algoritmer. I denna del kommer vi att beskriva de verktyg som detta görs med.

Kvaliteten på ansiktsigenkänningssystemet bedöms med hjälp av en uppsättning mått som motsvarar typiska scenarier för att använda systemet för autentisering med biometri.

Som regel kan prestandan för alla neurala nätverk mätas i termer av noggrannhet: efter att ha ställt in parametrarna och slutfört träningsprocessen testas nätverket på en testuppsättning som vi har en lärares svar på, men som är skild från träningsset. Vanligtvis är denna parameter ett kvantitativt mått: ett tal (ofta i procent) som anger hur väl systemet kan känna igen nya objekt. Ett annat vanligt mått är fel (det kan uttryckas i procent eller i en numerisk motsvarighet). Det finns dock mer exakta mått för biometri.

Inom biometri i allmänhet och biometri för ansiktsigenkänning i synnerhet finns det två typer av applikationer: verifiering och identifiering. Verifiering är processen att bekräfta en viss identitet genom att jämföra en bild av en individ (en vektor av ansiktsdrag eller en annan vektor av funktioner, till exempel en näthinna eller fingeravtryck) med en eller flera tidigare sparade mallar. Identifiering är processen för att fastställa en individs identitet. Biometriska prover samlas in och jämförs mot alla mallar i databasen. Det finns en identifiering i en sluten uppsättning funktioner om det antas att en person finns i databasen. Således kombinerar erkännande en eller båda termerna - verifiering och identifiering.

Ofta, förutom det direkta resultatet av jämförelsen, krävs det att man bedömer nivån på systemets "förtroende" i sitt beslut. Detta värde kallas "likhetspoäng" (eller likhetspoäng). En högre likhetspoäng indikerar att de två jämförda biometriska proverna är mer lika.

Det finns ett antal metoder för att bedöma systemets kvalitet (både för uppgiften verifiering och identifiering). Vi kommer att prata om dem nästa gång. Och du stannar hos oss och tvekar inte att lämna kommentarer och ställa frågor.

ANMÄRKNINGAR

  1. Fukushima (1980) "Neocognitron: En självorganiserande neural nätverksmodell för en mekanism för mönsterigenkänning opåverkad av förskjutning i position," Biologisk kybernetik.
  2. LeCun, B. Boser, J.S. Denker, D. Henderson, R.E. Howard, W. Hubbard och L.D. Jackel (1989) "Backpropagation Applied to Handwritten Zip Code Recognition", Neural Computation, vol. 1, sid., 541-551.
  3. Jiaxuan You, Xiaocheng Li, Melvin Low, David Lobell, Stefano Ermon Deep Gaussian Process for Crop Yield Prediction Based on Remote Sensing Data.
  4. Ian Goodfellow, Yoshua Bengio, Aaron Courville (2016) Deep Learning. MIT press.
  5. Poh, C-H. Chan, J. Kittler, Julian Fierrez (UAM) och Javier Galbally (UAM) (2012) Beskrivning av mått för utvärdering av biometrisk prestanda.

AlexNet är ett konvolutionellt neuralt nätverk som har haft stor inverkan på utvecklingen av maskininlärning, särskilt datorseendealgoritmer. Nätverket vann ImageNet LSVRC-2012 bildigenkänningstävlingen med stor marginal 2012 (med 15,3 % fel mot 26,2 % på andra plats).

AlexNets arkitektur liknar den för Yann LeCums LeNet. AlexNet har dock fler filter per lager och kapslade faltningslager. Nätverket inkluderar faltningar, maximal pooling, bortfall, dataökning, ReLU-aktiveringar och stokastisk gradientnedstigning.

Funktioner hos AlexNet

  1. Som en aktiveringsfunktion används Relu istället för arctangent för att lägga till olinjäritet till modellen. På grund av detta, med samma noggrannhet av metoden, blir hastigheten 6 gånger snabbare.
  2. Att använda ett avhopp istället för att reglera löser problemet med överutrustning. Träningstiden fördubblas dock med ett avhopp på 0,5.
  3. Överlappande kopplingar utförs för att minska storleken på nätverket. På grund av detta reduceras felnivån för den första och femte nivån till 0,4 % respektive 0,3 %.

ImageNet dataset

ImageNet är en samling av 15 miljoner taggade bilder med hög upplösning indelade i 22 000 kategorier. Bilderna samlades in online och taggades manuellt med hjälp av Amazons Mechanical Turk crowdsourcing. Sedan 2010 har den årliga ImageNet Large-Scale Visual Recognition Challenge (ILSVRC) hållits som en del av Pascal Visual Object Challenge. Utmaningen använder en del av ImageNet-datauppsättningen med 1000 bilder i var och en av de 1000 kategorierna. Totalt erhålls 1,2 miljoner bilder för träning, 50 000 bilder för verifiering och 150 000 för testning. ImageNet består av bilder med olika upplösningar. Därför, för tävlingen, skalas de till en fast upplösning på 256 × 256. Om originalbilden var rektangulär beskärs den till en kvadrat i mitten av bilden.

Arkitektur

Bild 1

Nätverksarkitekturen visas i figur 1. AlexNet innehåller åtta viktade lager. De första fem av dem är konvolutionella, och de andra tre är helt anslutna. Utdata skickas genom en softmax-förlustfunktion som genererar en distribution av 1000 klassetiketter. Nätverket maximerar multilinjär logistisk regression, vilket är ekvivalent med att maximera medelvärdet över alla träningsfall av logaritmen för sannolikheten för korrekt märkning över förväntansfördelningen. Kärnorna i det andra, fjärde och femte faltningsskiktet är endast associerade med de kärnkartor i det föregående lagret som finns på samma GPU. Kärnorna i det tredje faltningsskiktet är associerade med alla kärnkartor i det andra lagret. Neuroner i helt sammankopplade lager är kopplade till alla neuroner i föregående lager.

Således innehåller AlexNet 5 faltningslager och 3 helt anslutna lager. Relu appliceras efter varje veck och helt sammankopplat lager. Dropouten appliceras före det första och andra helt anslutna lagret. Nätverket innehåller 62,3 miljoner parametrar och kräver 1,1 miljarder beräkningar på ett framåtpass. Konvolutionella lager, som står för 6 % av alla parametrar, gör 95 % av beräkningarna.

Utbildning

AlexNet går igenom 90 epoker. Träningen tar 6 dagar samtidigt för två GPU:er Nvidia Geforce GTX 580, vilket är anledningen till att nätverket är delat i två. Stokastisk gradientnedstigning används med en inlärningshastighet på 0,01, en impuls på 0,9 och en viktnedgång på 0,0005. Inlärningshastigheten är delbar med 10 efter mättnad av precision och minskar med 3 gånger under träningens gång. Uppdateringsschema för viktningskoefficient w ser ut som:

var i- iterationsnummer, vÄr impulsvariabeln, och epsilon- inlärningshastighet. Under hela utbildningsstadiet valdes inlärningshastigheten lika för alla lager och justerades manuellt. En efterföljande heuristik var att dividera inlärningshastigheten med 10 när antalet valideringsfel slutade minska.

Exempel på användning och implementering

Resultaten visar att ett stort, djupt faltningsneuralt nätverk kan uppnå rekordresultat på mycket komplexa datauppsättningar med endast övervakad inlärning. Ett år efter publiceringen av AlexNet började alla ImageNet-deltagare använda konvolutionella neurala nätverk för att lösa klassificeringsproblemet. AlexNet var den första implementeringen av konvolutionella neurala nätverk och inledde en ny era av forskning. Nu har det blivit enklare att implementera AlexNet med hjälp av djupinlärningsbibliotek: PyTorch, TensorFlow, Keras.

Resultat

Nätverket uppnår följande felfrekvenser på nivå 1 och 5: 37,5 % respektive 17,0 %. Den bästa prestandan som uppnåddes i ILSVRC-2010-tävlingen var 47,1 % och 28,2 % med ett tillvägagångssätt som ger ett genomsnitt av förutsägelserna från sex glesa kodningsmodeller tränade på olika funktionsvektorer. Sedan dess har resultaten uppnåtts: 45,7 % och 25,7 % med ett tillvägagångssätt som ger ett genomsnitt av förutsägelserna från två klassificerare som tränats på Fishers vektorer. ILSVRC-2010-resultaten visas i tabell 1.


Till vänster: åtta ILSVRC-2010-testbilder och fem taggar som modellen tror är mest sannolika. Rätt etikett skrivs under varje bild, och sannolikheten visas med en röd stapel om den är i topp fem. Till höger: fem ILSVRC-2010-testbilder i första kolumnen. De återstående kolumnerna visar sex träningsbilder.