Wat zijn neurale netwerken en hoe werken ze?
Als je op de hoogte blijft van technisch nieuws, kom je waarschijnlijk het concept tegen neurale netwerken (ook bekend als neurale netten).
In 2016 versloeg het AlphaGo neurale netwerk van Google bijvoorbeeld een van de beste professionele Go-spelers ter wereld in een 4-1-serie. YouTube heeft ook aangekondigd dat ze neurale netwerken zullen gebruiken om de video's beter te begrijpen YouTube zal neurale netwerken gebruiken om video's echt te begrijpen YouTube zal neurale netwerken gebruiken om video's echt te begrijpen Zoeken op YouTube kan frustrerend zijn, omdat YouTube de video's niet op dezelfde manier ziet een persoon doet. Onlangs heeft Google een patent aangevraagd dat daar verandering in kan brengen. Lees verder . Tientallen andere verhalen kunnen in je opkomen.
Maar wat is precies een neuraal netwerk? Hoe werkt het? En waarom is het zo populair in machine learning?
Een computer zoals een brein
Moderne neurowetenschappers bespreken de hersenen vaak als een soort computer. Neurale netwerken proberen het tegenovergestelde te doen: een computer bouwen die functioneert als een brein.
Natuurlijk hebben we slechts een vluchtig inzicht in de uiterst complexe functies van de hersenen, maar door een vereenvoudigde simulatie te maken van hoe de hersenen gegevens verwerken, kunnen we een type computer bouwen dat heel anders functioneert dan een standaardcomputer.
Computerprocessors verwerken gegevens serieel (“in volgorde”). Ze voeren veel bewerkingen uit op een set gegevens, één voor één. Parallelle verwerking (“meerdere streams tegelijkertijd verwerken”) versnelt de computer aanzienlijk door meerdere processors in serie te gebruiken.
In de onderstaande afbeelding vereist het voorbeeld voor parallelle verwerking vijf verschillende processors:
Een kunstmatig neuraal netwerk (zo genoemd om het te onderscheiden van de werkelijke neurale netwerken in de hersenen) heeft een fundamenteel andere structuur. Het is sterk met elkaar verbonden. Hierdoor kan het gegevens zeer snel verwerken, van die gegevens leren en de eigen interne structuur bijwerken om de prestaties te verbeteren.
De hoge mate van onderlinge verbondenheid heeft echter enkele verbazingwekkende effecten. Neurale netwerken zijn bijvoorbeeld erg goed in het herkennen van obscure patronen in gegevens.
Het vermogen om te leren
Het vermogen van een neuraal netwerk om te leren is de grootste kracht. Met de standaard computing-architectuur moet een programmeur een algoritme ontwikkelen dat de computer vertelt wat te doen met inkomende gegevens om ervoor te zorgen dat de computer de juiste reactie uitvoert.
Een input-outputrespons kan zo simpel zijn als “wanneer de A-toets wordt ingedrukt, geeft u 'A' op het scherm weer” of zo ingewikkeld als het uitvoeren van complexe statistieken. Neurale netwerken, aan de andere kant, hebben niet dezelfde soort algoritmen nodig. Door middel van leermechanismen kunnen ze in essentie hun eigen algoritmes ontwerpen 4 Algoritmen voor machinaal leren die je leven bepalen 4 Machinaal leren Algoritmen die je leven bepalen Misschien besef je het niet, maar machine learning is al overal om je heen en het kan een verrassende mate van invloed uitoefenen over je leven. Geloof me niet? Je zult verrast zijn. Lees Meer dat ervoor zorgt dat ze correct werken.
Het is belangrijk op te merken dat omdat neurale netwerken softwareprogramma's zijn die zijn geschreven op machines die standaard hardware voor seriële verwerking gebruiken, de huidige technologie nog steeds beperkingen oplegt. Het bouwen van een hardwareversie van een neuraal netwerk is ook een ander probleem.
Van neuronen tot knooppunten
Nu we de basis hebben gelegd voor de werking van neurale netwerken, kunnen we enkele van de details beginnen te bekijken. De basisstructuur van een kunstmatig neuraal netwerk ziet er als volgt uit:
Elk van de cirkels wordt a genoemd “knooppunt” en het simuleert een enkel neuron. Aan de linkerkant bevinden zich ingangsknooppunten, in het midden verborgen knooppunten en aan de rechterkant uitgangsknopen.
In zeer eenvoudige termen accepteren de ingangsknooppunten invoerwaarden, die een binaire 1 of 0 kunnen zijn, een deel van een RGB-kleurwaarde, de status van een schaakstuk of iets anders. Deze knooppunten vertegenwoordigen de informatie die naar het netwerk stroomt.
Elk ingangsknooppunt is verbonden met een aantal verborgen knooppunten (soms met elk verborgen knooppunt, soms met een subset). Invoerknooppunten nemen de informatie die ze krijgen, door en geven deze door aan de verborgen laag.
Een ingangsknooppunt kan bijvoorbeeld een signaal verzenden (“brand,” in het taalgebruik van de neurowetenschappen) als deze een 1 ontvangt en slapend blijft als deze een nul ontvangt. Elk verborgen knooppunt heeft een drempelwaarde: als alle gesommeerde ingangen een bepaalde waarde bereiken, wordt deze geactiveerd.
Van synapsen naar verbindingen
Elke verbinding, het equivalent van een anatomische synaps, krijgt ook een specifiek gewicht, waardoor het netwerk een sterkere nadruk kan leggen op de actie van een specifiek knooppunt. Hier is een voorbeeld:
Zoals u kunt zien, is het gewicht van verbinding B hoger dan dat van verbinding A en C. Laten we aannemen dat verborgen knooppunt 4 alleen vuurt als het een totale invoer van 2 of hoger ontvangt. Dat betekent dat als 1 of 3 op zichzelf vuren, 4 dan niet worden geactiveerd, maar 1 en 3 samen het knooppunt activeren. Knoop 2 kan het knooppunt ook zelfstandig activeren via verbinding B.
Laten we het weer als een praktisch voorbeeld nemen. Stel dat je een eenvoudig neuraal netwerk ontwerpt om te bepalen of er een waarschuwing voor de winterstorm zou moeten zijn.
Met behulp van de bovenstaande verbindingen en gewichten kan knooppunt 4 alleen vuren als de temperatuur lager is dan 0 F en windsnelheden boven 30 MPH zijn, of zou het vuren als er meer dan 70 procent kans op sneeuw is. De temperatuur zou worden toegevoerd aan knooppunt 1, windkrachtig naar knooppunt 3, en waarschijnlijkheid van sneeuw naar knooppunt 2. Nu kan knooppunt 4 hiermee al rekening houden bij het bepalen van welk signaal naar de uitvoerlaag moet worden verzonden.
Beter dan eenvoudige logica
Natuurlijk zou deze functie eenvoudig kunnen worden uitgevoerd met eenvoudige EN / OF-logische poorten. Maar meer complexe neurale netwerken, zoals die hieronder, zijn in staat tot beduidend complexere operaties.
Knoppen van uitvoerlaag werken op dezelfde manier als verborgen lagen: uitvoerknooppunten tellen de invoer van de verborgen laag bij elkaar op en als ze een bepaalde waarde bereiken, vuren de uitvoerknooppunten en sturen specifieke signalen. Aan het einde van het proces verzendt de uitvoerlaag een set signalen die het resultaat van de invoer aangeeft.
Hoewel het hierboven getoonde netwerk eenvoudig is, kunnen diepe neurale netwerken veel verborgen lagen en honderden knooppunten hebben.
Foutcorrectie
Het proces is tot nu toe relatief eenvoudig. Maar waar neurale netwerken echt schijnen, is leren. De meeste neurale netten gebruiken een proces genaamd backpropagation, die signalen uitzendt achteruit via het netwerk.
Voordat programmeurs een neuraal netwerk implementeren, leiden ze het door een trainingsfase waarin het een reeks ingangen met bekende resultaten ontvangt. Een programmeur kan bijvoorbeeld een neuraal netwerk leren om beelden te herkennen. Gebruik uw smartphone om iets met CamFind te identificeren Gebruik uw smartphone om iets met CamFind te identificeren Deze app kan echt bijna elk object identificeren dat u ernaar gooit. Dat is niet alleen cool, maar het heeft ook een heleboel praktische toepassingen! Lees verder . De invoer kan een afbeelding van een auto zijn en de juiste uitvoer is het woord “auto.”
De programmeur levert de afbeelding als invoer en ziet wat er uit de outputknooppunten komt. Als het netwerk reageert met “vliegtuig,” de programmeur vertelt de computer dat het onjuist is.
Het netwerk maakt vervolgens aanpassingen aan zijn eigen verbindingen, waarbij de gewichten van verschillende verbindingen tussen knooppunten worden gewijzigd. Deze actie wordt gestuurd door een specifiek leeralgoritme dat aan het netwerk wordt toegevoegd. Het netwerk blijft verbindingsgewichten aanpassen totdat het de juiste uitvoer levert.
Dit is een vereenvoudiging, maar neurale netwerken kunnen zeer complexe operaties leren met behulp van vergelijkbare principes.
Continue verbetering
Zelfs na de training gaat backpropagation door - en dit is waar neurale netwerken echt cool worden. Ze blijven leren zoals ze worden gebruikt, integreren nieuwe informatie en maken aanpassingen aan de gewichten van verschillende verbindingen, worden steeds effectiever en efficiënter bij de taak waarvoor ze zijn ontworpen.
Dit kan zo simpel zijn als beeldherkenning of zo complex als het spelen van Go.
Op deze manier veranderen en verbeteren neurale netwerken. En dit kan verrassende effecten hebben, wat resulteert in netwerken die prioriteiten stellen voor dingen waarvan een programmeur niet had gedacht dat deze prioriteiten zou stellen.
Naast het hierboven beschreven proces, dat wordt genoemd leren onder toezicht, er is ook een andere methode: onbewaakt leren.
In deze situatie nemen neurale netwerken een input en proberen ze het exact in hun uitvoer na te bootsen, met behulp van backpropagation om hun verbindingen bij te werken. Dit klinkt misschien als een vruchteloze oefening, maar op deze manier leren netwerken handige functies te extraheren en die functies te generaliseren om hun modellen te verbeteren.
Problemen met de diepte
Backpropagation is een zeer effectieve manier om neurale netwerken te leren ... als ze maar een paar lagen diep zijn. Naarmate het aantal verborgen lagen toeneemt, neemt de effectiviteit van backpropagation af. Dit is een probleem voor diepe netwerken. Met behulp van backpropagation zijn ze vaak niet effectiever dan eenvoudige netwerken.
Wetenschappers hebben een aantal oplossingen bedacht voor dit probleem, waarvan de bijzonderheden vrij gecompliceerd zijn en buiten het bestek van deze inleiding vallen. Wat veel van deze oplossingen proberen te doen, in eenvoudige bewoordingen, is het verminderen van de complexiteit van het netwerk door het te trainen “samenpersen” de data.
Om dit te doen, leert het netwerk een kleiner aantal identificerende kenmerken van de input extraheren, uiteindelijk steeds efficiënter in zijn berekeningen. In feite maakt het netwerk generalisaties en abstracties, ongeveer op dezelfde manier als mensen leren.
Na dit leren kan het netwerk knooppunten en verbindingen snoeien die het minder belangrijk vindt. Dit maakt het netwerk efficiënter en leren wordt eenvoudiger.
Neurale netwerktoepassingen
Dus neurale netwerken simuleren hoe de hersenen leren door gebruik te maken van meerdere lagen knooppunten - invoer, verborgen en uitvoer - en ze kunnen zowel leren in gesuperviseerde als niet-gesuperviseerde situaties. Complexe netten kunnen abstracties maken en generaliseren, waardoor ze efficiënter en beter in staat zijn om te leren.
Waar kunnen we deze fascinerende systemen voor gebruiken??
In theorie kunnen we neurale netwerken voor bijna alles gebruiken. En je hebt ze waarschijnlijk al gebruikt zonder het te weten. Ze komen bijvoorbeeld heel vaak voor in spraak en visuele herkenning, omdat ze kunnen leren specifieke trekken te onderscheiden die geluiden of beelden gemeen hebben.
Dus als je Siri vraagt 8 Dingen die je waarschijnlijk niet hebt gerealiseerd Siri zou 8 dingen kunnen doen die je waarschijnlijk niet hebt gerealiseerd Siri Could Do Siri is een van de bepalende functies van de iPhone geworden, maar voor veel mensen is dit niet altijd het nuttigst. Terwijl een deel hiervan te wijten is aan de beperkingen van stemherkenning, de eigenaardigheid van het gebruik van ... Lees Meer waar het dichtstbijzijnde benzinestation is, zet je iPhone je spraak door een neuraal netwerk om erachter te komen wat je zegt. Er kan een ander neuraal netwerk zijn dat leert het soort dingen te voorspellen waar je waarschijnlijk om vraagt.
Zelfrijdende auto's kunnen neurale netwerken gebruiken om visuele gegevens te verwerken, waarbij ze de wegregels volgen en botsingen vermijden. Alle soorten robots kunnen baat hebben bij neurale netwerken die hen leren om taken efficiënt uit te voeren. Computers kunnen spellen leren spelen zoals schaken, Go en Atari klassiekers. Als je ooit met een chatbot hebt gesproken, bestaat de kans dat het een neuraal netwerk gebruikt om de juiste antwoorden te bieden.
Zoeken op het internet kan veel baat hebben bij neurale netwerken, omdat het uiterst efficiënte parallelle verwerkingsmodel veel gegevens snel kan genereren. Een neuraal netwerk kan ook uw gewoonten leren om uw zoekresultaten te personaliseren of te voorspellen waar u in de nabije toekomst naar op zoek gaat. Dit voorspellingsmodel is uiteraard zeer waardevol voor marketeers (en voor iedereen die complexe menselijk gedrag moet voorspellen).
Beeldherkenning, optische tekenherkenning De 5 beste OCR-hulpmiddelen voor het extraheren van tekst uit afbeeldingen De 5 beste OCR-hulpmiddelen voor het extraheren van tekst uit afbeeldingen Als u een stapel papieren hebt, hoe krijgt u al die afgedrukte tekst omgezet in iets dat een digitaal programma zal zijn? in staat om te herkennen en te indexeren? Houd een goede OCR-software in de buurt. Lees meer, voorspelling van de aandelenmarkt, route-finding, big data processing, analyse van medische kosten, verkoopprognoses, videogame AI ... de mogelijkheden zijn bijna eindeloos. Het vermogen van neurale netwerken om patronen te leren, veralgemeningen te maken en gedrag met succes te voorspellen, maakt ze waardevol in ontelbare situaties.
De toekomst van neurale netten
Neurale netwerken zijn geavanceerd van zeer eenvoudige modellen tot zeer complexe leersimulaties. Ze zitten op onze telefoons, onze tablets en gebruiken veel van de webservices die we gebruiken. Er zijn veel andere machine-leersystemen die er zijn.
Maar neurale netwerken, vanwege hun gelijkenis (op een zeer vereenvoudigde manier) met het menselijk brein, zijn enkele van de meest fascinerende. Terwijl we doorgaan met het ontwikkelen en verfijnen van modellen, is het niet duidelijk wat ze kunnen.
Kent u een interessant gebruik van neurale netwerken? Heb je zelf ervaring met ze? Wat vind je het meest interessant aan deze technologie? Deel uw mening in de reacties hieronder!
Ontdek meer over: Futurologie, Neurale Netwerken, Technologie.