kernel Gaussiano

You are currently browsing articles tagged kernel Gaussiano.

Obviamente, en los kernels cúbico, cuártico y quíntico, al llegar a derivadas de orden superior, tenemos expresiones del tipo $latex alpha(boldsymbol{q}) . beta(boldsymbol{q})$ y lo que hemos hecho, de manera incorrecta, es:

$latex frac{partial}{partial q_j} big ( alpha(boldsymbol{q}) . beta(boldsymbol{q}) big ) = alpha(boldsymbol{q}) . frac{partial}{partial q_j} beta(boldsymbol{q})$,

por lo que nos falta sumarle:

$latex frac{partial}{partial q_j} alpha(boldsymbol{q}) . beta(boldsymbol{q})$.

Así pues, para el kernel Gaussiano si es correcta la formula genérica, pero no para el resto. De todas maneras, si es válida para las primeras derivadas.

A continuación una animación con:

$latex W_G(boldsymbol{q}), frac{partial}{partial q_1}W_G(boldsymbol{q}), frac{partial}{partial q_2}W_G(boldsymbol{q}), frac{partial^2}{partial q_1^2}W_G(boldsymbol{q}), frac{partial^2}{partial q_1 partial q_2}W_G(boldsymbol{q}), frac{partial^2}{partial q_2^2}W_G(boldsymbol{q}),$

$latex W_3(boldsymbol{q}), frac{partial}{partial q_1}W_3(boldsymbol{q}), frac{partial}{partial q_2}W_3(boldsymbol{q}),$

$latex W_4(boldsymbol{q}), frac{partial}{partial q_1}W_4(boldsymbol{q}), frac{partial}{partial q_2}W_4(boldsymbol{q}),$

$latex W_5(boldsymbol{q}), frac{partial}{partial q_1}W_5(boldsymbol{q}), frac{partial}{partial q_2}W_5(boldsymbol{q})$

[youtube http://www.youtube.com/watch?v=LEKKtUjuk7o?rel=0&w=420&h=315]

Tags: , , ,

Vamos a suponer que estamos en dimensión $latex n$ y miraremos como quedan los diferentes kernels y sus derivadas. Denotaremos con $latex boldsymbol{q}$ a $latex (q_1,ldots,q_n)$ y $latex q = sqrt{sum_{i=1}^n q_i^2}$ será su módulo.

Para poder hablar de las derivadas parciales en espacios de esta dimensión vamos a introducir la notación multi-índice de Schwartz. Un multi-índice de dimensión $latex n$ es una $latex n$-tupla de enteros no negativos $latex alpha = (alpha_1,ldots,alpha_n)$ con $latex alpha_j in mathbb{Z}_+$ para $latex j= 1ldots n$, de manera que $latex alpha in mathbb{Z}_+^n$. Llamamos  módulo de $latex alpha$ a:

$latex |alpha| = sum_{i=1}^n alpha_i$

Además, podemos definir

$latex alpha + beta := (alpha_1 + beta_1, ldots ,alpha_n + beta_n) $

y

$latex q^alpha:=Pi_{i=1}^n q_i^{alpha_i}$.

Finalmente, definimos el operador diferencial para $latex alpha in mathbb{Z}_+^n$ como:

$latex D^alpha:=frac{partial^{|alpha|}}{partial q_1^{alpha_1} partial q_2^{alpha_2} ldots partial q_n^{alpha_n}}$

kernel Gaussiano:

$latex W(boldsymbol{q},h) = frac{sigma}{h^n} e^{-(frac{q}{h})^2}$

$latex frac{partial}{partial q_j}W(boldsymbol{q},h) = D^{e_j}W(boldsymbol{q},h) = frac{sigma}{h^n}frac{-2}{h^2} e^{-(frac{q}{h})^2}q_j$

$latex frac{partial^2}{partial q_j partial q_k}W(boldsymbol{q},h)=D^{e_j+e_k}W= frac{sigma}{h^n}(frac{-2}{h^2})^2 e^{-(frac{q}{h})^2} q^{e_j+e_k}=frac{sigma}{h^n}(frac{-2}{h^2})^2 e^{-(frac{q}{h})^2}q_jq_k$

$latex D^alpha W(boldsymbol{q},h) = frac{sigma}{h^n}(frac{-2}{h^2})^{|alpha|} e^{-(frac{q}{h})^2}q^alpha$

kernel cúbico:

$latex W(boldsymbol{q},h) = frac{sigma}{h^n} begin{cases} frac{1}{4}(2-q)^3-(1-q)^3 mbox{ si } 0 leq q < 1 \ frac{1}{4}(2-q)^3 mbox{ si } 1 leq q < 2 \ 0 mbox{ si } q geq 2 end{cases}$

Recordemos que $latex q = sqrt{ sum_{i=1}^n q_i^2 }$, por lo que $latex frac{partial}{partial q_j}q = frac{2 q_j}{2 sqrt{sum_{i=1}^{n} q_i^2}} = frac{q_j}{q}$. Así pues:

$latex frac{partial}{partial q_j}W(boldsymbol{q},h) = frac{sigma}{h^n}(-1)frac{3}{q} q_j begin{cases} frac{1}{4}(2-q)^2-(1-q)^2 mbox{ si } 0 leq q < 1 \ frac{1}{4}(2-q)^2 mbox{ si } 1 leq q < 2 \ 0 mbox{ si } q geq 2 end{cases}$

$latex frac{partial^2}{partial q_j partial q_k}W(boldsymbol{q},h) = frac{sigma}{h^n}frac{3.2}{q^2} q_j q_k begin{cases} frac{1}{4}(2-q)-(1-q) mbox{ si } 0 leq q < 1 \ frac{1}{4}(2-q) mbox{ si } 1 leq q < 2 \ 0 mbox{ si } q geq 2 end{cases}$

$latex frac{partial^3}{partial q_j partial q_k partial q_l}W(boldsymbol{q},h) = frac{sigma}{h^n}(-1)frac{3.2.1}{q^3} q_j q_k q_l begin{cases} frac{1}{4}-1 mbox{ si } 0 leq q < 1 \ frac{1}{4} mbox{ si } 1 leq q < 2 \ 0 mbox{ si } q geq 2 end{cases}$

Por lo tanto, para $latex 0 leq |alpha| leq 3$ (si $latex |alpha|>3$ entonces $latex W equiv 0$) podemos escribir:

$latex D^alpha W(boldsymbol{q},h) = $

$latex =frac{sigma}{h^n}(-1)^{|alpha|}frac{frac{3!}{(3-|alpha|)!}}{q^{|alpha|}} q^alpha begin{cases} frac{1}{4}(2-q)^{3-|alpha|}-(1-q)^{3-|alpha|} mbox{ si } 0 leq q < 1 \ frac{1}{4}(2-q)^{3-|alpha|} mbox{ si } 1 leq q < 2 \ 0 mbox{ si } q geq 2 end{cases}$

kernel cuártico:

 $latex W(boldsymbol{q},h) = frac{sigma}{h^n} begin{cases} (frac{5}{2}-q)^4-5(frac{3}{2}-q)^4+10(frac{1}{2}-q)^4 mbox{ si } 0 leq q < frac{1}{2} \ (frac{5}{2}-q)^4-5(frac{3}{2}-q)^4 mbox{ si } frac{1}{2} leq q < frac{3}{2} \ (frac{5}{2}-q)^4 mbox{ si } frac{3}{2} leq q < frac{5}{2} \ 0 mbox{ si } q geq frac{5}{2} end{cases}$

Por tanto, para $latex |alpha| = 0 ldots 4$:

$latex D^alpha W(boldsymbol{q},h) =$

$latex =frac{sigma}{h^n}(-1)^{|alpha|}frac{frac{4!}{(4-|alpha|)!}}{q^{|alpha|}} q^alpha begin{cases} (frac{5}{2}-q)^{4-|alpha|}-5(frac{3}{2}-q)^{4-|alpha|}+10(frac{1}{2}-q)^{4-|alpha|} mbox{ si } 0 leq q < frac{1}{2} \ (frac{5}{2}-q)^{4-|alpha|}-5(frac{3}{2}-q)^{4-|alpha|} mbox{ si } frac{1}{2} leq q < frac{3}{2} \ (frac{5}{2}-q)^{4-|alpha|} mbox{ si } frac{3}{2} leq q < frac{5}{2} \ 0 mbox{ si } q geq frac{5}{2} end{cases}$

kernel quíntico:

$latex W(boldsymbol{q},h) = frac{sigma}{h^n} begin{cases} (3-q)^5-6(2-q)^5+15(1-q)^5 mbox{ si } 0 leq q < 1 \ (3-q)^5-6(2-q)^5 mbox{ si } 1 leq q < 2 \ (3-q)^5 mbox{ si } 2 leq q < 3 \ 0 mbox{ si } q geq 3 end{cases}$

Por tanto, para $latex |alpha| = 0 ldots 5$:

$latex D^alpha W(boldsymbol{q},h) =$

$latex =frac{sigma}{h^n}(-1)^{|alpha|}frac{frac{5!}{(5-|alpha|)!}}{q^{|alpha|}} q^alpha begin{cases} (3-q)^{5-|alpha|}-6(2-q)^{5-|alpha|}+15(1-q)^{5-|alpha|} mbox{ si } 0 leq q < 1 \ (3-q)^{5-|alpha|}-6(2-q)^{5-|alpha|} mbox{ si } 1 leq q < 2 \ (3-q)^{5-|alpha|} mbox{ si } 2 leq q < 3 \ 0 mbox{ si } q geq 3 end{cases}$

Tags: , , , , ,

Volvemos a tratar los kernels pero teniendo en cuenta que nuesta anterior $latex q$ de hecho es $latex frac{boldsymbol{||r||}}{h}$, por lo que en $latex 1D$, con $latex h=1$, tenemos $latex sqrt{x^2} = |x|$, en $latex 2D$ tenemos $latex sqrt{x^2+y^2}$ y en $latex 3D$ tenemos $latex sqrt{x^2+y^2+z^2}$.  En realidad, como lo que tenemos es $latex ||r-r’||$, habrá cosas del estilo de:

$latex sqrt{(x-x’)^2+(y-y’)^2+(z-z’)^2}$.

En los siguientes enlaces se encuentran información sobre cada uno de los kernels especificados:

  1. funciones definidas a trozos y sus gráficas
  2. kernel Gaussiano
  3. kernel cúbico
  4. kernel cuártico
  5. kernel quíntico

Dada una partícula $latex a$ situada en $latex r_a = (x_a,y_a)$ tenemos allí el kernel $latex W_a(r-r_a,h)$. Dada otra partícula vecina $latex b$ de posición $latex r_b = (x_b, y_b)$, el punto

$latex (x_b, y_b,W_a(r_b-r_a,h) = W_{ab} = W_{ba})$

queda sobre el kernel:

Tags: , , , ,

Construimos una malla de $latex 100times 100$ puntos de nuestros kernels en $latex 2D$. La primera animación contiene el kernel Gaussiano en el primer frame, el cúbico en el segundo, el cuártico en el tercero y el quíntico en el último:

[youtube http://www.youtube.com/watch?v=toa1Asoo600?rel=0&w=420&h=315]

En la siguiente animación mostramos los puntos de la primera derivada de los kernels:

[youtube http://www.youtube.com/watch?v=VMnyetAVyN0?rel=0&w=420&h=315]

Finalmente, la animación con puntos de las segundas derivadas de los kernels de nuestra aplicación:

[youtube http://www.youtube.com/watch?v=YZiuoCBrfOQ?rel=0&w=420&h=315]

Tags: , , , , ,

FireStats icon Powered by FireStats