Ограничение памяти для трюков с ядрами в машинном обучении

Вопрос или проблема

Основываясь на лекции Эндрю Ына о ядрах,

вы используете обучающие образцы (называемые ориентирами l) и используете их во время предсказания для построения представления данного образца в более высоком измерении.

enter image description here

Это новое представление x (f) умножается на w для получения окончательного предсказания.

Если бы я это реализовал, означает ли это, что мне нужно хранить все обучающие образцы? (Думаю, они нужны для реализации как обучения, так и логики предсказания)

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

Вы должны хранить обучающие образцы для предсказания, потому что вам нужно вычислить сходства между точкой, для которой вы делаете предсказание, и ориентирами, $f_i = \mathrm{sim}(x, l^{(i)})$. Это похоже на алгоритм $k$-ближайших соседей, где вы предсказываете значение тестовой точки, основываясь на значениях нескольких точек вокруг нее.

Однако в случае классификации с использованием SVM вам не нужно хранить все обучающие образцы. Необходимо хранить только небольшое количество тех образцов, которые используются для создания границ между классами. Эти образцы называются опорными векторами. Обучающие образцы, находящиеся далеко от границ классов, не полезны для предсказания и, следовательно, не нуждаются в хранении. Подробности здесь: ссылка.

Однако я не уверен, можно ли сделать подобное сокращение сохраненных обучающих данных для регрессии SVM.

В любом случае, такие алгоритмы, как SVM и kNN, обычно не применяются к исходным образцам (таким, как, например, необработанные изображения, видео, волновые формы звука), как в случае глубокого обучения. Они применяются к признакам, которые являются агрегированными функциями исходных образцов и занимают гораздо меньше места для хранения, чем сами исходные образцы.

Ответ или решение

Теория:
В машинном обучении, “kernel trick” или “трюк ядра” позволяет эффективно работать с данными в высоких измерениях без явного преобразования их в это пространство. Это достигается с помощью функции ядра, которая вычисляет скалярное произведение между парами объектов в исходном пространстве, что соответствует вычислению их скалярного произведения в новом пространстве признаков. Однако, чтобы использовать этот подход для предсказания, необходимо хранить данные обучающих образцов, поскольку они служат “ориентирами” или “landmarks” для вычисления этих скалярных произведений.

Пример:
При применении трюка ядра в алгоритмах, таких как метод опорных векторов (SVM), необходимо хранить лишь те обучающие образцы, которые становятся опорными векторами. Эти векторы критически важны для определения гиперплоскости разграничения классов, в то время как остальные данные, которые значительно удалены от границ классов, не играют роли в предсказании и, соответственно, не требуют хранения. Это позволяет минимизировать объем памяти, необходимой для хранения данных, что является значительным преимуществом, особенно при работе с большими наборами данных.

Применение:
В практическом применении трюка ядра основной задачей является эффективное управление памятью. Несмотря на то, что нужно хранить обучающие объекты для определения сходства с новыми примерами, можно оптимизировать процесс, как показано на примере с SVM, храня лишь определенные критические образцы. Для SVM-регрессии подобная оптимизация также возможна, хотя зачастую требует иного подхода в выборке данных. Важно помнить, что для достижения наиболее эффективных результатов алгоритмы с использованием трюка ядра обычно применяются к уже извлечённым и обработанным признакам, а не к сырым данным, таким как изображения или звук. Это в свою очередь способствует снижению требований к хранению данных и повышает эффективность вычислений.

Оцените материал
Добавить комментарий

Капча загружается...