¿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


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.