Что это значит, если более глубокий конвойный слой сходится первым? - PullRequest
0 голосов
/ 13 декабря 2018

Я тренирую трехслойный коннет для классификации изображений - я знаю, что это очень стандартная проблема.Сначала я попробовал 3 сверточных слоя с ReLU, и получил это:

веса от слоя 1 с ReLU - похоже на обнаружение края

веса от слоя 3 сReLU - похоже на обнаружение признаков

Первый уровень (16 фильтров) - это изучение границ, как и ожидалось, а третий уровень (64 фильтра) - изучение функций, как и ожидалось.Затем я просто хотел попробовать другой нелинейный термин, поэтому вместо этого я попытался использовать sELU.

Как ни странно, третий уровень, похоже, теперь изучает особенности, а первый уровень, похоже, вообще не сходится?Что значит для третьего слоя учить края, значит ли это, что мне нужно больше слоев?Я не понимаю, почему первый слой не смог бы изучить ребра.

веса от слоя 1 с SELU - выглядит не сходящимся?

веса от слоя 3с SELU - похоже на обнаружение краев?

Я не думаю, что архитектура очень важна, но у меня есть черно-белое изображение 180x180, и все фильтры 10х10 с шагом2 (16 фильтров для слоя 1, 32 для слоя 2, 64 для слоя 3).

1 Ответ

0 голосов
/ 13 декабря 2018

Во-первых, вы вводите в заблуждение терминологию.

  1. Понятие сходимости применимо к алгоритму оптимизации и к тому, находится ли он в каком-то фиксированном месте в пространстве параметров или нет.Если нет, то он может продолжаться вечно, либо улучшаясь с бесконечно медленной скоростью и никогда не достигая оптимального значения, колебаясь вокруг него, либо прямо расходясь из-за проблем с точностью / градиентом взрыва.Другими словами, вы можете говорить о том, что ваша оптимизация сети имеет конвергированные, но не конкретные фильтры.Вы делаете это, осматривая график тренировочных потерь, а не свои ядра.
  2. Функция , на языке глубокого обучения, является общим понятием для функций, то есть любой модели, представляющей интерес.в данных.Таким образом, края, безусловно, будут рассматриваться как особенности.Возможно, вы имели в виду текстуру, когда упоминали о функциях?

Учитывая все вышесказанное, вы, к сожалению, слишком оптимистичны относительно состояния теории нейронных сетей.Интерпретация ядер свертки является очень сложной и большой исследовательской задачей.Никто не может ответственно подойти к общему утверждению о том, какие действия вы должны предпринять, учитывая ядра, которые вы наблюдаете - слишком много переменных, от набора данных, через сетевую архитектуру, до гиперпараметров, таких как скорость обучения.Исходя из моего собственного опыта, сети со всеми их ядрами, выглядящими как этот «шум» выше, могут достичь очень хороших результатов, по крайней мере, для задач сегментации, с которыми я работаю.

Если вы начинаете с глубокого обучения (котороевыглядит так, как вы), я бы посоветовал вам также взглянуть на карты характеристик, то есть проверять тензоры промежуточных значений во время прямого распространения вашей сети - вы увидите, как они реагируют на разные части вашего изображения и могут привести вас к большему количествув поле зрения.Вы должны помнить, что кроме первого слоя, другие ядра будут смотреть на уже преобразованные представления изображения, поэтому их проверка без связи с входными картами объектов не расскажет вам много.Более продвинутый метод понимания ваших ядер - глубокая визуализация .При этом, я призываю вас продолжать проводить такого рода эксперименты и визуализации, поскольку они помогут вам развить опыт и интуитивное понимание того, как могут выглядеть ядра, как они взаимодействуют и что следует ожидать, а что нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...