Можете ли вы объяснить, что такое конечная точность? Почему конечная точность является проблемой в машинном обучении?
Можете ли вы объяснить, что такое конечная точность? Почему конечная точность является проблемой в машинном обучении?
Ответы:
Конечная точность - это десятичное представление числа, которое было округлено или усечено. Есть много случаев, когда это может быть необходимо или целесообразно. Например, 1/3 и трансцендентные числа и имеют бесконечное десятичное представление. В языке программирования C двойное значение составляет 8 бит и имеет точность приблизительно до 16 цифр. Посмотреть здесь.
http://www.learncpp.com/cpp-tutorial/25-floating-point-numbers/
Чтобы конкретно представить одно из этих чисел на (конечном) компьютере, должен быть какой-то компромисс. Мы могли бы написать от 1/3 до 9 цифр как .333333333, что меньше 1/3.
Эти компромиссы дополняются арифметическими операциями. Нестабильные алгоритмы подвержены арифметическим ошибкам. Вот почему SVD часто используется для вычисления PCA (нестабильность ковариационной матрицы).
http://www.sandia.gov/~smartin/presentations/SMartin_Stability.pdf
https://en.wikipedia.org/wiki/Numerical_stability
В наивном байесовском классификаторе вы часто видите умножение, преобразованное в сумму логарифмов, которая менее подвержена ошибкам округления.
https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Multinomial_naive_Bayes
Один простой пример: проблема исчезающего градиента в Deep Learning. Это в основном не проблема конечной точности, но это тоже часть проблемы.