Это 19-й день моего участия в ноябрьском испытании обновлений.Подробности о событии:Вызов последнего обновления 2021 г.
Три корейца опубликовали на EMNLP 2021 Findings статью под названиемАдвокат дьявола: новый метод повышения ансамбля на основе психологических данных для классификации текстов, Devil's Advocate есть одноименный фильм, который переводится как "Адвокат дьявола". Они в основном бросают вызов традиционным методам слияния моделей, таким как Hard-Voting, Soft Voting, Bagging и т. д. исходный код вHwiyeolJo/DevilsAdvocate
В процессе группового принятия решений большинство людей будет мыслить согласно устоявшемуся мышлению, а Адвокатом Дьявола называют тех людей, чьи мнения расходятся с мнением большинства людей Существование Адвоката Дьявола может стимулировать групповой мозговой штурм и сломать навязчивое мышление . Обратитесь к Википедии для вышеизложенногоАдвокат дьявола
Ensembles
Прежде чем подробно объяснить авторский метод, давайте кратко рассмотрим распространенные методы слияния моделей.
Soft Voting
Мягкое голосование представляет собой средневзвешенное значение оценок предсказания различных моделей.Например, в задаче с тремя классами первая модель предсказывает выборку с вероятностью [0,2, 0,1, 0,7], вторая модель предсказывает вероятность выборка составляет [0,2, 0,6, 0,2], прогнозируемая вероятность третьей модели для этой выборки составляет [0,1, 0,7, 0,2], если предположить, что веса голосования трех моделей равны, то окончательная прогнозируемая вероятность выборки равна
Таким образом, в конце концов, этот образец считается классом 2. Однако на самом деле во многих случаях модель хороша или плоха, поэтому наши веса не обязательно средние.Для моделей с более мощными моделями мы дадим им относительно большой голос (вес голосования).
Hard Voting
Жесткое голосование можно рассматривать как вариант мягкого голосования или взять в качестве примера распределение вероятностей, предсказанное тремя вышеуказанными моделями. Первая модель предсказывает, что образец относится к классу 2, а вторая и третья модели считают, что образец относится к классу 2. Согласно правилу большинства, образец считается классом 2.
Bagging
Основная идея метода Бэггинга — «демократия». Во-первых, случайным образом выберите несколько образцов из обучающего набора с заменой, выберите n раз, обучите n слабых моделей и используйте эти n моделей для получения результатов классификации путем голосования.Если это проблема регрессии, рассчитайте средний результат модели как окончательный результат результат
Boosting
Основная идея бустинга — «выбрать элиту». Самое существенное различие между бустингом и бэггингом заключается в том, что они не одинаково обращаются со слабыми моделями, а выбирают «элиту» посредством непрерывного тестирования и отбора, а затем предоставляют элите больше прав голоса, в то время как плохо работающие модели получают больше голосов. право голоса
Proposed Method: Devil's Advoc
Training Norm and DevAdv models
Независимо от того, какой метод вы используете для слияния моделей, вам нужно как минимум 2 или более моделей. Метод, предложенный автором, требует как минимум трех моделей, которые делятся на два лагеря: Нормальные модели (, ), модель "Адвокат дьявола" (DevAdv)
Сначала мы используем традиционный тренинг Cross Entropy Loss.Модель
в,дапрогнозируемое значение модели,является истинной этикеткой. с обучениемВ отличие от модели, нам нужно случайным образом генерировать метки ошибок, которые не пересекаются с истинными метками, для обучения модели DevAdv (непересекающиеся означает, что ни один образец не имеет той же метки ошибки, что и истинная метка), а сгенерированная метка ошибки, функция потерь модели DevAdv определяется следующим образом:
Поскольку модель DevAdv обучена с неправильными метками, модель действует как «адвокат дьявола» и не согласуется с прогнозируемыми распределениями других моделей. В частности, мы можем проверитьИспользуются ли метки достоверности для оценки производительности модели DevAdv.
Обратите внимание, что функция выше,нет, потому что проситЯсно, что большинство предсказанных результатов, но если вероятность предсказания истинного класса наименьшая, т.е.Поймите, мы думаем, что DevAdv очень разрушительный
Group Discussion: Fine-tuning
Я почувствовал себя странно, когда увидел этот заголовок, это не предварительно обученная модель, как может быть этап тонкой настройки? Почитав внимательно их код, я понял, что название у него нехорошее, его надо называть не Fine-tuning, его надо называть Discussing или Ensembles, то есть этап слияния моделей. Конкретно все модели мы обучили до этого, а потом нужно ввести DevAdv и обучить зановоМодель. В частности, текущий этап будет обновлять толькоПараметры модели, параметры модели DevAdv обновляться не будут
У меня такое ощущение: "DevAdv, ты научился поднимать планку, мешатьих обсуждение».
заДля модели функция потерь в это время совершенно особенная.
Только вывод модели DevAdv нормализуется,Модель не нормализована, цель состоит в том, чтобы сделатьПрогнозируемые значения распределения намного больше, чем нормализованные значения DevAdv. В CE Loss модель DevAdv предотвращаетМодель правильно соответствует истинным этикеткам. Но в процессе «Обсудить», даже с вмешательством модели DevAdv,Модель также может правильно предсказать истинную метку в конце, в основном по следующим причинам:
- Модель DevAdv не обновляет параметры на этом этапе, поэтому она становится фиксированным генератором шума.Параметры модели будут корректироваться с потерями, так что эффект однозначно будет улучшаться постепенно, что предсказуемо.
- Очень особенный момент заключается в том, чтопотеря.Модели будут взаимодействовать друг с другом и узнавать информацию от других моделей Норма в процессе «Обсуждения».
Наконец, при тестировании тестового набора используется комбинация механизмов мягкого голосования.результаты модели. И... тогда все кончено? Наш хорошо обученный DevAdv просто шумит на этапе «Обсудить»? Давай, DevAdv. Если подумать, когда мы впервые обучили модель DevAdv, метрики, которые мы оценили, были
мы будемВсе значения внутри отрицательные, аизменить на, его результат остается неизменным
Но на данный момент мы можем привлечь к участию DevAdv.Модель находится в процессе тестирования, по сути, это эквивалентно мягкому голосованию трех моделей вместе, На данный момент прогнозируемый результат
Results
По сути, это метод слияния моделей, и теоретически применимы все модели. Сначала мы рассмотрим исследование абляции
Среди них удалена более важная часть DiscussLoss Что такое DiscussLoss, по сути, этоСтадия, на которой модели обсуждают друг друга, т.е.потеря. После удаления этой части, кроме набора данных Yelp, одни аномально увеличились, другие в разной степени уменьшились. При этом авторы доказывают, что их метод может использовать более 3-х моделей, например последний ряд, они используют 4 модели, в том числе 3 нормальные модели и одну DevAdv, хотя эффект не такой хороший, как в случае использования 3-х модели (первый ряд), но все же лучше, чем обычное софт-голосование, в частности, в это время они используют дивергенцию KL вместо потери MSE
Затем автор использовал модели на основе TextCNN и Transformers соответственно (в статье не было написано, использовался ли BERT или RoBERTa. Если нельзя использовать преобразователи напрямую, как можно классифицировать модель seq2seq?) Был проведен ряд экспериментов. .
В принципе, метод, предложенный автором, лучше, чем мягкое голосование, но меня особенно интересует жесткое голосование, и почему бы не сравнить некоторые другие методы слияния моделей?
Персональное резюме
В первую очередь хочу пожаловаться на эстетическое чутье автора.Математическая формула в оригинальной статье очень уродлива.В принципе, такое ощущение, что пользуешься ею напрямую.\text{}
Скомпонуйте кадр, а затем набросайте, вот скриншот для ознакомления
Вторая часть, которую я обвел красным на картинке выше (эта же формула не обрамлена красной рамкой ниже), я думаю, что это неправильная формула и я пропустил, вы можете сравнить формулу в моей статье с формулой в его статье. Последнее мне кажется более интересным, потому что просто глядя на процесс "Обсудить", DevAdv действует только как нарушитель спокойствия, так почему я не могу напрямую попробовать послушаниеКак насчет векторного распределения , используйте это распределение для прямой замены, пока я не увидел уравнение (6), я не понимал, что DevAdv не только действует как генератор шума, на самом деле он также может участвовать в финальном этапе вывода, который невозможно просто сэмплировать из векторного распределения. Автор не проводил в своей статье проверки на надежность, на самом деле я думаю, что введение модели Девила для введения в заблуждение процесса обучения модели может повысить надежность модели.