Können Sie erklären, was endliche Präzision ist? Warum ist endliche Präzision ein Problem beim maschinellen Lernen?
Können Sie erklären, was endliche Präzision ist? Warum ist endliche Präzision ein Problem beim maschinellen Lernen?
Antworten:
Endliche Genauigkeit ist die Dezimaldarstellung einer Zahl, die gerundet oder abgeschnitten wurde. Es gibt viele Fälle, in denen dies notwendig oder angemessen sein kann. Zum Beispiel haben 1/3 und die transzendentalen Zahlen und π alle unendliche Dezimaldarstellungen. In der Programmiersprache C ist ein Doppelwert 8 Bit und auf ungefähr 16 Stellen genau. Siehe hier.
http://www.learncpp.com/cpp-tutorial/25-floating-point-numbers/
Um eine dieser Zahlen konkret auf einem (endlichen) Computer darzustellen, muss es einen Kompromiss geben. Wir könnten 1/3 bis 9 Stellen als .333333333 schreiben, was weniger als 1/3 ist.
Diese Kompromisse werden mit arithmetischen Operationen kombiniert. Instabile Algorithmen sind anfällig für Rechenfehler. Aus diesem Grund wird SVD häufig zur Berechnung der PCA (Instabilität der Kovarianzmatrix) verwendet.
http://www.sandia.gov/~smartin/presentations/SMartin_Stability.pdf
https://en.wikipedia.org/wiki/Numerical_stability
Im naiven Bayes-Klassifikator wird die Multiplikation häufig in eine Summe von Logarithmen umgewandelt, die weniger anfällig für Rundungsfehler ist.
https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Multinomial_naive_Bayes
Ein einziges einfaches Beispiel: Verschwinden des Gradientenproblems beim Deep Learning. Es ist nicht hauptsächlich ein Problem der endlichen Präzision, aber das ist auch ein Teil des Problems.