Сверточная нейронная сеть - визуализация весов

Главная проблема

Я не могу понять график весов конкретного слоя. Я использовал метод без обучения: plot_conv_weights(layer, figsize=(6, 6))

Я использую лазанью как библиотеку нейронных сетей.

Сюжет получается хорошо, но я не знаю, как мне его интерпретировать.

Структура нейронной сети

Структура, которую я использую:

InputLayer  1x31x31

Conv2DLayer 20x3x3  
Conv2DLayer 20x3x3  
Conv2DLayer 20x3x3  

MaxPool2DLayer  2x2 

Conv2DLayer 40x3x3  
Conv2DLayer 40x3x3
Conv2DLayer 40x3x3  

MaxPool2DLayer  40x2x2  


DropoutLayer        

DenseLayer  96  
DropoutLayer    96  

DenseLayer  32  
DropoutLayer    32  

DenseLayer  1 as sigmoid

Вот веса первых 3 слоев:

Образ один

Изображение два

Изображение три

** Об изображениях **

Так что для меня они выглядят случайными, и я не могу их интерпретировать!

Тем не менее, на Cs231, он говорит следующее:

Фильтры Conv/FC. Вторая общая стратегия - визуализация весов. Они обычно наиболее интерпретируемы на первом слое CONV, который смотрит непосредственно на необработанные данные пикселей, но можно также показать вес фильтра глубже в сети. Веса полезны для визуализации, потому что хорошо обученные сети обычно показывают хорошие и плавные фильтры без каких-либо шумовых шаблонов. Шаблоны с шумом могут быть индикатором сети, которая не была обучена достаточно долго, или, возможно, очень низкой степенью регуляризации, которая могла привести к переоснащению http://cs231n.github.io/understanding-cnn/

Тогда почему мои случайны?

Структура обучена и хорошо выполняет свою задачу.

Рекомендации

http://cs231n.github.io/understanding-cnn/

https://github.com/dnouri/nolearn/blob/master/nolearn/lasagne/visualize.py

1 ответ

Решение

Обычно, когда вы визуализируете вес, вы хотите проверить 2 вещи:

  • То, что они гладкие и охватывают широкий диапазон значений, то есть это не куча 1 и 0. Это означало бы, что нелинейность насыщается.
  • Что у них какая-то структура. Обычно вы склонны видеть ориентированные края, хотя это труднее увидеть, когда у вас есть маленькие фильтры, такие как 3x3.

При этом ваши веса не кажутся насыщенными, но они действительно кажутся слишком случайными. Во время обучения сеть сходилась правильно? Я также удивлен тем, насколько велики ваши фильтры (30х30). Не уверен, что вы пытаетесь сделать с этим.

Другие вопросы по тегам