Я изучал полуобучаемые методы обучения и наткнулся на концепцию «псевдо-маркировки».
Насколько я понимаю, с псевдометкой у вас есть набор помеченных данных, а также набор немеченых данных. Сначала вы тренируете модель только по помеченным данным. Затем вы используете эти исходные данные для классификации (прикрепления предварительных меток) немаркированных данных. Затем вы подаете как помеченные, так и немаркированные данные обратно в обучение модели, (пере) подгоняя как известные метки, так и прогнозируемые метки. (Повторите этот процесс, перемаркировав обновленной моделью.)
Заявленные преимущества состоят в том, что вы можете использовать информацию о структуре немаркированных данных для улучшения модели. Часто показан вариант следующего рисунка, «демонстрирующий», что процесс может принимать более сложную границу принятия решения в зависимости от того, где находятся (немаркированные) данные.
Изображение из Wikimedia Commons от Techerin CC BY-SA 3.0
Однако я не совсем понимаю это упрощенное объяснение. Наивно, если исходный результат обучения только с меткой был верхней границей решения, псевдо-метки были бы назначены на основе этой границы решения. Это означает, что левая рука верхней кривой будет псевдо-маркирована белым, а правая нижняя кривая будет псевдо-маркирована черным. После переподготовки вы не получите хорошую границу принятия решения о кривых, поскольку новые псевдо-метки просто укрепят текущую границу решения.
Или, другими словами, текущая граница принятия решения только для меток будет иметь идеальную точность прогнозирования для немеченых данных (как мы и использовали для их создания). Там нет движущей силы (нет градиента), который заставил бы нас изменить местоположение этой границы решения, просто добавив данные с псевдо-меткой.
Правильно ли я считаю, что объяснение, представленное диаграммой, отсутствует? Или мне чего-то не хватает? Если нет, то есть польза от псевдо-меток, учитывая предварительно переобучение решения границы имеет идеальную точность по сравнению с псевдо-лейбл?
Предупреждение, я не эксперт по этой процедуре. Моя неспособность добиться хороших результатов не является доказательством того, что техника не может работать. Кроме того, ваше изображение имеет общее описание «полуконтролируемого» обучения, которое представляет собой широкую область с различными методами.
Я согласен с вашей интуицией, я не вижу, как такая техника может работать из коробки. Другими словами, я думаю, что вам потребуется много усилий, чтобы заставить его хорошо работать для конкретного приложения, и эти усилия не обязательно будут полезны в других приложениях.
Я попробовал два разных экземпляра, один с набором данных в форме банана, подобным тому, который показан на изображении примера, и другой более простой набор данных с двумя простыми нормально распределенными кластерами. В обоих случаях я не смог улучшить исходный классификатор.
В качестве небольшой попытки поощрения я добавил шум ко всем прогнозируемым вероятностям в надежде, что это приведет к лучшим результатам.
В первом примере я воссоздала вышеизложенное изображение как можно точнее. Я не думаю, что псевдо-маркировка сможет здесь вообще помочь.
Второй пример намного проще, но даже здесь он не может улучшить первоначальный классификатор. Я специально выбрал одну помеченную точку в центре левого класса, и правую сторону правого класса, надеясь, что она сместится в правильном направлении, не повезло.
Код для примера 1 (пример 2 достаточно похож, что я не буду здесь дублировать):
источник
Вот мое предположение (я тоже не очень разбираюсь в этой теме, просто хотел добавить свои два цента к этой дискуссии).
Я думаю, что вы правы, нет смысла обучать классическую модель и использовать ее прогнозы в качестве данных, потому что, как вы говорите, у оптимизатора нет стимула делать что-то лучше. Я бы предположил, что алгоритмы рандомизированного запуска с большей вероятностью найдут тот же самый оптимум, потому что они будут «более уверены» в том, что ранее найденный оптимум верен из-за большого набора данных, но это не имеет значения.
Тем не менее, первый полученный вами ответ имеет смысл - этот пример в Википедии говорит о кластеризации, и я думаю, что в этом вся разница. Когда у вас есть немаркированные данные, у вас, по сути, есть куча немаркированных точек, лежащих в некотором общем «скрытом пространстве признаков», как и другие помеченные. Вы действительно можете добиться большего успеха, чем алгоритм классификации, обученный на помеченных данных, если вы можете обнаружить тот факт, что немаркированные точки могут быть разделены и затем классифицированы на основе того, к какому классу принадлежат помеченные точки, в этом пространстве скрытых объектов.
Я имею в виду, что вам нужно сделать это:
... а затем повторите с немаркированными данными. Здесь изученные границы кластера не будут одинаковыми, потому что кластеризация не заботится о метках классов, все, что она учитывает, это преобразование пространства функций. При кластеризации создается пространство скрытых объектов, на котором изучается граница классификации, и это зависит только от помеченных данных.
Я полагаю, что алгоритмы, которые не выполняют какой-либо кластеризации, не смогут изменить свой оптимум на основании набора данных без меток.
Кстати, изображение, которое вы связали, справляется со своей задачей, и я думаю объяснить, что здесь происходит; граница решения определяется исключительно на основе алгоритма кластеризации. Вы понятия не имеете, какие здесь правильные классы - возможно, все они случайные - мы не знаем. Все, что мы можем теперь сделать, - это то, что в пространстве объектов, похоже, есть некоторая структура, и, похоже, существует некоторое отображение пространства объектов на метки классов.
На самом деле у меня нет ссылок, но в этом посте Reddit , насколько я понимаю, есть дискуссия о GAN, проводящем обучение под наблюдением. Это предчувствие, что он неявно выполняет кластеризацию с последующей классификацией.
источник