Насколько чувствительны нейронные сети FF?

#machine-learning #neural-network

#машинное обучение #нейронная сеть

Вопрос:

CrossPost: https://stats.stackexchange.com/questions/103960/how-sensitive-are-neural-networks

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

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

  1. Возможно ли, чтобы один (или какое-то тривиальное количество) лишних ИЛИ отсутствующих скрытых нейронов или скрытых слоев создавал или разрушал сеть? Или его веса синапсов просто снизятся до нуля, если в этом нет необходимости, и компенсируют другими нейронами, если в них отсутствует один или два?
  2. При экспериментировании следует ли добавлять входные нейроны по одному или группами по X? Что такое X? С шагом 5?
  3. Наконец, должен ли каждый скрытый слой содержать одинаковое количество нейронов? Обычно это то, что я вижу в примере. Если нет, то как и почему вы бы скорректировали их размеры, если не полагаться на использование чистого эксперимента?

Я бы предпочел переусердствовать и дольше ждать конвергенции, чем если бы более крупные сети адаптировались к решению. Я перепробовал множество конфигураций, но по-прежнему сложно определить оптимальную.

Ответ №1:

1) Да, абсолютно. Например, если у вас слишком мало нейронов в вашем скрытом слое, ваша модель будет слишком простой и с большим уклоном. Аналогично, если у вас слишком много нейронов, ваша модель будет перегружена и будет иметь высокую дисперсию. Добавление большего количества скрытых слоев позволяет моделировать очень сложные проблемы, такие как распознавание объектов, но есть много хитростей, чтобы заставить добавление дополнительных скрытых слоев работать; это известно как область глубокого обучения.

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

3) Нет, определенно нет — каждый скрытый слой может содержать столько нейронов, сколько вы хотите, чтобы он содержал. Нет другого способа, которым можно экспериментировать, чтобы определить их размеры; все, что вы упоминаете, — это гиперпараметры, которые вы должны настроить.

Я не уверен, что вы ищете простой ответ, но, возможно, вас заинтересует новый метод регуляризации нейронной сети, называемый dropout. Отсев в основном случайным образом «удаляет» некоторые нейроны во время обучения, заставляя каждый из нейронов быть хорошими детекторами функций. Это значительно предотвращает переобучение, и вы можете продолжить и установить высокое количество нейронов, не слишком беспокоясь. Ознакомьтесь с этой статьей для получения дополнительной информации: http://www.cs.toronto.edu /~nitish/msc_thesis.pdf

Комментарии:

1. Я должен использовать что-то автоматизированное, например, отсев… Но я действительно спрашивал, потому что я изменял свой нейрон с шагом в десять, двадцать, пятьдесят, когда, возможно, я должен был изменяться с шагом в один?