Автор: Тайлер Фолкман.
Компиляция: McGL
Вы наверняка видели такое освещение — глубокое обучение — самая популярная вещь после нарезанного хлеба. Он обещает решить ваши самые сложные проблемы с небольшой долей огромного объема данных. Единственная проблема в том, что вы не работаете ни в Google, ни в Facebook, и данных мало. Так что делать? Можете ли вы по-прежнему использовать возможности глубокого обучения? Или просто не повезло? Давайте посмотрим, как глубокое обучение можно использовать с ограниченными данными, и почему я думаю, что это может стать одной из самых интересных областей будущих исследований.
Начните с простого
Прежде чем мы обсудим методы глубокого обучения с ограниченными данными, забудьте о нейронных сетях и создайте простой тест. Опробование некоторых традиционных моделей (например, случайных лесов) обычно не занимает много времени. Это поможет вам оценить любые потенциальные улучшения в глубоком обучении и получить четкое представление о компромиссах глубокого обучения по сравнению с другими традиционными подходами к вашей проблеме.
Получить больше данных
Звучит смешно, но вы действительно считали, что можно собрать больше данных? Я поражен тем, как часто компании делают это предложение, они считают меня сумасшедшим. Да, со временем и деньгами можно собрать больше данных. На самом деле, это обычно ваш лучший выбор. Например, вы пытаетесь классифицировать редкий вид птиц, но у вас очень мало данных. Вы почти наверняка сможете решить эту проблему проще, просто пометив больше данных. Не знаете, сколько данных нужно собрать? Попробуйте построить кривую обучения и посмотрите, как изменится производительность модели по мере добавления данных.
Тонкая настройка
Хорошо. Предположим, теперь у вас есть простая базовая модель, и сбор дополнительных данных невозможен или слишком дорог. На этом этапе лучший способ попробовать — использовать предварительно обученную модель, а затем настроить ее для решения вашей задачи.
Основная идея точной настройки состоит в том, чтобы обучить нейронную сеть с очень большим набором данных, желательно чем-то похожим на предметную область ваших данных, а затем выполнить точную настройку этой предварительно обученной сети с меньшим набором данных.
Для задач классификации изображений этот ключевой набор данных — классический ImageNet. Этот набор данных содержит миллионы изображений во многих различных категориях и полезен для многих типов проблем с изображениями. В него входят даже животные, так что это может помочь в классификации редких птиц.
Увеличение данных
Если больше данных недоступно и точная настройка больших наборов данных невозможна, дополнение данных обычно является вашим вторым выбором. Его также можно комбинировать с тонкой настройкой.
Идея увеличения данных проста: изменить входные данные, не изменяя значения выходных меток.
Например, если у вас есть изображение кошки и вы поворачиваете изображение, это все еще кошка. Это хорошее увеличение данных. С другой стороны, если у вас есть изображение дороги и вы хотите предсказать соответствующий угол поворота рулевого колеса (беспилотный автомобиль), вращение изображения изменяет соответствующий угол поворота рулевого колеса. В этом случае улучшение данных, конечно же, невозможно.
Увеличение данных чаще всего используется для задач классификации изображений.
Вы часто можете придумать творческие способы применения увеличения данных к другим областям (например, NLP), и люди также пытаются использовать GAN для создания новых данных. Если вас интересуют методы GAN, вы можете посмотреть DADA (Deep Adversarial Data Augmentation).
Косинус потери
Недавняя статья «Глубокое обучение на небольших наборах данных без предварительного обучения с использованием косинусной потери», использующая косинусную потерю для глубокого обучения на небольших наборах данных без предварительного обучения, показала, что переключение функции потерь с категориальной кросс-энтропийной потери повышает точность на 30% на малых наборы данных для задач классификации при использовании косинусной потери.
На приведенном выше графике видно, как производительность меняется в зависимости от количества образцов на класс. Точная настройка очень важна для некоторых небольших наборов данных (CUB) и в меньшей степени для других (CIFAR-100).
Глубже
В статье NIP «Современные нейронные сети обобщают небольшие наборы данных» они рассматривают глубокие нейронные сети как ансамбли. В частности, «последние уровни могут обеспечивать механизм ансамбля, а не каждый уровень, представляющий возрастающую иерархию функций».
Мой вывод заключается в том, что для небольших данных убедитесь, что ваша сеть достаточно глубокая, чтобы воспользоваться преимуществами этого ансамблевого эффекта.
Автоэнкодеры
Был достигнут некоторый успех в использовании автоэнкодеров с накоплением для предварительной подготовки сетей с более желательными начальными весами. Это позволяет избежать локальных оптимумов и других ловушек неправильной инициализации. Но Андрей Карпати советует не слишком увлекаться неконтролируемой предварительной тренировкой.
Основная идея автоэнкодера — построить нейронную сеть с предсказуемыми входными данными.
Предыдущие знания
И последнее, но не менее важное: попытайтесь найти способы интегрировать специфические для предметной области знания, чтобы управлять процессом обучения. Например, в статье «Изучение понятий на человеческом уровне посредством индукции вероятностной программы» посредством индукции вероятностной программы авторы строят модель, которая строит концепции из частей, используя предварительные знания о процессе. В то время это превзошло методы глубокого обучения и достигло производительности человеческого уровня.
Вы также можете применить знания предметной области, чтобы ограничить ввод сети, чтобы уменьшить размерность или настроить структуру сети, чтобы она была меньше.
Я сделал это в крайнем случае, потому что интеграция предыдущих знаний является сложной задачей и часто занимает больше всего времени.
Making Small Cool Again
Надеюсь, эта статья дала вам некоторые идеи о том, как использовать методы глубокого обучения с ограниченными данными. Я считаю, что этот вопрос в настоящее время недостаточно обсуждается, как и должно быть, но он имеет большой смысл.
Многие из этих проблем существуют и сегодня: данные очень ограничены, а получение дополнительных данных дорого или невозможно. Например, выявление редких заболеваний или результатов обучения. Поиск способов применения наших лучших методов (таких как глубокое обучение и т. д.) к этим проблемам — это очень увлекательно!
источник:к data science.com/how-to-use-…