CONSULTAS VARIAS - Obligatorio 2

CONSULTAS VARIAS - Obligatorio 2

de Leonardo Martin Araujo Delgado -
Número de respuestas: 1

Estimados, espero que se encuentren bien. 

Les hacemos algunas consultas referidas al obligatorio para ver si nos pueden guiar en el análisis:

2d.
Luego de varios intentos definimos un alfa y aplicando el método de descenso por gradiente a la función de Rosenbrock, logramos que converja en aproximadamente 19.000 iteraciones, pero nos llama la atención que la función de error en comparación con el método de descenso con paso fijo, cambia su forma. 
De todas formas, entendemos que puede no ser una comparación correcta, ya que en un método aplicamos un paso fijo, y en el otro vamos cambiando el paso, por lo que la función error podría cambiar su forma. 

¿De qué forma podemos ir validando, si las implementaciones que realizamos tienen sentido?
 

2e.
Con respecto a este apartado, realizamos la implementación de escalado diagonal y de esta forma empeoramos la cantidad de iteraciones para la convergencia, sobre la función de Rosenbrock.

Revisamos varias veces la implementación por lo que estamos bastante convencidos de que está correcta, entonces nos surge la pregunta, ¿es posible que ocurra esto? 

En todos los casos tenemos el doble problema de que como es la primera vez que programamos en python, no sabemos si las implementaciones que realizamos son efectivamente correctas y podemos realizar tranquilamente un análisis teórico de lo obtenido. 

Aguardamos sus comentarios,
saludos. 


En respuesta a Leonardo Martin Araujo Delgado

Re: CONSULTAS VARIAS - Obligatorio 2

de Marcelo Fiori -
Hola Leonardo,
está bien sí comparar las gráficas de error para paso decreciente y paso fijo. El paso decreciente (y justo en una función complicada) puede demorar mucho en converger, por lo que en una comparación gráfica a simple vista puede ser difícil ver detalles de una u otra. En escala logarítmica se puede ver un poco mejor.
En cualquier caso, la "forma" de la función de error solamente conocemos cómo debería ser para una función cuadrática (es el estudio que hicimos en una clase).

Sobre el 2.e. Prueben cambiar la tolerancia, y ponerse más exigentes ahí. Puede suceder que para valores poco exigentes de tolerancia la convergencia del método "simple" sea más rápida.
Supongo que lo hicieron, pero revisen también si le hacen la inversa a la matriz diagonal (en rosenbrock_diag o en gradient_descent_diagonal_scaling)

Saludos!