Czy ktoś może wyjaśnić, co jest globalną warstwą max pooling i dlaczego i kiedy używamy jej do szkolenia sieci neuronowej. Czy mają przewagę nad zwykłą maksymalną warstwą puli?
Czy ktoś może wyjaśnić, co jest globalną warstwą max pooling i dlaczego i kiedy używamy jej do szkolenia sieci neuronowej. Czy mają przewagę nad zwykłą maksymalną warstwą puli?
Odpowiedzi:
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 MaxPooling1D
wymaga to pool_length
argumentu, podczas GlobalMaxPooling1D
gdy 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).
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.
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 .