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

Материал из MachineLearning.

Версия от 18:11, 19 июля 2026; Vadim Iamaletdinov (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Статья написана с использованием LLM ChatGPT, GPT-5.6 Thinking и проверена участником Vadim Iamaletdinov 22:10, 19 июля 2026 (MSD)


Содержание

Трансферное обучение, или перенос обучения (англ. transfer learning), — направление машинного обучения, в котором знания, полученные при решении одной задачи или на одном наборе данных, используются для улучшения обучения в другой задаче или на других данных.

Обычная постановка машинного обучения предполагает, что обучающие и будущие объекты описываются одинаковыми признаками и получены из одного распределения. На практике это условие часто нарушается: размеченных данных для новой задачи мало, условия измерения изменились, появился новый язык или предметная область, а обучение большой модели с нуля слишком дорого. Трансферное обучение пытается использовать уже накопленные данные, параметры, признаки или отношения между объектами вместо полного начала обучения заново.[1]

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

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

Интуитивная идея

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

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

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

Формальная постановка

В классическом описании область задаётся пространством объектов X и распределением объектов P(X):

D=\{X,P(X)\}.

Задача задаётся пространством ответов Y и правилом предсказания f:

T=\{Y,f\}.

Пусть имеются исходная область и задача

D_S,\quad T_S,

а также целевая область и задача

D_T,\quad T_T.

Цель трансферного обучения — улучшить качество целевого правила f_T, используя знания из D_S и T_S, когда области или задачи различаются.[1]

Различаться могут:

  • распределения объектов;
  • множества признаков;
  • множества классов;
  • объёмы разметки;
  • функции потерь;
  • условия получения данных;
  • языки, устройства или предметные области.

Формальная запись полезна тем, что заставляет явно определить, откуда и куда переносится знание.

Что именно переносится

Объекты исходной выборки

Некоторые исходные примеры можно использовать при обучении целевой модели, назначив им веса в зависимости от сходства с целевой областью. Полезные объекты получают больший вес, непохожие — меньший.

Признаковое представление

Исходная модель может служить преобразованием

z=\phi(x),

которое переводит объект в новое пространство признаков. Целевая модель обучается уже по представлениям z.

Такой вариант часто называют использованием модели как фиксированного извлекателя признаков.

Параметры модели

Параметры исходной модели используются как начальные значения:

\theta_T^{(0)}=\theta_S.

После этого часть или все параметры дообучаются на целевых данных.

Отношения и структура

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

Основные сценарии

Фиксированный извлекатель признаков

Предварительно обученная модель разбивается на две части:

f(x)=g(\phi(x)).

Преобразование \phi фиксируется, а новая выходная часть g обучается на целевой выборке. Такой вариант требует сравнительно мало вычислений и подходит при очень маленьком наборе данных.

Недостаток состоит в том, что исходное представление не приспосабливается к особенностям новой задачи.

Полное дообучение

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

Частичное дообучение

Часть слоёв фиксируется, а остальные обновляются. В нейронных сетях нижние слои нередко сохраняют более общие признаки, а верхние слои сильнее связаны с исходной задачей. Исследование переносимости признаков показало, что их специфичность обычно возрастает в верхних слоях и зависит от близости задач.[1]

Постепенное размораживание

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

Предварительное обучение

Переносу обычно предшествует обучение исходной модели.

Обучение с учителем

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

Самообучение без ручной разметки

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

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

Обучение на нескольких задачах

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

Трансферное обучение в компьютерном зрении

В компьютерном зрении распространены два режима:

  • сеть используется как фиксированный извлекатель признаков;
  • сеть полностью или частично дообучается.

Официальный учебный пример PyTorch описывает оба сценария: замену последнего полносвязного слоя при фиксированной основной сети и инициализацию всей сети предварительно обученными весами с последующим дообучением.[1]

Типичный порядок действий:

  1. загрузить предварительно обученную модель;
  2. заменить выходной слой в соответствии с числом новых классов;
  3. определить, какие параметры будут обучаться;
  4. подобрать скорость обучения;
  5. провести валидацию на целевых данных;
  6. сравнить с обучением с нуля.

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

Пример на PyTorch

Следующий фрагмент создаёт предварительно обученную ResNet-18, фиксирует её параметры и заменяет классификатор:

from torch import nn
from torchvision import models

weights = models.ResNet18_Weights.DEFAULT
model = models.resnet18(weights=weights)

for parameter in model.parameters():
    parameter.requires_grad = False

number_of_features = model.fc.in_features
model.fc = nn.Linear(number_of_features, 3)

После замены выходного слоя обучаются только его параметры. Для полного дообучения фиксация параметров удаляется. Код является схемой; полный эксперимент также требует загрузчиков данных, функции потерь, оптимизатора, валидации и сохранения лучшей модели.[1]

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

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

ULMFiT предложил универсальную процедуру дообучения языковой модели для классификации текстов и показал, что предварительное языковое обучение может существенно уменьшить потребность в размеченных примерах.[1]

BERT показал масштабируемую схему предварительного обучения двунаправленных трансформерных представлений на неразмеченном тексте с последующим дообучением для различных языковых задач.[1]

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

Параметрически эффективная адаптация

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

Новая выходная часть

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

Адаптеры

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

Низкоранговая адаптация

Метод LoRA представляет изменение большой матрицы весов в виде произведения двух меньших матриц:

W'=W+\Delta W,\qquad \Delta W=BA.

Если W имеет размер d\times k, то матрицы B и A имеют размеры d\times r и r\times k, где r значительно меньше d и k. Вместо dk параметров изменения обучается

r(d+k)

параметров.

LoRA была предложена для адаптации больших языковых моделей с фиксированными исходными весами.[1]

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

Адаптация предметной области

Адаптация области (англ. domain adaptation) — частный случай трансферного обучения, при котором исходная и целевая задачи связаны, но распределения данных различаются.

Примеры:

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

Простейший случай изменения распределения признаков описывается как

P_S(X)\ne P_T(X).

При этом зависимость ответа от объекта может сохраняться или также изменяться. Если меняется правило

P_S(Y\mid X)\ne P_T(Y\mid X),

перенос обычно становится сложнее.

Методы адаптации могут:

  • изменять веса исходных объектов;
  • искать общее признаковое пространство;
  • выравнивать распределения представлений;
  • использовать небольшую размеченную целевую выборку;
  • обучать модель различать полезную и специфичную для области информацию.

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

Классификация постановок

В обзоре Pan и Yang выделяются несколько широких постановок.[1]

Индуктивный перенос

Целевая задача отличается от исходной, и для неё имеется хотя бы небольшая разметка. Типичный пример — дообучение предварительно обученной модели на новой классификации.

Трансдуктивный перенос

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

Неконтролируемый перенос

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

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

Отрицательный перенос

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

Причины:

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

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

Отрицательный перенос обнаруживается только сравнением с базовыми методами. Высокое абсолютное качество ещё не доказывает пользу переноса.

Забывание исходных знаний

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

Если требуется сохранить исходное качество, применяются:

  • небольшая скорость обучения;
  • фиксация части параметров;
  • регуляризация отклонения от исходных весов;
  • смешивание исходных и целевых данных;
  • отдельные адаптеры;
  • многозадачное обучение;
  • повторное проигрывание исходных примеров.

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

Выбор замораживаемых слоёв

Решение о замораживании зависит от объёма целевых данных и близости задач.

Условия Возможная стратегия Основной риск
Очень мало данных, задачи близки Фиксировать основу, обучать выходной слой Недостаточная адаптация
Умеренный объём данных, задачи близки Частично разморозить верхние слои Переобучение верхней части
Много данных или заметное различие задач Полное дообучение Большая стоимость и забывание
Очень большая модель Адаптеры или низкоранговая адаптация Ограниченная выразительность обновления
Области сильно различаются Предварительная адаптация области и проверка с нуля Отрицательный перенос

Эта таблица задаёт исходные гипотезы, а не универсальные правила. Стратегию следует выбирать по независимой валидации.

Скорость обучения

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

\eta_{\rm base}<\eta_{\rm head}.

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

При постепенном размораживании оптимизатор должен включать вновь открытые параметры. Также необходимо учитывать состояние нормализующих слоёв: фиксация весов и перевод модели в режим оценки — разные операции.

Нормализация и предварительная обработка

Предварительно обученная модель ожидает данные определённого вида. Несовпадение может свести пользу переноса к нулю.

Необходимо проверить:

  • размер и формат входа;
  • порядок цветовых каналов;
  • частоту дискретизации сигнала;
  • способ разбиения текста на элементы;
  • словарь и специальные символы;
  • масштаб и нормировку чисел;
  • правила обработки пропусков;
  • состояние слоёв нормализации.

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

Корректный эксперимент

Пользу переноса следует проверять сравнением нескольких вариантов:

  • обучение с нуля;
  • фиксированное представление;
  • частичное дообучение;
  • полное дообучение;
  • параметрически эффективная адаптация;
  • простая модель на ручных признаках.

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

Разделение данных

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

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

Выбор контрольной точки

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

Несколько случайных запусков

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

Кривая качества по объёму данных

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

Пусть качество модели при n размеченных примерах равно Q(n). Сравнение

Q_{\rm transfer}(n)-Q_{\rm scratch}(n)

показывает, при каком объёме данных перенос особенно полезен и сохраняется ли преимущество при росте выборки.

Иногда перенос даёт большой выигрыш на малых данных, а при достаточном объёме обучение с нуля сравнивается с ним или превосходит его.

Пример практической задачи

Пусть требуется распознавать три типа дефектов по 600 промышленным фотографиям. Возможный план:

  1. разделить данные по физическим изделиям, а не по отдельным кадрам;
  2. взять модель, предварительно обученную на большой коллекции изображений;
  3. заменить выходной слой на три класса;
  4. обучить только новый слой;
  5. частично разморозить верхние блоки и повторить эксперимент;
  6. провести полное дообучение с малой скоростью;
  7. сравнить все варианты с небольшой моделью, обученной с нуля;
  8. исследовать матрицу ошибок и качество по типам оборудования;
  9. проверить модель на снимках из другого периода.

Такой эксперимент отвечает не только на вопрос «работает ли модель», но и на вопрос «действительно ли перенос был полезен».

Типичные ошибки

Отсутствие сравнения с обучением с нуля

Без базовой модели невозможно определить, дал ли перенос выигрыш.

Использование тестовой выборки при выборе режима

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

Несовместимая предварительная обработка

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

Слишком быстрое дообучение

Большие обновления способны разрушить исходные признаки за несколько шагов.

Полная фиксация слишком далёкой модели

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

Перенос скрытого смещения

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

Сравнение моделей с разным вычислительным бюджетом

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

Неясное происхождение весов

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

Применения

Трансферное обучение применяется:

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

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

Связь с близкими направлениями

Направление Основная идея Отличие
Трансферное обучение Использование знаний из одной области или задачи в другой Широкое общее понятие
Адаптация области Перенос между различающимися распределениями данных Обычно задача сохраняется, а область меняется
Многозадачное обучение Совместное обучение нескольких задач Перенос происходит во время общего обучения
Самоконтролируемое обучение Получение представлений без ручной разметки Часто является этапом предварительного обучения
Дообучение Обновление предварительно обученной модели Один из практических способов трансфера
Непрерывное обучение Последовательное освоение задач во времени Важно сохранять прошлые способности
Метаобучение Обучение способности быстро адаптироваться Оптимизируется сам процесс адаптации

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

Ограничения

Зависимость от сходства задач

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

Зависимость от исходных данных

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

Большая вычислительная стоимость

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

Непрозрачность происхождения модели

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

Нестабильность на малых выборках

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

Изменение среды после внедрения

Даже успешно адаптированная модель может ухудшиться при дальнейшем сдвиге данных. Требуются мониторинг и повторная проверка.

Практические рекомендации

Перед переносом полезно ответить на вопросы:

  • Какие знания предполагается перенести?
  • Насколько близки исходные и целевые данные?
  • Совпадают ли форматы входа и ответа?
  • Достаточно ли целевой разметки для проверки?
  • Как будет измеряться польза переноса?
  • Есть ли базовая модель без переноса?
  • Какие вычислительные ограничения действуют?
  • Нужно ли сохранять исходные способности?
  • Известно ли происхождение и лицензия весов?
  • Какие подгруппы данных требуют отдельной оценки?

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

История

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

В 1990-х и 2000-х годах исследовались многозадачное обучение, адаптация области, перенос признаков и использование связанных выборок. Обзор Pan и Yang 2010 года систематизировал основные постановки трансферного обучения и их связь с изменением областей и задач.[1]

Распространение больших размеченных наборов изображений сделало популярным перенос параметров глубоких свёрточных сетей. Работа Yosinski с соавторами исследовала, какие уровни нейронной сети создают более общие или более специфичные признаки.[1]

В обработке текста ULMFiT и BERT закрепили схему крупномасштабного предварительного обучения с последующей адаптацией.[1][1]

Рост размера моделей привёл к развитию параметрически эффективных методов, включая LoRA, которые позволяют хранить небольшие наборы адаптационных параметров вместо полной копии модели.[1]

Современное трансферное обучение объединяет предварительное обучение, адаптацию области, дообучение, работу с малым количеством примеров и контроль отрицательного переноса.

См. также

Примечания


Литература

Личные инструменты