Обучение нейронных сетей

Обратное распространение ошибки — наиболее распространенный алгоритм обучения нейронных сетей. Это делает градиентный спуск возможным для многослойных нейронных сетей. TensorFlow автоматически обрабатывает обратное распространение ошибки, поэтому вам не нужно глубоко понимать алгоритм. Чтобы понять, как это работает, просмотрите следующее: Визуальное объяснение алгоритма обратного распространения ошибки . Просматривая предыдущее объяснение, обратите внимание на следующее:

  • Как данные проходят через график.
  • Как динамическое программирование позволяет нам избежать вычисления экспоненциально большого количества путей в графе. Здесь «динамическое программирование» означает просто запись промежуточных результатов при прямом и обратном проходах.

Обучение нейронных сетей

  • Градиенты важны
    • Если это дифференцируемо, мы, вероятно, сможем этому научиться.
  • Градиенты важны
    • Если это дифференцируемо, мы, вероятно, сможем этому научиться.
  • Градиенты могут исчезнуть
    • Каждый дополнительный слой может последовательно уменьшать сигнал по сравнению с шумом.
    • ReLus здесь полезны
  • Градиенты важны
    • Если это дифференцируемо, мы, вероятно, сможем этому научиться.
  • Градиенты могут исчезнуть
    • Каждый дополнительный слой может последовательно уменьшать сигнал по сравнению с шумом.
    • ReLus здесь полезны
  • Градиенты могут взорваться
    • Здесь важна скорость обучения
    • Пакетная нормализация (полезная ручка) может помочь.
  • Градиенты важны
    • Если это дифференцируемо, мы, вероятно, сможем этому научиться.
  • Градиенты могут исчезнуть
    • Каждый дополнительный слой может последовательно уменьшать сигнал по сравнению с шумом.
    • ReLus здесь полезны
  • Градиенты могут взорваться
    • Здесь важна скорость обучения
    • Пакетная нормализация (полезная ручка) может помочь.
  • Слои ReLu могут умереть
    • Сохраняйте спокойствие и снижайте скорость обучения
  • Мы хотели бы, чтобы наши функции имели разумный масштаб.
    • Примерно с нулевым центром, диапазон [-1, 1] часто работает хорошо.
    • Помогает сходиться градиентному спуску; избежать ловушки NaN
    • Избегание выбросов значений также может помочь.
  • Можно использовать несколько стандартных методов:
    • Линейное масштабирование
    • Хардкап (обрезка) до макс, мин
    • Масштабирование журнала
  • Отсев: еще одна форма регуляризации, полезная для нейронных сетей.
  • Работает путем случайного «выпадения» единиц из сети за один шаг градиента.
    • Здесь есть связь с ансамблевыми моделями.
  • Чем больше вы бросаете учебу, тем сильнее регуляризация
    • 0,0 = нет регуляризации отсева
    • 1.0 = выбросить все! ничему не учится
    • Промежуточные значения более полезны