¿Por qué el gradiente en el punto mínimo no es igual a 0?

Hay tres posibilidades en las que puedo pensar;

1) su función objetivo no es lo suficientemente fluida (normalmente, se supone que las funciones objetivas tienen derivadas continuas primera y segunda en la vecindad del mínimo; esto se conoce como una función C2). Las funciones que son C1 o menos no siguen las reglas, y es completamente posible que dicha función tenga un gradiente distinto de cero como mínimo. También es posible que el gradiente no esté bien definido como mínimo. La función de valor absoluto es un ejemplo. El “gradiente” devuelto por un método numérico en la vecindad será incorrecto. Minimizar dicha función requiere un análisis cuidadoso.

2) el vecindario alrededor del mínimo es C2, pero el vecindario pequeño es más pequeño que el tamaño de su paso y / o tiene límites de formas extrañas. Esto llevaría a que la función tenga un mínimo bien definido, pero el optimizador numérico no podrá encontrarlo.

3) Has cometido un error en alguna parte. El gradiente en un mínimo o máximo local de cualquier función C2 debe tener magnitud cero. Probar esto es bastante sencillo.

NOTA: los optimizadores numéricos generalmente no encontrarán exactamente un mínimo. Terminarán en una ubicación cercana al mínimo, pero el gradiente será de hecho pequeño pero distinto de cero. Asegúrese de haber elegido correctamente sus condiciones de parada.

Carl Henshaw tiene una buena respuesta. Si la función objetivo no es lo suficientemente suave, puede tener un mínimo local que no esté en un punto estacionario. Si su función no es convexa, podría tener más de un mínimo local (algunos más bajos que otros). Finalmente, si la implementación de su función objetivo es numéricamente inestable, o la función objetivo es muy plana en la vecindad del punto óptimo, es posible que tenga un comportamiento “nervioso”.

Además, un tema común en la programación numérica es que las cosas que se supone que son cero (porque, matemáticamente, son exactamente cero, en un mundo de precisión perfectamente precisa) terminan con pequeños valores distintos de cero (por ejemplo, 10 ^ -15) . Este no es un problema práctico para la mayoría de las aplicaciones. Eso es más que suficiente. La mayoría de las constantes físicas solo sabemos de 5 a 8 dígitos de precisión de todos modos.

Finalmente, desde una base teórica, la mayoría de los algoritmos de optimización nunca “alcanzan” exactamente el punto mínimo. El logro exacto sería matemáticamente imposible en algunas circunstancias. Convergen en él, y el algoritmo debería detenerse tan pronto como el error de optimización sea menor que el error intrínseco de la computación de punto flotante.

Si su problema está restringido como usted menciona en los comentarios, el gradiente no necesita ser óptimo en cero. Esto se debe a que el gradiente podría estar apuntando fuera del conjunto factible. De hecho, podría ser que no hay una dirección dentro del conjunto factible a lo largo de la cual disminuye el valor de la función.

Por lo tanto, es posible que se haya alcanzado el óptimo, aunque el gradiente sea distinto de cero. En este punto, el solucionador probablemente intentará realizar una actualización, descubrirá que la mejor actualización es 0 y luego se cerrará, tal vez diciendo algo como “Falló la búsqueda de línea”. Si la actualización llega a 0, un solucionador basado en descenso de gradiente no tiene por qué continuar, y debe terminar, en lo que respecta a mi conocimiento limitado.

La otra posibilidad es una función no uniforme como explica la respuesta de Carl.

More Interesting

¿Cuándo se lanzará sklearn 0.18?

¿Cuál es el significado real de los pesos en la red neuronal?

¿Cómo puedo hacer que mi computadora esté disponible para Google, Quora, Facebook, para poder contribuir a sus tareas de aprendizaje automático durante el tiempo de inactividad?

¿En qué se diferencia el método de agrupamiento en el aprendizaje automático de disparar una consulta SQL 'select' para agrupar personas u objetos? ¿Cuáles son las diferencias y necesidades reales?

¿Qué trabajo se ha hecho para aplicar la detección de nuevos eventos a eventos sociales en los que los usuarios estarían interesados ​​(es decir, conciertos)?

¿Qué es la optimización submodular?

¿Se pueden identificar las características que resultan del proceso de aprendizaje de CNN, o se puede diseñar e incrustar una cantidad de características bien definidas en una CNN?

¿Qué significa 'Bagging reduce la varianza mientras se conserva el sesgo'?

¿Cómo entiendes las ecuaciones de MLE para los clasificadores Naive Bayes en el libro de aprendizaje automático de Kevin Murphy?

¿Qué debo hacer para poder contribuir al campo de la visión por computadora y trabajar en Google en el futuro?

¿Dónde debo comenzar si quiero escribir un algoritmo de etiquetado y clasificación de oraciones?

¿Cuáles son las mejores herramientas para la minería de datos en Internet? ¿Qué debo usar para configurar un evento automático / alerta de tendencia?

¿Cómo son los cursos en edX sobre aprendizaje automático, ingeniería artificial y robótica para el empleo?

Cómo interpretar una capa totalmente conectada como una capa convolucional para hacer predicciones densas de píxeles

Según muchas personas, la inteligencia artificial y el aprendizaje automático son las principales razones de los despidos de trabajo de TI. ¿Qué trabajos han sido reemplazados por estas disciplinas?