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

Hoeveel verborgen lagen en verborgen knooppunten heeft een neuraal netwerk nodig?

Dit artikel bevat richtlijnen voor het configureren van het verborgen gedeelte van een Perceptron met meerdere lagen.

Tot dusverre hebben we in deze serie over neurale netwerken Perceptron NN's, meerlaagse NN's besproken en hoe we dergelijke NN's kunnen ontwikkelen met Python. Voordat we verder gaan met het bespreken van het aantal verborgen lagen en knooppunten dat u kunt gebruiken, kunt u overwegen de onderstaande reeks in te halen.

  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
  15. Hoeveel verborgen lagen en verborgen knooppunten heeft een neuraal netwerk nodig?

Recap van verborgen lagen

Laten we eerst enkele belangrijke punten bekijken over verborgen knooppunten in neurale netwerken.

  • Perceptrons die alleen bestaan ​​uit invoerknooppunten en uitvoerknooppunten (ook wel enkellaagse Perceptrons genoemd) zijn niet erg nuttig omdat ze de complexe invoer-uitvoerrelaties die kenmerkend zijn voor veel soorten real-life verschijnselen niet kunnen benaderen. Meer specifiek zijn enkellaagse Perceptrons beperkt tot lineair scheidbaar problemen; zoals we in deel 7 zagen, is zelfs zoiets basaals als de Booleaanse XOR-functie niet lineair te scheiden.
  • Een verborgen laag toevoegen tussen de invoer- en uitvoerlagen verandert de Perceptron in een universele benadering , wat in wezen betekent dat het in staat is om extreem complexe input-output relaties vast te leggen en te reproduceren.
  • De aanwezigheid van een verborgen laag maakt het trainen een beetje ingewikkelder omdat de input-to-hidden gewichten hebben een indirect effect op de laatste fout (dit is de term die ik gebruik om het verschil aan te duiden tussen de outputwaarde van het netwerk en de doelwaarde geleverd door de trainingsgegevens).
  • De techniek die we gebruiken om een ​​meerlaagse Perceptron te trainen, wordt backpropagation genoemd. :we propageren de laatste fout terug naar de invoerzijde van het netwerk op een manier die ons in staat stelt om effectief gewichten te wijzigen die niet rechtstreeks zijn verbonden met het uitvoerknooppunt. De backpropagation-procedure is uitbreidbaar, d.w.z. dezelfde procedure stelt ons in staat om gewichten te trainen die zijn gekoppeld aan een willekeurig aantal verborgen lagen.

Het volgende diagram vat de structuur van een basis meerlaagse Perceptron samen.

Hoeveel verborgen lagen?

Zoals je zou verwachten, is er geen eenvoudig antwoord op deze vraag. Het belangrijkste om te begrijpen is echter dat een Perceptron met één verborgen laag een extreem krachtig computersysteem is. Als u met één verborgen laag geen adequate resultaten behaalt, probeer dan eerst andere verbeteringen - misschien moet u uw leertempo optimaliseren, het aantal trainingsperioden verhogen of uw trainingsgegevensset verbeteren. Het toevoegen van een tweede verborgen laag verhoogt de complexiteit van de code en de verwerkingstijd.

Een ander ding om in gedachten te houden is dat een overbelast neuraal netwerk niet alleen een verspilling van codeerinspanning en processorbronnen is, het kan zelfs positieve schade aanrichten door het netwerk vatbaarder te maken voor overtraining.

We spraken over overtraining in deel 4, waarin het volgende diagram is opgenomen als een manier om de werking van een neuraal netwerk te visualiseren waarvan de oplossing niet voldoende algemeen is.

Een superkrachtige Perceptron kan trainingsgegevens verwerken op een manier die vaag analoog is aan hoe mensen soms een situatie 'overdenken'.

Wanneer we te veel focussen op details en buitensporige intellectuele inspanning leveren aan een probleem dat in werkelijkheid vrij eenvoudig is, missen we het "grote geheel" en eindigen we met een oplossing die niet optimaal zal blijken te zijn. Evenzo kan een Perceptron met overmatige rekenkracht en onvoldoende trainingsgegevens genoegen nemen met een te specifieke oplossing in plaats van een algemene oplossing te vinden (zoals weergegeven in de volgende afbeelding) die nieuwe invoervoorbeelden effectiever zal classificeren.

Dus wanneer hebben we eigenlijk meerdere verborgen lagen nodig? Uit eigen ervaring kan ik je geen richtlijnen geven. Het beste wat ik kan doen, is de expertise doorgeven van Dr. Jeff Heaton (zie pagina 158 van de gelinkte tekst), die stelt dat een verborgen laag een neuraal netwerk in staat stelt om elke functie te benaderen waarbij sprake is van "een continue afbeelding van de ene eindige ruimte naar de andere .”

Met twee verborgen lagen kan het netwerk "een willekeurige beslissingsgrens weergeven met willekeurige nauwkeurigheid".

Hoeveel verborgen knooppunten?

Het vinden van de optimale dimensionaliteit voor een verborgen laag vereist vallen en opstaan. Zoals hierboven besproken, is het hebben van te veel knooppunten ongewenst, maar u moet wel voldoende knooppunten hebben om het netwerk in staat te stellen de complexiteit van de input-outputrelatie vast te leggen.

Trial and error is allemaal goed en wel, maar je hebt een redelijk uitgangspunt nodig. In hetzelfde boek dat hierboven is gelinkt (op pagina 159), noemt Dr. Heaton drie vuistregels voor het kiezen van de dimensionaliteit van een verborgen laag. Ik zal hierop voortbouwen door aanbevelingen te doen op basis van mijn vage signaalverwerkingsintuïtie.

  1. Als het netwerk slechts één uitvoerknooppunt heeft en u denkt dat de vereiste invoer-uitvoerrelatie redelijk eenvoudig is, begin dan met een verborgen laag-dimensionaliteit die gelijk is aan tweederde van de invoer-dimensionaliteit.
  2. Als u meerdere uitvoerknooppunten heeft of als u van mening bent dat de vereiste invoer-uitvoerrelatie complex is, maakt u de dimensionaliteit van de verborgen laag gelijk aan de invoerdimensionaliteit plus de uitvoerdimensionaliteit (maar houdt deze minder dan tweemaal de invoerdimensionaliteit).
  3. /li>
  4. Als u van mening bent dat de vereiste invoer-uitvoerrelatie extreem complex is, stelt u de verborgen dimensionaliteit in op één minder dan tweemaal de invoerdimensionaliteit.

Conclusie

Ik hoop dat dit artikel je heeft geholpen om het proces van het configureren en verfijnen van de verborgen-laagconfiguratie van een meerlaagse Perceptron te begrijpen.

In het volgende artikel zullen we de effecten van verborgen laagdimensionaliteit onderzoeken met behulp van mijn Python-implementatie en enkele voorbeeldproblemen.


Industriële robot

  1. Wat is een Toggle Press en hoe werkt het?
  2. Hoe werkt een tandheugelpers?
  3. Wat is transfer molding en hoe werkt het?
  4. Wat is een transmissie en hoe werkt het?
  5. Bias-knooppunten opnemen in uw neurale netwerk
  6. De nauwkeurigheid van een neuraal netwerk met verborgen lagen vergroten
  7. Trainingsdatasets voor neurale netwerken:een neuraal netwerk voor Python trainen en valideren
  8. Een meerlagig Perceptron neuraal netwerk maken in Python
  9. Inzicht in trainingsformules en backpropagation voor meerlaagse perceptrons
  10. Wat is een industriële koppeling en hoe werkt het?
  11. Hoeveel pk heeft een hydraulische pomp nodig?