Stochastic Hill Climbing generalmente funciona peor que Steepest Hill Climbing , pero ¿cuáles son los casos en que el primero se desempeña mejor?
fuente
Stochastic Hill Climbing generalmente funciona peor que Steepest Hill Climbing , pero ¿cuáles son los casos en que el primero se desempeña mejor?
Los algoritmos de escalada más empinada funcionan bien para la optimización convexa. Sin embargo, los problemas del mundo real suelen ser del tipo de optimización no convexo: existen múltiples picos. En tales casos, cuando este algoritmo comienza en una solución aleatoria, la probabilidad de que alcance uno de los picos locales, en lugar del pico global, es alta. Las mejoras como el recocido simulado mejoran este problema al permitir que el algoritmo se aleje de un pico local y, por lo tanto, aumenta la probabilidad de que encuentre el pico global.
Obviamente, para un problema simple con solo un pico, la escalada más empinada siempre es mejor. También puede usar la detención temprana si se encuentra un pico global. En comparación, un algoritmo de recocido simulado en realidad saltaría de un pico global, regresaría y volvería a saltar. Esto se repetiría hasta que se haya enfriado lo suficiente o se haya completado un cierto número predeterminado de iteraciones.
Los problemas del mundo real tratan con datos ruidosos y faltantes. Un enfoque estocástico de escalada, aunque es más lento, es más robusto para estos problemas, y la rutina de optimización tiene una mayor probabilidad de alcanzar el pico global en comparación con el algoritmo de escalada más empinado.
Epílogo: esta es una buena pregunta que plantea una pregunta persistente al diseñar una solución o elegir entre varios algoritmos: la compensación del costo computacional del rendimiento. Como habrás sospechado, la respuesta es siempre: depende de las prioridades de tu algoritmo. Si es parte de un sistema de aprendizaje en línea que opera en un lote de datos, entonces hay una fuerte restricción de tiempo, pero una restricción de rendimiento débil (los próximos lotes de datos corregirán el sesgo erróneo introducido por el primer lote de datos). Por otro lado, si se trata de una tarea de aprendizaje fuera de línea con todos los datos disponibles en la mano, entonces el rendimiento es la principal limitación, y los enfoques estocásticos son recomendables.
Comencemos con algunas definiciones primero.
La escalada es un algoritmo de búsqueda que simplemente ejecuta un bucle y se mueve continuamente en la dirección de aumentar el valor, es decir, cuesta arriba. El ciclo termina cuando alcanza un pico y ningún vecino tiene un valor más alto.
La escalada estocástica de la colina , una variante de la escalada, elige al azar entre los movimientos cuesta arriba. La probabilidad de selección puede variar con la inclinación del movimiento cuesta arriba. Dos métodos bien conocidos son:
Escalada de primera elección: genera sucesores al azar hasta que se genera uno que es mejor que el estado actual. * Considerado bueno si el estado tiene muchos sucesores (como miles o millones).
Escalada de reinicio aleatorio:Funciona con la filosofía de "Si no tiene éxito, intente, intente de nuevo".
Ahora a tu respuesta. La escalada estocástica en realidad puede funcionar mejor en muchos casos . Considere el siguiente caso. La imagen muestra el paisaje del espacio de estado. El ejemplo presente en la imagen está tomado del libro Inteligencia artificial: un enfoque moderno .
Suponga que está en el punto que muestra el estado actual. Si implementa un algoritmo simple de escalada, alcanzará el máximo local y el algoritmo termina. A pesar de que existe un estado con un valor de función objetivo más óptimo, el algoritmo no alcanza allí ya que se atascó en un máximo local. El algoritmo también puede atascarse en máximos locales planos .
La escalada de reinicio aleatorio lleva a cabo una serie de búsquedas de escalada desde estados iniciales generados aleatoriamente hasta que se encuentra un estado objetivo.
El éxito de la escalada depende de la forma del paisaje del espacio de estado. En caso de que solo haya unos pocos máximos locales, mesetas planas; El ascenso aleatorio de la colina encontrará una buena solución muy rápidamente. La mayoría de los problemas de la vida real tienen un paisaje de espacio de estado muy difícil, por lo que no son adecuados para usar el algoritmo de escalada o ninguna de sus variantes.
NOTA: El algoritmo de subida de colina también se puede usar para encontrar el valor mínimo , y no solo los valores máximos. He usado el término máximo en mi respuesta. En caso de que esté buscando valores mínimos, todas las cosas serán inversas, incluida la gráfica.
También soy nuevo en estos conceptos, pero por la forma en que lo he entendido, la escalada estocástica del cerro funcionaría mejor en casos en los que el tiempo de cálculo es valioso (incluye el cálculo de la función de condición física) pero no es realmente necesario alcanzar el mejor solución posible. Llegar incluso a un óptimo local estaría bien. Los robots que operan en un enjambre serían un ejemplo en el que esto podría usarse.
La única diferencia que veo en la escalada más empinada es el hecho de que busca no solo los nodos vecinos sino también los sucesores de los vecinos, más o menos como un algoritmo de ajedrez busca muchos más movimientos por delante antes de seleccionar el mejor movimiento.
fuente
TLDR : si está intentando encontrar el óptimo global deS , dónde S es una función de puntuación con múltiples óptimas locales, de modo que no todas las óptimas locales tienen el mismo valor.
fuente