Изменения

Перейти к: навигация, поиск

Активное обучение

1313 байт добавлено, 16:58, 2 февраля 2020
Нет описания правки
'''Активное обучение''' (англ. ''Active learning'') - область машинного обучения, где в отличие от обучения с учителем имеется набор неразмеченных данных и оракул, способный размечать данные. Зачастую обращение к оракулу затратно по времени или другим ресурсам. Требуется решить задачу, минимизируя количество обращений к оракулу.
 
Для вызова оракула обычно требуется привлечение человеческих ресурсов. В роли оракула может выступать эксперт, размечающий текстовые документы, изображения или видеозаписи. Помимо временных затрат могут быть и значительные финансовые, например, провести анализ химического соединения или реакции.
Требуется восстановить функцию $a : X \rightarrow Y$, минимизируя количество обращений к оракулу.
 
На каждой итерации алгоритм фиксирует три множества:
 
1. $X_{unlabeled}$ - множество еще не размеченных объектов.
 
2. $X_{labeled}$ - множество размеченных, которые удовлетворяют некоторому порогу уверенности в классификации.
 
3. $X_{query}$ - множество объектов, которые подаются на вход оракулу. Заметим, что не всегда $X_{query} \subset X_{unlabeled}$, поскольку алгоритм может сам синтезировать объекты.
== Основные стратегии ==
* '''Отбор объектов из выборки''' (англ. ''Pool-based active learning''). Имеется некоторая выборка, и алгоритм использует объекты из нее в качестве запросов к оракулу. В данной стратегии каждому объекту присваивается степень информативности - то есть сколько выгоды принесет информация об истинной метке объекта, и оракулу отправляются самые информативные объекты.
* '''Отбор объектов из потока''' (англ. ''Selective sampling''). Алгоритм пользуется не статической выборкой, а потоком данных, и для каждого объекта из потока принимается решение, запрашивать оракула на этом объекте или самому присваивать метку согласно текущему классификатору.
* '''Синтез объектов''' (англ. ''Query synthesis''). Вместо использования заранее заданных объектов, алгоритм сам конструирует объекты и подает их на вход оракулу. Например, если объекты - это вектора в n-мерном пространстве, разделенные гиперплоскостью и решается задача бинарной классикации, имеет смысл давать оракулу на вход синтезированные вектора, близкие к границе.
Зафиксируем модель на некотором этапе обучения и обозначим за $P(y | x)$ вероятность того, что объект $x$ принадлежит классу $y$. Приведем основные меры неуверенности для текущей классификации:
* Максимальная энтропия(англ. ''Maximum Entropy'')
$\Phi_{ENT}(x) = - \sum\limits_y{P(y | x) \log{P(y | x)}}$ - энтропия классификации на объекте $x$. Чем больше энтропия - тем больше неуверенность в классификации.
* Минимальный отступ(англ. ''Smallest Margin'')
$\Phi_{M}(x) = P(y_1 | x) - P(y_2 | x)$ - отступ (англ. ''margin'') от $y_1$ - самого вероятного класса до $y_2$ - второго по вероятности класса. Очевидно, что если отступ велик, то велика и уверенность, потому что один класс заметно выигрывает у всех остальных. Поэтому имеет смысл запрашивать оракула на объектах с минимальным отступом.
* Минимальная уверенность(англ. ''Least Confidence'')
$\Phi_{LC}(x) = 1 - P(y_1 | x)$,  где $y_1$ - наиболее вероятный класс. Интересующие нас объекты - объекты с минимальной уверенностью.
52
правки

Навигация