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

Когда вы работаете над алгоритмами глубокого обучения, вам почти всегда требуется большой объем данных для обучения вашей модели. Это неизбежно, поскольку алгоритмы глубокого обучения, такие как RNN или GRU, нуждаются в данных, а для конвергенции им нужна их справедливая доля данных. Но что, если данных недостаточно? Это не редкость, на самом деле, когда вы работаете над исследованиями, вам, вероятно, приходится сталкиваться с этим каждый день, или даже если вы работаете над новой областью / продуктом, где еще нет большого количества данных. доступный. Как с этим справиться? Могу ли я применить машинное обучение? Могу ли я воспользоваться последними достижениями в области глубокого обучения?

Есть два возможных пути, из которых мы можем выбрать, и я расскажу о них в следующих разделах - Путь к данным и Путь к модели.

Путь к данным

Это может показаться немного очевидным, но иногда мы упускаем из виду возможности такого решения для решения небольших проблем с данными - я говорю о расширении данных. Идея увеличения данных заключается в следующем: Точки рядом с определенной точкой (в гиперпространстве) представляют аналогичное поведение. Например: изображение собаки с повышенной контрастностью или яркостью по-прежнему остается изображением собаки.

Чтобы использовать дополнение данных для табличного набора данных, доступно множество методов, например:

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

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

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

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

Конечно, мы также можем применять поворот, зеркальное отображение и кадрирование, чтобы расширить доступные наборы данных изображений. Для этого доступно несколько библиотек, таких как OpenCV, PyTorch и TensorFlow. Еще одна интересная вещь - альбументация, которую вы можете увидеть в действии на блокноте Colab.

Генеративные модели для увеличения данных

Генеративные модели доказали, что очень полезное понимание распределения данных настолько велико, что сегодня эти модели являются основным инструментом для задач увеличения данных.

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

LSTM для генерации текста - помимо использования для прогнозных моделей, RNN и LSTM могут изучать последовательности проблемы и впоследствии генерировать новые полностью правдоподобные последовательности для проблемной области, такой как текст -поколение. Но они также могут быть очень мощными в том, что касается генерации данных о геолокации.

Вариационный автоэнкодер (VAE) для генерации изображений - Глубокие генеративные модели набирают все большую популярность. Архитектура VAE довольно интуитивно понятна и проста для понимания, она состоит из двух нейронных сетей - кодировщика и декодера, где кодировщик сопоставляет каждую запись с z-мерным стандартным распределением.

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

Путь к модели

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

Трансферное обучение

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

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

В процессе обучения передачи потребуется тонкая настройка, которая будет включать оптимизацию гиперпараметров и замораживание нескольких слоев (при необходимости). Вот реализация TransferLearning с предварительно обученной CNN с использованием Tensorflow2.0.

Косинусная потеря

Другой метод, который доказал свою эффективность, - это изменение функции потерь с cross_entropy на новый метод, называемый Cosine Loss.

Что такое косинусная потеря?
Косинусная потеря рассчитывается с учетом косинус-подобия и

  • f_theta (x) представляет параметры модели
  • Psi (y) представляет собой быстро закодированный вектор метки класса
  • σ_cos представляет собой косинусное сходство между двумя векторами.

Подробно об этом рассказывается в этой статье. Вместо традиционного метода, такого как кросс-энтропия, в процессе классификации с использованием косинусных потерь удалось значительно повысить точность модели. Точность классификации, полученная с помощью косинусных потерь, значительно превосходит кросс-энтропию после softmax на всех небольших наборах данных, при этом наибольшие относительные улучшения составили 30% и 21% для наборов данных CUB и NAB.

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

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

Они использовали предварительно обученную модель CNN на 4000 рентгеновских снимках грудной клетки вирусной и бактериальной пневмонии, из которых 122 относятся к COVID-19. Это оправдывает вариант использования небольших наборов данных вместе с использованием предварительно обученных моделей в таких случаях. По их данным, показатель AUC составляет ~ 0,997, что весьма впечатляет.

В этой статье объясняется использование генеративных моделей для дополнения данных с помощью тонко настроенного глубокого обучения передачи для ограниченного набора данных рентгеновских снимков грудной клетки. Используемые здесь предварительно обученные модели включают ResNet, GoogLeNet, AlexNet и SqueezeNet на наборе данных из 5863 рентгеновских снимков грудной клетки. В документе сделан вывод, что ResNet работает лучше по сравнению с другими, обеспечивая точность ~ 99%.

Вывод

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

Фабиана Клементе - директор по данным в YData.

Мы помогаем первопроходцам ИИ улучшать и генерировать высококачественные данные, чтобы они могли стать завтрашними лидерами отрасли