Cześć i witamy w tym samouczku.
W porządku.
Więc w poprzednich tutorialach stworzyliśmy mózg lub jeśli chcesz mózgu dla A-3, zobacz teraz, że musimy
wyszkolić ten mózg.
Ale aby wyćwiczyć jego mózgi, potrzebujemy optymalizatora, którym jest to narzędzie, i wbijamy papierosa w
środek, aby zmierzyć wagę w zależności od tego, ile przyczyniają się do błędu między przewidywaniami
a celami.
I co zrobiliśmy do tej pory w pierwszym i drugim module używaliśmy optymalizatora atomu przez torche w
treningu.
Ale jak już mówiłem, mamy do czynienia z bardzo trudnym problemem, który się przełamuje, a sam algorytm
A-380 nie wystarczy, aby rozwiązać ten problem.
Potrzebujemy spersonalizowanych optymalizatorów i wielu różnych sztuczek, aby rozwiązać ten problem, nie czekając na
wieki.
Właśnie dlatego jest to cel i dlatego mamy oddzielny, niestandardowy optymalizator oparty na
optymalizatorze atomu.
I to jest zawarte w tej wspólnej klasie wroga i dlaczego dzielony atom.
Dzieje się tak, ponieważ jest to optymalizator atomu, ale będzie działać na wspólnych państwach.
Więc wyjaśnimy, jak to działa i to jest toile Więc przejdziemy przez
różne funkcje tutaj, nie zabijając ich, ponieważ wiesz, że chcemy zachować trochę energii na następny,
a dodatkowo to jest pociąg, który ja spadł, który zajmie więcej niż sto linii kodu.
Więc bądź na to gotowy.
Dlatego spróbujemy wyjaśnić, co się tutaj dzieje w jednym Statoil Statoil.
I zacznijmy teraz.
W porządku, więc najpierw wprowadzimy atom dzielący klasę, który będzie zawierał trzy funkcje: funkcję init,
funkcję pamięci współużytkowanej i funkcję kroku.
Pierwszą rzeczą jest, że dziedziczy się od Optina ten atom, który jest oczywiście optymalizatorem atomu i
który dostajemy z modułu Uptona z biblioteki pochodni.
Mamy więc prostą możliwość uzyskania narzędzi związanych z optymalizatorem atomu, a następnie zaczynamy
od funkcji init.
Co się tutaj dzieje.
Najpierw używamy superfunkcji do dziedziczenia ze wszystkich narzędzi i wszystkich podstawowych parametrów z atomu klasy
Atom i te podstawowe parametry są tutaj.
Haramowie uczą się niszczyć Epsilon i rozkład wagi.
A potem zaczynamy śledzić.
To pierwszy foluke dla grupy, którą Paramo grupuje.
Tak więc dla nas to, co jest parum grupami ustawionymi wokół grup, zawiera wszystkie atrybuty optymalizatora.
I wśród tych atrybutów mamy parametry, które musimy zoptymalizować, aby
te parametry mogły atomizować inne sposoby sieci, które mogą być zawarte w grupach samopodobnych.
Więc idziemy grupą należy do grup samopomocy.
I tutaj mamy drugi Faltu, który dostanie te parametry, które chcemy zoptymalizować, i które
są dokładnie zawarte w grupach zwątpienia w siebie.
Zasadniczo przechodzimy przez grupy samopomocy, które zawierają wszystkie parametry, a dla każdej grupy parametrów
i samo-dyskusji z grup będziemy przechodzić przez parametry, które chcemy zoptymalizować.
Dlatego dla grupy Paramo oznacza to dla każdego Tancerza ciężarów, który chcemy zoptymalizować.
Tak więc dla każdego ciężaru czujnika, który chcemy zoptymalizować, a następnie co dzieje się wewnątrz tej grupy z
tymi czterema liniami kodu.
Zasadniczo dzieje się tak, że aktualizacja wykonana przez optymalizator opiera się na wykładniczej średniej
ruchomej gradientu.
To jest ta linia kodu tutaj.
Jest to wykładnicza średnia ruchoma gradientu momentu pierwszego, który jest rzędu pierwszego.
Ale obiekty stworzone przez atom nie opierają się tylko na tym, że jest on również oparty na
wykładniczej średniej ruchomej kwadratu gradientu.
Jest to wykładnicza średnia ruchoma gradientu pędu do lub dwóch.
Oto wykładnicza średnia krocząca z jednej.
I tu jest wykładnicza średnia krocząca z dwóch dla każdego z nich, które zdegradowały EMJ.
Tak więc, co się tutaj dzieje.
A teraz, jeśli chcesz dokładniej zrozumieć, jak dobrze działa wykładnicza średnia ruchoma,
gorąco zachęcam do zapoznania się z tym artykułem badawczym Adama, metody optymalizacji stochastycznej, ponieważ
w zasadzie optymalizator atomów, który teraz wdrażamy, bazuje na tutaj algorytm.
Więc jeśli chcesz mieć więcej szczegółów na temat działania algorytmu, ten artykuł będzie zdecydowanie pomocny.
A potem masz kilka dalszych wyjaśnień na temat algorytmu z atomami i regułami.
A więc wiesz, że to tylko wtedy, gdy chcesz zaatakować to, zanim zaatakujesz funkcję wielkiego pociągu,
która będzie później.
OK, więc wróćmy do żubra.
A teraz przejdźmy do drugiej pamięci współdzielonej funkcji.
Więc teraz powiem tylko kilka słów.
Idea tej współużytkowanej funkcji pamięci jest podobna do tensora, o którym wiadomo, że kuda jest akceleratorem
opartym na widoku.
I tak w zasadzie dzieje się tak, że mamy te tensory stanów, które dzielą pamięć
tu i tu, które zachowują się trochę jak tenso, które może przyspieszyć przyspieszone obliczenia.
Ale różnica polega na tym, że czujniki, które dzielą pamięć, wysyłają obliczenia do części GP,
którą ty lub ty jesteście dostępni dla wszystkich sparaliżowanych zagrożeń.
Więc w zasadzie to się tutaj robi.
To trochę jak 10 do tego kuda, ale jest wysyłane tylko do części GP, aby być
dostępnym dla równoległych zagrożeń.
W porządku.
A potem mamy ostatni krok funkcyjny.
Więc znasz tę funkcję, to jest jak metoda krokowa optymalizatora atomu, której używamy w tym kursie.
I znów opiera się na algorytmie jednego z tego samego papieru, który widzieliśmy wcześniej.
A więc ten algorytm.
Więc znowu chcesz zrozumieć w szczegółach następujące linie kodu.
Cóż, ja znowu, Ingrid, proszę, abyś spojrzał na ten algorytm po tym artykule.
A poza tym to, co się tutaj robi, nie jest całkowicie obowiązkowe, ponieważ jest to w rzeczywistości pasta do kopiowania
metody krokowej, która działa na tę klasę atomu.
Więc w zasadzie to, co tutaj zostało zrobione, moglibyśmy to zrobić, używając naszego dziedzictwa, ponieważ tutaj
odziedziczyliśmy po Actonie, że Adam i tak używamy naszego dziedzictwa. Cóż, co możemy zrobić zamiast
robić to wszystko, to po prostu pisać tutaj, komentarzem jest użycie superfunkcję, którą stosujemy do naszej wspólnej klasy Adama, a
następnie nasz obiekt self, a tutaj po prostu dodamy krok z nawiasem, to metoda aktu w tej klasie i to
jest dokładnie to samo.
Właśnie dlatego właśnie powiedziałem, że tutaj jest tylko kopią wklejenia metody krokowej aktu w
klasie Atom.
Myślę więc, że jeśli zastąpicie to wszystko tą superfunkcją zastosowaną do dzielenia się Adamem i metodą kroku,
możemy otrzymać dokładnie to samo.
W porządku, więc było to interesujące, aby rzucić okiem na to.
Zasadniczo możesz to zobaczyć jako optymalizator Adama.
To tak, jakbyśmy mieli głębsze spojrzenie na to.
Ale znowu, jeśli chcesz zagłębić się w szczegóły tego wszystkiego i chcesz zrozumieć, co dzieje
się za sceną. Zachęcam do zapoznania się z tym materiałem badawczym.
Umieszczę link w komentarzach tutaj.
Pamiętasz, że będziesz miał cały kod połączony ze szczegółami.
Więc naprawdę dobrze, jeśli możesz na to spojrzeć.
A teraz mam nadzieję, że macie jakąś wielką energię, ponieważ przejdziemy do pliku pociągu, który będzie zawierał tę ogromną
funkcję pociągu i która będzie zasadniczo ćwiczyć nasze mózgi, co teraz możemy zrobić, ponieważ
mamy nasz optymalizator.
Więc teraz zrób dobrą przerwę.
Odpocznij dobrze i kiedy poczujesz się świetnie.
Przejdźmy do następnego kroku.
Do tego czasu ciesz się AI.