Cześć i witamy w ostatnim kroku naszego procesu, aby mózg miał jedną funkcję, aby zrobić lewe.
Jest to funkcja do przodu, która propaguje sygnały we wszystkich warstwach sieci neuronowej, w tym
trzy warstwy splotowe i w pełni połączoną warstwę.
Funkcja ta jest więc funkcją do przodu dokładnie tak, jak w przypadku samochodu
samojezdnego, ale tym razem musimy propagować sygnały w warstwach splotowych przed całkowicie połączoną warstwą.
Dobra wiadomość jest taka, że zrobiliśmy to już w poprzednim kroku dzięki funkcji count Newnes.
Mamy już kod propagujący sygnał w kraju.
I tak będzie bardzo szybko.
Po prostu połączymy to, co tutaj zrobiliśmy, z tym, co zrobiliśmy dla samochodu podwodnego, a otrzymamy funkcję
do przodu dla naszego mózgu.
Zróbmy to.
Wprowadzamy tutaj nową funkcję dla mózgu, a ta funkcja jest funkcją do przodu, która
przyjmuje argument.
Dokładnie tak jak przed siebie, aby odwoływać się do obiektów i X, które będą pierwszymi obrazami wejściowymi, a następnie wiadomo,
że X zostanie zaktualizowany, gdy sygnał jest propagowany do nowej sieci.
W porządku.
Cullen, a następnie przejdźmy do funkcji.
Tak jak właśnie powiedziałem, że już stworzyliśmy kod propagujący sygnały w trzech splotowych warstwach.
To dokładnie te trzy linie kodu.
Więc kopiuję je i wklejając je tu i tam.
Mamy już naszą propagację sygnału w trzech warstwach splotu.
Teraz musimy tylko propagować sygnał z warstw splotowych do ukrytej warstwy, a następnie do
warstwy wyjściowej znajdującej się na samym końcu sieci neuronowej i aby to
zrobić, najpierw musimy spłaszczyć trzecią warstwę splotową, którą uzyskane tutaj pamiętaj X na początku jest
obrazem wejściowym.
Wtedy X staje się pierwszą warstwą splotu, a X staje się tam drugim splotem.
I tu X staje się trzecim splotem.
Tak więc teraz na tym etapie X jest trzecią warstwą splotową.
A teraz, aby spłaszczyć, musimy spłaszczyć tę trzecią splotową warstwę X i aby to zrobić, zrobimy coś
bardzo podobnego, jak to zrobiliśmy tutaj, tylko tym razem nie potrzebujemy liczby
neuronów, które po prostu trzeba spłaszczyć. kanały w trzecim sprzeciwie.
Będzie to znacznie prostsze, ale bardzo podobne.
I żeby to zrobić dobrze, weźmiemy X ponownie, ponieważ X stanie się warstwą spłaszczającą.
Aktualizujemy tylko X, więc x jest równy, a następnie X, ale ten X jest starym X, który jest trzecią warstwą
splotową.
Więc wtedy bierzemy trzeci splot, ale wtedy przyjmujemy funkcję widoku, do której odnosimy się do
argumentów.
Pierwszy to X o wielkości zero.
Więc ponownie bierzemy funkcję rozmiaru, aby wziąć wszystkie piksele ze wszystkich kanałów i trzeciej warstwy splotowej
i umieszczamy je jeden po drugim w tym ogromnym wektorze, który stanie się tym X,
a to X stanie się wejściem w pełni połączona sieć.
Ale to nie wszystko, czego potrzebujemy.
I oto podszedł.
I minus jeden.
Tę sztuczkę można znaleźć w samouczkach zegarków kieszonkowych.
W ten sposób można spłaszczyć splot, składają się one z kilku kanałów za pomocą funkcji rozmiaru.
I oczywiście, jeśli chcesz więcej szczegółów na temat tego, jak to działa, możesz przejść do samouczków kieszonkowych zegarków.
Podam link.
Teraz, gdy mamy już dobrze spłaszczone, wiesz, że spłaszczenie stanie się wejściem klasycznej,
w pełni połączonej sieci z prostą linearną transmisją sygnału.
Teraz nie użyjemy funkcji splotu, aby przekazać sygnał, że zamierzamy użyć liniowej transmisji
z liniową klasą, a następnie przełamać liniowość, ponieważ kiedy pracujemy z
obrazami i obrazami, mamy relacje liniowe.
Cóż, użyjemy funkcji rektyfikowalnej, aby nauczyć się tych nieliniowych relacji.
Zróbmy to.
To jest w rzeczywistości następny krok.
I tak teraz jest dokładnie tak, jak zrobiliśmy dla samochodu do samodzielnego prowadzenia.
Bierzemy X, ponieważ chcemy go ponownie zaktualizować, chcemy teraz uzyskać ukrytą warstwę.
Tak więc najpierw, co robimy, przejmujemy pełne połączenie SE1, ponieważ pełne połączenie.
FC jeden jest tym, który łączy spłaszczoną warstwę z ukrytą i dlatego musimy wziąć SE1
i zastosować ją do X, który mamy teraz, czyli tam, gdzie jest powódź.
I oczywiście nie zapominamy o sobie, ponieważ każdy jest zmienną naszej funkcji init.
Tak więc samouk SE1 X i tak przekazuje liniowo sygnał od pochlebnego do ukrytego tam.
Ale teraz musimy aktywować te neurony, jednocześnie łamiąc prawo w errancy.
I dokładnie to robimy z funkcją aktywacji prostownika.
Musimy więc wziąć nasz moduł funkcjonalny iz tego modułu funkcyjnego przyjmiemy oczywiście
funkcję prostą lub prostą.
W nawiasie umieszczamy samouka SE1.
W porządku, więc to, co dzieje się w tym wierszu kodu, polega na tym, że najpierw propagujemy sygnały z
warstwy spłaszczającej do ukrytej warstwy w pełni połączonej sieci.
A potem aktywujemy neurony tej ukrytej warstwy, włamując się w powietrze za pomocą tej funkcji
aktywacji prostownika, a my dostajemy tam naszą głowę, która jest tutaj idealna.
A teraz mamy jeden ostatni krok do zrobienia, to oczywiście propagowanie sygnału z ukrytej warstwy do
warstwy wyjściowej z końcowymi neuronami wyjściowymi i do tego.
To bardzo proste.
Dokładnie tak, jak zrobiliśmy z samochodem.
Przyjmujemy naszą drugą pełną kolekcję C2 i stosujemy ją oczywiście do neuronów ukrytej warstwy, która
jest teraz x.
Więc tutaj są neurony tu i tam.
To wszystko x i x staje się oczywiście neuronami wyjściowymi warstwy wyjściowej zawierającej wartości kostek.
I w końcu po prostu zwracamy neurony wyjściowe, które są x z wartościami kostki.
Tak doskonały.
Gratulacje, właśnie zrobiliśmy mózg, który właśnie stworzyliśmy mózg naszej sztucznej inteligencji z oczami i resztą
komórek.
Gratulacje.
Teraz nadszedł czas, aby stworzyć ciało, które definiuje, w jaki sposób zamierzamy zagrać w akcję.
Po tym wszystkim sygnały są przetwarzane w mózgu.
To nasz drugi duży krok.
Zróbmy to w następnych tutorialach.
A do tego czasu AI.