для получения мультимодальных векторных представлений. у меня по такой модели есть пара мутных вопросов...
обучаю модель для векторных представлений "изображение-текст". сетка основана на публикации по VSE++, только энкодеры для текста и изображений отличаются от тех, что описаны в работе. обучаю на MS COCO, получаю приемлемые значения top-1 recall для ранжирования "картинка-текст" и "текст-картинка" (хотя значения метрик чуть хуже, чем в оригинальной публикации). в то же время наблюдаю деградацию получившихся векторов на задаче ранжирования "текст-текст" (проверяю на STS и UNCORPUS, т.к. энкодер текста у меня мультиязычный). возникает первый вопрос: как предотвратить деградацию мультимодальных векторов для single-domain задачи? первое, что приходит на ум - заставить каждую из веток сиамской сети решать дополнительную single-domain задачу во время обучения. может есть другие идеи/варианты? в одном из экспериментов решил добавить batch normalization каждой из веток сиамской сетки. внезапно метрики на STS и UNCORPUS пришли в норму (деградация есть, но она позволительно мала по сравнению с обучением без batchnorm'а). в то же время значение функции потерь на валидации стало заметно выше, чем при обучении, и похоже что сеть переобучается. такое влияние batchnorm'a контринтуитивно (я ожидал увидеть ускорение обучения без оверфита, но с той же деградацией метрик), и кажется, что это скорее баг реализации. в итоге, возникает второй вопрос: почему batchnorm даёт такие результаты в данном случае?
Обсуждают сегодня