Hallo en welkom bij deze Python-tutorial.
Nu gaan we de voorwaartse functie maken die het signaal door alle hersenen zal
verspreiden vanaf het allereerste begin met de invoerbeelden tot aan de uitvoer, die de sleutelwaarden voor de acteur en
de waarde die de waarde is, zal bevatten. genomen door de functie van de criticus.
Dus het kan vrij gelijkaardig zijn aan wat we deden voor Doom.
Maar deze keer gaat er iets veranderen.
Het belangrijkste dat gaat veranderen is dat we nu een investering in de hersenen hebben, dus we zullen iets meer
moeten doen om het signaal te verspreiden en daar voorzichtig mee te zijn.
En iets anders dat minder belangrijk is, maar dat nog steeds verandert in vergelijking met voorheen, is
dat we geen RELU-activeringsfunctie gaan gebruiken, zoals, je weet wel, de niet-lineaire activeringsfunctie.
Maar we gaan de ELU gebruiken, wat een meer geavanceerde functie is.
We zullen dat zien in de Python-documentatie.
Dus laten we dit doen.
Laten we deze functie maken.
We beginnen met de def.
Het is eigenlijk de functie van deze activiteitsklasse.
Dus we gaan het naar voren roepen zoals Lichenstein.
En deze voorwaartse functie gaat het object zelf nemen omdat we het object en de invoer gaan
gebruiken.
Het is zo belangrijk om te begrijpen wat deze inputs zullen zijn.
Dit zullen niet alleen de invoerafbeeldingen zijn, deze invoer zal ook de verborgen knooppunten en de celknooppunten
van de verkiezing bevatten.
Daarom wilde ik benadrukken dat er een aantal dingen gaan veranderen.
Nu beschouwen we in de voorwaartse functie de verborgen knooppunten in de celknooppunten van het
systeem.
En over hen gesproken.
Wat we nu gaan doen is deze twee inputs van dit argument scheiden, inputs in de forward-functie, en hoe kunnen
we ze scheiden?
Welnu, we kunnen ons een nieuwe variabele herinneren, namelijk de invoerafbeeldingen.
Dus dat zijn de standaard invoerafbeeldingen.
En we scheiden ze met de tupel H, X en C X, wat een tempel is van de verborgen staat en de celstaat
van de natie.
Dus H x andere toestanden en zes andere toestanden.
Oké, en dat zal gelijk zijn aan de input die dit argument hier is.
Dus nu hebben we de scheiding gemaakt en daarom kunnen we beginnen het signaal door de hersenen te verspreiden.
En om dat te doen, gaan we achtereenvolgens de verschillende lagen van de eerste tot de laatste krijgen
door onze verbindingen te gebruiken.
Dat zijn de windingen, de a. T. M-verbinding en de lineaire verbinding hier, de volledige verbindingen.
Dus laten we dit nu doen.
Het wordt hetzelfde als voorheen.
We gaan onze eerste laag krijgen die we X gaan noemen.
En om deze eerste laag te krijgen, moeten we het signaal van de ingang naar deze eerst daar propageren.
En daarom moeten we de eerste convolutie gebruiken omdat het de eerste convolutie is die het
signaal van de invoerbeelden naar de eerste laag propageert.
Dus wat we nu gaan doen is dit kopiëren, want dit is de eerste winding.
We baseren dat hier en we passen deze eerste convolutie toe op onze invoerbeelden, die nu de juiste invoer
zijn.
En dan krijgen we dat het signaal van de invoerbeelden naar de eerste laag wordt gepropageerd.
Maar onthoud nu dat we een niet-lineaire activeringsfunctie moeten gebruiken om de lineariteit te doorbreken om
de niet-lineaire relaties in de afbeeldingen te leren.
En om dit te doen, gaan we, zoals we zeiden, de ELU-activeringsfunctie gebruiken die we nu op het
pad naar Doug gaan zien.
Maar laten we het eerst hebben.
Dus om het te krijgen, het is net als Relu, we nemen de functionele module, die een snelkoppeling heeft, dan die en dan
een lus.
En dan zetten we dit allemaal tussen haakjes omdat we niet-lineariteit willen activeren de neuronen van deze eerste laag hier die we hebben
verkregen door de eerste convolutie op de ingangen toe te passen.
Dus laten we nu naar de PI in de richting van Doug gaan om te begrijpen welke waarde hier is.
Het is zo dat je er toegang toe hebt tot PI tegen die augustus en dan die HGL en dan moet je niet-lineaire
activeringen vinden en in de niet-lineaire activeringsfunctie die je zult vinden.
Nou, Relu, dat is de klassieke die we kennen.
Dus het is gewoon een maximum van nul en x moet je in gedachten houden, dan heb je Relu zes en dat
is deze, dus een beetje geavanceerder.
En daar gaan we, we gaan kijken.
En zoals je kunt zien, is Allu een RELU plus een extra element.
Dus het is als een meer verfijnde relu.
En dat is dus degene die we gebruiken om niet-lineariteit te activeren, de neuronen in de verschillende lagen te activeren.
En trouwens, er is een lusactiveringsfunctie.
Het heet de exponentiële in hun eenheid.
Dus daar gaan we.
We passen de ELU toe op de eerste convolutionele laag en nu wordt het gemakkelijk.
We gaan verder met de volgende voorwaartse voortplanting van het signaal, dat is van de eerste
convolutionele laag naar de tweede convolutionele laag, die we X gaan noemen, omdat we eigenlijk gewoon X
toevoegen.
Nu is X de eerste convolutionele laag en door het signaal van de eerste convolutionele laag naar
de volgende te verspreiden, wordt X de volgende convolutionele laag.
Om het signaal van de eerste convolutionele laag naar de tweede te verspreiden, kunnen we
dit eenvoudig kopiëren en hier plakken en de huidige vervangen door Konsta.
En nu wordt de tweede convolutie natuurlijk niet toegepast op de invoerbeelden, maar op ex, dat is
de eerste convolutielaag, die hier is.
Oké, perfect.
Nu krijgen we daar onze tweede convolutie.
En laten we nu het signaal weer voortplanten van de tweede convolutie daar naar de derde.
En daarom kunnen we dit en Bassat hier rechtstreeks kopiëren en conv vervangen om drie te worden.
Dan gaan we en nu de laatste om het signaal van de derde convolutionele laag naar de vierde en
laatste te verspreiden.
We kunnen deze basis hier gewoon opnieuw kopiëren en tel drie vervangen.
Maar kom want daar gaan we.
Dus laten we het samenvatten.
We beginnen met onze input.
We passen de eerste convolutie toe om de eerste convolutie daar te krijgen.
Vervolgens passen we de tweede convolutie toe op de eerste convolutionele laag om de tweede convolutionele laag te
verkrijgen.
Vervolgens passen we de derde convolutie toe op de tweede convolutionele laag om de derde convolutionele laag te
verkrijgen.
En tot slot passen we de vierde convolutie toe op de derde convolutionele laag om de vierde convolutionele laag te
verkrijgen.
En zo wordt het signaal door de ogen van het oog verspreid.
Zodat we gaan.
We hebben nu het uitgangssignaal na de vier windingen en nu weet je wat je moet doen.
We moeten dit hele uitgangssignaal uitbreiden in een dimensionale vector.
Dat is de afvlakkingsstap.
Dus we gaan X opnieuw updaten.
X wordt nu deze platte en eendimensionale vector.
En om dit te doen, is dat hetzelfde.
We moeten X nemen, wat tot nu toe de vierde convolutionele laag X is dat we dan de view-functie gebruiken en we zetten
dan eerst min één om te zeggen dat we willen.
Een eendimensionale vector en dan als een tweede argument, moeten we het aantal elementen in deze vector
invoeren en dat is, onthoud, tweeëndertig keer, drie keer drie.
En daarom voeren we hier 30 in.
Drie keer, drie keer.
Daar gaan we, nu hebben we onze afgeplatte vector en de afvlakkingsset is perfect gedaan.
Laten we nu voor de ouderen zorgen.
Dus zoals je hebt begrepen, neemt de verkiezing als invoer de afgeplatte vector, deze eendimensionale vector van drie, twee
keer, drie keer drie elementen.
Het is dus al klaar en goed voorbereid voor de afgelopen 10 jaar en is nu klaar om deze afgeplatte vector als
invoer te nemen.
En daarom kunnen we onze verkiezing en invoer als argument eerst X reeds afgeplatte vector nemen.
Dat is deze röntgenfoto die we zojuist hebben gemaakt.
Maar ook en dat is waar deze problemen in het spel komen.
We moeten H, X en C, X invoeren, en we kunnen X gebruiken en X hier zien omdat we die scheiding hebben
gemaakt van het oorspronkelijke invoerargument van de forward-functie.
Dus Elysium X, de Flatirons output vector tot de vier windingen en dit dubbele van de verborgen in
het celknooppunt.
Dus daar gaan we.
Dan moeten we het zelf niet vergeten, want astm is een variabele van onze functie, dus variabel
aan het object gekoppeld zodat a. T. M en dit zal in feite terugkeren naar outputs van een
paar twee outputs, die de output, verborgen knooppunten en de outputsegmenten zullen zijn.
Het is dus eigenlijk een tuple en daarom kunnen we H X het knooppunt bijwerken en X het celknooppunt zien, want dat is precies de
uitvoer van dit systeem hier.
Geweldig, dus we zijn nu bijna klaar, nu we de outputs van de verkiezing hebben, moeten we de bruikbare
output krijgen, want eigenlijk alleen de Hinden, die zijn nuttig en daarom gaan we het krijgen
door X opnieuw te verkrijgen.
En X is nu gelijk aan ATX.
Het eerste element van de output van alle actie X is gelijk aan het salaris en we zijn bijna klaar.
Onthoud dat we twee hersens hebben, één brein voor de acteur en één brein voor de criticus.
En daarom moeten we signalen uitvoeren om het uitgangssignaal van de acteur en het uitgangssignaal van de criticus terug
te sturen.
En daarom gaan we nu deze twee uitgangssignalen terugsturen.
En hoe kunnen we dat doen?
Nou, dat is heel gemakkelijk.
We moeten gewoon onze lineaire verbindingen nemen.
Maar los daarvan is dat een lineaire verbinding van de criticus en een lineaire volledige verbinding van de acteur.
En we passen elk van deze paar verbindingen toe op de uitgang X, dat is een bruikbare uitgang van GLSEN en dat zal
alles zijn dat het uitgangssignaal zal zijn.
Dus daar gaan we.
Laten we het doen.
We nemen eerst zelf of object, dan krijgen we de lineaire verbinding van de criticus, die criticus is en lineair
wordt genoemd, die we toepassen op X het uitgangssignaal GLSEN en dan Sam, we nemen weer zichzelf, dan dat, en
dan nemen we de lineaire verbinding van de actor, die actor is en lineair wordt genoemd, die we ook
toepassen op X.
Daar gaan we.
Dus dat is het belangrijkste dat we nodig hebben, maar dan gaan we ook de bovenkant van elke extra eindnoot
teruggeven en proberen Noad te verkopen omdat we ze later in de retro-loop van de Estienne zullen gebruiken.
Oké, perfect.
Dus nu zijn we klaar met de hersenen of moet ik zeggen de hersenen?
Omdat we eigenlijk twee hersens hebben gemaakt, een voor de acteur en een voor de criticus.
Dus gefeliciteerd met het maken van de H3C-hersenen.
Ik hoop dat het niet te overweldigend was om een CNN en een verkiezing te combineren, maar het goede nieuws is in ieder
geval dat we echt met het beste en krachtigste model werken.
Dus daar gaan we.
Daarmee zijn we eigenlijk klaar met dit eerste model.
En dus zorg jij in de volgende twee voor de optimizer, want we gaan een aparte
optimizer maken.
We gaan niet elke regel code behandelen, omdat veel ervan uit de onderzoekspapers komt.
En dit is eigenlijk vrij specifiek.
En als we dieper ingaan op wat er aan de hand is met deze optimizer, is dit misschien een
beetje te overweldigend voor wat er gaat gebeuren, omdat we nog de treinfunctie moeten maken, wat een
enorme functie zal zijn.
En dat bevat het algoritme dat de see.
Dus geloof me, daar wil je wat energie voor overhouden en daarom gaan we hier niet te veel tijd aan
besteden.
Maar toch, ik zal de code uitleggen en je zult het hele idee achter deze optimizer begrijpen.
Dus nogmaals gefeliciteerd met het maken van deze Altikriti-klasse, en ik zie je bij de volgende zwoegen om de optimizer
te maken.
Tot dan, geniet ervan.