Sistemas de AA en producción: Dependencias de datos

Los datos son tan importantes para los desarrolladores de AA como lo es el código para los desarrolladores tradicionales. Esta lección se centra en los tipos de preguntas que deberías hacerte sobre los datos.

Dependencias de datos

Administración de atributos

  • Los datos de entrada (atributos) determinan el comportamiento del sistema de AA.
    • Escribimos pruebas de unidades sobre bibliotecas de software, pero ¿qué sucede con los datos?
  • Se debe tener cuidado al elegir las señales de entrada.
    • ¿Tal vez incluso más cuidado que al decidir las bibliotecas de software sobre las cuales basarse?

Preguntas para hacer sobre los datos de entrada

  • Fiabilidad
    • ¿Qué sucede cuando la señal no está disponible? ¿Cómo te darías cuenta de eso?

Preguntas para hacer sobre los datos de entrada

  • Fiabilidad
    • ¿Qué sucede cuando la señal no está disponible? ¿Cómo te darías cuenta de eso?
  • Control de versiones
    • ¿El sistema que calcula esta señal cambia alguna vez? ¿Con qué frecuencia? ¿Qué sucedería?

Preguntas para hacer sobre los datos de entrada

  • Fiabilidad
    • ¿Qué sucede cuando la señal no está disponible? ¿Cómo te darías cuenta de eso?
  • Control de versiones
    • ¿El sistema que calcula esta señal cambia alguna vez? ¿Con qué frecuencia? ¿Qué sucedería?
  • Necesidad
    • ¿La utilidad de la señal justifica el costo de incluirla?

Preguntas para hacer sobre los datos de entrada (continuación)

  • Correlaciones
    • ¿Algunas de las señales de entradas están tan vinculadas que necesitamos estrategias adicionales para separarlas?

Preguntas para hacer sobre los datos de entrada (continuación)

  • Correlaciones
    • ¿Algunas de las señales de entradas están tan vinculadas que necesitamos estrategias adicionales para separarlas?
  • Retroalimetación
    • ¿Cuáles de las señales de entrada pueden verse afectadas por los resultados del modelo?

Resumen de la clase por video

El comportamiento de un sistema de AA depende del comportamiento y la calidad de sus atributos de entrada. A medida que cambian los datos de entrada para esos atributos, también lo hará el modelo. A veces, ese cambio es intencional; otras veces, no.

En el desarrollo de software tradicional, te centras más en el código que en los datos. En el desarrollo de aprendizaje automático, si bien la codificación es parte del trabajo, debes ampliar el enfoque para incluir los datos. Por ejemplo, en proyectos de desarrollo de software tradicional, se recomienda escribir pruebas de unidades para validar el código. En los proyectos de AA, debes probar, verificar y controlar los datos de entrada de forma continua.

Por ejemplo, debes controlar continuamente el modelo para quitar los atributos que se usan poco o no se usan. Imagina un determinado atributo que contribuyó poco o nada al modelo. Si los datos de entrada para ese atributo cambian de forma abrupta, es probable que el comportamiento del modelo también cambie de una forma indeseada.

Fiabilidad

Preguntas para hacer sobre la fiabilidad de los datos de entrada:

  • ¿La señal siempre estará disponible o proviene de una fuente que no es confiable? Por ejemplo:
  • ¿La señal proviene de un servidor que falla cuando hay muchas cargas?
  • ¿La señal proviene de personas que se van de vacaciones todos los meses de agosto?

Control de versiones

Preguntas para hacer sobre el control de versiones:

  • ¿El sistema que calcula los datos cambia alguna vez? Si es así:
  • ¿Con qué frecuencia?
  • ¿Cómo sabes que el sistema cambia?

A veces, los datos provienen de un proceso superior. Si ese proceso cambia de forma abrupta, el modelo será afectado.

Considera crear tu propia copia de los datos que recibes del proceso superior. Luego, usa solo la siguiente versión de los datos superiores cuando tengas la certeza de que es seguro hacerlo.

Necesidad

Es posible que siguiente pregunta te recuerde a la regularización:

  • ¿La utilidad del atributo justifica el costo de incluirlo?

Siempre es tentador agregar más atributos al modelo. Por ejemplo, supongamos que encuentras un atributo nuevo que permite que el modelo sea más exacto. Más exactitud parece mucho mejor que menos exactitud. Sin embargo, acabas de agregar una carga de mantenimiento. Es posible que el atributo adicional se degrade de forma inesperada, por lo que deberás controlarlo. Piensa con cuidado antes de agregar atributos que solo generen beneficios menores a corto plazo.

Correlaciones

Algunos atributos se correlacionan (de forma positiva o negativa) con otros. Pregúntate lo siguiente:

  • ¿Algunos de los atributos están tan vinculados que se necesitan estrategias adicionales para separarlos?

Retroalimentación

A veces, un modelo puede afectar sus propios datos de entrenamiento. Por ejemplo, los resultados de algunos modelos son, a su vez, atributos de entrada directos o indirectos de ese mismo modelo.

A veces, un modelo puede afectar a otro modelo. Por ejemplo, analiza dos modelos para predecir los precios de las acciones:

  • el Modelo A, con una predicción muy inexacta
  • el Modelo B

Como el Modelo A tiene fallas, a veces decide por error comprar valores de la Acción X. El Modelo B usa el precio de la Acción X como atributo de entrada, por lo que este modelo puede llegar con facilidad a conclusiones erróneas sobre el precio de los valores de la Acción X. Por lo tanto, es posible que el Modelo B compre o venda valores de la Acción X, según el comportamiento con fallas del Modelo A. A su vez, el comportamiento del Modelo B puede afectar al Modelo A, por lo que se desencadena una tulipomanía o una caída en las acciones de la Empresa X.

Enviar comentarios sobre…

Curso intensivo de aprendizaje automático