Witam i zapraszam do ekscytującej części naszego tworzenia, w której sprawiamy, że jest inteligentna.
Tak właśnie dzieje się podczas treningu w dniu, w którym wytrenuję jego inteligencję, aby osiągnąć
cel, który chcieliśmy osiągnąć, czyli dotarcie do kamizelki bez zabicia.
Aby tego dokonać, po prostu szkolimy sieć neuronową, aby wyprowadzić odpowiednie prognozy, a następnie wszystko
jest już gotowe, ponieważ te sygnały wyjściowe z mózgu mają już prawidłową
transmisję do ciała, aby odegrać ostateczne działania.
Więc w zasadzie teraz, co mamy zamiar zrobić, to coś, co już zrobiliśmy wcześniej.
Po prostu pobieramy losowe partie z pamięci, pobierzemy nasze dane wejściowe z próbek, otrzymamy
dane wyjściowe, otrzymamy cel, a prognozy obliczyć ostatni obszar pomiędzy przewidywaniami a celem, a następnie wykonać
propagację wsteczną w celu kategoryzacji w tym sensie, że w zależności od tego, ile
przyczynili się do tego ostatniego błędu.
Zróbmy to wszystko.
Zobaczycie, jak to będzie takie proste, ponieważ mamy już wszystkie
narzędzia do wdrożenia tego narzędzia, nie tylko mamy narzędzia pochłaniania, takie jak optymalizator i ostatnie funkcje, ale także
wszystkie klasy, które przygotowaliśmy wcześniej, podobnie jak nasze Oczywiście mózg, którego użyjemy, aby uzyskać prognozy.
Następnie nasze doświadczenie powtórzenia śledzenia kwalifikowalności implementacji i wszystkich tych narzędzi połączonych z częściami, których narzędzia
sprawią, że trening stanie się superprzeciętny, a w efekcie dostaniemy super potężną sztuczną
inteligencję.
Zróbmy to.
Uczyńmy nasze inteligentne i pierwszą rzeczą, którą teraz zrobimy, jest uzyskanie ostatniej funkcji, do której
jesteśmy przyzwyczajeni podczas szkolenia przy obliczaniu błędu i optymalizatora.
To pierwsza rzecz, którą zrobimy.
Stwórzmy więc zmienną dla ostatniej funkcji.
Nazwamy to utratą i będzie to równa funkcja utraty MSEE z modułu końcowego.
I to MNIEJSZYM, że to jest ostatnia funkcja, której użyjemy, ponieważ zasadniczo nasze prognozy są kluczowymi
wartościami, wiesz, że przewidujemy podstawowe wartości różnych działań.
A zatem, ponieważ są to liczby rzeczywiste, robimy trochę neuronowej sieci do regresji, a
zatem ostatnią funkcją jest błąd CT.
To jest ostatnia funkcja, której używamy.
Na ogół na regresję.
W porządku, więc teraz, kiedy mamy naszą ostatnią funkcję Zróbmy nasz optymalizator.
Tak zoptymalizowany tutaj, czyli Wojewoda, tworzymy optymalizator Fredy.
I weźmiemy jak zwykle.
Jeśli chodzi o samozasilający się samochód atom atomizer.
To bardzo potężny optymalizator, który zdziała cuda na treningu.
Więc posłuchajmy tego w tym Adamie.
I pamiętajcie, że to właśnie samochód, który sam jedzie, musi wprowadzić dwa zasadnicze argumenty.
Pierwszy to taki, który połączy połączenie między optymalizatorem a parametrami naszej sieci
neuronowej.
To jest ciężar neuronów naszego mózgu.
Aby to zrobić, wzięliśmy nasz mózg, który nazwaliśmy CNN.
To obiekt, który stworzyliśmy dla naszego mózgu.
A więc CNN, który zapamiętuje parametry, które przechodzimy, i trochę nawiasów, tak że tworzy połączenie między optymalizatorem
a wagą neuronów w mózgu naszej sztucznej inteligencji.
I drugi argument to wskaźnik uczenia się, który podaje nasz.
Musimy więc wziąć mniejszą podwyżkę, ponieważ nie chcemy zbyt szybko się zbiegać i chcemy mieć pewne przyspieszenie,
a zatem dobre sposoby uczenia się, które możemy zastosować.
Oto mały, który jest na punkt lub jeden, który jest otwarty 1 procent.
Myślę, że to jest to, czego używamy w samochodzie do samodzielnego prowadzenia.
W porządku, więc teraz mamy atomizer ostatniej funkcji, więc jesteśmy prawie gotowi do rozpoczęcia upadku.
Właściwie zaczniemy to teraz, ale zanim to zrobimy, zadecydujemy o wielkości
liczby epok, które będziemy trenować.
A zatem w tworzeniu nowej zmiennej, która odpowie na tę liczbę abox i powiedzmy, że
równa się 100.
To będzie wystarczająco dużo, aby wyszkolić SI.
I nawet w ten sposób uda mi się osiągnąć najlepszy sposób przed upływem 100 lat.
Jak 20 lub 30.
Zobaczmy.
Ale na razie weźmy 100.
A jeśli tego potrzebujemy, zwiększymy to.
Ale nie sądzę, że będzie to konieczne.
OK, więc teraz, gdy mamy już naszą liczbę poduszek powietrznych, możemy zacząć robić to samo.
Znasz tę główną pętlę treningu, kiedy ćwiczymy na Xboksie.
Tak więc na razie będzie naprawdę opłacalna książka.
Właśnie to wybierzemy z powrotem.
Teraz oczywiście użyjemy funkcji range, aby powiedzieć, że chcemy przejść od pierwszej z powrotem do
liczby książek plus
jedna, ponieważ pamiętajmy, że górna granica zakresu nie ma miejsca.
Dlatego chcemy przejść do 100.
Cóż, musimy określić i być jednym z nich, aby przejść do 100.
W porządku, więc CULLEN A teraz wejdźmy w pętlę.
W porządku, więc pierwszą rzeczą, którą zrobimy, jest wykonanie 200 przebiegów po 10 kroków.
Tak więc każda epoka będzie wynosić 200 razy jeden po drugim z 10 kroków i aby to zrobić, mamy tę jedną funkcję
krokową z naszej klasy powtórzenia doświadczenia i dlatego używamy tej funkcji, która jest w
rzeczywistości metodą, ponieważ otrzymamy ją z naszego obiektu pamięci, który jest obiektem z klasy pamięci replay, aby wygenerować te
dwieście przebiegów po 10 kroków.
Cóż, musimy powiedzieć, że nasz obiekt pamięci, który przypominam, stworzyliśmy tutaj pamięć jest obiektem do
powtórzenia klasy pamięci z krokiem 10 kroków i pojemnością 10000.
Stworzyliśmy ten obiekt iz tego obiektu bierzemy.
Cóż, ta funkcja uruchomienia uruchamia kroki i określamy dwieście kolejnych serii po 10 kroków.
To po prostu doda każdą epokę.
Zasadniczo sto kroków.
Teraz, gdy mamy już te 200 kroków w każdej epoce.
Czas spróbować niektórych partii z tych serii i wypróbować te partie.
Mamy inną funkcję z naszej pamięci, która jest próbką wsadową i która dokładnie wygeneruje kilka partii
z tych dwustu przebiegów.
Ale pamiętaj, że te partie są tym razem seriami serii przejść.
Istnieje seria 10 kroków w przeciwieństwie do wcześniejszych partii, w których partie to tylko
niektóre partie pojedynczych przejść tutaj.
Będzie 10 partii 10 kroków i dlatego teraz czas na naszą
pamięć.
Te losowe partie.
Aby je uzyskać użyliśmy prostej funkcji wsadowej, do której musimy zastosować wielkość partii dla
wielkości partii, w której możemy przyjąć 32, a nawet 64 lub nawet 128.
Pamiętaj o tym, że tak jest Powszechną praktyką jest używanie 32.
To właśnie zobaczysz ogólnie w architekturach sieci neuronowych, kiedy uczysz się Bachchego.
Ale tym razem jest zupełnie inaczej.
Przesyłaliśmy tylko kilka partii dziesięciu kroków.
Lepiej więc wziąć ławki o większych rozmiarach.
Dlatego możemy wziąć 64 lub 128.
Więc weźmiemy 128, a tak naprawdę to będzie w Fulopie, ponieważ chcemy wziąć kilka partii i
zabieramy je za to, co jest zwracane przez funkcję próbkowania wsadowego.
Tak więc ten Fulop dla tej w pamięci próbnej partia 128 oznacza, że co 128 kroków Cóż, nasza
pamięć da nam partię wielkości 128, która będzie zawierała faktycznie ostatnie 128 właśnie wykonanych kroków.
Właśnie dostajemy partie o rozmiarze 128, a nauka będzie się odbywała w tych partiach.
A poza tymi partiami będziemy mieli tace kwalifikowalności, które będą się uczyć, aby uczyć się
co dziesięć kroków.
W porządku, więc teraz w tej pętli, która wciąż dzieje się w jednej epoce.
Ale teraz tym razem jesteśmy w konkretnej partii, więc teraz pierwszą rzeczą, którą zamierzamy zrobić,
jest oddzielne dostarczanie danych wejściowych i celów.
I tak jak wam powiedziałem, możesz to zrobić za pomocą jednego z narzędzi, które zastosowaliśmy, co jest sztuczkami kwalifikowalności, jak możesz
zobaczyć tutaj.
Ta niedozwolona funkcja śledzenia pobiera wsad jako dane wejściowe.
Teraz musimy grupować i zwracać jako dane wyjściowe dane wejściowe i cele.
W tej chwili możemy po prostu utworzyć dwie nowe zmienne, które będą
wejściami i celami, i czy te dane wejściowe nie mogą nam powiedzieć, że dokładnie to, co zwraca tę funkcję śledzenia LGBTI zastosowaną do
partii, aby zastosować tę funkcję do partii naszego pętla.
I tak zrobimy tylko ślad kwalifikowalności zastosowany do naszej partii.
W porządku.
Dzięki temu dostajemy sygnał wejściowy i toalety, ale w latarce PI zawsze jest coś, co musimy
zrobić.
I oczywiście jest to przekształcenie danych wejściowych sieci neuronowej, a także celu w niektóre zmienne.
Ale nie ma też nic nowego.
Wiemy, jak to zrobić.
Możemy to zrobić w ten sposób, że wykorzystujemy nasze nakłady, a następnie nasze cele.
I podczas gdy będą one równe zmiennym wejściom, które są dla wejść i zmiennych celów i tam
są cele.
W porządku, więc wejścia mózgu są przekształcane w pewne zmienne torche, a cele są również
przekształcane w pewne zmienne.
Teraz możemy uzyskać dane wejściowe do sieci neuronowej.
I dlaczego musimy to zrobić.
Dzieje się tak, ponieważ następnym krokiem jest zdobycie prognoz, w które musimy się kierować.
Teraz oczywiście potrzebujemy naszych przewidywań, ponieważ wtedy zdarzy się, że obliczymy
stratę między przewidywaniami a celami.
Zdobądźmy wtedy te prognozy.
Cóż, znowu jest to tak proste, teraz wystarczy wziąć nasz mózg, który jest CNN, naszą
konstytucyjną siecią informacyjną i zastosować ją do naszych wkładów.
No to jedziemy.
Wejścia przechodzą do sieci neuronowej, a sieć neuronowa wyprowadza przewidywania.
Idealny.
Teraz mamy zabezpieczenia, na które musimy się kierować, abyśmy mogli uzyskać prawa i to jest następny krok.
Wprowadzimy nową zmienną, ponieważ teraz otrzymamy ostatni błąd, który jest inny niż
ostatnia funkcja, ponieważ używamy funkcji prawa, aby uzyskać ostatni błąd.
Tak więc ostatni błąd tutaj i że otrzymamy go z ostatnią funkcją zastosowaną do naszych przewidywań i celów,
które sprawdzamy, gdy wszystko jest gładkie.
Teraz wszystko jest logiczne.
Najpierw dostajemy dane wejściowe, a dzięki wejściom otrzymujemy prognozy, a następnie dzięki przewidywaniom
i toaletom dostajemy ostatni błąd.
Tak bardzo logiczne i gładkie.
A teraz, jaki jest następny krok.
Cóż, ta sama ścieżka logiczna, teraz, gdy mamy ostatnią, możemy cofnąć ten ostatni błąd z powrotem do sieci
neuronowej, aby robić ciężary i robimy to z grillem gazowym w środku i wykonać, aby uzyskać stopnie w tym
sensie, że potrzebujemy naszego optymalizatora.
Ale już to mamy.
Nasz atomizer Adam.
Ale teraz przypomnijmy sobie, co musieliśmy zrobić.
Musieliśmy go zainicjować i zainicjować.
Pamiętaj, że bierzemy nasz obiekt optymalizacyjny.
A następnie stosujemy metodę zero grette.
Idziemy tam, nie zapominając o nawiasie, który go zainicjował.
A teraz kolejnym krokiem jest wycofanie propagacji ostatniego błędu z powrotem do nowej
sieci i aby to zrobić dobrze, przyjmujemy nasz ostatni błąd i stosujemy na nim metodę wsteczną.
Więc to jest dokładnie do propagacji wstecznej.
I wreszcie, kiedy ostatni błąd powraca do nowego, który działa dobrze, możemy zaktualizować
wagi.
Nadal świetnie sobie radzimy w tym sensie i aby to zrobić, pamiętajmy, że korzystamy z naszego optymalizatora, a
następnie stosujemy metodę krokową.
No to jedziemy.
Wagi są teraz datowane.
Jak już mówiłem, nie tylko już to zrobiliśmy, ale teraz wydaje się to takie proste i naturalne.
Więc teraz zrobimy coś fajnego.
Wydrukujemy średnią, jaką pracujemy w każdej epoce.
Więc wiesz, że możemy śledzić, jak AI idzie, jak idzie trening.
Chcemy, aby średnia nagroda wzrastała wraz z etapami epok i na początku jest
faza eksploatacji, więc średnia nie wzrośnie na początku, ale gdy tylko dojdzie do fazy
eksploatacji, wtedy zobaczymy średnią nagrodę zdecydowanie zwiększa się i wzrośnie do pewnego
poziomu, kiedy osiągnie kamizelkę tak szybko jak to możliwe.
Zacznijmy od założenia.
Wiesz, że robimy to w jeden sposób, ale musimy wrócić do tej pętli tutaj, a
następnie wydrukujemy.
Najpierw, ale potem procent, ponieważ zamierzamy wszystko przekonwertować na ciąg, który jest lepszy.
Następnie dodamy średnią, a następnie dodamy procent S, a następnie zamkniemy
cytat, a następnie dodamy procent.
A po drugiej stronie wiesz, że możemy umieścić zmienne, które będą tą pierwszą osobą, ponieważ jest
to tutaj epoka.
A druga zmienna odpowiada przeciętnemu słowu, które teraz obliczy.
Tak więc przeciętne słowo żywotne jeszcze nie istnieje.
Zrobimy to teraz.
Więc użyjemy Esti w naszej epoce, nawet jeśli jest to liczba, która ma ją przekonwertować na jego
pociąg, a my dodamy s t r, która będzie średnią nagrodą.
Dlatego utworzymy zmienną, którą nazwiemy nagrodą Viji.
A teraz stworzymy tę zmienną i obliczymy ją.
OK, więc zróbmy to.
To jedyna rzecz, którą musieliśmy zrobić, więc już mamy EPOC.
Obliczmy teraz średnie słowo i musimy to obliczyć tutaj.
Wciąż w pętli, ale nasz kawaler, ponieważ teraz mamy nasze próbki plastra i mamy szkolenie dzieje się
w partii.
Ale teraz dla propagacji Plus propagacja wsteczna odbywa się w partii.
Wracamy do pętli epoche i możemy teraz obliczyć skumulowane słowa, które możemy zrobić za
pomocą naszego obiektu kroków, ponieważ nasz obiekt insteps zawiera tę funkcję, jakie kroki pozwalają nam uzyskać skumulowane
nagrody, które następują w krokach, które znasz i kroki biegną.
Dlatego użyjemy go teraz, aby zaktualizować nowe nagrody z kroków, a następnie zaktualizujemy obiekt
średniej ruchomej, dodając skumulowane słowa do poruszającego się obiektu.
A potem obliczamy średnią i tak otrzymamy średnią tego, co według nas jest
pierwszą rzeczą, jakiej potrzebujemy, to słowo Stribild.
Nazwijmy je słowami kroków, a następnie, jak już powiedzieliśmy, wykonujemy nasz obiekt kroków końcowych, który został mi przypominacz utworzony tutaj i
przedmiot klasy postępu kroku z naszego powtórzenia doświadczenia dla obiektów typu instance.
Następnie dodajemy słowa, a następnie nawiasy.
W porządku.
To dostarczy nam nowych łącznych nagród z kroków.
W porządku, ale musimy dodać te nowe nagrody zbiorcze do naszego obiektu średniej ruchomej, a żeby
to zrobić, tym razem mamy metodę w klasie średniej ruchomej, którą jest ta metoda, która
jest bardzo prosta, że bierzemy obiekt średniej ruchomej, który tutaj stworzyliśmy W 100 krokach użyjemy naszej metody
dodawania.
A potem w Admetusie wpisujemy nasze słowa, a to doda nagrody za kroki do
średniej ruchomej.
W porządku i wreszcie możemy obliczyć średnie słowo i to dobrze, że wiesz, że to zmienna
tutaj.
Więc to jest to, co jest równe średniemu słowu, a żeby je zdobyć, musimy po prostu użyć
średniej metody z naszego ruchomego obiektu średniej i to jest to, co robimy, i powiedzieć, że średnia to powiedzieć, ponieważ
nasza średnia ruchoma była już zaktualizowana z nowymi krokami słownymi, które właśnie
dodaliśmy do metody Dodaj.
Teraz mamy nasze średnie słowo, które będzie się tutaj pojawiać.
I to będzie drukowane co godzinę.
To będzie bardzo ekscytujące, ponieważ w każdym odcinku będziemy śledzić, jak leci
powietrze.
Wiesz, że zobaczymy, czy przeciętne słowo rośnie.
I mówiąc o czymś ekscytującym.
Bardzo ekscytujące jest to, że wiem, że dociera do kamizelki z pewnością, gdy osiągnie 1500.
To, co teraz zrobimy, to to, że jeśli średnia nagroda osiągnie 1500.
A teraz, gdy robi się więcej niż 1500 Cóż, zamierzamy wydrukować coś nowego, a to będzie
ostatni wydruk.
Bardzo udany druk, który zamierzamy wydrukować, możemy powiedzieć.
Gratulacje dla twojej sztucznej inteligencji, ponieważ twoja AI wygrywa.
Byłoby wspaniale, gdyby tak się stało, gdybyśmy osiągnęli nie przeciętne słowo.
Większe niż 1500.
Możemy być w stu procentach pewni, że AI jest najlepsza.
Może to trochę mniej niż to, ale eksperymentowałem z 1000, a czasem nie osiągałem poziomu zaawansowanego,
ale z 1500, jeśli dobrze się tam dostaniemy, AI na pewno wygra.
Więc będziemy to oglądać później.
W porządku, więc byłoby to bardzo ekscytujące.
A to właściwie tylko koniec krzywej.
Musimy określić, że chcemy rozpocząć szkolenie.
Jeśli tak się stanie, wiesz, czy osiągnie ogromne bogactwo, którego nie potrzebuje już trenować.
Więc zakończymy cały proces przerwą, jeśli osiągniemy przeciętny świat 1500.
Możemy zakończyć cały proces i aby to zrobić, możemy wykorzystać tę przerwę tutaj.
W porządku.
A następnie ostatnia rzecz do zrobienia, gdy gra się kończy, czyli gdy AI wygrywa.
Cóż, możemy zamknąć otoczenie i tak dalej, dodając tylko jedną ostatnią akcję, którą
zamierzam nazwać zamykaniem środowiska zagłady.
Aby to zrobić, bierzemy nasze środowisko Dume, które nazwaliśmy Zagładą i pamiętajmy.
A potem możemy dodać, że blisko i to wszystko, po prostu zamkniemy środowisko, które lepiej
zrobić po zakończeniu gry.
W porządku, więc skończymy.
Tak więc jestem bardzo podekscytowany wynikami i rzeczywiście będę miał dla ciebie niespodziankę w następnym
samouczku podczas oglądania wyników.
To będzie ekscytujące.
Teraz myślę, że nadszedł czas, aby się z tym bawić i dobrze się bawić.
Miejmy więc nadzieję, że uda nam się dotrzeć do tej kamizelki tak szybko, jak to możliwe.
Taki jest cel tego nowego środowiska.
W porządku, więc bawmy się.
Przygotuj sobie dobrą kawę lub dobrą herbatę.
Teraz możesz usiąść wygodnie na naszym krześle i obejrzeć kilka bardzo fajnych filmów z naszych samolotów.
Zróbmy to w następnym samouczku.
A do tego czasu ciesz się AI.