¿Por qué la precisión finita es un problema en el aprendizaje automático?

Respuestas:

4

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í.miπ

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


fuente
Gracias. ¿Puedes explicar cómo svd resuelve el problema en PCA y cómo tomar la suma de los registros reduce el problema? ¿Dónde se usa esta suma de registros en el clasificador ingenuo bayes?
GeorgeOfTheRF
Estas son preguntas más profundas, pero puedo proporcionar algunos consejos. lo "resuelve" porque puede obtener PCA de SVD. Vea aquí un excelente artículo: arxiv.org/pdf/1404.1100.pdf . Se prefiere SVD debido a la falta de la matriz de covarianza en su cálculo. Suma de registros en ingenuos bayes
0

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.

Martin Thoma
fuente