Итак, я пытаюсь обучить сеть SimCLR с помощью специальной легкой магистрали ConvNet (уже пробовал это с ResNet) на наборе данных, содержащем первые 5 букв алфавита, из которых две выбираются случайным образом и помещаются в случайные позиции на изображении. Я не уверен, какие расширения использовать в таком сценарии, поэтому я использую только перевод изображений, чтобы обеспечить некоторую степень различия между расширенными образцами.
Это звучит как чрезвычайно тривиальная задача, но она ОЧЕНЬ плохо работает с классификатором с несколькими метками, построенным на основе замороженной предварительно обученной сети. Я совершенно уверен, что это из-за того, насколько низкое качество изученных представлений, а не из-за линейного классификатора. Очевидно, это хорошо работает с контролируемым классификатором.
Варианты, которые я пробовал до сих пор:
- Сделал набор данных одной буквой, случайным положением (мульти-класс), и он работал очень хорошо.
- Создал набор данных со случайными буквами, но в том же центральном положении, и он работал хорошо. То же улучшение, упомянутое выше, и для них.
Пример изображения из набора данных (здесь метка [1, 1, 0, 0, 0] для букв, которые присутствуют)
Может кто-нибудь помочь мне разобраться, как это сделать?