Mam małe pytanie cząstkowe do tego pytania .
Rozumiem, że podczas wstecznej propagacji przez warstwę maksymalnej puli gradient jest kierowany z powrotem w taki sposób, że neuron w poprzedniej warstwie, która została wybrana jako maksymalna, otrzymuje cały gradient. Nie jestem w 100% pewien, w jaki sposób gradient w następnej warstwie jest kierowany z powrotem do warstwy puli.
Pierwsze pytanie brzmi: czy mam warstwę puli połączoną z warstwą w pełni połączoną - jak na poniższym obrazku.
Czy podczas obliczania gradientu cyjanowego „neuronu” warstwy pulującej sumuję wszystkie gradienty z neuronów warstwy FC? Jeśli jest to poprawne, to każdy „neuron” warstwy pulującej ma ten sam gradient?
Na przykład, jeśli pierwszy neuron warstwy FC ma gradient 2, drugi gradient 3, a trzeci gradient 6. Jakie są gradienty niebieskich i fioletowych „neuronów” w warstwie pulującej i dlaczego?
Drugie pytanie dotyczy tego, kiedy warstwa puli jest połączona z inną warstwą splotu. Jak w takim razie obliczyć gradient? Zobacz przykład poniżej.
Dla najbardziej wysuniętego na prawo „neuronu” warstwy gromadzącej (zarysowanego zielonego) po prostu biorę gradient neuronu purpurowego w następnej warstwie konwekcyjnej i kieruję go z powrotem, prawda?
Co powiesz na wypełniony zielony? Czy muszę pomnożyć pierwszą kolumnę neuronów w następnej warstwie z powodu reguły łańcucha? Czy muszę je dodać?
Proszę, nie publikuj wielu równań i powiedz mi, że moja odpowiedź jest w tym miejscu, ponieważ staram się owijać wokół równania i nadal nie rozumiem tego idealnie, dlatego zadaję to pytanie w prosty sposób sposób.
Odpowiedzi:
Nie. Zależy to od wagi i funkcji aktywacji. I najczęściej masy różnią się od pierwszego neuronu warstwy pulującej do warstwy FC, jak i od drugiej warstwy warstwy pulującej do warstwy FC.
Tak więc zazwyczaj będziesz mieć sytuację:
Tam, gdzie jest i-tym neuronem w całkowicie połączonej warstwie, jest j-tym neuronem w warstwie , a jest funkcją aktywacji, a - wagami.FCi Pj f W
Oznacza to, że gradient w stosunku do P_j wynosi
Który jest inny dla j = 0 lub j = 1, ponieważ W jest inny.
Nie ma znaczenia, z jakim typem warstwy jest połączony. Cały czas jest to samo równanie. Suma wszystkich gradientów na następnej warstwie pomnożona przez wpływ neuronu na poprzedniej warstwie na wydajność tych neuronów. Różnica między FC a konwolucją polega na tym, że w FC wszystkie neurony w następnej warstwie zapewnią udział (nawet jeśli być może mały), ale w konwolucji większość neuronów w następnej warstwie w ogóle nie ma wpływu na neuron w poprzedniej warstwie, więc ich udział jest dokładnie zero.
Dobrze. Plus również gradient innych neuronów w tej warstwie splotu, które przyjmują jako wejście najwyższy prawy neuron warstwy pulującej.
Dodaj ich. Z powodu reguły łańcucha.
Maksymalna pula Do tego momentu fakt, że była to maksymalna pula, był zupełnie nieistotny, jak widać. Max łączenie jest tylko, że aktywacja funkcji w tej warstwie wynosi . Oznacza to, że gradienty dla poprzedniej warstwy wynoszą:max grad(PRj)
Ale teraz dla maksymalnego neuronu dla wszystkich innych neuronów, więc dla maksymalnego neuronu w poprzedniej warstwie i dla wszystkich innych neuronów. Więc:f=id f=0 f′=1 f′=0
źródło