Трюк с ядром, для нейронных сетей


9

Я изучал нейронные сети и SVM. Учебники, которые я прочитал, подчеркнули, насколько важна ядро ​​для SVM. Без функции ядра SVM - это просто линейный классификатор. С помощью ядра, SVM также может включать нелинейные функции, что делает их более мощным классификатором.

Мне кажется, что можно также применить ядро ​​к нейронным сетям, но ни одно из учебных пособий по нейронным сетям, которые я видел, не упоминало об этом. Люди обычно используют уловку ядра с нейронными сетями? Я предполагаю, что кто-то, должно быть, экспериментировал с этим, чтобы видеть, имеет ли это большое значение. Помогает ли ядро ​​в нейронных сетях так же, как в SVM? Почему или почему нет?

(Я могу представить несколько способов включить трюк ядра в нейронные сети. Одним из способов было бы использование подходящей функции ядра для предварительной обработки ввода, вектора в , во вход более многомерный, вектор в для . Для многослойных нейронных сетей другой альтернативой будет применение функции ядра на каждом уровне нейронной сети.)RnRmmn


2
Уловка ядра работает, когда ваш вычислительный доступ к вашим точкам данных состоит из вычислений внутренних продуктов. Я не уверен, что это относится к нейронным сетям.
Юваль Фильмус

Ответы:


6

Я думаю, что вы, возможно, путаете терминологию таким образом, что запутываете проблему. SVM работают путем определения границы линейного решения, т. Е. Гиперплоскости. Мы можем определить эту гиперплоскость в терминах внутренних произведений между точками. Следовательно, если мы определяем это внутреннее произведение как находящееся в некотором многомерном или даже бесконечномерном пространстве, то, что выглядит как гиперплоскость в этом новом пространстве, не является необходимой линейной в исходном пространстве признаков. Таким образом, все по-прежнему линейно, единственное, что мы сделали, это неявно (через новый внутренний продукт) внедрили точки в некоторое пространство более высокого измерения. Может быть, вы уже все это знаете.

В отношении нейронных сетей необходимо рассмотреть 2 вопроса. Первый был создан @Yuval Filmus, поскольку нейронные сети со скрытым слоем зависят не только от внутренних произведений между точками. Если вы удалите скрытый слой, у вас просто будет что-то вроде логистической регрессии, среди которых есть версии с ядрами . Может быть, есть способ обойти это, но я этого не вижу.

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


Спасибо. Да. Я знаю, что мы можем думать о SVM как о сопоставлении исходных входных данных с некоторым более высоким (или даже бесконечным) пространством измерений, а затем о линейном решении границы в этом пространстве более высокого измерения. Итак, можем ли мы сделать это с нейронными сетями тоже? Можем ли мы отобразить входные данные в пространство более высокого измерения, а затем рассматривать их как фактический вход в нейронную сеть? Я предполагаю, что мы можем (и я предполагаю, что мы могли бы сделать это на каждом слое, если бы мы хотели). И, если мы можем, мой реальный вопрос: предлагает ли это такое большое улучшение нейронных сетей (на практике), как это делает для SVM? Почему или почему нет?
DW

Я знаю о теореме универсальной аппроксимации, но это на самом деле не отвечает на вопрос (как вы указали). Меня волнует, насколько хорошо нейронные работы имеют тенденцию работать на практике. Мне интересно, может ли предварительная обработка входных данных с помощью трюка с ядром сделать нейронные сети более эффективными на практике. Конечно, нет никаких гарантий, и всегда будут ситуации, когда все, что вы делаете, может ухудшить ситуацию, но я задаюсь вопросом о типичном поведении на практике (в том же смысле, что мы говорим, что ядро ​​имеет тенденцию делать SVM значительно более эффективными, в практика).
DW

2
@DW Причина, по которой ядро ​​делает SVM более эффективными, заключается в том, что он позволяет им определять границы нелинейных решений. Нейронные сети уже могут определять границы нелинейных решений, поэтому единственным преимуществом проецирования ваших данных в пространство более высокого измерения будет упрощение задачи оптимизации.
альт

1

Уловка ядра возможна для SVM из-за особого свойства процесса обучения для SVM. Нейронные сети, похоже, не обладают этим свойством (насколько я могу судить).

Икс1,...,ИксNрdИксяИксяИксяИксJ

Это специальное свойство процесса обучения SVM позволяет нам использовать трюк ядра. Мы можем определить функцию ядра так, чтобы K ( x i ( x j ) . Следующее интересное свойство заключается в том, что для некоторых нелинейных преобразований ϕ можно вычислить K ( x i , x j).КК(Икся,ИксJ)φ:рdрмм>dК(Икся,ИксJ)знак равноφ(Икся)φ(ИксJ)φК(Икся,ИксJ)φ(Икся),φ(ИксJ)К(Икся,ИксJ)О(d)О(м) время.

ИксяИксJК(Икся,ИксJ)Икся


1

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

введите описание изображения здесь

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.