2 votos

¿Podría explicarme cómo el vector propio ayuda a calcular el gradiente y cómo hacer la operación de diferenciación en un espacio decreciente como la imagen digital?

¿Podría explicarme cómo ayuda el vector propio a calcular el gradiente y cómo hacer la operación de diferenciación en un espacio descreto como la imagen digital?

Sé que esta pregunta está muy relacionada con la informática, pero sé por mi experiencia que las cosas así las saben mejor los matemáticos.

Si sirve de ayuda, intento aprender algo sobre la segmentación de imágenes y el primer paso del algoritmo (de un artículo científico) es la detección de bordes, que se basa en el gradiente calculado mediante el vector propio.

2voto

Para una función de valor escalar $f\colon \mathbb R^n \to \mathbb R$ como una imagen en blanco y negro, el vector de gradiente $\nabla f = (\partial f/\partial x_1, \ldots, \partial f/\partial x_n)^T$ te dice cómo $f$ cambios en la vecindad de $x$ . Es decir, a primer orden, un pequeño cambio de posición $\Delta x$ conduce a un cambio correspondiente $\nabla f(x) \cdot \Delta x$ en el valor de la función.

Si $f$ es una función vectorial $\mathbb R^n \to \mathbb R^m$ en cambio, como una imagen en color, la generalización natural del gradiente es la matriz jacobiana, que su documento denota $D$ . Aquí si $x$ cambios por $\Delta x$ El valor de $f$ cambia en aproximadamente $D \Delta x$ . Para ser claros, $\Delta x$ es un vector en el dominio $\mathbb R^n$ (el plano de la imagen), mientras que $D \Delta x$ un vector en el rango $\mathbb R^m$ (el espacio de color de la imagen).

En este trabajo, el gradiente se utiliza sólo para encontrar la dirección en la que la función $f$ cambia más rápidamente. Si $f$ es de valor escalar, es simplemente la dirección paralela (o antiparalela) a $\nabla f$ como se puede demostrar encontrando el vector unitario $u$ que maximiza $\lvert \nabla f \cdot u\rvert$ . Si $f$ es de valor vectorial, se quiere encontrar el vector unitario $u$ que maximiza la magnitud del cambio, $\lVert Du\rVert$ . Pero como $\lVert Du \rVert = \sqrt{(Du)^TDu}$ esto equivale a maximizar $u^TD^TDu$ que a su vez viene dado por el mayor vector propio de $D^TD$ .

Para ver por qué, demos un nombre a la matriz en cuestión, $A = D^TD$ . Como es simétrica, tiene un conjunto completo de valores propios reales $\lambda_i$ y los correspondientes vectores propios $v_i$ que son todos ortogonales. Ahora la acción de $A$ es muy simple en la base de estos vectores propios; simplemente estira cada vector base por su valor propio, $Av_i = \lambda_i v_i$ . Así que, intuitivamente, si queremos elegir un vector unitario que se estire al máximo, debemos elegir que se encuentre a lo largo del vector propio con el mayor valor propio. Más explícitamente, si expresamos nuestro vector unitario $u$ en esta base, $u = \alpha_1 v_1 + \cdots + \alpha_n v_n$ entonces un poco de álgebra revela que $u^TAu = \lambda_1 \alpha_1^2 + \cdots + \lambda_n \alpha_n^2$ . Como $u$ es un vector unitario, $\alpha_1^2 + \cdots + \alpha_n^2 = 1$ Ahora bien, ¿qué debe hacer el $\alpha_i^2$ para maximizar la expresión anterior?

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X