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!
Respuesta
¿Demasiados anuncios?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$ .