В настоящее время двумя наиболее популярными областями использования трансферного обучения являются компьютерное зрение и обработка естественного языка (NLP), ставшие известными в последнее время благодаря GPT2 и GPT3. Если вам нужно напомнить о трансфертном обучении - методе использования и переобучения существующей модели машинного обучения (ML) на новых данных, а не создания новой модели с нуля - ознакомьтесь с этим блогом за прошлый месяц, Не запускайте свою модель с нуля - используйте трансферное обучение ».

При рассмотрении трансферного обучения необходимо ответить на три важных вопроса: когда переводить, что передавать и как передавать. До сих пор мы говорили о том, что передавать и как это делать, но когда следует передавать?

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

Когда использовать трансферное обучение

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

Изменение и / или повторное обучение существующей модели, если у источника и цели есть похожие домены

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

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

Поскольку основная часть работы связана с классификацией различных уровней характеристик автомобилей, зачем изобретать велосипед (это не каламбур)? В этом примере обе модели в конечном итоге классифицируют изображения транспортных средств, поэтому большая часть модели, вероятно, может быть заморожена. И хотя как исходные, так и целевые данные (автомобили и грузовики соответственно) относятся к одному домену (автомобили), этот подход, безусловно, может применяться и там, где есть разные исходные и целевые домены.

Переназначение существующей модели для другой области

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

Маленький набор данных

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

Подобная архитектура

Наконец, вы также можете исследовать трансферное обучение, когда создание новой модели приведет к такой же или аналогичной архитектуре, что и существующая. Например, модели классификации, сегментации и обнаружения объектов могут быть довольно сложными, но часто строятся с использованием общих шаблонов проектирования моделей, таких как U-Nets, ResNets, CNNs и т. Д. в конечном итоге воссоздать ту же топологию, почему бы не начать с существующей проверенной модели? Даже если архитектура должна измениться, а исходный домен будет полностью другим, вполне вероятно, что большинство слоев можно будет использовать повторно, даже если большую часть его нужно разморозить (например, для обработки нового домена).

В своей статье Понимание механизмов глубокого обучения с передачей медицинских изображений Равишанкар и др. показали, как передача модели, обученной выполнять классификацию изображений почечных проблем, изображенных на ультразвуковых изображениях, может превзойти современный конвейер с функциональной инженерией. Другой интересный пример описан в Передача нейронного стиля за 10 минут с VGG-19 и переносом обучения, где CNN VGG-19 и Передача нейронного стиля используются в качестве основы для создания новых изображений людей, которые выглядят так, как будто они были раскрашены.

И пока мы говорим о вариантах использования, обязательно загляните в наш блог ODSC East 2021, где мы обсуждаем нашу предстоящую демонстрацию ODSC. В демонстрации мы переобучаем модель для классификации группы микроскопических изображений (например, для здравоохранения) с использованием трансферного обучения. Здесь мы возьмем более обобщенную MobileNetV2, обученную с помощью весов ImageNet (то есть модель, обученную с большим набором данных), и перепрофилируем ее для использования на меньшем, более специализированном наборе микроскопических изображений. Это также избавит от необходимости создавать модель классификации изображений с нуля.

Передача обучения на практике

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

Ознакомьтесь с ImageNet, базой данных изображений, которая в настоящее время содержит более 20 000 категорий из более чем 14 миллионов изображений с аннотированными вручную описаниями. Разрабатываемая с 2006 года, ImageNet была создана для облегчения исследований и разработок в области компьютерного зрения, и многие специалисты по машинному обучению используют данные для определения базовых весов при обучении своих моделей.

В нашем предыдущем блоге о трансферном обучении - см. Демонстрацию на YouTube здесь - было показано, как можно легко воспользоваться этими ресурсами, создав Пользовательский компонент в PerceptiLabs, чтобы использовать существующую модель для трансферного обучения. В этом примере мы использовали модель MobileNetV2 из Keras Applications, предварительно загруженную весами из ImageNet, но есть множество других моделей на выбор. Мы также показали, как можно заморозить модель в PerceptiLabs для лучшей объяснимости и как ее функции визуализации позволяют понять, как переданная модель преобразует данные и, в конечном итоге, как она работает во время обучения.

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

Заключение

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