заглушки Что такое трансферное обучение? - Unite.ИИ
Свяжитесь с нами:
Мастер-класс по ИИ:

AI 101

Что такое трансферное обучение?

mm
обновленный on

Что такое трансферное обучение?

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

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

Решение проблемы глубокого обучения

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

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

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

Типы трансферного обучения

В общем, есть два разных виды трансферного обучения: разработка модели с нуля и использование предварительно обученной модели.

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

Во втором условии — использование предварительно обученной модели — вам просто нужно выбрать предварительно обученную модель для использования. Многие университеты и исследовательские группы сделают спецификации своих моделей общедоступными. Архитектуру модели можно скачать вместе с весами.

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

Тонкая настройка сети

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

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

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

Примеры трансферного обучения

Наиболее распространенными приложениями трансферного обучения, вероятно, являются те, которые используют данные изображения в качестве входных данных. Часто это задачи прогнозирования/классификации. Путь Сверточные нейронные сети интерпретация данных изображения позволяет повторно использовать аспекты моделей, поскольку сверточные слои часто различают очень похожие функции. Одним из примеров распространенной проблемы трансфертного обучения является задача ImageNet 1000, массивный набор данных, содержащий 1000 различных классов объектов. Компании, которые разрабатывают модели, обеспечивающие высокую производительность на этом наборе данных, часто выпускают свои модели по лицензиям, которые позволяют другим повторно использовать их. Некоторые из моделей, возникших в результате этого процесса, включают Модель Microsoft ResNet, начальная модель Google и Оксфордская модель VGG группа.

Блогер и программист со специализацией в Машинное обучение и Глубокое обучение темы. Дэниел надеется помочь другим использовать возможности ИИ на благо общества.