4 votos

Aproximadamente invirtiendo las funciones con los métodos de Monte Carlo

Tengo el siguiente problema: Dejar $f: \mathbb {R}^n \rightarrow \mathbb {R}^m$ con $n>m$ ser una función suave. Quiero encontrar vectores de entrada $x \in \mathbb {R}^n$ que dan un resultado determinado $y \in \mathbb {R}^m$ así que $f(x)=y$ . Mi idea era empezar en un vector aleatorio $x_0 \in \mathbb {R}^n$ y tratar de disminuir iterativamente la $L^2$ -norma de las diferencias, de modo que para cualquier $n$ tenemos $||f(x_{n+1})-y)||_2<||f(x_n)-y)||_2$ . ¿Sería esto posible con algún tipo de enfoque de Monte Carlo? ¿O hay algún enfoque existente que pueda ser utilizado para abordar este problema? ¡Gracias de antemano!

3voto

littleO Puntos 12894

Un enfoque es resolver el problema de la optimización $$ \text {minimize} \quad \frac12 \| f(x) - y \|_2^2. $$ La variable de optimización es $x \in \mathbb R^n$ . Este problema de optimización podría ser resuelto con un método como el descenso de gradiente o el método de Newton o Levenberg-Marquardt. El descenso de gradiente es una forma sencilla de hacerlo.

El derivado de la función objetivo $F(x) = \frac12 \| f(x) - y \|_2^2$ es $$ F'(x) = (f(x) - y)^T f'(x). $$ El $m \times n$ matriz $f'(x)$ también es llamado el jacobino de $f$ en $x$ . Si usamos la convención de que el gradiente de $F$ es un vector de la columna, entonces \begin {alinear} \nabla F(x) &= F'(x)^T \\ &= f'(x)^T (f(x) - y). \end {alinear} La iteración del descenso del gradiente es $$ x^{k+1} = x^k - t \nabla F(x^k). $$ Si el tamaño del paso $t > 0$ es lo suficientemente pequeño entonces los iterados $x^k$ convergerán en un minimizador local de $F$ . Existe el peligro de que nos quedemos atrapados en un mínimo local, pero si la suposición inicial $x^0$ es lo suficientemente bueno entonces tenemos una buena oportunidad de converger a un valor de $x$ que satisface $f(x) = y$ .

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