Truco de kernelización, para redes neuronales

9

He estado aprendiendo sobre redes neuronales y SVM. Los tutoriales que he leído han enfatizado la importancia de la kernelización para SVM. Sin una función de kernel, los SVM son solo un clasificador lineal. Con la kernelización, los SVM también pueden incorporar características no lineales, lo que los convierte en un clasificador más potente.

Me parece que uno también podría aplicar la kernelización a las redes neuronales, pero ninguno de los tutoriales sobre redes neuronales que he visto ha mencionado esto. ¿La gente usa comúnmente el truco del núcleo con las redes neuronales? Supongo que alguien debe haber experimentado con él para ver si hace una gran diferencia. ¿La kernelización ayuda a las redes neuronales tanto como a las SVM? ¿Por qué o por qué no?

(Puedo imaginar varias formas de incorporar el truco del núcleo en las redes neuronales. Una forma sería utilizar una función del núcleo adecuada para preprocesar la entrada, un vector en , en una entrada de mayor dimensión, un vector en para . Para redes neuronales de capas múltiples, otra alternativa sería aplicar una función de núcleo en cada nivel de la red neuronal).R m mnRnRmmn

DW
fuente
2
El truco del núcleo funciona cuando su acceso computacional a sus puntos de datos consiste en calcular productos internos. No estoy seguro de que ese sea el caso de las redes neuronales.
Yuval Filmus

Respuestas:

6

Creo que puede estar confundiendo la terminología de una manera que hace que el problema sea confuso. Los SVM funcionan definiendo un límite de decisión lineal, es decir, un hiperplano. Podemos definir este hiperplano en términos de productos internos entre los puntos. Por lo tanto, si definimos que este producto interno está en un espacio dimensional de alta dimensión o incluso infinito, lo que parece un hiperplano en este nuevo espacio no es un lineal necesario en el espacio de características original. Entonces, todo sigue siendo lineal, lo único que hemos hecho es implícitamente (a través del nuevo producto interno) incrustar los puntos en algún espacio dimensional superior. Tal vez ya sabes todo esto.

Hay 2 cuestiones a considerar con respecto a las redes neuronales. El primero fue presentado por @Yuval Filmus, debido a la capa oculta que las redes neuronales dependen de algo más que los productos internos entre los puntos. Si elimina la capa oculta, solo tiene algo como regresión logística, de las cuales hay versiones kernelized . Tal vez hay una manera de evitar esto, pero no lo veo.

En segundo lugar, mencionas el preprocesamiento de la entrada proyectando en un espacio dimensional más alto, pero no infinito. Las redes neuronales definen una superficie de decisión y esta superficie no está limitada a ser lineal. Esto significa que la ganancia de proyectar los puntos en un espacio dimensional superior será diferente, es decir, puede hacer que sea más fácil encontrar un buen conjunto de pesos, pero no necesariamente hemos hecho que nuestro modelo sea más poderoso. Esto se desprende del teorema de aproximación universal que nos dice que, dado un número suficientemente grande de unidades ocultas, podemos aproximar cualquier función (bajo algunas restricciones). Esta última declaración es bastante vacía y odio mencionarla. Al no decirle nada sobre cómo encontrar los pesos correctos, no aporta mucho a la mesa desde la perspectiva de una aplicación.

Alto
fuente
Gracias. Si. Sé que podemos pensar en los SVM como un mapeo de las entradas originales a un espacio dimensional más alto (o incluso infinito), y luego hacer un límite de decisión lineal en ese espacio dimensional más alto. Entonces, ¿podemos hacer eso también con las redes neuronales? ¿Podemos asignar las entradas a un espacio dimensional más alto y luego tratarlo como la entrada real a una red neuronal? Supongo que podemos (y supongo que también podríamos hacer esto en cada capa, si quisiéramos). Y, si podemos, mi verdadera pregunta es: ¿ofrece esto una mejora tan grande para las redes neuronales (en la práctica) como para las SVM? ¿Por qué o por qué no?
DW
Sé sobre el teorema de aproximación universal, pero eso realmente no responde la pregunta (como usted indicó). Lo que me importa es qué tan bien los trabajos neuronales tienden a funcionar en la práctica. Me pregunto si el preprocesamiento de las entradas a través de un truco de kernelization podría hacer que las redes neuronales tienden a funcionar mejor en la práctica. Por supuesto, no hay garantías y siempre habrá situaciones en las que cualquier cosa que haga podría empeorar las cosas, pero me pregunto sobre el comportamiento típico, en la práctica (en el mismo sentido que decimos que la kernelization tiende a hacer que las SVM sean significativamente más efectivas, en práctica).
DW
2
@DW La razón por la que la kernelization hace que las SVM sean más efectivas es porque les permite definir límites de decisión no lineales. Las redes neuronales ya pueden definir límites de decisión no lineales, por lo que el único beneficio de proyectar sus datos en un espacio dimensional superior sería facilitar el problema de optimización.
alto
1

El truco del núcleo es posible para SVM debido a una propiedad especial del proceso de aprendizaje para SVM. Las redes neuronales no parecen tener esa propiedad (por lo que puedo decir).

x1,,xnRdxixixixj

KK(xi,xj)ϕ:RdRmm>dK(xi,xj)=ϕ(xi)ϕ(xj)ϕK(Xyo,Xj)ϕ(Xyo),ϕ(Xj)K(Xyo,Xj)O(re)O(metro) hora.

XyoXjK(Xyo,Xj)Xyo

DW
fuente
1

Me gustaría compartir algunas observaciones que he hecho. Dimensión de entrada: 144. He entrenado una red neuronal, y durante el entrenamiento, la salida de las capas ocultas se dio como entrada para la regresión logística, y se trazó el valor medio de la función de pérdida después de ajustar el modelo.ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Podemos ver que con el aumento en el tamaño de la capa, las características o la salida de las capas ocultas se vuelven linealmente separables. Si bien este es el propósito de aprender el vector de características kernelised , la red neuronal parece estar haciendo esto internamente. ingrese la descripción de la imagen aquí

explorador
fuente