Que es un Kernel Lineal?

Cristian Orozco Benjumea

Cristian Orozco Benjumea

Pregunta
studenthace 7 años

Que es un Kernel Lineal?

3 respuestas
para escribir tu comentario
    Omar Florez

    Omar Florez

    teacherhace 7 años

    Es una gran pregunta! Cuando hablamos de un Kernel en general hablamos de un concepto que depende del area donde se defina, aunque al final tiene la misma idea: transformar la relacion entre los datos de un espacio a otro considerando su similitud. Recuerda que el producto punto entre dos observaciones <a, b> define similaridad: 0 no similar, 1 muy similar.

    Por ejemplo, en procesamiento de seniales un Kernel sera una filtro que modifica la senial en una ventana de tiempo o espacio. Un ejemplo es el kernel (una matriz de numeros) que utilizas para multiplicar una matriz en cada region de una imagen y hacer que la imagen final sea mas borrosa y elimine ruido o mas detallada y resalte los bordes (https://en.wikipedia.org/wiki/Kernel_(image_processing) y https://en.wikipedia.org/wiki/Convolution#Fast_convolution_algorithms).

    La definicion que mas me gusta es la que se utiliza en algoritmos como Support Vector Machine, en donde el Kernel lleva consigo una nocion de similaridad, pero en un espacio distinto. Por ejemplo, es posible calcular el producto punto de la transformacion no lineal de dos vectores, digamos si una observacion ‘a’ tiene dos dimensiones a=(x1, x2), podemos expandir con un polinomio cuadrado f(a) = (x1, x2)^2=(x1^2, x2^2, 2x1x2), es decir pasamos de 2 a 3 dimensiones. La function que mide la similaridad entre todos los pares de punto, a y b, en este nuevo espacio matematico recibe el nombre de funcion de Kernel K=<f(a), f(b)>. Interesantemente, es mas facil separar dos clases usando una funcion de Kernel y en dimensiones mas altas: https://en.wikipedia.org/wiki/Kernel_method

    Ojo, no confundir con el Kernel Trick, que basicamente hace lo mismo sin necesidad de hacer el producto punto en el espacio de altas dimensiones, sino en base a producto puntos en la dimension original: https://www.quora.com/What-is-the-kernel-trick

    Cristian Orozco Benjumea

    Cristian Orozco Benjumea

    studenthace 7 años

    Perfecto gracias Omar, entonces al hablar de Kernel Lineal estamos hablando en términos de Algebra Lineal y es lo mismo que Producto Punto.

    Pero al hablar simplemente de Kernel (Ejemplo Kaggle o Jupyter) a que se refiere?

    Omar Florez

    Omar Florez

    teacherhace 7 años

    Un kernel lineal es la simple suma de la multiplicacion de cada entrada de dos vectores (x, w) de igual tamanio. El termino matematico para esto se le llama producto punto y tambien se le define como el coseno del angulo de esos dos vectores multiplicado por el producto de sus longitudes (https://en.wikipedia.org/wiki/Dot_product) .

    En las redes neuronales, uno de esos dos vectores (w) representa los pesos (w=weights) de las sinapsis associadas con cada elemento de la entrada, lo cual quiere decir que estamos multiplicando cada elemento de la entrada con un valor (peso) que presenta cuan importante es esa entrada para predecir la clase correcta!

Curso de Redes Neuronales y Backpropagation 2017 (Profesor Omar Florez)

Curso de Redes Neuronales y Backpropagation 2017 (Profesor Omar Florez)

Diseña redes neuronales desde la matemática y el método Backpropagation. La retropropagación es el método de cálculo de errores más usado en Machine Learning. Escribirás el código de una red neuronal que identifique patrones y los recuerde.

Curso de Redes Neuronales y Backpropagation 2017 (Profesor Omar Florez)
Curso de Redes Neuronales y Backpropagation 2017 (Profesor Omar Florez)

Curso de Redes Neuronales y Backpropagation 2017 (Profesor Omar Florez)

Diseña redes neuronales desde la matemática y el método Backpropagation. La retropropagación es el método de cálculo de errores más usado en Machine Learning. Escribirás el código de una red neuronal que identifique patrones y los recuerde.