В этом руководстве мы рассмотрим возможности самообучаемого обучения с использованием фреймворка Lightly AI. Мы начнём с создания модели SimCLR для изучения значимых представлений изображений без меток, затем сгенерируем и визуализируем вложения с помощью UMAP и t-SNE. Затем мы углубимся в методы отбора основного набора данных (coreset) для интеллектуального управления данными, симулируем рабочий процесс активного обучения и, наконец, оценим преимущества трансферного обучения с помощью линейной оценки пробника.
На протяжении всего практического руководства мы будем пошагово работать в Google Colab, обучая, визуализируя и сравнивая методы отбора основного набора данных и случайной выборки, чтобы понять, как самообучаемое обучение может значительно повысить эффективность использования данных и производительность модели.
Установка окружения
Сначала мы настроим окружение, обеспечив совместимость путём исправления версии NumPy и установив необходимые библиотеки, такие как Lightly, PyTorch и UMAP. Затем мы импортируем все необходимые модули для создания, обучения и визуализации нашей модели самообучаемого обучения, подтверждая, что PyTorch и CUDA готовы к ускорению на GPU.
Определение модели SimCLR
Мы определяем нашу модель SimCLR, которая использует ResNet в качестве основы для изучения визуальных представлений без меток. Мы удаляем классификационную головку и добавляем проекционную головку для отображения признаков в контрастивное пространство вложений. Метод модели extract_features позволяет нам получать необработанные вложения признаков непосредственно из основы для последующего анализа.
Загрузка набора данных
На этом этапе мы загружаем набор данных CIFAR-10 и применяем отдельные преобразования для этапов самообучаемого и оценки. Мы создаём специальный класс SSLDataset, который генерирует несколько дополненных представлений каждого изображения для контрастивного обучения, в то время как набор данных оценки использует нормализованные изображения для последующих задач. Такая настройка помогает модели изучать надёжные представления, инвариантные к визуальным изменениям.
Обучение модели самообучаемого обучения
Здесь мы обучаем нашу модель SimCLR в режиме самообучаемого обучения с использованием контрастивной потери NT-Xent, которая поощряет схожие представления для дополненных представлений одного и того же изображения. Мы оптимизируем модель с помощью стохастического градиентного спуска (SGD) и отслеживаем потери по эпохам для мониторинга прогресса обучения. Этот этап учит модель извлекать значимые визуальные признаки, не полагаясь на размеченные данные.
Генерация вложений
Мы генерируем вложения для всего набора данных, используя обученную модель. Затем мы визуализируем вложения с помощью UMAP или t-SNE, чтобы визуально увидеть структуру кластеров.
Выбор основного набора данных (coreset)
Далее мы курируем данные с помощью селектора основного набора данных, либо сбалансированного по классам, либо ориентированного на разнообразие (k-center greedy), чтобы определить наиболее информативные и нередублицированные выборки для последующего обучения.
Оценка линейного пробника
Мы замораживаем основу и обучаем лёгкий линейный пробник, чтобы количественно оценить, насколько хороши наши изученные признаки, затем оцениваем точность на тестовом наборе.
Основной pipeline
В основном конвейере мы предварительно обучаем с помощью SimCLR, генерируем вложения, курируем данные и оцениваем с помощью активного обучения, тем самым напрямую измеряя ценность интеллектуального отбора данных.
Заключение
Мы увидели, как самообучаемое обучение позволяет изучать представления без ручных аннотаций и как отбор основного набора данных (coreset) улучшает обобщение модели с меньшим количеством образцов. Комбинируя интеллектуальный отбор данных с изученными представлениями, мы можем создавать модели, которые являются одновременно ресурсоэффективными и оптимизированными по производительности, закладывая прочный фундамент для масштабируемых приложений машинного обучения.
1. Какие методы и инструменты используются для создания модели самообучаемого обучения в данном руководстве?
В данном руководстве используется фреймворк Lightly AI, а также библиотеки NumPy, PyTorch и UMAP. Для создания модели самообучаемого обучения определяется модель SimCLR, которая использует ResNet в качестве основы для изучения визуальных представлений без меток.
2. Какие преимущества даёт использование самообучаемого обучения с помощью Lightly AI для управления данными и активного обучения?
Самообучаемое обучение позволяет изучать представления без ручных аннотаций, что может значительно повысить эффективность использования данных и производительность модели. Кроме того, отбор основного набора данных (coreset) улучшает обобщение модели с меньшим количеством образцов.
3. Какие этапы включает в себя процесс обучения модели самообучаемого обучения с использованием SimCLR?
Процесс обучения модели SimCLR включает в себя следующие этапы:
* установка окружения и настройка библиотек;
* определение модели SimCLR;
* загрузка набора данных;
* обучение модели в режиме самообучаемого обучения с использованием контрастивной потери NT-Xent;
* генерация вложений для всего набора данных;
* визуализация вложений с помощью UMAP или t-SNE;
* выбор основного набора данных (coreset);
* оценка линейного пробника и точности на тестовом наборе.
4. Какие методы отбора основного набора данных (coreset) используются в данном руководстве?
В данном руководстве используются два метода отбора основного набора данных: сбалансированный по классам и ориентированный на разнообразие (k-center greedy).
5. Какие инструменты и методы используются для визуализации вложений в данном руководстве?
Для визуализации вложений в данном руководстве используются инструменты UMAP и t-SNE. Эти инструменты позволяют визуально увидеть структуру кластеров и лучше понять структуру данных.