Настройка моделей машинного обучения: простой способ

1. Введение

2a934d0e86f14118.png

Последнее обновление: 28 марта 2022 г.

Машинное обучение

Машинное обучение — это область, которая развивается с головокружительной скоростью. Каждый день публикуются новые исследования и возможности, позволяющие использовать такие варианты использования, которые раньше были невозможны.

Эти выпуски обычно имеют в результате модель. Модели можно понимать как очень длинные математические уравнения, которые с учетом входных данных (например, изображения) выдают результат (например, классификацию).

  • Что, если вы захотите использовать одну из этих новых моделей со своими собственными данными?
  • Какую пользу вы можете извлечь из этих современных моделей для своего варианта использования или приложения?

Эта лаборатория кода проведет вас через процесс простой настройки моделей машинного обучения для ваших собственных данных.

Создание и обучение моделей машинного обучения сопряжено со многими проблемами:

  • Занимает много времени.
  • Использует большие объемы данных.
  • Требуются знания в таких областях, как математика и статистика.
  • Ресурсоемкий: обучение некоторых моделей может занять несколько дней.

Создание новой архитектуры модели занимает много времени и может потребовать многих экспериментов и многолетнего опыта. Но что, если бы вы могли использовать все эти знания и использовать их в своих собственных данных, просто адаптируя современные исследования для решения своей проблемы? Это возможно с помощью технологии Transfer Learning !

В этой лаборатории вы узнаете, как проводить трансферное обучение, почему оно работает и когда его использовать.

Что вы узнаете

  • Что такое трансферное обучение и когда его использовать.
  • Как использовать трансферное обучение.
  • Как точно настроить модели.
  • Как использовать TensorFlow Lite Model Maker.
  • Как использовать TensorFlow Hub.

Что вам понадобится

  • Весь код выполняется с использованием Google Colaboratory, поэтому вам не нужно ничего устанавливать на свой компьютер. Для входа в Colab вам нужен только доступ к Интернету и учетная запись Google.
  • Базовые знания TensorFlow и Keras API.
  • Знание Питона.

Если у вас нет базовых знаний о TensorFlow или машинном обучении, вы все равно можете узнать о трансферном обучении. Прочтите следующий шаг «Что такое трансферное обучение», чтобы узнать теорию, лежащую в основе этого метода, а затем перейдите к «Переносное обучение с помощью Model Maker». Если вы хотите углубиться и увидеть процесс более подробно, это будет доступно в разделах, посвященных трансферному обучению с помощью TensorFlow Hub.

2. Что такое трансферное обучение?

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

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

Существует два способа настройки модели машинного обучения.

  • Извлечение функций : используйте представления, изученные предыдущей сетью, для извлечения важных функций из новых образцов. Вы просто добавляете новый классификатор, который обучается с нуля, поверх предварительно обученной модели, чтобы можно было повторно использовать ранее изученные карты объектов для набора данных. Вам не нужно (пере)обучать всю модель. Базовая сверточная сеть уже содержит функции, которые в целом полезны для классификации изображений. Однако заключительная классификационная часть предварительно обученной модели специфична для исходной задачи классификации и, следовательно, специфична для набора классов, на которых обучалась модель.
  • Точная настройка : разморозьте несколько верхних слоев замороженной базовой модели и совместно обучите как вновь добавленные слои классификатора, так и последние слои базовой модели. Это позволяет нам «точно настроить» представления функций более высокого порядка в базовой модели, чтобы сделать их более подходящими для конкретной задачи.

Извлечение признаков обучается быстрее, но с помощью точной настройки вы можете добиться лучших результатов.

Вы попробуете оба варианта (извлечение функций и точную настройку), используя два разных способа трансферного обучения:

  • Библиотека TensorFlow Lite Model Maker автоматически выполняет большую часть конвейера данных и создания модели, что значительно упрощает процесс. Полученную модель также можно легко экспортировать для использования на мобильных устройствах и в браузере.
  • Модели TensorFlow Hub используют обширный репозиторий моделей машинного обучения, доступный в TensorFlow Hub. Исследователи и сообщество вносят свой вклад в эти модели, делая современные модели доступными гораздо быстрее и в большем разнообразии.

3. Передача обучения с помощью Model Maker

Теперь, когда вы знаете идею трансферного обучения, давайте начнем использовать библиотеку TensorFlow Lite Model Maker — инструмент, который поможет сделать это простым способом.

Библиотека TensorFlow Lite Model Maker — это библиотека с открытым исходным кодом, которая упрощает процесс трансферного обучения и делает его более доступным для разработчиков, не связанных с машинным обучением, таких как разработчики мобильных и веб-приложений.

Блокнот Colab проведет вас через следующие шаги:

  • Загрузите данные.
  • Разделить данные.
  • Создайте и обучите модель
  • Оцените модель.
  • Экспортируйте модель.

После этого шага вы можете начать проводить трансферное обучение со своими собственными данными, следуя тому же самому процессу.

Совместная лаборатория

Далее перейдем в Google Colab для обучения пользовательской модели.

Чтобы изучить объяснение и понять основы работы с блокнотом, потребуется около 15 минут.

Плюсы :

  • Простой способ настройки моделей.
  • Нет необходимости понимать TensorFlow или Keras API.
  • Инструмент с открытым исходным кодом, который можно изменить, если пользователю нужно что-то конкретное, еще не реализованное.
  • Экспортирует модель напрямую для выполнения на мобильных устройствах или в браузере.

Минусы

  • Меньше возможностей настройки, чем при самостоятельном построении полного конвейера и модели, как в двух предыдущих методах.
  • Даже при выборе базовой модели не все модели можно использовать в качестве базовой.
  • Не подходит для больших объемов данных, где конвейер данных более сложен.

4. Найдите модель в TensorFlow Hub.

К концу этого раздела вы сможете:

  • Найдите модели машинного обучения в TensorFlow Hub.
  • Разберитесь в коллекциях.
  • Познакомьтесь с различными типами моделей.

Чтобы заняться трансферным обучением, вам нужно начать с двух вещей:

  • Данные, например изображения объектов, которые вы хотите распознать.
  • Базовая модель, которую вы можете настроить в соответствии со своими данными.

Часть данных обычно зависит от бизнеса, но самый простой путь — сделать много фотографий того, что вы хотите распознать. А как насчет базовой модели? Где его найти? здесь может помочь TensorFlow Hub.

TensorFlow Hub — это репозиторий моделей для ваших нужд TensorFlow.

Вы можете искать и читать документацию по тысячам моделей, которые легко доступны для использования, и многие из них готовы к переносу обучения и точной настройке.

Поиск модели

Давайте сначала выполним простой поиск моделей для использования в TensorFlow Hub, которые вы сможете использовать в своем коде позже.

Шаг 1: В браузере откройте сайт tfhub.dev .

изображение главной страницы tfhub.dev

Для трансферного обучения в области изображений нам нужны векторы признаков . Векторы признаков похожи на модели классификации, но без головы классификации.

Векторы признаков могут преобразовывать изображения в числовое представление в N-м пространстве (где N — количество измерений выходного слоя модели).

На TFHub вы можете выполнить поиск именно векторов признаков, щелкнув конкретную карточку.

Изображение страницы tfhub.dev с квадратом, подчеркивающим задачу вектора признаков

Вы также можете выполнить поиск по названию модели с помощью фильтра слева, чтобы отображались только Image feature vectors .

Это изображение страницы поиска с сайта tfhub.dev после выбора задачи вектора признаков на главной странице.

Карты с синими значками представляют собой коллекции моделей . Если вы нажмете на коллекцию изображений, вы получите доступ ко множеству похожих моделей на выбор. Давайте выберем коллекцию изображений.

Это страница коллекции изображений с сайта tfhub.dev.

Прокрутите вниз и выберите MobileNet V3 . Подойдет любой из векторов признаков.

Это страница коллекции изображений с сайта tfhub.dev, немного прокрученная по сравнению с предыдущей страницей.

На странице сведений о модели вы можете прочитать всю документацию по модели, просмотреть фрагменты кода, чтобы опробовать модель, или даже опробовать ее непосредственно на блокноте Colab.

Страница сведений о векторной модели объектов mobilenetV3

На данный момент все, что вам нужно, это URL-адрес вверху. Это дескриптор модели и способ легкого доступа к модели из библиотеки TensorFlow Hub.

5. Перенос обучения с помощью TensorFlow Hub

Теперь, когда вы выбрали модель для использования, давайте настроим ее, загрузив с помощью метода KerasLayer из библиотеки TensorFlow Hub.

Этот метод загружает модель таким образом, чтобы ее можно было использовать в качестве слоя вашей модели, позволяя вам строить модель вокруг этого слоя.

Раньше, когда вы учились использовать Model Maker, все внутренности были скрыты от вас, чтобы было легче понять. Нет, вы увидите, что Model Maker делает за кулисами.

Совместная лаборатория

Далее перейдем в Google Colab для обучения пользовательской модели.

Чтобы просмотреть объяснения и понять основы работы с блокнотом, потребуется около 20 минут.

Плюсы :

  • Тысячи доступных моделей, предоставленных исследователями и сообществом и обученных на различных наборах данных.
  • Модели для всех задач, таких как зрение, текст и аудио.
  • Легко экспериментировать с разными похожими моделями. Изменение базовой модели может потребовать замены всего одной струны.

Минусы

  • Для использования моделей все еще требуется некоторый опыт работы с TensorFlow/Keras.

Если вы хотите пойти еще глубже, вы также можете выполнить Transfer Learning с помощью приложения Keras . Это очень похоже на использование TensorFlow Hub, но использует только основные API TensorFlow.

6. Поздравления

Поздравляем, вы узнали, что такое трансферное обучение и как его применять к собственным данным!

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

Вы попробовали 2 формы трансферного обучения:

  • Использование такого инструмента, как TensorFlow Lite Model Maker.
  • Использование вектора функций из TensorFlow Hub.

Оба варианта имеют свои преимущества и недостатки, а также множество возможных конфигураций для ваших конкретных нужд.

Вы также узнали, что можно пойти немного дальше и точно настроить модели, немного изменив их веса, чтобы они лучше соответствовали вашим данным.

Оба варианта позволяют выполнять тонкую настройку моделей.

Перенос обучения и точная настройка предназначены не только для моделей, связанных с изображениями. Поскольку идея состоит в том, чтобы использовать изученное представление домена для настройки вашего набора данных, его также можно использовать для текстовых и аудиодоменов.

Следующие шаги

  • Попробуйте это на своих собственных данных.
  • Поделитесь с нами тем, что вы создаете, и отметьте TensorFlow в социальных сетях вместе со своими проектами.

Узнать больше

Есть вопрос?