Puoi spiegare cos'è la precisione finita? Perché la precisione finita è un problema nell'apprendimento automatico?
Puoi spiegare cos'è la precisione finita? Perché la precisione finita è un problema nell'apprendimento automatico?
Risposte:
La precisione finita è la rappresentazione decimale di un numero che è stato arrotondato o troncato. Ci sono molti casi in cui ciò può essere necessario o appropriato. Ad esempio 1/3 e i numeri trascendenti e π hanno tutti rappresentazioni decimali infinite. Nel linguaggio di programmazione C, un doppio valore è 8 bit e preciso a circa 16 cifre. Vedere qui.
http://www.learncpp.com/cpp-tutorial/25-floating-point-numbers/
Per rappresentare concretamente uno di questi numeri su un computer (finito) ci deve essere una sorta di compromesso. Potremmo scrivere da 1/3 a 9 cifre come .333333333 che è inferiore a 1/3.
Questi compromessi sono aggravati da operazioni aritmetiche. Gli algoritmi instabili sono soggetti a errori aritmetici. Questo è il motivo per cui SVD viene spesso utilizzato per calcolare la PCA (instabilità della matrice di covarianza).
http://www.sandia.gov/~smartin/presentations/SMartin_Stability.pdf
https://en.wikipedia.org/wiki/Numerical_stability
Nel classificatore bayes ingenuo vedrai spesso la moltiplicazione trasformata in una somma di logaritmi, che è meno incline a errori di arrotondamento.
https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Multinomial_naive_Bayes
Un solo semplice esempio: il problema del gradiente di sparizione nel Deep Learning. Non è principalmente un problema di precisione finita, ma fa anche parte del problema.