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

Серия из 6 частей «Как начать проект глубокого обучения?» состоит из:

· Часть 1: Начать проект Deep Learning.
· Часть 2: Создание набора данных Deep Learning.
· Часть 3: Проекты Deep Learning.
· Часть 4 : Визуализируйте модели и показатели глубокой сети .
· Часть 5: Отладка сети глубокого обучения .
· Часть 6: Улучшение производительности моделей глубокого обучения и настройка сети .

Никогда не стрелял в темноте. Сделайте обоснованное предположение.

TensorBoard

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

Визуализация данных (ввод, вывод)

Проверка ввода и вывода модели. Прежде чем вводить данные в модель, сохраните несколько обучающих и проверочных образцов для визуальной проверки. Примените шаги, чтобы отменить предварительную обработку данных. Измените масштаб значения пикселя обратно на [0, 255]. Проверьте несколько пакетов, чтобы убедиться, что мы не повторяем один и тот же пакет данных. На изображениях слева внизу показаны некоторые обучающие образцы, а справа - проверочный образец.

Иногда полезно проверить гистограмму входных данных. В идеале он должен быть с нулевым центром в диапазоне от -1 до 1. Если объекты находятся в разных масштабах, градиенты будут либо уменьшаться, либо взрываться (в зависимости от скорости обучения).

Регулярно сохраняйте выходные данные соответствующей модели для проверки и анализа ошибок. Например, цвет в выходных данных валидации размывается.

Показатели (потери и точность)

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

График стоимости помогает нам настроить скорость обучения. Любой продолжительный скачок стоимости означает, что скорость обучения слишком высока. Если он слишком низкий, мы учимся медленно.

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

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

Сводка истории

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

Активация: для наилучшего выполнения градиентного спуска выходы узлов перед функциями активации должны иметь нормальное распределение. Если нет, мы можем применить пакетную нормализацию к сверточным слоям или нормализацию уровня к слоям RNN. Мы также отслеживаем количество мертвых узлов (нулевых активаций) после активации функций.

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

Не очень часто, мы визуализируем фильтры CNN. Он определяет тип объектов, извлекаемых моделью. Как показано ниже, первая пара сверточных слоев определяет края и цвета.

Для CNN мы можем визуализировать, чему изучает карту функций. На следующем изображении он захватывает 9 верхних изображений (с правой стороны), имеющих наибольшую активацию на конкретной карте. Он также применяет сеть деконволюции для восстановления пространственного изображения (левое изображение) из карты признаков.

Такая реконструкция изображения выполняется редко. Но в генеративной модели мы часто меняем только один скрытый фактор, оставляя другие постоянными. Это проверяет, изучает ли модель что-нибудь умное.

Часть 5

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