1

Я видел несколько примеров учебников, таких как UFLDL covolutional net, где они используют функции, полученные путем неконтролируемого обучения, или some others, где ядра сконструированы вручную (с использованием детекторов Sobel и Gabor, различных настроек резкости/размытия и т. Д.). Как ни странно, я не могу найти общее руководство о том, как выбрать хорошее ядро ​​для чего-то большего, чем игрушечную сеть. Например, если рассматривать глубокую сеть со многими уровнями сверточного объединения, те же самые ядра, используемые на каждом уровне, или каждый слой имеет собственное подмножество ядра? Если да, то где эти, появляются фильтры более глубокого слоя - должен ли я их изучать с помощью некоторого неконтролируемого алгоритма обучения по данным, переданным через первую пару сверточного и пула слоя?Откуда берутся фильтры/ядра для сверточной сети?

Я понимаю, что у этого вопроса нет единого ответа, я был бы рад простому общему подходу (некоторые статьи обзора были бы фантастическими).

ответ

2

Современное современное состояние предлагает изучить все сверточные слои из данных с использованием обратного распространения (ref).

Также this paper рекомендует небольшие ядра (3x3) и объединение (2x2). Вы должны тренировать разные фильтры для каждого слоя.

1

Ядра в глубоких сетях в основном обучаются в одно и то же время контролируемым способом (известные входы и выходы сети), используя Backpropagation (вычисляет градиенты) и некоторую версию Stochastic Gradient Descent (алгоритм оптимизации).

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

Если вы хотите работать со своим собственным набором данных, вы должны начать с существующей предварительно обученной сети [Caffe Model Zoo] и точно настроить ее на своем наборе данных. Таким образом, архитектура сети будет исправлена, так как вам придется уважать архитектуру исходной сети. Сети, которые вы можете загрузить, проходят обучение по очень большим проблемам, что позволяет им хорошо обобщать другие проблемы классификации/регрессии. Если ваш набор данных по крайней мере частично похож на исходный набор данных, тонко настроенные сети должны работать очень хорошо.

Хорошее место для получения дополнительной информации Caffe @ CVPR2015 tutorial.

 Смежные вопросы

  • Нет связанных вопросов^_^