Що таке обмеження maxnorm? Чим це корисно в конволюційних нейронних мережах?


Відповіді:


16

З http://cs231n.github.io/neural-networks-2/#reg :

Максимальні обмеження норми. Іншою формою регуляризації є встановлення абсолютної верхньої межі величини вагового вектора для кожного нейрона та використання прогнозованого градієнтного спуску для забезпечення обмеження. На практиці це відповідає виконанню оновлення параметрів як звичайному, а потім примусовому виконанню обмеження, затискаючи вектор ваги кожного нейрона для задоволенняТипові значення - на замовлення 3 або 4. Деякі люди повідомляють про поліпшення при використанні цієї форми регуляризації. Однією з його привабливих властивостей є те, що мережа не може «вибухнути», навіть якщо рівень навчання встановлений занадто високим, оскільки оновлення завжди обмежені.ww2<c.c


8

Я знайшов відповідь McLawrence в іншому питанні дуже корисною. Відтворено нижче:

Що означає обмеження ваги max_norm?

maxnorm(m)буде, якщо L2-норма вагових ваг перевищує mмасштаб вашої всієї матриці ваги на коефіцієнт, що зменшує норму до m. Як ви можете знайти в коді keras в 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

Додатково maxnormмає axisаргумент, уздовж якого обчислюється норма. У вашому прикладі ви не вказуєте вісь, тому норма обчислюється по всій матриці ваги. Якщо, наприклад, ви хочете обмежити норму кожного згорткового фільтра, припускаючи, що ви використовуєте tfупорядкування розмірів, вагова матриця матиме форму (rows, cols, input_depth, output_depth). Обчислення норми перевищить axis = [0, 1, 2]кожен фільтр до заданої норми.

Навіщо це робити?

Інше обмеження вагової матриці - це ще один вид регуляризації. Якщо ви використовуєте простий термін регуляризації L2, ви штрафуєте великі ваги за допомогою функції втрат. З цим обмеженням ви безпосередньо регулюєтесь. Як також пов'язано в kerasкоді, це, здається, працює особливо добре в поєднанні з dropoutшаром. Більше інформації див. У главі 5.1 цього документу


Хороша відповідь, але будьте обережні: "У своєму прикладі ви не вказуєте вісь, тому норма обчислюється по всій матриці ваги". - Це не здається правдою (принаймні, як зараз). Швидше, норма обчислюється потім за замовчуванням axis=0.
Бобсон Дугнутт

Я погоджуюсь, що максимальна норма приймається як довжина ваг, які вбудовуються у вузол у прихованому шарі, тобто . Крім того, чи помітили ви, що для регуляризації випадання використовується максимальна норма для всіх прогонів (див. Останній абзац на сторінці 1934 року cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf ). ||w||
wrktsj
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.