¿Es posible que un programador de aprendizaje automático no sepa lo que la máquina ha aprendido?

Esa es una muy buena pregunta. Es completamente posible implementar algoritmos de aprendizaje automático sin comprenderlos y sí, estoy de acuerdo en que incluso podría ser bastante peligroso.

Muchos proveedores de plataformas de aprendizaje automático han comenzado a afirmar que sus herramientas son tan buenas que cualquier desarrollador puede convertirse en un científico de datos sin conocimientos previos de aprendizaje automático. Cuando los CTO y los gerentes de recursos humanos comienzan a aceptar esa idea, no se hacen un favor.

Tener mejores herramientas no significa que podamos ser menos educados y lograr los mismos resultados. Significa que necesitamos más conocimiento que nunca. La forma de evitar el mal uso del aprendizaje automático es con la educación, no con mejores herramientas.

Cuando solo usa el aprendizaje automático para agregar alguna característica agradable a su producto, no es tan peligroso. Lo peor que puede pasar es que no funcione o que tus predicciones sean malas. Pero cuando comienza a agregar aprendizaje automático a aplicaciones críticas para la seguridad, es una situación totalmente diferente. Si bien esto aún no es tan común, creo que veremos mucho más en el futuro cercano. Lo que también veremos es una gran cantidad de algoritmos de aprendizaje automático que se implementan en dispositivos pequeños y en todo Internet. Muchos de estos algoritmos estarán más ocultos de lo que estamos acostumbrados a partir de hoy.

La película Idiocracia (2006) muestra lo que podría suceder cuando combinas tecnología avanzada con personas que no la entienden. El diagnóstico hospitalario, por ejemplo, podría convertirse en esto. No queremos eso.

Desde una perspectiva práctica, es decir, en el contexto de la mayoría de las aplicaciones de ML utilizadas hoy en día, el programador sería muy consciente de lo que el algoritmo ha aprendido (en términos del resultado que ha aprendido a producir). Sin embargo, donde él o ella podría estar perdido, estaría en su capacidad de comprender / explicar el proceso que el modelo ha aprendido para producir esta salida, a partir de los datos que se le suministran.

Nautilus tiene una buena descripción general aquí (¿La inteligencia artificial es permanentemente inescrutable?). El problema, en pocas palabras, es que muchos modelos de ML hoy emplean demasiadas capas para que un programador humano las considere y conceptualice todas individualmente. Como resultado, él o ella sería incapaz de describir las reglas por las cuales se determinó que una entrada dada estaba relacionada con una salida dada.

En muchos casos, esto no es un problema. A la mayoría de las personas no les importa la naturaleza del proceso mediante el cual se analizan sus comandos de voz, por ejemplo, y se utilizan para producir resultados de búsqueda relevantes. Sin embargo, hay situaciones en las que se pueden plantear cuestiones de seguridad o moralidad:

  • Por ejemplo, el artículo de Nautilus analiza una situación en la que un hospital podría usar un modelo ML para identificar a los pacientes con neumonía en riesgo de complicaciones y que, por lo tanto, más necesitan una cama dentro de una UCI. Debido a una peculiaridad dentro del conjunto de datos en el que se entrenó el modelo (los pacientes con neumonía que también tenían asma recibieron atención y atención adicionales por defecto, y como grupo desarrolló menos complicaciones, a pesar de estar en mayor riesgo), el algoritmo incluyó a pacientes con asma entre el grupo que sugirió tenía menos probabilidades de requerir atención estricta. Si los administradores del hospital y los médicos confiaran ciegamente en el resultado, habrían enviado a casa a personas que, de hecho, necesitaban una cama dentro de la UCI.
  • Del mismo modo, Google Photos en 2015 se convirtió en un excelente ejemplo de la forma en que los enfoques de LD pueden producir los mismos sesgos que tendemos a asociar con los responsables humanos de la toma de decisiones. Específicamente, su aplicación Photo etiquetó a un desarrollador afroamericano y a su amigo con la etiqueta “gorilas”. El desarrollador notó el error y lo cubrió en la prensa como un ejemplo de los límites de la inteligencia artificial.

Sin embargo, lo interesante de estos casos es que los problemas se originaron en la entrada. No son ejemplos de aprendizaje deshonesto, sino más bien una falta de reconocimiento o comprensión total de las confusiones dentro de los conjuntos de entrenamiento. Lo que podría ser más importante en el corto plazo, es decir, durante el tiempo durante el cual se supervisan la mayoría de los modelos de ML en uso, y producir resultados que hemos predeterminado, es garantizar que los programadores comprendan bien sobre qué modelos están operando: ¿Qué hay realmente en el conjunto de datos, qué factores se correlacionan con su resultado de interés y cómo puede asegurarse de que su modelo no esté aprovechando esas correlaciones (incidentales) sin su conocimiento?

La depuración de modelos aprendidos por máquina puede ser un desafío. A veces, los problemas son obvios, por ejemplo, el modelo recibió algunos datos de entrada incorrectos y produjo una salida de basura. Otras veces obtienes la respuesta correcta, simplemente no está muy bien clasificada. Eso podría requerir profundizar en las características para comprender por qué el modelo tomó esa decisión. El modelo puede mejorarse agregando el ejemplo fallido al conjunto de entrenamiento. Pero eso no garantiza que el modelo funcione correctamente y puede causar problemas en otras partes del sistema.

Por estas razones, los modelos generalmente se evalúan en términos de calidad agregada, no de la calidad de los resultados individuales. Cualquier falla individual no se considera una falla del sistema.

Entonces, ¿deberíamos usar modelos aprendidos por la máquina en aplicaciones críticas para la seguridad? Seguro. Especialmente cuando se desempeñan mejor que los humanos. Tome los autos sin conductor como ejemplo. Incluso cuando las personas están en su mejor momento pueden tener fallas momentáneas de atención. Y hay muchos conductores que están demasiado cansados, borrachos, envían mensajes de texto, tratan con niños, etc. No es difícil imaginar que una IA pueda superar a un conductor típico en tareas relacionadas con la conducción.

Obviamente, no querría que un modelo con una precisión del 95% sea el único mecanismo de control de los frenos. Pero hay formas de lidiar con las fallas del modelo.

  • Si la IA se da cuenta de que no puede tomar una decisión, podría:
  • Aplique los descansos (tal vez incluso encienda los peligros).
  • Aplazar el control al conductor.
  • Si la IA se ha vuelto loca:
    • Los mecanismos secundarios pueden funcionar. Por ejemplo, puede haber una velocidad / aceleración máxima codificada en el sistema.
    • El conductor puede tomar el control.
  • Si falla un sensor:
    • Tienes docenas más.
    • Si fallan suficientes sensores o si los datos son inconsistentes, la IA o los mecanismos secundarios pueden detectar esto y aplicar los métodos anteriores.

    Incluso con sistemas de salvaguardas fallarán. Entonces, ¿qué nivel de falla toleraremos en aplicaciones de IA críticas para la seguridad? Todavía no tenemos una respuesta para eso. Si una IA es 3 veces más segura que un conductor humano, ¿eso justificaría la adopción? Muchos dirían que sí. Pero, ¿qué pasaría si los modos de falla ocurrieran en situaciones que los humanos podrían haber evitado fácilmente? ¿Son aceptables esas fallas, o exigiremos que la IA sea estrictamente mejor que un conductor humano en todos los aspectos?

    Yo diría que la sociedad está tomando un enfoque cauteloso del problema. Estamos viendo una introducción gradual de características de IA incrementales como el piloto automático de Tesla. Los vehículos totalmente autónomos aún requieren un conductor al volante para tomar el control. Pero a medida que acumulan más y más millas, son capaces de a) demostrar su seguridad mejorada yb) recopilar más datos para construir mejores modelos.