Loading [MathJax]/jax/element/mml/optable/GeneralPunctuation.js

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:RnR como una imagen en blanco y negro, el vector de gradiente f=(f/x1,,f/xn)T te dice cómo f cambios en la vecindad de x . Es decir, a primer orden, un pequeño cambio de posición Δx conduce a un cambio correspondiente f(x)Δx en el valor de la función.

Si f es una función vectorial RnRm 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 Δx El valor de f cambia en aproximadamente DΔx . Para ser claros, Δx es un vector en el dominio Rn (el plano de la imagen), mientras que DΔx un vector en el rango Rm (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 f como se puede demostrar encontrando el vector unitario u que maximiza |fu| . Si f es de valor vectorial, se quiere encontrar el vector unitario u que maximiza la magnitud del cambio, . 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