Часть II • Введение в TensorFlow.js
Как вы можете видеть из предыдущего описания, одно из ключевых требований
алгоритма kNN — представление всех входных примеров данных в виде векторов.
Полученные из усеченной MobileNet вложения и им подобные отлично подходят для
таких векторных представлений по двум причинам. Вопервых, их размерность обычно
ниже, чем у исходных входных данных, а потому для вычисления расстояний требуется
меньше вычислений и места для хранения. Вовторых, вложения обычно захватывают
самые важные признаки входных данных (например, существенные геометрические
признаки на изображениях; см. рис. 4.5), игнорируя менее важные (яркость и размер),
благодаря обучению на большом наборе данных для классификации. В некоторых
случаях с помощью вложений можно получить векторные представления объектов,
изначально не представленных в числовом виде (например, с помощью вложений
слов, см. главу 9).
В отличие от подхода нейронных сетей, метод kNN не требует обучения. При неболь
шом числе эталонных примеров данных и небольшой размерности входного сигнала
метод kNN с вычислительной точки зрения эффективнее обучения нейронной сети
и выполнения с ее помощью вывода.
Впрочем, вывод с использованием kNN плохо масштабируется при росте объемов
данных. В частности, при
N
эталонных примерах данных классификатору kNN для
предсказания класса каждого входного сигнала необходимо вычислить
N
расстояний
1
.
Количество необходимых вычислений при больших
N
становится неподъемным. И на
против, объемы обучающих данных не влияют на вывод с помощью нейронной сети.
По завершении обучения сети уже неважно, сколько примеров данных участвовало
в работе. Объемы вычислений, требуемых для прямого прохода, зависят только от
топологии сети.
Если вы хотели бы попробовать kNN для своих приложений, посмотрите на надстройку
для TensorFlow.js — библиотеку kNN c WebGLускорением:
http://mng.bz/2Jp8
.
5.1.3. Извлекаем максимум пользы из переноса
обучения благодаря тонкой настройке: пример
обработки аудиоданных
В предыдущих разделах в примерах переноса обучения речь шла об обработке ви
зуальных данных. В этом же примере мы продемонстрируем перенос обучения для
аудиоданных, представленных в виде изображений спектрограмм. Как вы помните,
в разделе 4.4 мы описывали сверточную сеть для распознавания речевых команд (от
дельных, коротких слов). Созданное тогда средство распознавания speechcommand
могло распознавать лишь 18 различных слов (таких как
one
,
two
,
up
и
down
). А что,
если нужно обучить его распознавать и другие слова? Например, пусть для вашего
1
Впрочем, исследователи прилагают немалые усилия для разработки алгоритмов при
ближенной реализации kNN, быстрее работающих и лучше масштабирующихся:
Yona G.
Fast NearDuplicate Image Search Using Locality Sensitive Hashing // Towards Data Science,
5 May 2018. http://mng.bz/1wm1.
Do'stlaringiz bilan baham: |