Информационный бюллетень активного обучения

Активное и полу-контролируемое машинное обучение: 26 октября - 13 ноября.

Подборка последних препринтов arXiv по активному (а иногда полу- или слабо контролируемому) глубокому обучению

Предыдущий выпуск:



Здесь вы также можете найти все мои текущие информационные бюллетени по активному обучению.

Одно из моих личных преимуществ от написания этих двухнедельных информационных бюллетеней заключается в том, что они дают мне возможность из первых рук увидеть, какие темы исследований набирают обороты, хотя и в академических кругах (не путать с отраслью, хотя последние наверняка наверстают упущенное. достаточно скоро). Два предмета, которые я вижу все чаще, - это машинное обучение на основе графиков и активное обучение. Поскольку вы читаете этот информационный бюллетень, я предполагаю, что вам не нужно введение в активное обучение (но на всякий случай вот пара сообщений в блоге, с которых вы начнете: Активное обучение: теория и Активное обучение). Обучение с PyTorch »). Машинное обучение на основе графов - это то, о чем я говорил в предыдущих выпусках информационного бюллетеня, но позвольте мне повторить здесь свое мини-резюме для вашего удобства:

Машинное обучение на основе графиков 101

Думайте о каждой точке данных, которая у вас есть, как о узле графа. Допустим, каждый узел соответствует профилю человека в Facebook. Мы нарисуем грани между (т. Е. Соединим) те узлы, которые дружат друг с другом на Facebook. Узлы могут, но не обязательно, иметь характеристики (например, возраст, пол человека, политические взгляды, которые он сам описывает, а также наличие у него кошки). Теперь предположим, что вы хотите выяснить, может ли данный человек поддержать идею изоляции, навязанной Covid, или нет. Другими словами, задача бинарной классификации. (Вы можете пометить те узлы, которые явно выразили свою поддержку или пренебрежение блокировкой, в своем профиле, и обучить их.) Если вы не хотите делать какие-либо из этих причудливых графических вещей, вы можете просто обучить классификатор с функциями, которые вы тренировочные данные имеют. Однако вы предполагаете, что человек, который дружит с большим количеством сторонников изоляции, с большей вероятностью разделяет эти взгляды, чем человек, чей круг друзей в Facebook решительно выступает против приказа оставаться дома. Если бы мы только могли включить такую ​​реляционную информацию в наше моделирование ... Подождите, мы действительно можем: пока мы используем граф (узлы + их соединения с другими узлами) вместо простых узлов в качестве входных данных для нашей модели. Это может показаться странным, но в каком-то смысле вы уже это делаете. Подумайте, например, о классификации изображений: изображение 1024 x 1024 можно рассматривать как сетку - очень скучный график, который имеет фиксированный размер и одинаковую топологию везде, кроме границы изображения. Каждый узел (пиксель) имеет заданное количество функций (которые определяют цвет пикселя). Обобщение знакомых понятий машинного обучения с сетки на граф произвольной сложности нетривиально, но возможно.

Вернемся к тому, что нового в arXiv. Вы знаете, как выборка неопределенности (приоритезация экземпляров данных, в которых модель меньше всего уверена) имеет тенденцию подбирать выбросы из набора данных? (Вот почему на практике вы обычно хотите запрашивать метки для данных, которым модель присвоила средние, а не самые низкие оценки достоверности!) в пространстве функций. Однако как только мы начинаем работать с графами, к смеси добавляется дополнительная информация, а именно структура графа, то есть то, как связаны разные узлы. Грубо говоря, чем меньше соединений, тем меньше у нас реляционной информации о данном узле. Отсюда следует, что подход к выборке неопределенности будет смещен для определения приоритета редко связанных узлов. Как и выбросы в пространстве функций, узлы с небольшим количеством подключений, как правило, не самые полезные для наших целей.

Для решения этой и других проблем авторы Deep Active Graph Representation Learning используют комбинацию выборки неопределенности и стратегии запросов на основе репрезентативности:



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

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



Допустим, у вас есть несколько обучающих выборок (также называемых наблюдениями): O1, O2 и O3. Каждый из них может быть назначен одному из двух классов: y1 или y2. (В нашем примере ниже O3 не помечен.) Эти образцы живут в четырехмерном пространстве, то есть они описываются четырьмя функциями: F1, F2 , F3 и F4. Если вы посмотрите на таблицу в верхнем левом углу рисунка ниже, вы увидите, что в некоторых наблюдениях отсутствуют значения для определенных функций.

Первое, что мы делаем, это говорим, что наши три наблюдения являются узлами (довольно стандартными), как и наши четыре функции (не такими стандартными). Примечание: не значения, которые функции имеют для данного узла, а фактические функции. Затем мы соединяем все узлы наблюдения со всеми узлами функций. Это создает двудольный граф - двудольный просто означает, что существует два типа узлов (например, O и F), и все ближайшие соседи O узлы - это узлы F, и наоборот. Мы присваиваем значение, которое имеет наблюдение Oi для функции Fj, ребру ‹ij›, которое соединяет эти два узла (почему бы и нет).

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

Автоматическое распознавание речи (ASR, также известное как преобразование речи в текст) - это технология, которую многие из нас используют полурегулярно, а именно всякий раз, когда нам хочется поговорить с помощником Google, Siri или Alexa. Для обучения полностью контролируемых глубоких моделей ASR требуется ручная расшифровка больших объемов аудиоданных, а это дорогостоящий процесс, подверженный ошибкам. С другой стороны, неаннотированных аудиофайлов много, что делает эту область главным кандидатом для полууправляемого машинного обучения. Многообещающие результаты были достигнуты с помощью самообучения - относительно простого подхода начальной загрузки, при котором модель обучается на помеченных данных, затем предсказания модели с высокой степенью достоверности [псевдо] помечаются автоматически, а модель повторно обучается. Что, если бы мы решили сохранить несколько прогнозов для каждой немаркированной аудиопоследовательности, которую мы псевдо-пометили? Действительно, авторы Полу-контролируемого распознавания речи с помощью временной классификации на основе графиков показывают, что этот подход работает лучше, чем базовый уровень самообучения:



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



Помните ГАН? Дуэт Дискриминатор + Генератор, способный создавать жутко реалистичные фотографии? Условные GAN - это вариант, который генерирует данные, ну, ну, ну, условия. Это может быть метка класса, подаваемая в качестве входных данных в дополнение к вектору шума, который можно было бы использовать для обычного неконтролируемого GAN. Также может быть что-то более интересное, например, семантическая карта:

Семантические карты - это дорогостоящий вид аннотации данных. К счастью, создателям S2cGAN удалось обойтись всего с 5 (да, пятью!) помеченными парами карта-фотография и 29K непарных изображений, обучив свой GAN полу-контролируемым образом:



Мне нравится название следующего препринта: БЕРТАТЬ или НЕ БЕРТ, вот в чем вопрос. Этот вопрос возникает потому, что, хотя обучение контекстного встраивания, такого как BERT, на неконтролируемом (или, скорее, самоконтролируемом) языковом моделировании, отлично работает для многих последующих задач, это невероятно дорого с вычислительной точки зрения. Не говоря уже об экологических издержках! 😱 Можем ли мы достичь аналогичной производительности с помощью полууправляемого обучения, если мы будем использовать немаркированные данные в конкретной задаче (например, в конкретной последующей задаче), а не в независимом от задачи (предварительное обучение моделировании общего языка)? Да мы можем!



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

Что касается более интерактивной темы, я хотел бы пригласить вас на бесплатный вебинар, который я буду проводить совместно с Kairntech, французским стартапом в области НЛП, 17 декабря (17:30 CET). Мы начнем с удобного для новичков введения в активное обучение и поговорим о том, как Kairntech использует его для реальных случаев использования аннотаций данных НЛП.

Увидимся здесь со следующей дозой последних исследований в области активного обучения через пару недель!