Cześć i witamy w tutorialu Python.
W porządku.
W tym oleju zrobimy funkcję, która wybierze właściwą akcję i za każdym razem.
Zasadniczo zamierzamy wdrożyć część, która sprawi, że samochód będzie właściwym posunięciem.
I za każdym razem, gdy idzie w lewo, idzie prosto lub idzie w prawo, aby osiągnąć cel
i uniknąć przeszkód, które spadają.
Zróbmy to teraz.
Zaczniemy jak zwykle od osób niesłyszących w celu zdefiniowania funkcji, a następnie nadamy
nazwę naszej funkcji, którą nazwiemy akcją select, a nie jakiemukolwiek nawiasem, a ta funkcja wyboru działania przyjmie dwa
argumenty.
Pierwszy to samo, kiedy dorastasz, by odnieść się do przedmiotu i drugiego argumentu, który według
ciebie będzie tym, który.
Cóż to może być.
Jeśli się nad tym zastanowić, to akcja, którą wybieramy, pochodzi z wyjścia sieci neuronowej, ponieważ wynik
sieci neuronowej lub q wartości dla każdej z trzech możliwych akcji, a zatem akcji,
w którą gramy akcję, która będzie wynikiem działania sieć neuronowa zależy od stanu wejścia, a
stany wejściowe są dokładnie drugim argumentem, którego potrzebujemy z funkcją wyboru akcji.
Dzieje się tak dlatego, ponieważ dosłownie zamierzamy pobrać dane wyjściowe sieci neuronowej.
Oczywiście wynik sieci neuronowej zależy bezpośrednio od wejścia sieci neuronowej.
Więc to będzie nasz argument.
A teraz możemy nadać mu dowolną nazwę, którą faktycznie nazwiemy stanem, ponieważ wejście sieci neuronowych to stany
wejściowe, które są i są kodowane przez wektor pięciu wymiarów do trzech orientacji sygnału
i orientacji ujemnej.
Teraz wszystko będzie łatwe.
Będziemy przekazywać stan wejściowy do sieci neuronowej, który budujemy tuż powyżej z
następną klasą, a następnie otrzymamy wyniki, które są kluczowymi wartościami dla każdej z trzech możliwych
akcji, a następnie używając miękkiej metody Max, którą wyjaśnię w tym
samouczku.
Dostaniemy ostatnią akcję do zagrania.
Zróbmy to, przejdźmy do funkcji i zaimplementujmy to wszystko.
Tak więc pierwszą rzeczą, od której musimy zacząć, jest to, o czym właśnie wspomniałem. Max pomyślał,
że Max ma wrażenie, że zamierzamy spróbować za każdym razem uzyskać najlepszą akcję.
Ale jednocześnie będziemy badać różne działania.
I jak to robimy.
W jaki sposób możemy uzyskać najlepszą akcję do odegrania, wciąż badając pozostałe działania.
Użyliśmy tego pomysłu, który polega na wygenerowaniu rozkładu prawdopodobieństw dla każdej z wartości
q.
Działanie Q States.
Teraz mamy jedną wartość Q dla każdej akcji w lewo idź prosto lub idź w prawo.
Ale ta wartość q zależy również od stanu wejścia.
Taka jest funkcja Q na wykładach intuicyjnych.
Ta funkcja Q jest funkcją stanu i akcji.
Skoro mamy tutaj jeden stan wejściowy, który jest tutaj stanem i trzy możliwe
akcje, mamy trzy nowe wartości Q. Działanie państwa 1 Działanie stanu Q 2 i dwa
działanie 3 i będziemy generować rozkład prawdopodobieństw w odniesieniu do tych trzech kluczowych wartości.
Oznacza to, że będziemy mieć jedno prawdopodobieństwo dla pierwszej wartości Q, jedno z prawdopodobieństwa dla
drugiej wartości Q i trzecie prawdopodobieństwo dla trzeciego Q, a wszystkie trzy prawdopodobieństwa będą sumować do 1.
I tak zrobimy to wszystko z soughed Max, a soughed Max przypisze duże prawdopodobieństwo do
najwyższego Q wokół.
Dlatego alternatywą dla miękkiego Maxa jest prosty RMX no bezpośrednio przyjmujący maksymalne wartości q, ale w
tym przypadku nie badamy innych działań.
Dzięki tym prawdopodobieństwom możemy zbadać gdzie indziej, używając parametru temperatury, który będziemy
widzieć bardzo szybko.
Wciąż możemy je badać, konfigurując ten parametr temperatury.
Dlatego ogólnie rzecz biorąc dla bezpieczeństwa zdecydowanie zalecam używanie raczej miękkiego x niż zwykłego RMX.
W porządku, więc zastosujmy X, a zatem tak, jak to rozumieliście.
Od soughed Max zwraca prawdopodobieństwa każdej z trzech wartości Q dla trzech możliwych działań.
Cóż, pierwsza zmienna, którą zamierzamy stworzyć, prawdopodobnie odnosi się oczywiście do tych prawdopodobieństw.
Więc rekwizyty są równe, a teraz mamy zamiar wziąć naszą kolejną funkcję i według ciebie, skąd
mamy ją wziąć.
Cóż, oczywiście, pamiętajmy, że zaimportowaliśmy.
A następnie działa funkcjonalny moduł, o którym przypominam, to moduł, który zawiera większość akcji służących do
implementacji sieci neuronowej.
Daliśmy mu skrót F, a więc faktycznie z tego funkcjonalnego submodułu, że
przejmiemy naszą następną funkcję.
Ponieważ jednak nadaliśmy mu skrót f, zaczynamy tutaj od funkcji reprezentującej Neph, od
której bierzemy następną funkcję.
Oto jest.
To jest pierwszy i nawias.
W porządku.
Teraz, co musimy wprowadzić w następnej funkcji.
Cóż, to oczywiście podmioty, dla których chcemy wygenerować rozkład prawdopodobieństwa.
A jakie są te istoty.
Cóż, są to oczywiście kluczowe wartości.
Teraz pytanie brzmi: jak możemy uzyskać wartości q.
Oczywiście wartości q są wynikiem działania sieci neuronowej i uzyskania tych wyników sieci
neuronowej.
No to idziemy.
Musimy wziąć naszą nową sieć.
Ale w rzeczywistości już to mamy, ponieważ to jest to, co zostało zainicjowane w końcu, to funkcja.
Wiemy, że stworzyliśmy model samouka, który nie jest niczym innym, co nie zadziała, ponieważ jest nowym
obiektem klasy sieci.
I to jest idealne.
Możemy po prostu wziąć nasz model tutaj i dalej zastosować ten model do stanu wejściowego, który
jest tutaj argumentem i który zwróci wyniki, których szukamy.
To są kluczowe wartości.
I tak teraz twoja intuicja, dlaczego musieliśmy wziąć model tutaj, aby wprowadzić go w funkcji, może się
poprawić.
Ci z was, którzy zaczynają od programowania obiektowego, zobaczą, że wszystko to stanie się wtedy
naturalne i tak miękkie.
Tak więc bierzemy model własny model, ponieważ musi to być model obiektu, który tutaj stworzyliśmy.
Ale wtedy musimy uzyskać wynik naszego modelu sieci neuronowej, a zatem usłyszymy nawiasy, w
których mamy zamiar wprowadzić tutaj stan wejściowy o nazwie state.
Więc na początku chcemy wprowadzić stan, ale teraz musimy uważać, aby coś wyglądało jak prosty
zestaw.
Należy jednak pamiętać, że stan faktycznie będzie czujnikiem pochodni, ponieważ później użyjemy tej komórki
w stanie mniejszym, aby umieścić ją jako argument funkcji Wybierz akcję.
Argument państwa, który jest tutaj, w rzeczywistości stanie się później tym samoukiem mniejszego stanu.
A ponieważ jest to torturowany świat odpowiedzi, model go zaakceptuje.
To w porządku.
Ale teraz możemy ulepszyć algorytm.
Tak więc, jak tylko stan jest czujnikiem palnika i jak powiedzieliśmy wcześniej, większość czujników jest zapakowana do
wojewody.
To również będzie zawierało gradient.
Więc teraz, co zrobimy najpierw, zawijamy ten stan wejściowy, który jest tensorem w latarkę,
ale ponieważ jest to stan wejściowy Cóż, nie będzie żadnego zróżnicowania.
Nie będziemy używać gradientu tego wojewody torchów, a mogą to być
stacje i dlatego to, co teraz zrobimy, przekształci ten stan czujnika pochodni w zmienną palnika, tak jak to.
Ale potem, aby określić, że nie chcemy, aby gradienty na wykresie były w ogóle dostępne dla drapieżników na
końcu Mudgala.
Cóż, w tym momencie zmienimy volatile jest prawdą.
Tak więc teraz mamy nasz stan podpięty czujnik do latarki bardzo dobrze, ale dzięki temu Votel równa się
prawdziwy barometr.
Cóż, uwzględnimy gradienty związane z tymi stanami wejściowymi do wykresu wszystkich warunków końca w
tym modelu.
To kolejna techniczna sztuczka.
Pozwoli to zaoszczędzić nam trochę pamięci, a to poprawi wydajność.
Dlatego bardzo polecam to zrobić, a teraz dodamy coś fajniejszego.
Chodzi o ten parametr temperatury, o którym właśnie wspomniałem.
Tak więc ten parametr temperatury jest parametrem, który pozwoliłby nam modulować, w jaki
sposób sieć neuronowa będzie pewna, którą akcję należy podjąć.
Tak więc ten parametr temperatury będzie liczbą dodatnią i im bliżej jest do zera, tym mniej pewne, że sieć
neuronowa będzie grała w akcji, a im wyższy parametr temperatury, tym większa pewność, że sieć neuronowa
będzie działaniem, w którym decyduje się grać .
I żeby dodać ten parametr, pomnożę wyjścia, które są Kuganami używanymi przez ten parametr
temperatury.
Zacznijmy, na przykład, od 7, a tu opiszę mały komentarz T równy 7.
To jest parametr temperatury.
Przepraszam, idź do 7.
Zamierzamy wypróbować inne, ale chcę zacząć od małej, ponieważ zobaczysz
to z małym.
Nasz samochód nadal będzie się zachowywał jak jakiś owad, ale potem zwiększając parametr temperaturowy nasz
kod będzie wyglądał bardziej jak samochód i zdecyduje się sprzedać prowadzenie samochodu będzie o wiele lepszy.
I to ma sens, ponieważ im wyższy jest ten parametr temperatury,
tym większe będzie prawdopodobieństwo wygranej Juval me, ponieważ na przykład jeśli mamy miękkie maksimum q wartości.
Weźmy kilka prostych liczb jeden dwa trzy, jeśli wypchane maks. Jeden do trzech równa się.
Na przykład 0. 04 0. 11 i otwórz osiemdziesiąt pięć.
Następnie zwiększając temperaturę, przyjmując wyższą temperaturę.
W tej chwili temperatura jest równa jednej przez wzięcie wysokiej temperatury, jak na przykład odejmowanie Tussaud,
skopiujmy to i pomnóżmy przez np. Dwa lub trzy, aby następnie uzyskać te same wartości, ale pomnożyć przez
parametr temperatury trzech.
Cóż, otrzymamy coś w rodzaju zera dla pierwszej wartości Q, ponieważ miało to bardzo małe prawdopodobieństwo, że
coś około zera, a następnie coś bardzo małego dla drugiego prawdopodobieństwa, ponieważ było to wciąż
małe prawdopodobieństwo.
Powiedzmy na przykład lub punkt 0 2.
Ale to trzecie prawdopodobieństwo, ponieważ było największe i dość wysokie.
Wraz ze wzrostem temperatury prawdopodobieństwo to będzie jeszcze większe, ponieważ będziemy jeszcze
bardziej pewni, że jest to właściwa wartość Q odpowiadająca akcji, którą musimy grać, a zatem będzie to
coś w rodzaju 0. 2 98.
Teraz, zwiększając parametr temperatury Cóż, teraz jesteśmy jeszcze bardziej pewni, że trzecia akcja tutaj powinna
być akcją do grania, ponieważ prawdopodobieństwo wartości q tego działania jest nie tylko największe,
ale także bardzo wysokie.
Właśnie o to chodzi w tym parametrze temperatury.
Chodzi o pewność, w którym kierunku powinniśmy grać.
W porządku.
Więc usunę ten komentarz.
To było tylko wyjaśnienie.
A teraz podejmijmy naszą akcję.
Jak zamierzasz to zrobić?
Zasada następnej metody polega nie tylko na wygenerowaniu rozkładu prawdopodobieństwa dla każdej z kluczowych
wartości, ale także i jest to drugi etap miękkiej metody następnej.
Pobieramy losowe losowanie z tej dystrybucji, aby uzyskać ostateczną akcję.
I oczywiście będziemy mieli dużą szansę na uzyskanie akcji, która odpowiada wartości Q,
która ma największe prawdopodobieństwo, ponieważ właśnie tak działa dystrybucja.
Więc idziemy.
Przyjmijmy naszą akcję.
Więc zamierzamy wprowadzić nowego Wojewodę, który nazwiemy akcją, a ta akcja będzie losowym
losowaniem rozkładu prawdopodobieństwa, który właśnie stworzyliśmy w tym czasie.
Jak więc uzyskać takie losowe losowanie.
No cóż, weźmiemy pod uwagę prawdopodobieństwo każdego z kluczowych wartości, które pobieramy,
a następnie dart, a następnie użyjemy funkcji multi Gnomeo, która da nam losowy wynik z
tego procesu dystrybucji.
Więc to wszystko spowoduje jego reakcję.
Idealny.
A teraz oczywiście zamierzamy zwrócić akcję.
Tu jest mała sztuczka.
Co to jest fakt, że to Propst, że wielomian zwraca PI w kierunku rentowności z fałszywą odznaką.
Znasz te fałszywe diamenty i odpowiadające partii, a zatem, aby uzyskać prawidłowy wynik, chcemy, aby
było to działanie w 0 1 lub 2.
Musimy tylko dodać tutaj dane, a następnie kilka nawiasów, a akcje tutaj to jeden lub
dwa, których szukamy, a zawartość to 0 i 0.
W porządku.
I oto idziemy.
Teraz mamy naszą akcję dzięki tej funkcji wyboru akcji, którą AI będzie teraz wiedzieć, którą akcję odegrać.
I za każdym razem.
Przerażający.
Teraz możemy przejść do następnej funkcji, która będzie funkcją uczenia się.
I tutaj będziemy trenować całą sieć neuronową, którą znamy z całą propagacją do przodu,
a następnie propagacja wsteczna jest kategoryzacją w tym sensie.
Zasadniczo wdrożymy cały trening modelu głębokiego uczenia się, który jest sercem
naszej sztucznej inteligencji.
Więc nie mogę się doczekać, aby to zrobić.
To będzie ekscytujący samouczek, więc do zobaczenia w następnym Statoil.
Do tego czasu ciesz się.
JA.