* A2A *
Hablamos de los algoritmos Big O para ML, pero solo lo llamamos con un nombre diferente porque es un poco más complicado que el análisis Big O habitual para otros algoritmos.
Si está familiarizado con los algoritmos ML, habrá notado que muchos de ellos siguen la siguiente plantilla de código
- ¿Cuál es el futuro de la música generada por computadora?
- Si dos cadenas de longitud desigual se generan por el mismo patrón, ¿cómo se relacionan sus complejidades de Kolmogorov?
- ¿Vale la pena pagar 6 x $ 49 por una estructura de datos y especialización de algoritmos en Coursera?
- ¿Se pueden implementar dfs sin recursividad?
- Cómo obtener el valor más cercano al número al agregar elementos de matriz
hacer {
// hacer algo
} while (! converged)
Tenga en cuenta que la condición de terminación de este bucle “! Convergido” no depende directamente de N. Por lo tanto, hacer un gran análisis de O en algoritmos de ML se reduce a responder las siguientes preguntas:
- ¿El algoritmo ML converge? En caso afirmativo, ¿converge de manera determinista o probabilística?
- ¿Se puede mostrar el número de iteraciones necesarias para converger en función de N? y bajo que condiciones
- Si no podemos dar una forma explícita para el número de iteraciones, ¿podemos al menos proporcionar la tasa de convergencia?
En algunos casos, estas preguntas son fáciles de responder, pero en algunos casos, son preguntas bastante difíciles de responder. Puede intentar leer “Conferencias sobre la optimización convexa moderna de Ben-Tal y Nemirovski” para comprender cómo se realiza el análisis de complejidad, al menos para los modelos convexos.