Часть II • Введение в TensorFlow.js
модели используются, но защищены от больших возмущений весов на начальных
этапах нового обучения, благодаря чему можно достичь большей безошибочности
за короткое время.
Два последних замечания, прежде чем перейдем к следующему разделу. Вопервых,
при адаптации модели — процессе повторного обучения модели, чтобы она лучше
работала на данных конкретного пользователя, — применяются очень схожие с по
казанными здесь методики, а именно, первые несколько слоев блокируются, а веса
нескольких прочих слоев меняются в процессе обучения на данных, относящихся
к конкретному пользователю. Хотя в этом разделе мы решаем задачу, связанную
с данными не от другого пользователя, а просто с другими метками. Вовторых,
возможно, вам интересно, как проверить, остается ли тем же весовой коэффициент
заблокированного слоя (слоев conv2d в данном случае) после вызова
fit()
. Про
верить это несложно, мы оставим это вам в качестве задания (см. упражнение 2
в конце главы).
Рис. 5.4.
Схематическое пояснение того, почему блокирование части слоев
приводит к ускорению обучения
Глава 5. Перенос обучения: переиспользование предобученных нейронных сетей
197
5.1.2. Перенос обучения при несовместимых формах
выходных сигналов: создание новой модели
на основе выходных сигналов базовой модели
В примере переноса обучения из предыдущего раздела форма выходного сигнала
базовой модели была аналогична форме нового выходного сигнала. Во многих
других сценариях переноса обучения это не так (рис. 5.5). Например, описанный
выше подход не сработает, если нужно классифицировать
четыре
новые цифры
с помощью базовой модели, обученной на пяти. Более распространенный сцена
рий: решить задачу классификации изображений по небольшому числу классов
(случай Б на рис. 5.5) при наличии глубокой сверточной сети, обученной на на
боре данных ImageNet, который предназначен для классификации изображений
по 1000 выходных классов. Перед вами может стоять, например, задача бинарной
классификации — содержит ли изображение человеческое лицо — или задача
многоклассовой классификации всего по нескольким классам (вспомните пример
в начале главы). В подобных случаях форма выходного сигнала базовой модели
не подходит для новой задачи.
В некоторых случаях даже
тип
задачи машинного обучения отличается от типа
задачи, для которой обучалась базовая модель. Например, можно решать задачу ре
грессии (предсказывать число, как в случае В на рис. 5.5) путем переноса обучения
для базовой модели, обученной на задаче классификации. В разделе 5.2 вы увидите
еще более интересный вариант использования переноса обучения — предсказание
массива чисел, а не одного числа для обнаружения в изображениях объектов и опре
деления их местоположения.
Подробнее разберем рис. 5.5. Случай A: форма выходного сигнала и функция
активации новой модели совпадают с базовой моделью. Примером может служить
перенос модели MNIST на новые цифры в подразделе 5.1.1. Случай Б: функции ак
тивации в новой и базовой моделях совпадают, поскольку совпадают типы исходной
и новой задач (например, обе — задачи многоклассовой классификации). Однако
формы выходных сигналов различаются (например, в новой задаче другое число
классов). Примеры этого типа переноса обучения можно найти в подразделах 5.1.2
(управление компьютерной игрой в стиле PacMan
TM1
с помощью вебкамеры)
и 5.1.3 (распознавание нового множества слов устной речи). Случай В: новая за
дача — иного типа, чем исходная (например, регрессия вместо классификации).
Примером может служить модель обнаружения объектов в изображениях, основан
ная на MobileNet.
Во всех описанных выше случаях форма желаемого выходного сигнала отличает
ся от формы выходного сигнала базовой модели. Поэтому необходимо создать новую
модель. Но раз уж речь идет о переносе обучения, создавать ее с нуля не нужно,
можно использовать базовую. Мы продемонстрируем, как это сделать, в примере
webcamtransferlearning из репозитория tfjsexamples.
1
PacMan — зарегистрированная торговая марка компании Bandai Namco Entertainment Inc.
Do'stlaringiz bilan baham: |