Een Deep Neural Network (DNN) is een techniek voor machinaal leren waarmee een computer, door hem te trainen, taken kan uitvoeren die zeer moeilijk uit te voeren zouden zijn met conventionele programmeertechnieken. Neurale netwerkalgoritmen zijn geïnspireerd op het menselijk brein en zijn functies: net als ons menselijk brein is het ontworpen om niet alleen te werken door een vooraf ingestelde lijst met regels te volgen, maar door oplossingen te voorspellen en conclusies te trekken op basis van eerdere iteraties en ervaringen.
Wat is neurale netwerkarchitectuur?
Een neuraal netwerk bestaat uit meerdere lagen van knooppunten die input ontvangen van andere lagen en een output produceren tot een eindresultaat is bereikt. Neurale netwerken kunnen een willekeurig aantal verborgen lagen hebben: hoe meer lagen van knooppunten in het netwerk, hoe hoger de complexiteit. Hier zijn verschillende neurale netwerkarchitecturen:
- Traditionele neurale netwerken bestaan meestal uit 2 of 3 verborgen lagen;
- Diep lerend netwerk dat tot 150 verborgen lagen kan hebben;
Wat is het verschil tussen neurale netwerken en diepe neurale netwerken?
Een diep neuraal netwerk is een veel ingewikkelder systeem dan een "eenvoudig" neuraal systeem. Een neuraal netwerk is vergelijkbaar met een schaakspel en gedraagt zich volgens algoritmes: verschillende tactieken worden voorgesteld op basis van de zetten en acties van de tegenstander. Dit neurale netwerk is beperkt tot wat de programmeur invoert:
- Hoe bewegen de schaakstukken?
- De grootte van het schaakbord;
- Verschillende strategieën voor verschillende situaties;
Een neuraal netwerk dat verder gaat dan de invoergegevens en kan leren van eerdere ervaringen wordt een diep neuraal netwerk
Op dezelfde computer zou je bijvoorbeeld een neuraal netwerk kunnen trainen, er vervolgens mee tegen andere mensen spelen en het laten leren terwijl het speelt. Als een neuraal netwerk van verschillende spelers kan leren, kan het moeilijk, of letterlijk onmogelijk, worden om een diep neuraal netwerk te verslaan, zelfs voor schaakmeesters.
Diepe neurale netwerken kunnen stemcommando's herkennen, stemmen identificeren, geluiden en afbeeldingen herkennen en nog veel meer dan een neuraal netwerk. Diep lerende netwerken gebruiken "Big Data" samen met algoritmen om een probleem op te lossen en deze diepe neurale netwerken kunnen problemen oplossen met beperkte of geen menselijke input.
Hoe visualiseer je het werk van een diep neuraal netwerk?
Het proces van een diep neuraal netwerk kan het beste worden begrepen aan de hand van een voorbeeld. Stel je voor dat je honderdduizenden afbeeldingen had, waarvan sommige honden bevatten, en je besloot dat je een computerprogramma wilde schrijven om honden in afbeeldingen te herkennen.
Je hebt twee keuzes. Je kunt een programma schrijven dat expliciet honden identificeert, of je kunt een programma schrijven dat "leert" hoe honden te identificeren.
Je besluit onverstandig om het eerste te doen.
Het gebruik van conventionele programmeertechnieken is lang en moeilijk, en de resultaten zijn niet altijd nauwkeurig
Om hondenfoto's te identificeren, maak je een softwareprogramma met "als" en "dan" statements waarbij de waarschijnlijkheid dat je naar een hond kijkt geprogrammeerd is om toe te nemen elke keer dat je een hondachtig attribuut zoals vacht, flaporen en een staart identificeert. Dit type neuraal systeem is echter moeilijk op vele niveaus:
Als een groep pixels bijvoorbeeld op een staart lijkt, is de kans groter dat je naar een hond kijkt. Je diepe neurale netwerk moet groepen pixels identificeren die overeenkomen met de hondachtige kenmerken. Zelfs als je daarin slaagt, zijn er problemen voor je algoritme:
- Veel gefotografeerde voorwerpen hebben een aantal hondachtige kenmerken, vooral foto's van soortgelijke dieren. Je zult regels moeten toevoegen;
- Soms zijn de kenmerken er wel, maar zijn ze verborgen. Je algoritmes pikken ze niet op;
- Soms zijn attributen alleen van belang als er andere attributen aanwezig zijn. Er zijn dan meer beslisregels nodig;
Uw classificatie mislukt. U realiseert zich dat u niet handmatig de volledige set kenmerken kunt identificeren, laat staan alle regels kunt bedenken die nodig zijn om met al deze speciale gevallen om te gaan.
Je geeft het wijselijk op en besluit de laatste aanpak te proberen. Om een neuraal netwerk te gebruiken of, nog beter, een diep neuraal netwerk.
Een deep learning-model kan je coderingstijd besparen en betere resultaten bieden
Het neurale netwerk wordt zo genoemd omdat er een overeenkomst is tussen deze programmeeraanpak en de manier waarop de hersenen werken.
Net als de hersenen gebruiken neurale net-algoritmen een netwerk van neuronen of knooppunten. En net als de hersenen zijn deze neuronen discrete functies (of kleine machines als je wilt) die inputs binnenkrijgen en outputs genereren. Deze knooppunten zijn gerangschikt in lagen waarbij de output van neuronen in de ene laag de input wordt voor neuronen in de volgende laag totdat de neuronen in de buitenste laag van het netwerk het uiteindelijke resultaat genereren.
Er zijn dus lagen van neuronen waarbij elk neuron een zeer beperkte input ontvangt en een zeer beperkte output genereert, net zoals in de hersenen. De eerste laag (of inputlaag) van neuronen neemt de inputs op en de laatste laag neuronen (of outputlaag) in het netwerk voert het resultaat uit.
Is het juist om dit type algoritme een "neuraal netwerk" te noemen?
Het menselijk brein is natuurlijk veel complexer en krachtiger dan een neuraal netwerk. Het algoritme de naam "diep neuraal netwerk" geven was een goede naam, maar het kan onrealistische verwachtingen wekken over wat haalbaar is met deze technieken. Dat gezegd hebbende, zijn er mensen die proberen het brein te re-engineeren, met behulp van een zeer complex neuraal netwerk, in de hoop dat ze op die manier algemene, mensachtige intelligentie kunnen repliceren in de ontwikkeling van bots. Dus hoe kunnen een neuraal netwerk en machine learning-technieken ons helpen met ons probleem van hondenherkenning?
Welnu, in plaats van het handmatig definiëren van hondachtige kenmerken, kan een diep neuraal netwerkalgoritme de belangrijke kenmerken identificeren en alle speciale gevallen behandelen zonder te programmeren.
Hoe werkt een diep neuraal netwerk?
Het doet dit als volgt:
Elk neuron op de inputlaag ontvangt een beetje informatie van het beeld als input en weegt dan willekeurig (tussen nul en één) of die informatie een hond suggereert of niet. Een laag gewicht (minder dan 0,5) betekent dat het minder waarschijnlijk is dat de informatie geassocieerd wordt met een hond en een hoog gewicht betekent dat het waarschijnlijker is dat de informatie geassocieerd wordt met een hond. Deze meerlaagse neurale netwerkbenadering wordt deep learning genoemd. Neurale netwerken en deep learning zijn zeer krachtige technieken om computerbegrip te bereiken.
Diepe neurale netwerken bestaan uit meerdere lagen knooppunten die zich gedragen als neuronen in onze hersenen
Dus om verder te gaan met diepe neurale netwerken, de gewichten van deze neuronen worden vervolgens als inputs ingevoerd in de andere lagen van neuronen die ook willekeurig gewichten toewijzen en doorgeven als inputs aan nog meer neuronen in het netwerk. Dit gaat zo door totdat de outputlaag van neuronen een binair oordeel geeft. Als het gemiddelde van de aan hen doorgegeven gewichten groter is dan 0,5, is het een hond, anders niet. Deze verbindingen tussen en activering van neuronen over meerdere lagen van knooppunten geven diepe neurale netwerktoepassingen hun kracht.
Hoe weet een diep neuraal netwerk of het het juiste antwoord produceert?
Relevante vragen op dit punt zijn: heeft het diepe neurale netwerk juist geraden of niet en wat gebeurt er als het wel of niet juist heeft geraden? En hoe weet een neuraal netwerk of het juist heeft geraden of niet?
Een manier waarop het dat zou weten is als je de extreem tijdrovende classificatietaak uitvoert door alle foto's te labelen als "hond" of "geen hond", afhankelijk van of er een hond op de foto staat of niet. Het neurale net zal gewoon naar het label kijken om te zien of het de hond correct heeft geïdentificeerd of niet.
En natuurlijk zijn we niet geïnteresseerd in of het de vraag "Hond of niet" goed had op een enkele hondenfoto. We zijn geïnteresseerd in of het de vraag juist had voor elke foto, of op zijn minst om uit te vinden welk percentage van de tijd het juist was in het beoordelen of er een hond of niet op de foto stond.
Hoe gebruiken diepe neurale netwerken training om te leren?
Een neuraal netwerk leert van elke iteratie door gegevens om de nauwkeurigheid te verbeteren
Voor een gegeven set gewichten voor alle neuronen in het netwerk zal het neurale netwerk gissingen doen voor alle foto's en dan bepalen hoe nauwkeurig het was. In hoeveel procent van de gevallen was het resultaat juist, d.w.z. dat de hond op de foto stond als hij op de foto stond, en hoe vaak was het resultaat fout, d.w.z. dat de hond op de foto stond als hij er niet op stond of dat de hond niet op de foto stond als hij er wel op stond. Deze indicatie over hoe nauwkeurig het AI-algoritme is, is essentiële feedback voor het neurale netwerkmodel.
Nadat alle foto's een keer zijn bekeken, kan het willekeurig (of op een andere manier) enkele van de gewichten aanpassen en dan de hele oefening van raden wat er op de foto staat opnieuw doen. Als het resultaat van de tweede ronde beter is, dan zal het resultaat behouden blijven in plaats van terug te vallen op de vorige set gewichten. Als het resultaat van de tweede reeks slechter is, kan het terugvallen op de vorige reeks gewichten en dan verschillende aanpassingen aan die gewichten proberen.
Dit proces zal op deze manier doorgaan totdat het neurale net goed wordt in het identificeren van honden op foto's (hopelijk).
Wanneer het algoritme accuraat honden kan identificeren, is er sprake van convergentie. Het is succesvol "getraind" om honden te identificeren.
Wat zijn de verschillende soorten neurale netwerken?
Convolutionele neurale netwerken
Convolutionele neurale netwerken (CNN) zijn een type kunstmatige intelligentie dat ontworpen is om grote datasets te verwerken, of ervan te leren. Convolutioneel neuraal netwerk is een nieuwe term die specifiek dit type netwerk beschrijft, of AI-technologie in het algemeen.
CNN's zijn krachtige AI-tools voor beeldherkenning die deep learning gebruiken om niet alleen generatieve taken uit te voeren, maar ook beschrijvende taken. Voorbeelden van generatieve taken zijn automatisch bijsnijden, bijschriften schrijven, videografie, mimeografie en beeldoverlays. Een convolutioneel neuraal netwerk bevat zogenaamde convolutionele lagen. Elk neuron in deze lagen verwerkt alleen informatie van een klein deel van een visueel veld. De inputs van elke neuron worden op een checksum-achtige manier op een rij gezet om een feature map te genereren.
Kunstmatige neurale netwerken
Een kunstmatig neuraal netwerk (ANN) is een netwerk van vele perceptoren op verschillende dieptes of lagen dat kan worden opgevat als een Logistische Regressie. ANN wordt vaak Feed Forward Neural Network genoemd omdat inputs alleen in de voorwaartse richting worden verwerkt: een laag ontvangt input en stuurt een output op een lineaire manier.
Kunstmatige neurale netwerken staan ook bekend als universele functiebenaderaars. Zuivere neurale netwerkalgoritmen zoals ANN's en mapping functies die kunnen worden geïmplementeerd als deep learning stellen computers in staat om elke functie te leren. Een van de redenen waarom universele benadering belangrijk is, is de activeringsfunctie. Activatiefuncties introduceren niet-lineaire eigenschappen in het netwerk terwijl ze een complexe relatie tussen invoer en uitvoer leren. Het helpt verschillende soorten van het netwerk van elkaar te leren.
Hoe verbetert een diep neuraal netwerk in de loop van de tijd?
Een manier om je voor te stellen wat het algoritme doet, is je elk neuron voor te stellen als een soort zekerheidstest. In plaats van al die als-dan verklaringen te coderen om honden te identificeren, wordt elk neuron gekalibreerd om iets toe te voegen of af te doen aan het uiteindelijke oordeel dat het object op de foto een hond is. Het is alsof het oordeel (zoals hond of niet) wordt opgesplitst in een groot aantal samenhangende oordelen die samen bijdragen aan een eindoordeel.
Het primaire doel is natuurlijk om convergentie te bereiken als dat mogelijk is. Het is ook een belangrijk doel om dit in een redelijke tijd te doen, bij voorkeur in een korte tijd.
Dieplerende algoritmen hebben een leerproces waardoor ze moeilijk te begrijpen zijn voor mensen
Wat interessant is, is dat de logica die neurale netwerken in staat stelt om de honden op de foto te identificeren, niet menselijk te begrijpen is. Deep learning-modellen hebben verborgen logica, in wezen een zwarte doos van verborgen lagen van knooppunten die zijn eigen diepe netwerk creëert. Dat gezegd hebbende, zijn er enkele pogingen geweest om te proberen de logica achter neurale netwerken visueel weer te geven voor beeldherkenningstaken. In andere gevallen is het niet mogelijk om te zien wat het algoritme achter de schermen doet en blijven de deep learning-methoden verborgen.
Neurale netwerken en machinaal leren zijn nu populair, maar veel van deze algoritmen waren 50 jaar geleden al bekend.
Waarom worden diepe neurale netwerken steeds populairder in verschillende sectoren?
Een van de belangrijkste redenen dat neurale netten nu veel populairder zijn dan toen ze voor het eerst werden uitgevonden, is dat rekenkracht sneller en goedkoper is dan voorheen. Rekenkracht heeft het verschil gemaakt in het bereiken van snelle convergentie. De andere reden is dat gegevens nu alomtegenwoordig zijn, waardoor de waarde van algoritmen die gebruik kunnen maken van de gegevens zoals chatbots voor het bedrijfsleven toeneemt.
Geavanceerde neurale netwerken vereisen veel rekenkracht en veel gegevens
Diep lerende neurale netwerken zijn data- en processorverslindende technieken die resultaten kunnen bereiken die voor programmeurs met programmeertechnieken onmogelijk zouden zijn. Ze zijn bij uitstek geschikt voor bepaalde problemen waarbij alomtegenwoordige gegevens beschikbaar zijn en het gemakkelijk is om de beste uitkomsten te categoriseren of te rangschikken.
Zonder honderdduizenden of liever nog miljoenen foto's van honden zou het onmogelijk zijn om het algoritme te trainen. Deze technieken werken alleen als er veel gegevens beschikbaar zijn. Dit is vrij voor de hand liggend, aangezien het onwaarschijnlijk is dat alle speciale gevallen vertegenwoordigd zijn in een set van slechts 1000 foto's.
Neurale netwerken kunnen worden geconfronteerd met gestructureerde gegevens of ongestructureerde gegevens
Een probleem in het bovenstaande voorbeeld is dat er veel handmatig werk nodig is om alle foto's te labelen. Het is gemakkelijker voor de algoritmen om gegevens te gebruiken die op een gestructureerde manier gelabeld zijn. Neuraal netwerk machinaal leren dat gebruik maakt van gestructureerde gegevens wordt supervised learning genoemd.
Dit brengt ons bij een centrale vraag: is het mogelijk om al dat taggingwerk te vermijden? Dat zou goed zijn omdat je niet alleen veel handmatig werk zou kunnen vermijden, maar ook omdat de meeste gegevens op het internet ongestructureerd zijn, d.w.z. niet zorgvuldig gelabeld of gestructureerd.
Kunnen neurale netwerken werken met ongestructureerde gegevens?
Kunstmatige neurale netwerken en machine learning die werken met ongestructureerde gegevens worden unsupervised learning genoemd. Dit is natuurlijk de heilige graal van machinaal leren en is meer analoog aan hoe mensen leren. Maar zelfs bij ongesuperviseerd leren door machines zijn er veel meer gegevens nodig om te "leren" dan bij mensen en machines kunnen niet gemakkelijk extrapoleren naar voorbeelden buiten datgene waarop ze getraind zijn.
Veel deep learning-modellen proberen de menselijke hersenprocessen te reproduceren
Sommige mensen geloven dat dit soort algoritmen ontwikkeld kunnen worden, misschien door het brein te re-engineeren, tot het punt dat de algoritmen een "begrip" op menselijk niveau beginnen te benaderen. Zij geloven dat het mogelijk zal zijn om geavanceerde scantechnologie van de hersenen te gebruiken om ons inzicht te geven in hoe de neurale netwerken van de hersenen eigenlijk werken. Door deze ontwerpen en patronen te kopiëren kunnen we intelligentie op menselijk niveau nabootsen.
Hoewel de technieken ongetwijfeld ingenieus en zeer nuttig zijn, vooral als er een grote dataset beschikbaar is, is het moeilijk voor te stellen dat zulke eenvoudige algoritmen de basis kunnen vormen van een zeer creatieve, mensachtige intelligentie.
Inhoudsopgave
Blijf op de hoogte van het laatste nieuws over AI-agenten
Deel dit op: