Сверточная нейронная сеть - визуализация весов
Главная проблема
Я не могу понять график весов конкретного слоя. Я использовал метод без обучения: 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). Не уверен, что вы пытаетесь сделать с этим.