Hallo en welkom bij deze tutorial.
Oké, dus we beginnen met het eerste bestand van onze moraal en het belangrijkste bestand, dat
model, die taart.
En dit is in dit bestand dat we het brein van het hele model zullen
implementeren, weet je, het brein in het hart van het ATC-model dat in dit bestand staat, dat we
het neurale netwerk zullen maken, dat natuurlijk wat convolutionele neurale netwerken, omdat we natuurlijk
nog steeds diepgaand leren.
Dus ik zal nog steeds ogen hebben.
En binnen dit neurale netwerk zullen we alles integreren wat te maken heeft met het actieve criticusmodel.
En er is een bonus, zoals ik je al zei, we implementeren een van de krachtigste H3C-modellen.
En wat het zo krachtig maakt, is dat het een vernieuwingsnetwerk zal bevatten, en meer bepaald in Elysium, het kortetermijngeheugen voor
de lange termijn, zodat we de temporele eigenschappen kunnen leren van wat er in het spel gebeurt.
Dat zijn eigenlijk de temporele eigenschappen van de input zodat de voorspellingen nog beter kunnen.
Dus daar gaan we.
We implementeren een zeer krachtig model dat in principe alle neurale netwerken combineert die we in
de verdiepingscursus zagen.
Dat is een kunstmatig nieuw netwerk, een convolutioneel neuraal netwerk en een terugkerend neuraal netwerk.
En in het hart van al deze netwerken is er natuurlijk het ABC-model dat zeer krachtig zal
zijn.
Dus laten we dit doen.
Laten we dit model aanvallen en implementeren.
Dus we beginnen met het maken van twee functies die slechts enkele functies zijn die ervoor zorgen dat we de
gewichten kunnen initialiseren, want, weet je, we zullen een aantal nieuwe netwerken
hebben en daarom zullen we gewichten hebben en we willen deze twee functies eerst maken, zodat we
al een tool hebben om heel gemakkelijk te integreren in het hele model, het neurale netwerk.
Dus deze twee functies worden genormaliseerde kolommen.
En dat is eigenlijk een functie die niet alleen sommige gewichten kan initialiseren, maar ook een specifieke variantie van een zwaartepunt
kan instellen.
Dat is dus precies wat we nu gaan implementeren.
En dan zullen we de tweede functie implementeren, die de gewichten in zijn functie zal zijn, en die
in principe de gewichten op een optimale manier voor het leren zal initialiseren.
Oke.
En als we klaar zijn met deze twee functies, beginnen we met het implementeren van het neurale netwerk.
Dus laten we het doen.
Laten we snel deze twee functies maken.
Dus ik begin hier met een def.
Dan ga ik de naam van deze functie geven die is genormaliseerd.
Onderstreep kolommen.
Underscore initialiseren zijn.
Daar gaan we, en deze functie heeft slechts twee invoer nodig, eerst worden de gewichten die
we willen initialiseren en de standaarddeviatie, omdat, zoals ik net zei, we een specifieke variantie willen instellen
voor onze voorlopige gewichten.
En als je wilt begrijpen waarom we dit moeten doen, is dat omdat, weet je, wanneer we
het neurale netwerk maken, er de acteur en de criticus zullen zijn, volgens het H3C-model.
En we gaan twee aparte, volledig verbonden lagen maken, één voor de acteur en één voor de criticus.
En deze twee volledig verbonden lagen zullen gewichten hebben en we zullen een standaarddeviatie instellen voor elk van
deze twee groepen gewichten.
Dus wat we zullen doen is een kleine standaarddeviatie instellen voor de acteur.
Het zal rond de 0 zijn. 01 en een grote standaarddeviatie voor de criticus, die rond de één zal liggen, denk ik.
Daarom maken we deze functie zodat we heel gemakkelijk de standaarddeviatie kunnen instellen voor de gewichten die we later
zullen initialiseren voor de acteur in de.
Daarom doen we dit.
Dus nu gaan we gewoon een standaardwaarde instellen.
Maar dit zal later veranderen wanneer we de gewichten initialiseren zodat Shuzo één punt nul is.
Oke.
En nu zijn we klaar om te definiëren wat er in deze functie zit.
Dus wat we eerst voorbereiden, is de uitvoer die we gaan oproepen.
Dus deze out-variabele is wat door deze functie wordt geretourneerd.
En dus eerst, wat we gaan doen is het initialiseren.
Dus zoals je hebt begrepen, zal deze output een gevoel van gewicht zijn met een specifieke standaarddeviatie.
Maar voordat we zorgen voor het instellen van de standaarddeviatie, willen we deze gewoon initialiseren.
En dan zullen we hier de standaarddeviatie instellen, wat het argument is, dat de invoer is van deze
functie.
Dus om intensieve gewichten te initialiseren, weet je misschien hoe je het moet doen.
We hebben het al gedaan.
We gaan onze Tahj-bibliotheek gebruiken en van de Stotch-bibliotheek nemen we de RAND en functie, die
de toortssensor initialiseren met willekeurige gewichten die een normale verdeling volgen.
Dus daarom wordt het front-end genoemd en is het voor normaal.
Dus wat we nu gewoon moeten invoeren, is het aantal elementen dat de sensor zal bevatten.
En dit aantal elementen is natuurlijk het aantal gewichten, omdat we hier eigenlijk de sensor
voor deze gewichten initialiseren.
Om dit aantal elementen te krijgen, kunnen we gewoon onze gewichten nemen.
En bij DOT, om de grootte tussen haakjes te krijgen, en dit geeft het aantal elementen in gewicht zodat het een fakkel zal
creëren, Tenzer met hetzelfde aantal elementen van ons gewicht en het zal worden geïnitialiseerd met willekeurige
gewichten volgens een normale verdeling .
Oke.
En nu is het tijd om de standaarddeviatie in te stellen.
We willen dat dat hier de standaarddeviatie is.
Dus wat we nu gaan doen is een simpele normalisatie.
We hebben een fakkelgevoel voor gewichten en nu willen we het normaliseren.
Om het te normaliseren, zullen we gewoon de expliciete berekening schrijven.
Dus wat we hier gewoon moeten doen, is onze output nemen en deze bijwerken door deze te vermenigvuldigen met de standaarddeviatie.
We willen gedeeld hebben door dit wat ik net heb genoemd.
En om de som te krijgen, gaan we de vierkantswortelfunctie met fakkel gebruiken.
En daarom neem ik hier naartoe als QR t, dat is de vierkantswortelfunctie.
En binnen gaan we het kwadraat invoeren van enkele van de gewichten van onze vector.
En dus nemen we onze output, dan gebruiken we de machtsfunctie waaraan we twee toevoegen omdat we het kwadraat
van de som willen nemen en dan nemen we daarom de som.
En binnenin gaan we de index specificeren van de kolom die het gewicht één tot sommigen bevat.
En om deze gewichten dan apart te krijgen, omdat we ze goed willen verzenden, gebruiken we het
onderstrepingsteken uitbreiden als een functie van onze uitvoer.
Oke.
Dus dit zal het gewicht eruit halen, wat tot nu toe was geïnitialiseerd als een toortsoverdracht van gewichten.
Dus dat krijgt al deze gewichten.
We nemen de som van het kwadraat en dan nemen we de vierkantswortel om de normalisatie toe te passen.
En het feit dat we deze standaarddeviatie bij de teller hebben, zorgt ervoor dat we het hier kunnen lezen.
Varianten van alts zullen gelijk zijn aan het kwadraat van de standaarddeviatie, deze formule zorgt er hier voor dat de betekenis van
gewichten die werden geïnitialiseerd een variantie zal hebben die gelijk zal zijn aan het kwadraat
van de standaarddeviatie die we als argumenten invoeren.
En zo kunnen we een specifieke standaarddeviatie instellen voor de toekomstige acteur en criticus die we binnenkort gaan
maken.
En we kiezen een kleine standaarddeviatie voor de acteur en een grote voor de criticus.
En we zullen dit heel gemakkelijk doen.
Bedankt deze functie.
Oke.
En dus hebben we nu nog maar één ding te doen.
Het is natuurlijk om de uitvoer terug te geven die nu is genormaliseerd met deze specifieke standaarddeviatie.
Oke.
Zo perfect.
Dat is de eerste functie die we moesten maken.
Dat is de eerste tool die we heel graag zullen gebruiken om een 3C-brein te maken.
We moeten nu nog een functie maken.
Het zullen de gewichten zijn in zijn functie.
En dat is slechts een functie die, herinner ik, de gewichten initialiseert om het leren optimaal te maken.
Dus laten we dit de komende tijd doen.
En tot die tijd, geniet ervan.