Cześć i witamy w tutorialu Python.
W porządku.
Teraz w następnej funkcji, którą zamierzamy wdrożyć Będziemy szkolić głęboką sieć neuronową, która
jest wewnątrz naszej sztucznej inteligencji.
Zasadniczo zamierzamy przeprowadzić cały proces propagacji, a następnie propagacji wstecznej.
Tak więc zamierzamy uzyskać nasze wyniki.
Dostaniemy cel.
Porównamy dane wyjściowe celu, aby obliczyć ostatni błąd, a następnie cofniemy propagację tego
ostatniego błędu do nowej sieci.
I za pomocą sugerowanego spadku gradientu, który będzie musiał czekać, w zależności od tego, ile przyczyniły się do
ostatniego błędu.
Zróbmy to wszystko dla tych, którzy pochodzą z głębokiego korpusu piechoty morskiej.
To będzie dobre rzeczy, ale dla innych nie martw się, zamierzam rozwinąć to jeszcze raz.
Więc nazwiemy tę nową funkcję, funkcja uczenia się i uczenia się będzie wymagała kilku argumentów.
Najpierw oczywiście, co będzie odnosić się do przedmiotu stopnia w klasie.
Następnie weźmiemy stan w batalii dla bieżącego stanu, a następnie nasz kolejny wsad,
następnie naszą Nagrodę, a wreszcie akcję Arbata.
Dlaczego więc to przyjmujemy.
Prawdopodobnie rozpoznałeś, czym jest ta seria.
Cóż, to oczywiście jest przejście procesu decyzyjnego na rynku, który leży u podstaw.
Czy nauczyłeś się.
I dlaczego wszyscy weźmiemy ich do kilku partii.
Cóż, to dlatego, że wiesz, że nie bierzemy pod uwagę przejść przez serię najlepszych
lub aktualnych stanów bieżącego nagrania i bieżącej akcji.
Stworzyliśmy tutaj kilka prostych partii dzięki prostej funkcji.
I tak teraz nasze przejścia są w formie pierwszej partii dla tego stanu.
Druga partia dla następnej daty partia dla nagrody i partia dla akcji.
Taka jest obecnie forma naszego przejścia i są one dobrze dostosowane do czasu
dzięki tej konkatenacji, którą uczyniliśmy tutaj w odniesieniu do pierwszego wymiaru.
Chodzi o to, że mamy te przejścia partii jednej partii dla każdego stanu w następnym dniu, w którym
ją oglądamy w akcji, i robimy to wszystko, ponieważ używamy tej sztuczki powtórzenia doświadczenia.
To nasza głęboka sieć neuronowa może się czegoś nauczyć.
Pamiętasz, gdybyś sam przeszedł transformację, to byłaby jakaś błyskawiczna nauka.
Lub jeśli chcesz nauczyć się bardzo krótkiej pamięci i dlatego kret nie nauczy się niczego.
Musimy więc wziąć te partie z pamięci, które stają się naszymi przejściami, a następnie ostatecznie otrzymamy
różne wyniki dla każdego z stanów stanów wejściowych i zrobimy to dla stanów
i dla następnych stanów, ponieważ będziemy potrzebować zarówno obliczyć stratę.
Wkrótce przypomnę równanie równowagi, które jest w centrum algorytmu uczenia się.
A więc teraz przejdźmy do funkcji i najpierw zdobądźmy wyjścia stanu skrzynki.
Tak więc zamierzam nazwać pierwsze dobre wyniki, a potem powiemy oczywiście, że samo-mówienie
nie jest tak proste.
Nie, ponieważ chcemy uzyskać nasze modele wyników stanów wejściowych stanu.
A ponieważ nasz model faktycznie oczekuje serii stanów wejściowych.
Cóż, możemy teraz całkowicie wprowadzić ten stan, aby wprowadzić je wszystkie.
Właśnie tak zainicjowaliśmy stany, które trafiają do sieci z odpowiedzią na tortury z tym
niejasnym wymiarem dla partii, która jest idealna.
Teraz otrzymujemy wyniki wszystkich.
Ale jest jeszcze inna techniczna sztuczka, jeśli sprzedamy tylko ten model, a otrzymamy wyniki wszystkich możliwych działań,
które znasz 0 1 i 2, ale tego nie chcemy.
Interesują nas tylko wybrane działania.
Działania, które zdecydowały się grać w sieci za każdym razem i tak,
aby zainteresować się nimi, to działania dobrze odgrywane, musimy użyć tej funkcji gromadzenia, w której ją
wpisujemy, ponieważ chcemy tylko akcji, która została wybrana, a następnie dodamy tę akcję do tego.
I w tej sekcji zbieramy za każdym razem najlepszą akcję do gry dla każdego z stanów
wejściowych stanu.
Nie chcemy, aby akcja, która jest wybrana, wybraną akcją, a otrzymujemy to, aby zebrać
taką akcję.
Ale potem bądź ostrożny.
Państwo tutaj ma te fałszywe diamenty i smary do partii i ta sekcja go nie ma.
Backstay ma to, ponieważ przywykliśmy do Unsworth tutaj, ale nie używaliśmy żadnego uścisku ręki
dla akcji, więc musimy dodać to tutaj, aby akcja Bache miała dokładnie taki sam wymiar jak stan.
Więc dodamy kropkę i wyciśniemy tu twoje prawo, a właściwie to nie jest zero, ale jedno, ponieważ zerowa odpowiedź
na wiarę nie jest stanem i jedna będzie odpowiadać badaniu działań.
I w końcu ostatnią rzeczą, którą musimy tutaj zrobić, jest to, że musimy zabić tę fałszywą partię przez ściśnięcie.
Dlaczego musimy to zrobić.
Ponieważ teraz jesteśmy poza siecią neuronową.
Mamy nasze wyniki, ale nie chcemy ich z powrotem.
Chcemy ich.
Prosta odpowiedź to prosty wektor.
Wektor wyjścia partiami właśnie wtedy, gdy pracujemy w sieci neuronowej, ponieważ sieć
neuronowa oczekuje formatu czujników w partii.
Ale teraz mamy nasze wyniki, aw następnym równaniu balunowym głębokiego uczenia się nie będziemy
ich potrzebować.
Więc zabijam to tutaj i zabijam wymiar wiary, aby odzyskać prostą formę naszych wyników.
Dodaję tutaj Dot, a następnie ściskam, a potem, ponieważ chcę zabić fałszywą laminację
odpowiadającą tyłowi akcji.
Cóż, odkąd silnik czasoprzestrzeni ma indeks jeden, dodaję go tutaj.
W porządku.
A teraz tam mamy nasze wyniki.
DOBRZE.
Mamy małe ostrzeżenie, co to jest, że dane wyjściowe zmiennej lokalnej są przypisane, ale nigdy nie są używane.
W porządku.
Wykorzystamy to bardzo szybko.
To są nasze wyniki.
A teraz chcemy uzyskać nasze kolejne outwity Więc teraz możesz pomyśleć, dlaczego potrzebujemy kolejnych wyników.
Aby to zrozumieć, musimy powrócić do algorytmu głębokiego uczenia się, który
jest właśnie częścią podręcznika letaka.
To cały proces dyfuzji.
Na początku inicjalizowaliśmy wszystkie kluczowe wartości, a następnie za każdym razem t.
No cóż, wybieramy akcję z soughed Max, co zrobiliśmy z funkcją wyboru akcji.
Potem otworzyliśmy przejście, a potem, jak widać, otrzymujemy prognozę, którą otrzymujemy, i możemy
być ostatnią.
Dlaczego więc potrzebujemy kolejnego wyjścia?
To dlatego, że cel jest równy Ghanie razy kolejny wynik plus chcemy, a my obliczymy
cele zaraz po tym, ponieważ potrzebujemy następnego wyniku docelowego.
Obliczmy to najpierw.
Ponownie, aby kolejna aktualizacja była bardzo prosta, następne wyjście będzie wynikiem naszej sieci
neuronowej, gdy następny stan wsadowy jest wprowadzany jako wejście.
Tak więc po prostu bierzemy nasz model, który jest naszą siecią neuronową, a następnie tym razem wejście sieci
neuronowej będzie kolejnym stanem w batalii, który jest pakowany w następną datę.
Ale teraz pamiętajcie, jeśli powrócimy do wczesnego algorytmu. Widać, że następnym wyjściem jest maksymalna wartość q
dla następnego stanu w odniesieniu do wszystkich działań.
Tak więc teraz, aby uzyskać następne wyniki, potrzebujemy uzyskać maksymalne wartości q, a zatem zamierzam
to zrobić.
Odłącz, jak wiesz, odłączyć wszystkie wyjścia modelu, ponieważ mamy kilka stanów w tej partii kolejnych stanów, to
jest partia wszystkich kolejnych stanów we wszystkich przejściach pobranych z losowej próbki naszej
pamięci.
Odłączam je wszystkie za pomocą funkcji odłączania, a następnie przyjmuję maksimum wszystkich tych dwóch
wartości.
A skoro przyjmujemy maksimum tych dwóch wartości w odniesieniu do akcji, to musimy określić, że jest
to w odniesieniu do akcji.
A ponieważ akcja jest reprezentowana przez indeks pierwszy.
Znowu musimy tu umieścić następną, a następnie musimy określić, że przyjmujemy wartości cue
jako T plus 1, który jest następnym etapem, a następny stan jest reprezentowany przez 0, ponieważ indeks
zero odpowiada stanom i dlatego tutaj musimy dodać nawiasy z indeksem 0.
W ten sposób uzyskujemy maksimum kluczowych wartości kolejnych stanów reprezentowanych przez kolejne zero, zgodnie
ze wszystkimi działaniami, które są reprezentowane przez indeks pierwszy, a teraz doskonałe otrzymujemy kolejne wyniki.
To jest nowy zestaw.
Właśnie wtedy otrzymaliśmy ostrzeżenie.
Ale to w porządku.
Wykorzystamy go teraz, aby obliczyć cel.
Mówiąc o celu, który jest następnym krokiem tej znanej funkcji.
Więc idziemy.
Cel jest równy.
Teraz wróćmy do naszego podręcznika AI AI.
Cel jest równy wyrazowi plus czasy gamma, a następny wynik to maksimum wartości kostki następnego
dnia.
Zgodnie z działaniami, które możemy to obliczyć.
Więc to jest równe sobie, że gamma i ja, które Gamma została zainicjowana.
Tutaj wprowadza się, że jest to zmienna Virgin Q Obiekt self dostać się do Times kolejne wyjścia, jak
właśnie powiedział plus Czy chcemy, aby to było najlepsze.
Pracujemy z partiami tutaj, więc plus partia, którą chcemy i to jest cel.
W jednej z próbek pamięci gamma pomnożonej przez kolejne wyjścia Plus nagroda.
W porządku.
Idealny.
Teraz mamy nasze wyniki.
Mamy również nasze cele i dlatego możemy obliczyć stratę straty, która reprezentuje błąd
prognozy.
Nazwijmy to ostatnie, ostatnie dwie są oczywiście różnicą czasową.
To znów jest sedno uczenia się Q, a to nam dopadło będzie równe wydaniu, które
znacznie poprawia Cunanan.
To jest ostatnia funkcja, którą wybierzemy dla naszej sztucznej inteligencji.
Dla tych, którzy przyjeżdżają z głębokiego zielonego kursu, to naprawdę ostatni, polecam.
Jeśli chcesz wdrożyć Coonerty i jak mamy to uzyskać.
Znowu przyjmiemy funkcję z modułu funkcjonalnego reprezentowanego przez F i
dlatego zamierzam użyć naszego modułu funkcjonalnego f kaczki, a Hubble'a można uzyskać
dzięki funkcji, którą Smoots L-1 kocha.
Więc naciskając enter.
I to jest naprawdę najlepsza utracona funkcja, którą polecam do głębokiego uczenia się.
To naprawdę poprawia Culin.
Ale to jest funkcja, więc dodaję nawiasy.
A teraz nie ma nic prostszego.
Argumenty, które musimy wprowadzić, to przewidywania i cele.
Zatem prognozy oczywiście są wyjściami, ponieważ są wynikiem działania sieci neuronowej.
Żadne wyjście sieci neuronowej nie jest tym, co przewiduje sieć neuronowa.
To jest prognoza.
Tak więc pierwszym argumentem tutaj są wyniki, a drugim argumentem jest oczywiście cel.
To, co próbujemy osiągnąć, jest już doskonałe.
Możemy bezpośrednio wprowadzić cel.
Idealny.
Teraz powiedzieliśmy nam, że mamy tu trochę herbaty.
No to jedziemy.
Teraz ostrzeżenie powinno zniknąć.
Tak.
Idealny.
A teraz, gdy mamy ostatni błąd, możemy przywrócić błąd propagatorów z powrotem do sieci, aby zaktualizować wagi
za pomocą stochastycznego gradientu i to jest dokładnie to, co zrobimy w następnym kroku.
Tak więc oczywiście teraz, co musimy zrobić, jak można się domyślić, zajmiemy się optymalizacją naszego optymalizatora,
który ponownie wprowadzimy, zainicjalizujemy.
I to jest optymalizator atomu, który jest faktycznie obiektem klasy Atom i jest już wyposażony
w parametry naszego modelu.
I już wybraliśmy współczynnik uczenia się 0. 1 procent do perfekcji naszego optymalizatora jest gotowy, ale
teraz musimy zagrać na ostatnim błędzie, aby wykonać siatkę stochastyczną w znaczeniu i wadze danych.
Dlatego podczas pracy z myśliwcami, pierwszą rzeczą, którą musimy zrobić, jest ponowne zainicjowanie jej w każdej iteracji
pętli.
Musimy ponownie zainicjować optymalizator z jednej interakcji na drugą w pętli, aby uzyskać siatkę w
zestawie i ponownie ją zainicjować.
I każda iteracja pętli.
Cóż, zamierzamy użyć następującej metody, która wynosi zero.
No to ruszamy.
Zero grad ponownie zainicjalizuje optymalizator w każdej iteracji pętli.
Więc nie zapominajmy o nawiasie.
Idealny.
A teraz, gdy jest to ponowne zainicjowanie Cóż, możemy przeprowadzić propagację wsteczną za pomocą naszego optymalizatora.
I jak to robimy.
Cóż, zabieramy nasze prawa, a my wrócimy do propagowania go z powrotem do sieci i
do propagowania w sieci.
Musimy użyć funkcji wstecznej i wewnątrz tej funkcji wstecznej zalecam wprowadzenie zachowaj zmienne podkreślenia
i ustaw je jako prawdziwe.
Polecam to zrobić, ponieważ poprawi to propagację wsteczną.
Używanie zmiennych pisanych jest prawdziwe, aby zwolnić trochę pamięci i musimy
zwolnić pamięć, ponieważ będziemy jechać kilka razy na końcu, co zdecydowanie poprawi wydajność treningu.
I wreszcie ostatnim krokiem tej wyuczonej funkcji jest posiadanie wagi danych zgodnie z propagacją wsteczną.
Jest to zależne od tego, ile wagi przyczyniły się do błędu.
Aby to zrobić, ponownie korzystamy z naszego optymalizatora, który został zainicjowany w celu ponownego zainicjowania, a my używamy funkcji krokowej
i po prostu z tym wierszem kodu za pomocą funkcji krokowej.
To zaktualizuje wagi.
To jest ta linia kodu, która aktualizuje wagi.
Ta linia kodu, która propaguje błąd w sieci neuronowej, a ta linia kodu używa optymalizatora do
aktualizacji wag i tam jedziemy.
Mamy sieć neuronową do nauki, więc gratulujemy.
To była chyba najbardziej techniczna i trudna część tego całego sporu.
Wiem, że moja pochodnia czasami może być trudna, ściskać i ściskać, ale w końcu
obiecuję, że dostaniesz bardzo funkcjonalną sieć neuronową, a co za tym idzie - szczególnie modelową i ostatecznie
wielką sztuczną inteligencję.
Przejdźmy teraz do następnego kroku lub nauczyciela i modelu, który będzie funkcją aktualizacji, która
oczywiście zaktualizuje się, gdy AI odkryje nowy stan.
Więc wiesz, że odkryje nowy stan, a potem otrzyma nagrodę.
W zależności od wyświetlanej akcji, ten nowy stan zajmie się tym za pomocą funkcji aktualizacji
i zrobi to w następnym samouczku.
Do tego czasu ciesz się.
JA.