Problema I: aproximaciones
Las computadoras intercambian precisión con rango. Las representaciones de punto flotante se aproximan a un número real con un límite superior en el error de redondeo, también conocido como Machine Epsilon (macheps).
La aproximación flotante de 32 bits tiene un macheps máximo de 2 ^ -24.
- ¿Puedo trabajar con computadoras cuánticas con un título de CS?
- ¿Cómo difieren los roles de lingüistas e informáticos en el campo de la PNL?
- ¿Cómo se aplica el aprendizaje automático en la fabricación?
- ¿Cómo pueden las películas y los juegos revisar los beneficios del sitio web del aprendizaje automático?
- ¿Cómo difiere la ingeniería de software de la informática? ¿Son los dos aburridos?
(flotante en Java, flotante32 en Python)
La aproximación flotante de 64 bits tiene un macheps máximo de 2 ^ -53
(doble en Java, float64 en Python)
La mejor aproximación, pero no práctica, es la aproximación flotante de 128 bits que tiene un macheps máximo de 2 ^ -113
La mayoría de los investigadores prefieren float32 ya que el tiempo de entrenamiento depende en gran medida de ello. Una GPU NVIDIA Tesla K80 (figura anterior) puede realizar 8.74 TFlops / segundo con variables de precisión individuales (float32 / float); mientras que solo puede realizar 2.91 TFlops / segundo con doble precisión (float64 / double).
Nota: TFlops / segundo significa “Operaciones de punto flotante de Tera por segundo” = 10 ^ 12 * “Operaciones de punto flotante por segundo”. Es una medida de la capacidad del procesador.
Problema II: Underflow
Hay otro problema asociado con esta discrepancia (indicado en la pregunta). Los algoritmos de Machine Learning calculan probabilidades y algunas probabilidades tienden a ser muy pequeñas. Sin embargo, todavía necesitamos resultados muy precisos incluso en los casos en que las probabilidades son pequeñas. Tal vez hay una regla de decisión que depende de que una probabilidad muy pequeña sea mayor que otra probabilidad muy pequeña. Esta es la razón por la cual los algoritmos tienden a usar logaritmos como la minimización negativa de la probabilidad logarítmica en lugar de la minimización negativa de la probabilidad. La función de logaritmo es monotónica; por lo tanto, no altera las estadísticas de orden de sus entradas (dominio) en su salida (rango). Cuando deja de lado el logaritmo, puede encontrar un fenómeno llamado flujo inferior; que es básicamente la computadora que no puede capturar un valor que es más pequeño de lo que puede presentar.