¿Puedes explicar qué es precisión finita? ¿Por qué la precisión finita es un problema en el aprendizaje automático?
¿Puedes explicar qué es precisión finita? ¿Por qué la precisión finita es un problema en el aprendizaje automático?
Respuestas:
La precisión finita es la representación decimal de un número que se ha redondeado o truncado. Hay muchos casos en los que esto puede ser necesario o apropiado. Por ejemplo, 1/3 y los números trascendentales y π tienen representaciones decimales infinitas. En el lenguaje de programación C, un valor doble es de 8 bits y preciso a aproximadamente 16 dígitos. Mira aquí.
http://www.learncpp.com/cpp-tutorial/25-floating-point-numbers/
Para representar concretamente uno de estos números en una computadora (finita) debe haber algún tipo de compromiso. Podríamos escribir 1/3 a 9 dígitos como .333333333, que es menor que 1/3.
Estos compromisos se combinan con operaciones aritméticas. Los algoritmos inestables son propensos a errores aritméticos. Esta es la razón por la cual SVD se usa a menudo para calcular PCA (inestabilidad de la matriz de covarianza).
http://www.sandia.gov/~smartin/presentations/SMartin_Stability.pdf
https://en.wikipedia.org/wiki/Numerical_stability
En el ingenuo clasificador bayes, a menudo verá la multiplicación transformada en una suma de logaritmos, que es menos propenso a errores de redondeo.
https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Multinomial_naive_Bayes
Un solo ejemplo simple: problema de gradiente de fuga en el aprendizaje profundo. No es principalmente un problema de precisión finita, pero eso también es parte del problema.