Otras técnicas de optimización

Técnica de descenso en gradiente iterado

El descenso de gradiente, también conocido como descenso más pronunciado, es un algoritmo de optimización iterativo para encontrar un mínimo local de una función. Mientras minimizamos la función, nos preocupamos por minimizar el costo o error (recuerde el problema del vendedor ambulante). Se usa ampliamente en el aprendizaje profundo, que es útil en una amplia variedad de situaciones. El punto que debemos recordar aquí es que nos preocupa la optimización local y no la optimización global.

Idea principal de trabajo

Podemos entender la idea de trabajo principal del descenso de gradiente con la ayuda de los siguientes pasos:

  • Primero, comience con una estimación inicial de la solución.

  • Luego, toma el gradiente de la función en ese punto.

  • Más tarde, repita el proceso colocando la solución en la dirección negativa del gradiente.

Siguiendo los pasos anteriores, el algoritmo eventualmente convergerá donde el gradiente es cero.

Concepto matemático

Supongamos que tenemos una función f(x)y estamos tratando de encontrar el mínimo de esta función. Los siguientes son los pasos para encontrar el mínimo def(x).

  • Primero, dé un valor inicial $ x_ {0} \: para \: x $

  • Ahora tome el gradiente $ \ nabla f $ ⁡of función, con la intuición de que el gradiente dará la pendiente de la curva en ese x y su dirección apuntará al aumento de la función, para encontrar la mejor dirección para minimizarla.

  • Ahora cambie x de la siguiente manera:

    $$ x_ {n \: + \: 1} \: = \: x_ {n} \: - \: \ theta \ nabla f (x_ {n}) $$

Aquí, θ > 0 es la tasa de entrenamiento (tamaño del paso) que obliga al algoritmo a realizar pequeños saltos.

Estimación del tamaño del paso

En realidad, un tamaño de paso incorrecto θpuede no alcanzar la convergencia, por lo que una selección cuidadosa de los mismos es muy importante. Se deben recordar los siguientes puntos al elegir el tamaño del paso

  • No elija un tamaño de paso demasiado grande, de lo contrario tendrá un impacto negativo, es decir, divergerá en lugar de converger.

  • No elija un tamaño de paso demasiado pequeño, de lo contrario, la convergencia llevará mucho tiempo.

Algunas opciones con respecto a la elección del tamaño del paso:

  • Una opción es elegir un tamaño de paso fijo.

  • Otra opción es elegir un tamaño de paso diferente para cada iteración.

Recocido simulado

El concepto básico de Recocido Simulado (SA) está motivado por el recocido en sólidos. En el proceso de recocido, si calentamos un metal por encima de su punto de fusión y lo enfriamos, las propiedades estructurales dependerán de la velocidad de enfriamiento. También podemos decir que SA simula el proceso metalúrgico de recocido.

Usar en ANN

SA es un método computacional estocástico, inspirado en la analogía de recocido, para aproximar la optimización global de una función dada. Podemos usar SA para entrenar redes neuronales de avance.

Algoritmo

Step 1 - Genera una solución aleatoria.

Step 2 - Calcule su costo usando alguna función de costo.

Step 3 - Genere una solución vecina aleatoria.

Step 4 - Calcule el costo de la nueva solución por la misma función de costo.

Step 5 - Compare el costo de una solución nueva con el de una solución anterior de la siguiente manera:

Si CostNew Solution < CostOld Solution luego pase a la nueva solución.

Step 6 - Pruebe la condición de parada, que puede ser el número máximo de iteraciones alcanzado u obtener una solución aceptable.