Co to jest globalna warstwa max pooling i jaka jest jej przewaga nad warstwą maxpooling?

Odpowiedzi:

69

Global max pooling = zwykła maksymalna warstwa pooling o wielkości puli równa się wielkości wejściowej (dokładniej minus rozmiar filtra + 1). Widać, że MaxPooling1Dwymaga to pool_lengthargumentu, podczas GlobalMaxPooling1Dgdy nie.

Na przykład, jeśli wejście maksymalnej warstwy puli wynosi , globalne maksimum puli wyjść , podczas gdy zwykła maksymalna warstwa puli o wielkości puli wynosi 3 wyjścia (przy założeniu kroku = 1).0,1,2,2,5,1,252,2,5,5,5

Można to zobaczyć w kodzie :

class GlobalMaxPooling1D(_GlobalPooling1D):
    """Global max pooling operation for temporal data.
    # Input shape
        3D tensor with shape: `(samples, steps, features)`.
    # Output shape
        2D tensor with shape: `(samples, features)`.
    """

    def call(self, x, mask=None):
        return K.max(x, axis=1)

W niektórych domenach, takich jak przetwarzanie języka naturalnego, powszechne jest stosowanie globalnej puli maksymalnej. W niektórych innych domenach, takich jak widzenie komputerowe, często używa się puli maksymalnej, która nie jest globalna.

Franck Dernoncourt
źródło
4
Przybyłem tutaj, szukając globalnej średniej puli (GAP), ale z twojego prostego, ale bardzo skutecznego przykładu, myślę, że mogę zgadywać, co robi GAP :)
josh
Dziękuję za tę bardzo zwięzłą odpowiedź. +1. Ten mały przykład, który podałeś, naprawdę pozwolił mi zrozumieć, co robi Global Max Pooling.
rayryeng - Przywróć Monikę
13

Jak opisano w tym artykule, w którym zaproponowano globalne średnie łączenie zasobów (GAP):

Konwencjonalne splotowe sieci neuronowe wykonują splot w dolnych warstwach sieci. Do celów klasyfikacji mapy cech ostatniej warstwy splotowej są wektoryzowane i wprowadzane do w pełni połączonych warstw, a następnie do warstwy regresji logistycznej softmax. Struktura ta łączy strukturę splotową z tradycyjnymi klasyfikatorami sieci neuronowych. Traktuje warstwy splotowe jako ekstraktory cech, a wynikową cechę klasyfikuje się w tradycyjny sposób.

Jednak w pełni połączone warstwy są podatne na nadmierne dopasowanie, co utrudnia generalizację całej sieci. Hinton i wsp. Sugerują, że rezygnacja jest z funkcji regulatora, który losowo ustawia połowę aktywacji na w pełni połączone warstwy na zero podczas treningu. Poprawił zdolność uogólnienia i w dużej mierze zapobiega przeuczeniu.

W tym artykule proponujemy inną strategię zwaną globalnym zestawieniem średniej w celu zastąpienia tradycyjnych w pełni połączonych warstw w CNN. Chodzi o to, aby wygenerować jedną mapę cech dla każdej odpowiedniej kategorii zadania klasyfikacji w ostatniej warstwie mlpconv. Zamiast dodawać w pełni połączone warstwy na górze map obiektów, bierzemy średnią z każdej mapy obiektów, a powstały wektor jest podawany bezpośrednio do warstwy softmax. Jedną z zalet globalnej średniej puli nad w pełni połączonymi warstwami jest to, że jest bardziej natywna dla struktury splotu poprzez wymuszanie zgodności między mapami obiektów i kategoriami. Dzięki temu mapy obiektów można łatwo interpretować jako mapy zaufania kategorii. Kolejną zaletą jest to, że nie ma parametru do optymalizacji w globalnej średniej puli, dzięki czemu unika się nadmiernego dopasowania w tej warstwie. Futhermore, globalna średnia pula sumuje informacje przestrzenne, dlatego jest bardziej odporna na przestrzenne tłumaczenia danych wejściowych. Widzimy globalne łączenie w pulę jako strukturalny regulator, który wyraźnie wymusza mapy obiektów, aby były mapami pewności pojęć (kategorii). Jest to możliwe dzięki warstwom mlpconv, ponieważ umożliwiają one lepsze przybliżenie map ufności niż GLM.

Edycja: Jak sugeruje @MaxLawnboy, oto kolejny artykuł na ten sam temat .

Tshilidzi Mudau
źródło
Kolejny artykuł na temat wszystkich modeli CNN arxiv.org/pdf/1412.6806v3.pdf
Maxim Mikhaylov
Dzięki @MaxLawnboy, zmienię odpowiedź, aby ją uwzględnić.
Tshilidzi Mudau,