Часто тонкая настройка глубокой нейронной сети — это больше искусство, чем наука/инженерия. Какая скорость обучения наиболее оптимальна? Сколько слоев заморозим? Должны ли мы использовать разные скорости обучения в зависимости от слоя? В большинстве случаев многие из этих вопросов решаются методом проб и ошибок (и частично с помощью AutoML). Не будет ли лучше взять предварительно обученные веса по мере их поступления, использовать архитектуру в качестве экстрактора признаков и обучить поверх нее «традиционную» модель, такую ​​как машины опорных векторов или случайные леса? Другими словами, лучше ли верхняя настройка (помимо того, что она проще) тонкой настройки?

В [1] авторы провели несколько экспериментов, чтобы пролить свет на различия между тонкой настройкой и верхней настройкой. В частности, они решили проблему классификации изображений. Выполнив сотни процессов обучения, включающих 32 целевых набора данных и 99 различных настроек, они показали, что подход с верхней настройкой обеспечивает сравнимую с точной настройкой точность в большинстве экспериментов, при этом время обучения на один-два порядка меньше. Эти результаты показывают, что верхняя настройка предлагает практическую альтернативу для тонкой настройки в небольших/средних наборах данных (как это обычно бывает с наборами сельскохозяйственных данных), особенно когда эффективность обучения имеет решающее значение. Наконец, их результаты показывают, что преимущества тонкой настройки не сильно зависят от архитектуры предварительно обученной модели; с другой стороны, выбор подходящего набора данных для предварительной подготовки существенно влияет на точность, особенно в случае верхней настройки. Мы настоятельно рекомендуем ее прочитать!

В нашем репозитории Gihub мы реализовали пример топ-тюнинга с помощью:

  • Извлечение признаков: EfficientNetB0.
  • Верхний классификатор: случайные леса.

Мы использовали четыре разных набора данных Eden в качестве эталона, и производительность была довольно высокой. При этом время обучения было намного меньше необходимого для доводки. Кроме того, практически отсутствовала необходимость настройки гиперпараметров (мы просто использовали гиперпараметры по умолчанию, предоставленные Scikit-learn). Поскольку мы использовали timm для создания экземпляра предварительно обученного экстрактора функций EfficientNetB0, этот блокнот можно легко расширить за счет множества других архитектур.

В нашем репозитории Записные книжки библиотеки Eden вы можете найти множество записных книжек, реализующих различные методы глубокого обучения. Эти записные книжки полностью функциональны и могут быть легко изменены в соответствии с индивидуальными потребностями.
Если вы найдете эти записные книжки привлекательными, мы будем очень признательны за вашу поддержку в виде звезды и обмена с вашими коллегами.

https://github.com/Eden-Library-AI/eden_library_notebooks

[1] Альфано П.Д., Пасторе В.П., Росаско Л. и Одоне Ф. (2022). Тонкая настройка или топ-тюнинг? Перенос обучения с предварительно обученными функциями и быстрыми методами ядра. ArXiv, абс/2209.07932.

Проверьте наши соответствующие записные книжки Eden Library