Co to jest ograniczenie maxnorm? Jak to jest użyteczne w sieciach neuronowych splotowych?

13

Oto przykładowy kod keras, który go używa:

from keras.constraints import max_norm

model.add(Convolution2D(32, 3, 3, input_shape=(3, 32, 32), 
                        border_mode='same', activation='relu', kernel_constraint=max_norm(3)))
Jatin
źródło

Odpowiedzi:

8

Znalazłem odpowiedź przez McLawrence w innym pytaniem jest bardzo pomocny. Powielone poniżej:

Co robi ograniczenie wagowe max_norm?

maxnorm(m)jeśli norma L2 twoich ciężarów przekroczy m, przeskaluj całą macierz masy o współczynnik, który obniży normę do m. Jak można znaleźć w kodzie keras w class MaxNorm(Constraint):

def __call__(self, w):
    norms = K.sqrt(K.sum(K.square(w), axis=self.axis, keepdims=True))
    desired = K.clip(norms, 0, self.max_value)
    w *= (desired / (K.epsilon() + norms))
    return w

Dodatkowo maxnormma axisargument, według którego obliczana jest norma. W twoim przykładzie nie podajesz osi, więc norma jest obliczana na całej macierzy masy. Jeśli na przykład chcesz ograniczyć normę każdego filtra splotowego, zakładając, że używasz tfporządkowania wymiarów, macierz wagowa będzie miała kształt (rows, cols, input_depth, output_depth). Obliczenie normy axis = [0, 1, 2]spowoduje ograniczenie każdego filtra do podanej normy.

Po co to robić?

Bezpośrednie ograniczenie macierzy masy to kolejny rodzaj regularyzacji. Jeśli używasz prostego terminu regularyzacji L2, karasz wysokie wagi swoją funkcją utraty. Dzięki temu ograniczeniu regulujesz bezpośrednio. Jak również powiązane z keraskodem, wydaje się, że działa to szczególnie dobrze w połączeniu z dropoutwarstwą. Więcej informacji w rozdziale 5.1 niniejszego dokumentu

jeremysprofile
źródło
Dobra odpowiedź, ale uwaga: „W twoim przykładzie nie podajesz osi, więc norma jest obliczana na całej macierzy masy”. - Nie wydaje się to prawdą (przynajmniej na razie). Zamiast tego norma jest obliczana na podstawie wartości domyślnej axis=0.
Bobson Dugnutt
Zgadzam się, maksymalna norma jest przyjmowana jako długość wag, które wachlują do węzła w ukrytej warstwie, tj. . Zauważyłeś również, że w przypadku regulowania porzucania, dla wszystkich przebiegów zastosowano max-norm (patrz ostatni akapit na stronie 1934 cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf ). ||w||
wrktsj