¿Por qué los investigadores de sistemas informáticos no creen en la IA o la aplican a problemas en los ‘sistemas informáticos’?

La mayoría de los casos que cita, hay poca necesidad de AI. Son esencialmente sistemas mecánicos, destinados a hacer un trabajo claramente definido y hacerlo rápido. ¿Qué quieres con AI en un sistema de archivos, por ejemplo? Desea que sus datos se archiven de forma segura y se recuperen rápidamente, sin incertidumbre ni variación.

Se espera que un sistema operativo obedezca comandos: mecánicamente y repetible. De nuevo, no hay opciones allí.

Los diseñadores de compiladores pueden usar técnicas de IA para diseñar los algoritmos que incorporan en los compiladores, pero una vez más, la repetibilidad es un objetivo. Del mismo modo, los diseñadores de discos pueden registrar solicitudes de E / S de disco y analizarlas fuera de línea para optimizar los patrones de búsqueda. Pero luego el algoritmo optimizado se integrará en la unidad de disco: cuando necesita tiempos de respuesta de menos de 10 microsegundos, no hay oportunidad para AI en línea.

Tomando su último punto: todos los ejemplos que cita no tienen los datos masivos para la minería de datos. ¿Qué hay para el mío? No acumulan datos: los datos entran, se procesan y salen.

Trabajo en EDA – sistemas para diseñar circuitos integrados. Usamos mucho de lo que solía llamarse IA y bastante que se llamaría aprendizaje automático en otros contextos. Significan cosas ligeramente diferentes y ninguno de los significados es muy nítido. También tenemos algunas de las mismas preocupaciones que los programadores de sistemas, por lo que creo que tengo algunas ideas aquí.

Es relativamente fácil llevar un algoritmo de “aprendizaje” a un estado en el que puede publicar un documento sobre él, pero otro muy diferente para ponerlo en un sistema de producción. Puede ser tan simple como terminar entrenando en exceso su sistema en el conjunto de datos para el que publicó el documento; puede ser una mierda para todo lo demás. Anécdotas sobre este tema, pero mi favorito: en los años 80, la OTAN quería entrenar un sistema de inteligencia artificial para distinguir a los tanques aliados de los soviéticos. Funcionó muy bien en los datos de entrenamiento, falló por completo en el campo. ¿Por qué? Resulta que todas las fotos de los tanques soviéticos se tomaron de noche … Para mí, esta es una realidad cotidiana: podemos terminar fácilmente con algoritmos que funcionan solo en los datos de un cliente. Si no tenemos cuidado.

Incluso si ignoramos el sobreentrenamiento, hay un problema más profundo de falta de fiabilidad. Casi todos los algoritmos de IA son aproximados, y en la mayoría de los casos, el aprendizaje automático ni siquiera viene con enunciados de problemas claros. Hay contextos en los que esto está bien hasta cierto punto: si está enderezando un optimizador, no tiene que hacer todo lo más rápido posible. Sin embargo, si la corrección de la salida está en riesgo, no es aceptable. Está bien no acelerar el programa, pero no está bien romperlo. Se descartan muchos algoritmos porque no pueden garantizar la corrección donde importa.

Incluso si nos limitamos a cosas que preservan la corrección, está bien no acelerar las cosas hasta cierto punto. Casi todos los días tenemos solicitudes de soporte donde el problema es que el optimizador no obtuvo la velocidad que el cliente estaba buscando. Tal vez el último lanzamiento o un producto de la competencia lo hizo. Comercialmente no es aceptable explicar que esa es la naturaleza de las aproximaciones: hay que solucionarlo. Y debido a que es aproximado, esto es interminable. Entonces, cuando sea posible, es preferible corregir la definición del problema para permitir un algoritmo exacto que usar uno aproximado.

Finalmente, el aprendizaje automático es lento. El tiempo de ejecución total para optimizar, diseñar y verificar un IC de tamaño normal puede ser fácilmente de 5000 horas de CPU. Y en el curso de un proyecto puede que tenga que hacer eso 20 veces. Este es ciertamente un tamaño de problema muy grande, pero un compilador podría enfrentar fácilmente algo similar para un sistema grande si usara el mismo tipo de algoritmos que nosotros usamos. La razón por la que no lo hacen es que el software es mucho más fungible y se puede confiar en que los ingenieros de software optimizarán mucho más que los ingenieros de hardware.

Los lugares que enumeró son lugares donde la confiabilidad y la velocidad son importantes. La inteligencia artificial y el aprendizaje automático no son confiables y no son rápidos. Lo juzgas por la cantidad de veces que hace las cosas bien frente a las veces que las hace mal. También es computacionalmente intenso, al menos en términos de los problemas que está enumerando, donde las cosas necesitan ser altamente optimizadas.

Definir ‘inteligencia’. La respuesta a esa pregunta revelará por qué los investigadores de sistemas informáticos no ‘creen’ en la IA.

More Interesting

¿Cuál es la diferencia entre Bayes ingenuo y la entropía máxima?

¿Por qué el error cuadrático medio es equivalente a minimizar la entropía cruzada entre la distribución empírica y un modelo gaussiano?

¿Por qué la biblioteca de estadísticas de Python es tan limitada en métodos bioestadísticos avanzados en comparación con R, mientras que la biblioteca de Python de Machine Learning es mucho mejor?

¿Cuáles son las falacias comunes de minería de datos?

¿Cuál es la diferencia entre el descenso en gradiente y el descenso coordinado?

¿Qué es este aprendizaje automático y big data?

¿Cuáles son los pros y los contras de estos tres modelos de secuencia: modelo MaxEnt Markov, campos aleatorios condicionales y redes neuronales recurrentes?

¿Es una exageración aplicar un conjunto de redes neuronales?

¿Qué es un gran blog para el aprendizaje automático?

Cómo usar mel-spectrogram como entrada de una CNN

¿Qué tan fuerte es la Universidad de Washington en Machine Learning?

¿Se puede desarrollar un bot de chat usando Tensorflow? En caso afirmativo, ¿cómo empiezo a codificar en el mismo?

¿Qué tan bueno es UMass Amherst para CS, especialmente para el aprendizaje automático y la minería de texto?

¿Cuál es el estado de la investigación sobre chatbots y la PNL en 2017?

¿Cómo se elige una función de activación? He notado que las funciones más utilizadas se parecen, especialmente cerca de 0. ¿Tienen que ajustarse a algún comportamiento específico? ¿Es este un tema de investigación abierto? ¿Hace una gran diferencia en los resultados?