Улучшение производительности модели

Введение в глубокое обучение с PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Шаги для максимизации производительности

$$

  • Можно ли решить задачу?

  • Определите базовый уровень производительности

$$

  • Повысьте производительность на валидационной выборке

$$ $$

  • Достигните максимально возможной производительности

Шаг 1

Шаг 2

Шаг 3

Введение в глубокое обучение с PyTorch

Шаг 1: переобучение на обучающей выборке

  • Измените цикл обучения, чтобы переобучиться на одном примере

    features, labels = next(iter(dataloader))
    for i in range(1000):
      outputs = model(features)
      loss = criterion(outputs, labels)
      optimizer.zero_grad()
      loss.backward()
      optimizer.step()
    
    • Точность должна достичь 1,0, а потери — 0
  • Затем масштабируйте на весь обучающий набор

    • Используйте гиперпараметры по умолчанию
Введение в глубокое обучение с PyTorch

Шаг 2: уменьшение переобучения

  • Цель: максимизировать точность на валидационной выборке

  • Экспериментируйте с:

    • Dropout
    • Аугментацией данных
    • Weight decay
    • Уменьшением ёмкости модели

$$

  • Отслеживайте каждый гиперпараметр и точность на валидации

переобучение

Введение в глубокое обучение с PyTorch

Шаг 2: уменьшение переобучения

$$

Исходная модель переобучается на обучающих данных исходные показатели

$$

Обновлённая модель с избыточной регуляризацией избыточная регуляризация

Введение в глубокое обучение с PyTorch

Шаг 3: тонкая настройка гиперпараметров

  • Поиск по сетке
for factor in range(2, 6):
    lr = 10 ** -factor

поиск по сетке

  • Случайный поиск
factor = np.random.uniform(2, 6)
lr = 10 ** -factor

случайный поиск

Введение в глубокое обучение с PyTorch

Давайте потренируемся!

Введение в глубокое обучение с PyTorch

Preparing Video For Download...