Primero, debe usar pruebas unitarias para asegurarse de que el código que ha pasado una prueba se pruebe constantemente para que al solucionar un problema no introduzca otro.
En segundo lugar, muchos de estos problemas se reducen a verificar si ha calculado correctamente un gradiente. La mejor manera de hacerlo es tomar su código, que implementa una actualización basada en una derivada analítica y compararlo con una actualización basada en derivadas numéricas. Puede conectar muchos valores diferentes y asegurarse de que su código proporcione la misma actualización (precisión numérica del módulo).
Para los algoritmos estocásticos (como el muestreo de Gibbs), me aseguro de que mi código esté escrito para que el generador de números aleatorios se pueda apagar. Para las pruebas, desea reemplazar el generador de números aleatorios con algo determinista (es decir, tomar puntos de corte predefinidos, seleccionar el modo condicional, etc.) y escribir sus pruebas en función de este generador de números aleatorios.
- ¿Cuál es una forma útil de clasificar los usos de las tecnologías de inteligencia artificial?
- ¿Cuáles son todas las debilidades que Lee Sedol encontró en el juego de AlphaGo?
- ¿Cómo se construye una máquina del tiempo?
- ¿Cuáles son algunos de los temas candentes que se están investigando actualmente en la escucha de máquinas / procesamiento de audio?
- ¿Cuáles son algunos problemas de aprendizaje automático que están más allá del poder de scikit-learn para resolver?
Finalmente, para la inferencia probabilística con variables latentes, debe muestrear un conjunto de variables de una distribución conjunta completamente especificada y asegurarse de que su inferencia pueda recuperar (identificabilidad del módulo) las variables latentes verdaderas.