
[27/09/2017] Ya que el aprendizaje automático es una panacea, su empresa debe ser capaz de utilizarlo de manera rentable, ¿verdad? Tal vez; Tal vez no. Bueno, estoy bromeando con respecto a la panacea: eso es solo una estrategia de marketing. Veamos si tiene lo que se necesita para aprovechar la inteligencia artificial -y cómo podría llegar a ese punto si no lo ha alcanzado.
Para empezar, ¿sabe lo que quiere predecir o detectar? ¿Tiene suficientes datos que analizar para construir modelos predictivos? ¿Cuenta con las personas y herramientas necesarias para definir y entrenar modelos? ¿Ya posee modelos estadísticos o físicos que le den una base para las predicciones?
Aquí, desglosaremos lo que necesita para que sus proyectos de inteligencia artificial y aprendizaje automático tengan éxito, discutiendo sus ramificaciones para ayudarle a determinar si su organización está realmente dispuesta a aprovechar el aprendizaje automático, el aprendizaje profundo y la inteligencia artificial.
Cuenta con montones de datos
Suficientes datos relevantes son la condición sine que non de las predicciones y la identificación de características. Con ello, puede llegar a tener éxito; sin ello, no lo hará. ¿Cuántos datos necesita? Cuantos más factores trate de considerar, más datos necesitará; ya sea que esté haciendo pronósticos estadísticos ordinarios, aprendizaje automático o aprendizaje profundo.

Tomemos el problema común de predecir las ventas, cuántos pares de blusas azul marino de manga corta va a vender el próximo mes, y cuántas necesita tener en stock en su tienda y su almacén para evitar pedidos pendientes sin vincular demasiado dinero y espacio en los estantes en stock. Las ventas al por menor son altamente estacionales, por lo que necesita datos mensuales estadísticamente significativos de varios años para poder corregir las variaciones de mes a mes, y establecer una tendencia anualizada -y eso es solo para el análisis estándar cronológico. El aprendizaje automático necesita aún más datos que modelos estadísticos, y los modelos de aprendizaje profundo necesitan muchísimo más que eso.
Podría construir un modelo estadístico que analice las ventas mensuales de blusas a nivel nacional a lo largo de cinco años, y usaría ese agregado para predecir las ventas totales de blusas para el próximo mes. Ese número podría estar entre los cientos de miles (digamos que es 300 mil). Entonces, podría predecir las ventas de las blusas en una de las tiendas en particular como un porcentaje de las ventas nacionales (digamos que es el 3%); e independientemente, predecir las ventas de las blusas azules de manga corta como un porcentaje de las ventas totales de blusas (digamos que es 1%). Aproximadamente, ese modelo apunta a 90 ventas de blusas azules de manga corta en la tienda el próximo mes. Puede comprobar la predicción analizando las ventas de todos los años del mismo almacén para una variedad de productos, con especial atención en cuánto varían de las predicciones modelo.
Ahora, supongamos que desea abordar los factores externos, como el clima y las tendencias de la moda. ¿Las blusas de manga corta se venden mejor cuando la temperatura es más elevada o los días son más soleados, que cuando está más fresco o más lluvioso? Probablemente. Puede hacer una prueba incluyendo los datos meteorológicos históricos en su modelo, aunque podría ser un poco difícil con un modelo estadístico cronológico. Podría querer intentarlo con la metodología decision forest regression; y mientras lo hace, pruebe los otros siete tipos de modelos de aprendizaje automático para la regresión (ver la captura de pantalla anterior), y luego compare el "costo" (una función de error normalizada) de cada modelo cuando sea analizado en comparación con los resultados reales del año pasado, para encontrar el mejor modelo.
¿El próximo mes, el azul marino va a venderse mejor o peor que el año pasado durante el mismo período? Puede echar un vistazo a todas las ventas mensuales de ropa azul marino y predecir las tendencias anuales de la moda; y tal vez incorporarlo en sus modelos de aprendizaje automático. O puede que tenga que aplicar una corrección manual (también conocido como "una suposición") a sus modelos en base a lo que se oye de la prensa de moda. ("Elevemos la predicción hasta un 20% por si acaso").
Quizá, quiere hacerlo aún mejor mediante la creación de una red neuronal profunda para esta predicción. Posiblemente descubra que puede mejorar el error de regresión en un porcentaje mínimo por cada capa oculta que añada, hasta que en algún momento la siguiente capa no ayude. Podría alcanzar el punto de rendimientos decrecientes porque no hay más características que reconocer en el modelo, o probablemente porque no hay suficientes datos para soportar más refinamientos.
Cuenta con suficientes científicos de datos
Pudo haber notado que una persona tuvo que construir todos los modelos discutidos anteriormente. No, no es cuestión de verter datos en una tolva y presionar un botón. Se necesita experiencia, intuición, la capacidad para programar y un buen conocimiento sobre estadísticas, para obtener resultados con el aprendizaje automático, sin importar las herramientas utilizadas -a pesar de lo que los proveedores puedan asegurar.
Ciertos proveedores en particular tienden a afirmar que "cualquier persona" o "cualquier rol de negocio" puede usar sus modelos aplicados de aprendizaje automático previamente capacitados. Eso podría ser cierto si el modelo es exactamente la solución para el problema en cuestión, como la traducción del francés formal quebequense al inglés; pero el caso más habitual es que sus datos no están bien adaptados a los modelos de aprendizaje automático (ML) calificados. Puesto que tiene que entrenar el modelo, necesitará analistas y científicos de datos para guiar la capacitación, que es más un arte que ingeniería o ciencia.
Una de las cosas más extrañas sobre la contratación de científicos de datos es los requisitos publicados, especialmente en comparación con las habilidades reales de los contratados. Los anuncios suelen decir "Se necesita científico de datos. STEM Ph.D. más 20 años de experiencia". La primera curiosidad es que el campo no ha existido por 20 años. La segunda es que las empresas contratan a jóvenes de 26 años justo después de graduarse -es decir, sin experiencia laboral fuera del mundo académico, y mucho menos de 20 años- en lugar de personas que ya saben cómo hacer esto, pues tienen miedo de que las personas mayores sean demasiado caras a pesar de haber pedido 20 años de experiencia. Sí, es hipocresía, y probablemente discriminación ilegal por edad, pero eso es lo que ha estado sucediendo.
Monitorea o adquiere los factores que importan
Incluso si tiene mucha información y científicos de datos, es posible que no tenga datos para todas las variables pertinentes. En términos de base de datos, puede contar con un montón de filas, pero carecer de algunas columnas. Estadísticamente, puede sufrir una variación inexplicable.
Las mediciones para algunas variables independientes, tales como las observaciones meteorológicas, se obtienen fácilmente y se combinan en el conjunto de datos, incluso después del hecho. Otros factores pueden ser difíciles, poco prácticos o costosos de medir o adquirir, incluso sabiendo cuales son.
Usemos un ejemplo químico. Cuando está enchapando plomo sobre cobre, puede medir la temperatura y la concentración del baño galvánico de ácido fluorobórico, y registrar el voltaje a través de los ánodos, pero no podrá obtener buena adherencia a menos que el baño tenga suficientes péptidos, pero no demasiados. Si no pesa los péptidos que pone durante el proceso, no sabrá cuánto de este catalizador crítico está presente, y será incapaz de explicar las variaciones en la calidad de la placa utilizando las otras variables.
Tiene formas de limpiar y transformar los datos
Casi siempre, los datos son ruidosos. A las mediciones pueden faltarle uno o más valores, los valores individuales pueden estar fuera de rango o ser inconsistentes con otros valores en la misma medida, las mediciones electrónicas pueden ser inexactas debido al ruido eléctrico, las personas que responden preguntas pueden no entenderlas o inventarse respuestas, y así sucesivamente.
El paso de filtrado de datos en cualquier proceso de análisis a menudo toma el mayor esfuerzo para establecer -en mi experiencia, de un 80% a 90% del tiempo total de análisis. Algunas tiendas limpian los datos en su proceso de ETL (extraer, transformar y cargar) para que los analistas nunca vean puntos de datos erróneos; pero otros dejan todos los datos en el almacén de información o lago de datos con un proceso ELT (dejando el paso de transformar para el final). Esto significa que incluso los datos sucios se guardan, y los filtros y transformaciones necesitarán ser refinados con el tiempo.
Incluso los datos precisos filtrados pueden necesitar ser transformados antes de poder analizarlos bien. Al igual que los métodos estadísticos, los modelos de aprendizaje automático funcionan mejor cuando hay números similares de filas para cada estado posible, lo que puede significar reducir el número de los estados más populares mediante muestreo aleatorio. Al igual que con los métodos estadísticos, los modelos ML funcionan mejor cuando los rangos de todas las variables han sido normalizados.
Por ejemplo, un análisis de las contribuciones de campaña de Trump y Clinton realizadas en Cortana ML muestra cómo preparar un conjunto de datos para el aprendizaje automático mediante la creación de etiquetas, el procesamiento de datos, la ingeniería de características adicionales y la limpieza de los datos. El análisis es discutido en una publicación del blog de Microsoft. Este análisis realiza varias transformaciones en SQL y R para identificar los diversos comités y fondos de campaña asociados con Clinton o Trump, para identificar a los donantes como mujeres u hombres basados en sus nombres, para corregir errores ortográficos, y para corregir el desequilibrio de clases (el conjunto de datos fue de 94% de transacciones para Clinton, en su mayoría pequeñas donaciones). Mostré cómo tomar el output de la prueba y administrarlo en un modelo de regresión logística de dos clases en mi tutorial de "Get Started" para Azure ML Studio.
Ya ha llevado a cabo análisis estadísticos sobre los datos
Uno de los grandes pecados en el análisis de datos y la resolución de problemas es saltar a la causa. Antes de averiguar qué pasó y por qué, debe dar un paso atrás y observar todas las variables y sus correlaciones.
El análisis exploratorio de datos puede mostrar rápidamente los rangos y distribuciones de todas las variables, si los pares de variables tienden a ser dependientes o independientes, dónde se encuentran los grupos y dónde pueden existir valores atípicos. Cuando se tienen variables altamente correlacionadas, a menudo es útil eliminar una u otra del análisis, o realizar algo parecido a la regresión lineal múltiple paso a paso, para identificar la mejor selección de variables. No quiero decir que el modelo final sea lineal, pero siempre es útil probar modelos lineales simples antes de introducir complejidades; si cuenta con demasiados términos en su modelo, puede terminar con un sistema sobre determinado.
Probar muchos enfoques para encontrar los mejores modelos
Solo existe una forma de encontrar el mejor modelo para un conjunto de datos determinado: intentarlos todos. Si su objetivo está en un dominio bien explorado pero desafiante, como la identificación de características fotográficas y el reconocimiento del idioma, puede estar tentado a probar únicamente los "mejores" modelos de concursos; pero, desafortunadamente, estos son a menudo los modelos de aprendizaje profundo con un desempeño informático muy complejo, con capas convolucionales en el caso del reconocimiento de imágenes y capas largas de memoria a corto plazo (LSTM, por sus siglas en inglés) para el reconocimiento de voz. Si necesita entrenar esas redes neuronales profundas, puede hacerle falta más poder de computación del que tiene en su oficina.
Tiene la capacidad computacional para entrenar modelos de aprendizaje profundo
Cuanto más grande sea su conjunto de datos, y más capas tenga su modelo de aprendizaje profundo, más tiempo tomará para entrenar la red neuronal. Tener un montón de datos le ayuda a entrenar un modelo mejor, pero es un sacrificio debido al aumento en el tiempo de capacitación. Contar con diversas capas le ayuda a identificar más características, pero también lo perjudica debido al aumento en el tiempo de capacitación. Es probable que no pueda darse el lujo de esperar un año para entrenar a cada modelo; una semana es más razonable, especialmente porque seguro va a necesitar refinar sus modelos decenas de veces.
Una forma de resolver el problema del tiempo de entrenamiento es usar unidades de procesamiento gráfico de propósito general (GPGPUs, por sus siglas en inglés), como aquellas hechas por Nvidia, para realizar los cálculos de vector y matriz (también llamados álgebra lineal) subyacentes a las capas de redes neuronales. A menudo, una GPU K80 y una CPU juntas dan de cinco a 10 veces la velocidad de entrenamiento de la CPU sola. Esto ocurre si logra conseguir que todo el "núcleo" de la red vaya a la memoria local de la GPU; y con una GPU P100, puede conseguir hasta 100 veces la velocidad de entrenamiento de la CPU.
Más allá de una sola GPU, puede configurar redes coordinadas de CPUs y GPUs para resolver problemas más grandes en menos tiempo. A menos que entrene modelos de aprendizaje profundo durante todo el año y tenga un presupuesto de capital enorme, encontrará que alquilar tiempo en una nube con GPUs es la opción más rentable. Varios frameworks de aprendizaje profundo, incluyendo CNTK, MXNet y TensorFlow, soportan la computación paralela con CPUs y GPUs; y han demostrado coeficientes de escala razonables (~85% en una prueba) para redes de instancias de máquina virtual (VM) muy grandes con GPUs capaces. Puede encontrar estos frameworks y demás ya instalados en instancias de VM con soporte de GPU en los principales proveedores de nube.
Sus modelos ML superan a sus modelos estadísticos
Sus modelos estadísticos simples fijan las metas para su trabajo con el aprendizaje automático y el aprendizaje profundo. Si no puede superar esas metas con un modelo dado, entonces debe ajustarlo o intentar un enfoque diferente. Una vez que sepa lo que está haciendo, puede configurar entrenamientos para muchos modelos en paralelo, bajo el control de un algoritmo de hyperparameter tuning, y utilizar los mejores resultados para guiar la siguiente etapa de su proceso.
Puede implementar modelos predictivos
En última instancia, va a querer aplicar sus modelos capacitados en tiempo real. Dependiendo de la aplicación, la predicción puede ejecutarse en un servidor, una nube, una computadora personal o en un teléfono. Los frameworks de aprendizaje profundo ofrecen varias opciones para incrustar sus modelos en aplicaciones web y móviles. Amazon, Google y Microsoft han demostrado la practicidad mediante la producción de dispositivos de consumo y aplicaciones de smartphones que entienden el habla.
Es capaz de actualizar sus modelos periódicamente
Si ha capacitado a su propio modelo con sus datos, encontrará que las tasas de error del modelo (falsos positivos y verdaderos negativos) aumentan con el tiempo. Básicamente se da porque los datos se desvían con el tiempo: sus patrones de ventas cambian, su competencia cambia, los estilos y la economía cambian. Para acomodar este efecto, la mayoría de los frameworks de aprendizaje profundo tienen una opción para volver a capacitar el modelo antiguo con sus nuevos datos, y reemplazar el servicio predictivo con el nuevo modelo. Si lo realiza mensualmente, debería poder permanecer en control de la situación. Si no puede, eventualmente el modelo se volverá demasiado viejo para ser confiable.
Para volver a nuestras preguntas iniciales, ¿sabe lo que quiere predecir o detectar? ¿Tiene suficientes datos que analizar para construir modelos predictivos? ¿Cuenta con las personas y herramientas necesarias para definir y entrenar modelos? ¿Ya posee modelos estadísticos o físicos que le den una base para las predicciones?
Si es así, ¿qué está esperando?
Martin Heller, CIO (EE.UU.)