Perché la precisione finita è un problema nell'apprendimento automatico?


Risposte:


4

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.eπ

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


Grazie. Puoi spiegare come svd risolve il problema in PCA e in che modo la somma dei registri riduce il problema? Dove si trova questa somma di registri utilizzati nel classificatore bayes ingenuo?
GeorgeOfTheRF,

Queste sono domande più approfondite, ma posso fornire alcuni suggerimenti. lo "risolve" perché è possibile ottenere PCA da SVD. Vedi qui per un eccellente articolo: arxiv.org/pdf/1404.1100.pdf . SVD è preferito a causa della mancanza della matrice di covarianza nel suo calcolo. Somma dei log in bayes ingenui: blog.datumbox.com/…

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.