Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Equipment >> Industriële robot

Signaalverwerking met behulp van neurale netwerken:validatie in neuraal netwerkontwerp

Dit artikel legt uit waarom validatie bijzonder belangrijk is wanneer we gegevens verwerken met behulp van een neuraal netwerk.

AAC's serie over de ontwikkeling van neurale netwerken gaat hier verder met een blik op validatie in neurale netwerken en hoe NN's functioneren bij signaalverwerking.

  1. Hoe classificatie uitvoeren met behulp van een neuraal netwerk:wat is de Perceptron?
  2. Een eenvoudig Perceptron neuraal netwerkvoorbeeld gebruiken om gegevens te classificeren
  3. Een basis Perceptron neuraal netwerk trainen
  4. Eenvoudige neurale netwerktraining begrijpen
  5. Een inleiding tot trainingstheorie voor neurale netwerken
  6. De leersnelheid in neurale netwerken begrijpen
  7. Geavanceerde machine learning met de meerlaagse Perceptron
  8. De Sigmoid-activeringsfunctie:activering in meerlaagse Perceptron neurale netwerken
  9. Een meerlagig Perceptron neuraal netwerk trainen
  10. Trainingsformules en backpropagation voor meerlaagse perceptrons begrijpen
  11. Neurale netwerkarchitectuur voor een Python-implementatie
  12. Hoe maak je een meerlaags Perceptron neuraal netwerk in Python
  13. Signaalverwerking met behulp van neurale netwerken:validatie in neuraal netwerkontwerp
  14. Trainingsdatasets voor neurale netwerken:een neuraal netwerk met Python trainen en valideren

De aard van signaalverwerking via neurale netwerken

Een neuraal netwerk is fundamenteel anders dan andere signaalverwerkingssystemen. De "normale" manier om een ​​soort signaalverwerkingsdoelstelling te bereiken, is door een algoritme toe te passen.

In dit model creëert een onderzoeker een wiskundige methode om een ​​signaal op de een of andere manier te analyseren of te wijzigen. Er zijn methoden om ruis uit audio te verwijderen, randen in afbeeldingen te vinden, temperatuur te berekenen uit de weerstand van een thermistor, de frequentie-inhoud van een RF-golfvorm te bepalen, enzovoort. De ontwerper bouwt vervolgens voort op het werk van de onderzoeker door die methode om te zetten in een algoritme dat door een processor kan worden uitgevoerd en kan worden aangepast aan de behoeften van een bepaalde toepassing.

Een FIR-filter is een voorbeeld van een signaalverwerkingssysteem dat we op een nauwkeurige wiskundige manier kunnen beoordelen en begrijpen.

Een getraind neuraal netwerk daarentegen is een empirisch systeem.

De wiskundige processen die in het netwerk plaatsvinden, vormen geen specifiek algoritme dat bedoeld is om handgeschreven karakters te classificeren, of de vorming van tornado's te voorspellen, of controleprocedures te ontwikkelen voor extreme luchtvaartmanoeuvres. De wiskunde in het neurale netwerk is eerder een raamwerk waarmee het netwerk een aangepast rekenmodel kan maken op basis van trainingsgegevens.

We begrijpen het wiskundige raamwerk waarmee een neuraal netwerk kan leren en de vereiste functionaliteit kan bereiken, maar het daadwerkelijke signaalverwerkingsalgoritme is specifiek voor de trainingsgegevens, de leersnelheid, de initiële gewichtswaarden en andere factoren.

Een neuraal netwerk is, in tegenstelling tot een FIR-filter, afhankelijk van veel verschillende factoren.

Het is als het verschil tussen het leren van een taal als kind en het leren van een taal als volwassene.

Een kind dat nog nooit van het woord 'grammatica' heeft gehoord, kan herhaaldelijk de juiste werkwoordsvorm produceren omdat zijn of haar hersenen van nature patronen hebben herkend en vastgehouden in de enorme hoeveelheid linguïstische invoergegevens die kinderen ontvangen van oudere mensen met wie ze omgaan.

Volwassenen hebben echter meestal geen toegang tot al deze input en kunnen patronen niet op dezelfde manier assimileren, en bijgevolg onthouden en implementeren we de taalkundige "algoritmen" die ons in staat stellen om werkwoorden correct te vervoegen en tijden te kiezen.

Het belang van validatie

Neurale netwerken kunnen uiterst complexe problemen oplossen, omdat ze, wanneer ze overvloedige input krijgen, "van nature" wiskundige patronen vinden die vergelijkbaar zijn met hoe kinderen taalpatronen vinden. Maar deze benadering van signaalverwerking is zeker niet onfeilbaar.

Denk aan Engelssprekende kinderen die 'goed' zeggen in plaats van 'ging' of 'holded' in plaats van 'held'. Dit worden overregularisatiefouten genoemd. Ze hebben het -ed-patroon voor de verleden tijd opgepikt, maar om de een of andere reden - misschien onvoldoende gegevens of cognitieve eigenaardigheden - hebben ze hun taalmodel nog niet verfijnd om rekening te houden met werkwoorden die onregelmatig zijn in de verleden tijd.

Niemand zal een vierjarige natuurlijk terechtwijzen als hij zegt:"Ik ga naar het park." Maar als een prominente politicus een belangrijke toespraak zou houden en herhaaldelijk zou zeggen "goed", "vastgehouden", "gevonden", "weten", enzovoort, zou het publiek ernstig ontstemd (of volkomen perplex) zijn en zou de politieke carrière van de spreker abrupt einde komen.

Deze overregularisatiefouten zijn een goed voorbeeld van hoe een getraind neuraal netwerk onverwachte hiaten kan hebben in zijn vermogen om de gewenste signaalverwerkingsfunctionaliteit te bereiken. En hoewel kleine hiaten misschien onbelangrijk of zelfs interessant lijken, herinnert het voorbeeld van de politicus ons eraan dat ze catastrofaal kunnen zijn in een echte toepassing wanneer we alleen experimenten uitvoeren.

Zowel ondertraining als overtraining kan resulteren in onverwacht en problematisch gedrag wanneer het netwerk wordt geconfronteerd met echte applicatiegegevens. Zie deel 4 voor meer informatie.

En nu zien we waarom validatie een cruciaal aspect is van de ontwikkeling van neurale netwerken. Training is niet genoeg, omdat een trainingsdataset inherent beperkt is en daarom ook de respons van het netwerk op deze dataset beperkt is.

Bovendien resulteert training in een "black box" computersysteem dat we niet kunnen analyseren en beoordelen alsof het een typische formule of algoritme is. We moeten dus valideren , wat ik zou definiëren als alles doen wat redelijkerwijs mogelijk is om ervoor te zorgen dat het netwerk met succes typische real-life invoergegevens zal verwerken en geen spectaculaire fouten zal veroorzaken wanneer het wordt gepresenteerd met atypische gegevens.

De terminologie doorzoeken

De procedure die ik identificeer als 'validatie' kan ook 'verificatie' of gewoon 'testen' worden genoemd.

In de context van softwareontwikkeling hebben de eerste twee termen verschillende betekenissen. Wikipedia, onder verwijzing naar Barry Boehm, zegt dat verificatie probeert te bepalen of het product correct wordt gebouwd, en validatie probeert te bepalen of het juiste product wordt gebouwd. Aangezien beide kwesties essentieel zijn, ziet u de afkorting "V&V" voor "verificatie en validatie".

Ik ben geen software-engineer, dus hopelijk betekent dat dat ik niet verplicht ben dit paradigma over te nemen. Ik gebruik gewoon de term 'validatie' om te verwijzen naar de tests, analyse en observatie die we uitvoeren in een poging ervoor te zorgen dat het getrainde neurale netwerk voldoet aan de systeemvereisten.

Afsluitende gedachten:wat is validatie precies?

Dat hangt ervan af.

NASA publiceerde bijvoorbeeld een vrij lang document met de titel "Verification &Validation of Neural Networks for Aerospace Systems." Als je meer dan ik geïnteresseerd bent in neurale netwerken V&V, wil je misschien beginnen met dit document. Als je een echte V&V-fan bent, zou je het boek Methods and Procedures for the Verification and Validation of Artificial Neural Networks eens moeten overwegen.; het is 293 pagina's lang en overtreft zeker mijn kennis van dit onderwerp met minstens drie ordes van grootte.

In mijn wereld van eenvoudige neurale netwerken die zijn ontwikkeld voor experimentele of educatieve doeleinden, betekent validatie in de eerste plaats dat het getrainde netwerk op nieuwe gegevens wordt uitgevoerd en de nauwkeurigheid van de classificatie wordt beoordeeld. verbeterd.

We zullen in toekomstige artikelen naar specifieke validatietechnieken kijken.


Industriële robot

  1. Elektrische signaaltypes
  2. Wat is een netwerk in embedded systemen? – Verschillende soorten netwerken
  3. Een spoedcursus in het inrichten van draadloze netwerken
  4. Multicore-processor integreert neurale verwerkingseenheid
  5. Low-power radarchip maakt gebruik van spiking neurale netwerken
  6. Lokale minima in neurale netwerktraining begrijpen
  7. Bias-knooppunten opnemen in uw neurale netwerk
  8. De nauwkeurigheid van een neuraal netwerk met verborgen lagen vergroten
  9. Neurale netwerken gebruiken voor snellere röntgenbeeldvorming
  10. 3 routeringstechnieken op PCB high-speed signaalcircuitontwerp
  11. Differentiële isometrische verwerking en simulatieverificatie van high-speed PCB-ontwerp