Чи можете ви пояснити, що таке кінцева точність? Чому кінцева точність є проблемою в машинному навчанні?
Чи можете ви пояснити, що таке кінцева точність? Чому кінцева точність є проблемою в машинному навчанні?
Відповіді:
Кінцева точність - це десяткове представлення числа, яке було округленим або врізаним. Існує багато випадків, коли це може бути необхідним або доречним. Наприклад 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
Єдиний простий приклад: зникнення проблеми градієнта в глибокому навчанні Це в основному не проблема обмеженої точності, але це також є частиною проблеми.