Самостоятельное обучение

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

В целом существует три класса методов автоматической маркировки.

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

Что потом? Автоматически размеченные данные можно использовать либо непосредственно для обучения модели, которая решает конечные задачи (такие как анализ тональности, классификация и т. д.), либо для "подделки" задачи, чтобы узнать скрытое представление (встраивание) для других реальных задач.

Контрастное обучение

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

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

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

Различные функции потерь и методы выборки

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

Функции потерь

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

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

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

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

  • Красный — похожие пары, синий — разные пары

Мягкая потеря ближайших соседей – используйте известные метки $(x_i, y_i)$, где x – выборка, а y – метка. В числителе используются пары выборок из одного и того же класса, а в знаменателе — пары из любого класса. $f$ — функция подобия. $\tau$ — это гиперпараметр («температура»), который определяет, насколько сконцентрированы функции в пространстве встраивания. Более низкая температура означает, что удаленные точки не будут так сильно влиять на потери.

Существуют и другие функции потерь, такие как оценка контрастности шума и потеря информации.

Методы отбора проб

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

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

  • Для пакетной отрицательной выборки для каждой положительной пары $(x_i, y_i)$ любые $(x_i, y_i)$ и $(x_j, y_i)$ рассматриваются как отрицательные пары.
  • "Полное отрицание" — это пары с разными ярлыками, но встраивание которых очень близко друг к другу. В некоторых случаях модели должны извлечь уроки из этих жестких негативов, чтобы работать хорошо.

Чтобы убедиться, что модели извлекают уроки из этих жестких отрицательных образцов, мы можем сделать либо

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

SimCLR — для встраивания изображений. Используйте два способа аугментации данных, чтобы создать 2N положительных выборок для каждого изображения. Отрицательные получаются из выборки в пакете, поэтому мы получаем 2N-1 отрицательных образцов на каждый положительный образец. Он использует базовый кодировщик (f) для каждой пары точек данных и проекционную головку (g), которая пытается максимизировать совпадение для положительных пар и минимизировать его для отрицательных пар. .

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

Ссылка

[1] Глубокое обучение с TensorFlow и Keras — Третье издание — Глава: Самостоятельное обучение