Witam i zapraszam do pierwszej części tej implementacji sztucznej inteligencji, część pierwsza, budując sztuczną inteligencję.
Jak widzicie, dodałem już wymiar w strukturze tego wcięcia za pomocą tych trzech sekcji tworzących część 1,
które wyraźnie pokazują, jak zamierzamy zbudować tę sztuczną inteligencję.
Najpierw zrobimy mózg.
Nie ma nic innego, jak sieć neuronowa, a następnie stworzymy ciało, które określi, w jaki
sposób będą rozgrywane działania.
A potem, gdy już mamy mózg i ciało, połączymy je, aby stworzyć sztuczną inteligencję, która będzie w
ostatniej części tej pierwszej części.
Teraz możesz już mieć dobrą wizję struktury tej implementacji.
Najpierw robimy mózg, potem robimy ciało, a potem montujemy dwa, aby stworzyć sztuczną inteligencję.
I to wszystko, co zamierzamy zacząć od pierwszej części, która dotyczy tworzenia mózgu.
I to zabierze nas do tutoriali.
Możesz sobie wyobrazić, że tworzenie mózgu nie jest jak robienie ciasta.
Będzie to wymagało więcej niż jednego samouczka.
I oczywiście jak zwykle będziemy reprezentować ten mózg w klasie, ponieważ będziemy potrzebować
kilku funkcji i aby mieć strukturę kilku funkcji, które będą zorganizowane w jakieś
instrukcje.
Oczywiście potrzebujemy klasy, a to Berkeley, ponieważ kiedyś zrobiliśmy tę klasę.
Cóż, będziemy w stanie stworzyć tyle mózgów, ile chcemy, po prostu tworząc obiekty tej klasy.
Więc znowu klasy w Pythonie i ogólnie rzecz biorąc języki programowania zorientowane obiektowo są bardzo praktyczne, ponieważ
tworzysz model czegoś, co chcesz zbudować, a następnie jesteś w stanie stworzyć tyle obiektów, ile
chcesz i będą one miały wszystkie funkcje, które ty zdefiniuj w klasie.
I dla naszego mózgu cechy będą oczywiście.
Przede wszystkim architektura sieci neuronowej, którą przypominam, będzie CNN i oczywiście
dwiema różnymi funkcjami, jak na przykład przekazywanie sygnałów z neuronów wejściowych do
neuronów wyjściowych, które będą oczywiście funkcją Forda.
Zróbmy to, zacznijmy tworzyć mózg.
To będzie ekscytujące.
To jedna z moich ulubionych części.
I dlatego przejdźmy od razu do tego.
Zaczniemy od przedstawienia klasy kursu i będziemy ją nazywać.
Cóż, zawahałem się nazwać to mózgiem, ale bądźmy bardziej bezpośredni i nazwijmy to CNN, ponieważ w rzeczywistości
mózg jest siecią CNN.
Konwolucyjna sieć neuronowa.
Kiedy więc patrzysz, możesz zadzwonić do mózgu, jeśli chcesz, ale przynajmniej teraz wiemy, co budujemy.
A CNN Jeśli chodzi o sieć samozasilającego się samochodu, będzie ona dziedziczyć po zakończeniu Mudgala.
Więc pamiętaj, że koniec modułu jest tym, co tutaj umieściliśmy i chcemy móc korzystać ze wszystkich
narzędzi tego i modułu, dlatego chcemy używać tej techniki w programowaniu obiektowym, który
jest dziedziczeniem i który pozwala nam poznać dobrze wykorzystaj wszystkie narzędzia z klasy nadrzędnej,
a ta klasa będzie w tym module.
No to jedziemy.
Teraz możemy używać wszystkich narzędzi i obiektów na końcu tego modułu.
W porządku, więc teraz, gdy mamy nasze dziedzictwo, możemy wejść do klasy, aby pełnić naszą pierwszą funkcję.
Jak zapewne domyślacie się, pierwszą funkcją jest funkcja końcowa, która definiuje wszystkie zmienne
przyszłych obiektów mózgu.
Znasz przyszłość i obiekty, które zostaną stworzone.
W porządku, więc zróbmy to.
Def, a następnie dwa podkreślenia w nim ponownie do wyników.
A teraz musimy wprowadzić kilka zmiennych.
Przede wszystkim zamierzałem być sobą, co oczywiście dotyczy obiektu.
Teraz domyślam się, że czujesz się z tym dobrze, a my dodamy kolejną zmienną,
która będzie liczbą akcji w środowisku Dumah.
Więc nazwiemy te działania liczbowe.
Liczba działań.
I faktycznie ta zmienna nie jest obowiązkowa dla funkcji.
Chodzi o to, że jeśli chcesz przetestować pomysł, który będziemy budować w innych środowiskach.
No cóż, będzie to bardzo praktyczne, ponieważ zaimportujemy tę liczbę działań strasznych z owijki zagłady
i Varmana z dwoma dyskretnymi, a kiedy to zrobimy, będziemy wiedzieć, że wejście do
środowiska powoduje zerowanie.
Jeśli więc chcesz, abyś eksperymentował z tym w innych środowiskach i dobrze grałeś w inne gry, nie będziesz
miał nic do roboty, ponieważ ta liczba akcji bezpośrednio wpłynie na liczbę akcji w
środowisku Dumora.
Będziesz grał.
OK, to tyle dla dwóch argumentów tej funkcji.
Teraz możemy wejść do środka i teraz przypomnieć sobie, co musimy zrobić.
Pierwszą rzeczą, którą musimy zrobić, to aktywować dziedziczenie za pomocą superfunkcji.
Tak samo jest w przypadku samochodu do samodzielnego prowadzenia.
Przyjmujemy superfunkcję, a następnie zaczynamy od wprowadzenia klasy, która zdefiniuje sieć neuronową,
a mianowicie CNN.
Następnie musimy wprowadzić self, aby odnieść się do obiektu.
Ale pamiętaj, że to nie wszystko, co musimy dodać w DOT, a następnie funkcję init z nawiasem.
A przez to aktywujemy dziedziczenie.
A teraz możemy używać wszystkich narzędzi od końca i modułu.
W porządku, więc teraz myślę, że nadszedł czas na zbudowanie architektury sieci neuronowej.
Tak więc, jak pamiętacie, zbudujemy splotową sieć neuronową CNN, ponieważ tym razem
AI będzie miała oczy, a oczy oka będą splotowymi warstwami tej splotowej sieci
neuronowej.
A potem, po tym, jak ai ai wizualizuje obrazy z warstwami splotowymi, przekaże je do
klasycznej naszej wizualnej sieci neuronowej.
To jest ten, który mieliśmy wcześniej z całkowicie połączonymi warstwami.
I właśnie tam spróbuje przewidzieć wartości kostek dla każdej możliwej akcji, którą możemy zagrać.
Więc masz na myśli architekturę najpierw, że będziemy mieli kilka splotowych warstw, a następnie kilka
w pełni połączonych warstw, a to będzie mózg naszej sztucznej inteligencji.
Więc co zrobimy, aby móc cofnąć się o to, co robimy.
Cóż, po prostu stwórzmy tę architekturę ze zmiennymi, które chcemy stworzyć.
Tak więc mówiąc o tej architekturze, zamierzamy zbudować CNN z trzema splotowymi warstwami.
A potem po tej jednej ukrytej warstwie, co oznacza, że będziemy potrzebować trzech połączeń splotowych i
dwóch pełnych połączeń.
Mówiąc o połączeniach, które właśnie zamierzamy zdefiniować, będą to zmienne dla klasy
CNN i dlatego teraz zdefiniuję pięć zmiennych.
Trzy dla splotowych połączeń i dwóch politycznych powiązań.
Zróbmy to.
Zaczniemy od połączeń splotowych.
Więc zamierzam je nazwać samoukiem.
Ktoś zamierza to skopiować i na podstawie niskich.
I wtedy dochodzimy do przekonania i do przekonania, że są to konwergentne powiązania z tym
pierwszym wnioskiem. Tutaj zastosujemy splot do obrazów wejściowych, aby uzyskać pierwszą warstwę splotową,
wtedy drugi wkład do tego zajmie pierwszy splot. warstwa jako dane wejściowe i ponownie nakładając
splot, stworzy tam drugi splot, a następnie ten splot dostarczy nowych
obrazów, z których każdy wykryje jedną konkretną cechę.
Więc dostaniemy te nowe obrazy w splotach, wtedy zastosujemy tę splot, aby
połączyć te nowe obrazy z tej pierwszej warstwy splotowej z nowymi obrazami drugiej warstwy splotu.
Te nowe obrazy ponownie wykryją pewne cechy na obrazach pierwszego splotu tam.
Chodzi więc o wzmocnienie przyszłego wykrycia, a następnie pojawienie się tam drugiego
splotu.
Zastosowaliśmy trzeci splot tutaj, aby uzyskać go dla każdego z nich.
Jeszcze więcej zdjęć, które wykrywają jeszcze więcej funkcji w obrazach wejściowych.
I dlatego im bardziej to robimy, tym bardziej stosujemy zwinięcia na różnych warstwach obrazów.
Cóż, tym bardziej jesteśmy w stanie wykryć niektóre funkcje i tak przez detekcję funkcji oko zrozumie, gdzie
potwory są, gdzie musi strzelać, aby je zabić i dokąd powinno się udać.
Wykryje również przeszkody na ścianach.
Dosłownie, dokąd musi iść, a to dzięki temu, co wszystkie te splotowe warstwy wykrywają
w oryginalnych obrazach.
W porządku, więc to dla splotu części CNN.
Ale pamiętajmy, że po warstwach splotu musimy spłaszczyć wszystkie piksele uzyskane przez różne serie zwojów,
które zostały zastosowane i spłaszczając wszystkie tablice pikseli otrzymujemy ten ogromny wektor,
który stanie się wejściem klasycznej sztucznej sieci neuronowej.
I tu dostajemy nasze w pełni połączone listy, a więc nasze połączenia.
Teraz musimy stworzyć dwie nowe zmienne, ponieważ będziemy je mieć tu i tam w tej
klasycznej sztucznej sieci neuronowej, która będzie następna i dlatego potrzebujemy jednego
pełnego połączenia z tego ogromnego, płaskiego wektora do tego tutaj i tam i drugie pełne połączenie między tym
tu i tam, a warstwą wyjściową złożoną z wyjściowych neuronów, które są wartościami kluczowymi.
Zróbmy więc te dwa pierwsze połączenia, a następnie zdefiniujemy wszystkie te połączenia.
Poproszę więc o ścieżkę dźwiękową w kodzie, którą nazwalibyśmy "ja" tym, a potem samemu nauczałem C.
W porządku, więc teraz mamy wszystkie nasze kosztowności i wiemy, co musimy zrobić,
to oczywiście zdefiniowane w klasach modułu silnika.
Oznacza to, że zasadniczo stworzymy architekturę sieci neuronowej i to zrobimy w
następnym jutro.
Do tego czasu I.