4

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

Неужели это не страдает от проблемы или я ошибаюсь, и это зависит от функции активации? [Я использую Rectified Linear Units, поэтому я никогда не тестировал сигмоидные модули для сверточных нейронных сетей]

ответ

4

Сверточные нейронные сети (например, стандартные сигмовидные нейронные сети) страдают от проблемы исчезающего градиента. Наиболее рекомендуемые подходы к преодолению исчезающих проблем градиента:

  • Поэтажная перед тренировкой
  • Выбора функции активации

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

Однако было показано (например, this paper) для нескольких задач, которые с использованием Rectified linear units облегчают проблему исчезновения градиентов (в отличие от обычных сигмовидных функций).

+0

Да, я читал где-то еще, что выпрямленные Линейные Units свободны от исчезающей проблемы градиента. Я знаю, что автокодеры и болтцманские машины обучаются жадным послойным способом. То же самое делается для сверточных нейронных сетей? – Roy

+0

ReLUs не полностью свободны от проблемы с исчезновением градиента, но у них меньше этой проблемы. Можно также выполнить жадные слоистые предварительные тренировки в Свертонных сетях. Он может быть неконтролируемым, как автокодеры или контролироваться при подключении уровня к выходам. Я верю в этот документ, который они контролировали до обучения: http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf –

+0

Я снова прочитал статью (в моем последнем комментарии). Было неясно, что они использовали жадную послойную предварительную подготовку. Они просто говорят о предварительной подготовке. На данный момент у меня нет других ссылок для многоуровневой подготовки сверточных сетей, но это можно сделать. –

-1

Последние достижения позволили смягчить последствия исчезновения градиентов в глубоких нейронных сетях. Среди достижений вклад включают в себя:

  1. Использование GPU для обучения разработчиков глубоководных нейронных сетей
  2. Использование более совершенных функций активации. (На данный момент выпрямленные линейные единицы (ReLU), кажется, работают лучше всего.)

С этими достижениями глубокие нейронные сети могут быть обучены даже без послойной предварительной подготовки.

Источник: http://devblogs.nvidia.com/parallelforall/deep-learning-nutshell-history-training/

+0

это не имеет отношения к проблеме: «Использование GPU для обучения глубоким нейронным сетям» – mefmef

+0

, если вы тренируете CNN с помощью GPU, тогда вы будете менее затронуты исчезающим градиентом. Надеюсь, что это ясно – dnth

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