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.