Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Equipment >> Промышленный робот

Выбор правильного числа скрытых слоёв и узлов в нейронной сети

Эта статья предлагает evidence-based рекомендации для настройки скрытой части многослойного перцептрона.

В предыдущих постах этой серии мы покрывали перцептронные сети, многослойные архитектуры и практические Python-реализации. Прежде чем решать о глубине и ширине ваших скрытых слоёв, вы можете захотеть пересмотреть базовые статьи, перечисленные ниже.

  1. Как выполнять классификацию с нейронной сетью: что такое перцептрон?
  2. Как использовать простой пример перцептрона для классификации данных
  3. Как обучать базовый перцептрон
  4. Понимание простого обучения нейронных сетей
  5. Введение в теорию обучения для нейронных сетей
  6. Понимание скорости обучения в нейронных сетях
  7. Продвинутое машинное обучение с многослойным перцептроном
  8. Сигмоидная функция активации: активация в многослойных перцептронах
  9. Как обучать многослойный перцептрон
  10. Понимание формул обучения и обратного распространения для многослойных перцептронов
  11. Архитектура нейронной сети для Python-реализации
  12. Как создать многослойный перцептрон на Python
  13. Обработка сигналов с нейронными сетями: валидация в дизайне нейронных сетей
  14. Обучающие наборы данных для нейронных сетей: как обучать и валидировать Python нейронную сеть
  15. Выбор правильного числа скрытых слоёв и узлов в нейронной сети

Обзор скрытых слоёв

Давайте вспомним ключевые моменты о скрытых узлах:

Диаграмма ниже иллюстрирует базовую структуру многослойного перцептрона.

Выбор правильного числа скрытых слоёв и узлов в нейронной сети

Сколько скрытых слоёв?

Универсального ответа не существует. Однако один скрытый слой уже наделяет сеть замечательной выразительной силой. Если производительность неудовлетворительна, рассмотрите настройку скорости обучения, увеличение эпох обучения или обогащение обучающей выборки перед добавлением глубины.

Добавление второго скрытого слоя увеличивает сложность кода и время инференса, и может усугубить переобучение — особенно когда обучающих данных мало.

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

Выбор правильного числа скрытых слоёв и узлов в нейронной сети

Высокопараметризованная сеть может «передумать» проблему, производя решение, хорошо работающее на обучающих данных, но плохо на невидимых сэмплах. Последующая фигура показывает, как избыточная ёмкость может мешать обобщению.

Выбор правильного числа скрытых слоёв и узлов в нейронной сети

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

Сколько скрытых узлов?

Выбор правильного числа узлов на скрытый слой — баланс между выразительностью и риском переобучения. Хотя экспериментирование необходимо, д-р Хитон даёт три практических эвристики (стр. 159), служащие твёрдой отправной точкой. Основываясь на опыте обработки сигналов, я предлагаю следующие руководства:

  1. Если сеть имеет один выходной узел и отображение относительно простое, установите скрытую размерность в две трети входной размерности.
  2. Если есть множественные выходы или отношение сложное, используйте скрытый размер, равный сумме входной и выходной размерностей — но не более двойной входной размерности.
  3. Для экстремально сложных отображений установите скрытый размер на единицу меньше, чем удвоенная входная размерность.

Заключение

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


Промышленный робот

  1. Что такое тумблер-пресс? Как он работает и почему важен
  2. Как работают зубчато-шестеренчатые прессы: практическое руководство
  3. Трансферная литье: процесс, преимущества и варианты
  4. Понимание автомобильных трансмиссий: типы, функции и принцип работы
  5. Добавление узлов смещения в многослойный перцептрон на Python
  6. Оптимизация размера скрытого слоя для повышения точности нейронной сети
  7. Обучение нейронных сетей с Excel: построение и валидация Python многослойного перцептрона
  8. Построение многослойного перцептрона на Python: практическое руководство
  9. Понимание промышленных сцеплений: определение, функция и применение
  10. Как рассчитать необходимую мощность гидравлического насоса