Как обучаемая машинная передача Google учится прямо в вашем маленьком браузере

Машины могут видеть

С 2015 года, когда Resnet впервые превысил человеческий порог точности для классификации изображений, глубокое обучение покорило мир. Чтение исследований, в которых подробно описываются такие достижения, обычно создает впечатление, что модели глубокого обучения, которые действительно работают, требуют набора данных с миллионом помеченных изображений и кластера графических процессоров для их обучения. Но что, если бы у вас было всего несколько сотен изображений и ноутбук с процессором? С помощью обучаемой машины Google вы можете увидеть, насколько хорошо машины видят в течение нескольких минут.

Вот модель (нажмите, чтобы попробовать!), Которая может определить, является ли предмет тканью или книгой. Автор обучил его в своем браузере, используя всего 4 объекта - черную книгу, оранжевую книгу, белую ткань и желтую ткань. Мы делаем около 150 изображений каждого объекта в разной ориентации и обучаем модель менее чем за минуту, всего около 600 изображений. Вы надрали шины на этой модели? Почему бы не попробовать обмануть модель, показав ей желтую книгу и посмотреть, как она держится? Даже если вы успешно опровергли эту модель, весьма примечательно, что машина может научиться так точно классифицировать объекты за такое короткое время с таким небольшим количеством данных. Также волшебно, что вы можете ощутить всю мощь этой модели за несколько щелчков мышью, когда все происходит прямо в вашем браузере - ни сервера, ни графических процессоров. Итак, что же на самом деле под капотом?

Трансферное обучение

Обучаемая машина использует трансферное обучение; Метод, который использует передаваемые знания из другой модели и уточняет их, используя данные, доступные для конкретной задачи. Это в некоторой степени похоже на использование навыков, которые вы приобрели на предыдущей работе, на новом увлекательном рабочем месте. Люди и системы имеют разные имена, и проблемы могут выглядеть немного по-разному, но ваши основные аналитические навыки и навыки программирования по-прежнему полезны. Но если ваша смена профессии носит более фундаментальный характер, вы можете подумать о том, чтобы вернуться в школу, чтобы улучшить свои навыки машинного обучения. Может быть, вы хотите пройти этот продвинутый курс распознавания речи и понять, как обнаруживать обман в голосе. Ваши основные математические навыки по-прежнему актуальны, но вам пришлось выучить что-то довольно сложное, чтобы ваша следующая работа заработала.

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

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

Гайки и болты

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

1. Возьмите обученную модель MobileNet [1], 28-слойную модель CNN для классификации изображений.

2. Обрежьте слой softmax этой модели и установите выход этой модели как предпоследнее тензорное представление изображения.

3. Создайте небольшую модель с двумя простыми слоями - одним плотным слоем (скажем, 100 единиц) и еще одним финальным слоем softmax с таким количеством единиц, сколько нам нужно классов. Наш первый плотный слой должен принимать тот же вход, что и выход MobileNet.

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

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

6. Создайте совместную модель, соединив MobileNet и нашу двухслойную модель.

7. Получив новое изображение, прогоните его через эту совместную модель, чтобы сгенерировать прогноз.

Поскольку сама MobileNet настолько мала (~ 2 МБ), вся модель может поместиться в вашем браузере, и никакое изображение не должно покидать браузер для обучения. Кроме того, Tensorflow.js позволяет нам писать все эти модели непосредственно в javascript, придавая всей этой архитектуре замечательные свойства.

1) Обучение обеспечивает конфиденциальность (изображения не должны покидать ваш браузер)

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

3) Пользователю не нужно устанавливать библиотеки - откройте веб-страницу, и вы сразу же испытаете модель.

4) В сочетании с описанным выше подходом трансферного обучения вы можете обучить новую модель за считанные минуты.

Тебе стоит вернуться в колледж?

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

Тест визуального десятиборья, рассмотренный в этой статье [2], призван ответить на вопрос, как разные методы трансфертного обучения сравниваются по своей эффективности. Используя базовую модель в качестве resnet28, обученного на наборе данных ImageNet 1K, в этой статье оценивается эффективность различных подходов к переносному обучению на различных целевых наборах данных, таких как CIFAR100, VGG Flowers и т. Д., Которые представляют собой каждый из столбцов. Два разных метода переноса обучения, которые мы только что обсудили, выделены в красном поле как модель точной настройки и модель экстрактор признаков. Цифры представляют 1 максимальную точность при классификации изображения.

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

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

использованная литература

[1] А.Г. Ховард, М. Чжу, Б. Чен, Д. Калениченко, В. Ван, Т. Вейанд, М. Андреетто, Х. Адам, Мобильные сети: эффективные сверточные нейронные сети для приложений мобильного зрения (2017)

[2] С.А. Ребуффи, Х. Билен, А. Ведальди Изучение нескольких визуальных доменов с помощью остаточных адаптеров (2017)