Llegamos a ustedes gracias a:



Reportajes y análisis

El aprendizaje automático en las empresas

[18/09/2017] El aprendizaje automático está transformando el negocio. Pero incluso a medida que avanza la tecnología, las empresas todavía luchan por aprovecharla, en gran medida porque no entienden cómo implementar estratégicamente el aprendizaje automático en servicio de los objetivos empresariales. El bombo no ha ayudado, ha sembrado confusión sobre qué es exactamente el aprendizaje automático, qué tan bien funciona y qué puede hacer por su empresa.

Aquí, ofrecemos una mirada clara sobre qué es el aprendizaje automático y cómo se puede utilizar hoy en día.

¿Qué es el aprendizaje automático?

El aprendizaje automático es un subconjunto de inteligencia artificial (IA) que permite a los sistemas aprender y predecir los resultados sin una programación explícita. A menudo se utiliza indistintamente con el término IA porque es la técnica que ha hecho el mayor impacto en el mundo real hasta la fecha, y es lo que probablemente utilizará en su empresa. Chatbots, recomendaciones de productos, filtros de spam, automóviles autodirigidos y una amplia gama de otros sistemas que aprovechan el aprendizaje automático, al igual que los "agentes inteligentes" como Siri y Cortana.

En lugar de escribir algoritmos y reglas que toman decisiones directamente, o tratar de programar una computadora para que "sea inteligente" usando conjuntos de reglas, excepciones y filtros, el aprendizaje automático enseña a que los sistemas informáticos tomen decisiones aprendiendo de grandes conjuntos de datos. Los sistemas basados en reglas se vuelven rápidamente frágiles cuando tienen que dar cuenta de la complejidad del mundo real; el aprendizaje automático puede crear modelos que representan y generalizan patrones en los datos que utiliza para entrenarlos, y pueden usar esos modelos para interpretar y analizar nueva información.

El aprendizaje automático es adecuado para la clasificación, que incluye la capacidad de reconocer texto y objetos en imágenes y video, así como encontrar asociaciones en datos o segmentar datos en grupos (por ejemplo, encontrar grupos de clientes). El aprendizaje automático también es experto en la predicción, como calcular la probabilidad de eventos o pronosticar resultados. El aprendizaje automático también se puede utilizar para generar datos que faltan; por ejemplo, la última versión de CorelDRAW utiliza el aprendizaje automático para interpolar el trazo suave que está intentando dibujar a partir de varios trazos ásperos que realiza con la herramienta pluma.

En el corazón de la máquina de aprendizaje están los algoritmos. Algunos, como regresiones, agrupamiento de k-means y máquinas de soporte a vectores han estado en uso durante décadas. Las máquinas de soporte vectorial, por ejemplo, usan métodos matemáticos para representar cómo se puede trazar una línea divisoria entre las cosas que pertenecen a categorías separadas. La clave para el uso efectivo del aprendizaje automático es la adecuación del algoritmo correcto a su problema.

Redes neuronales

Una red neuronal es un algoritmo de aprendizaje automático construido sobre una red de nodos interconectados que funcionan bien para tareas como reconocer patrones.

Las redes neuronales no son un nuevo algoritmo, pero ofrecen la disponibilidad de grandes conjuntos de datos y procesamiento más potente (especialmente las GPUs, que pueden manejar grandes flujos de datos en paralelo) y solo recientemente se han vuelto útiles en la práctica. A pesar del nombre, las redes neuronales se basan solo ligeramente en las neuronas biológicas. Cada nodo de una red neuronal tiene conexiones con otros nodos que son disparados por entradas. Cuando se activan, cada nodo agrega un peso a su entrada para marcar la probabilidad de que coincida o no con la función de ese nodo. Los nodos están organizados en capas fijas por donde fluyen los datos, a diferencia del cerebro, que con regularidad crea, elimina y reorganiza las conexiones de sinapsis.

Aprendizaje profundo

El aprendizaje profundo es un subconjunto del aprendizaje automático basado en redes neuronales profundas. Las redes neuronales profundas son aquellas que tienen muchas capas para realizar el aprendizaje en múltiples pasos. Las redes neuronales profundas 'convolucionales' suelen realizar el reconocimiento de imágenes procesando una jerarquía de entidades donde cada capa busca objetos más complicados. Por ejemplo, la primera capa de una red profunda que reconoce las razas de perros podría ser entrenada para encontrar la forma del perro en una imagen; la segunda capa podría mirar texturas como pieles y dientes, con otras capas reconociendo orejas, ojos, colas y otras características; y el nivel final que distingue diferentes razas. Las redes neuronales profundas 'recursivas' se utilizan para el reconocimiento del habla y el procesamiento del lenguaje natural, donde son importantes la secuencia y el contexto.

Hay muchas herramientas de aprendizaje profundo de código abierto que podría utilizar para construir sus propios sistemas. Theano, Torch y Caffe son opciones populares, y TensorFlow de Google y Cognitive Toolkit de Microsoft, le permiten utilizar varios servidores para construir sistemas más potentes con más capas de la red.

Distibuted Machine Learning Toolkit de Microsoft agrupa varios de estos conjuntos de herramientas de aprendizaje profundo con otras bibliotecas de aprendizaje automático; y tanto AWS como Azure ofrecen máquinas virtuales con herramientas de aprendizaje profundo preinstaladas.

Aprendizaje automático en la práctica

Los resultados del aprendizaje automático son una certeza porcentual de que los datos que está buscando coinciden con lo que su modelo de aprendizaje automático está capacitado para encontrar. Por lo tanto, una red profunda entrenada para identificar las emociones de las caras de las personas en las fotografías y videos puede marcar una imagen como "97,6% de felicidad 0,1% tristeza 5,2% sorpresa 0,5% neutral 0,2% ira 0,3% desprecio 0,01% molestia 12% miedo. Utilizar tal información significa trabajar con probabilidades e incertidumbre, no son resultados exactos.

El aprendizaje automático probabilístico es el que utiliza el concepto de probabilidad para que pueda llevar a cabo el aprendizaje automático sin necesidad de escribir algoritmos en absoluto. En lugar de los valores establecidos de las variables en la programación estándar, algunas variables en la programación probabilística tienen valores que caen en un rango conocido y otros tienen valores desconocidos. Trate a los datos que desea entender como si fueran la salida de este código, y puede trabajar hacia atrás para rellenar lo que esos valores desconocidos harían para producir ese resultado. Con menos codificación, puede hacer más prototipos y experimentación; el aprendizaje probabilístico de la máquina también es más fácil de depurar.

Esta es la técnica que utiliza la función Clutter en Outlook para filtrar mensajes que tienen menos probabilidades de ser interesantes para usted en función de los mensajes que ha leído, respondido y eliminado en el pasado. Fue construida con Infer.NET, un marco .NET que se puede utilizar para construir sus propios sistemas probabilísticos.

La computación cognitiva es el término que utiliza IBM para su oferta Watson, porque en el 2011 cuando una versión anterior ganó Jeopardy, el término IA no estaba de moda; a lo largo de las décadas en que se ha trabajado, la IA ha atravesado periodos alternos de bombo y olvido.

Watson no es una sola herramienta. Es una mezcla de modelos y APIs que también puede obtener de otros proveedores como Salesforce, Twilio, Google y Microsoft. Estos le brindan los llamados servicios "cognitivos", como reconocimiento de imágenes, incluyendo reconocimiento facial, reconocimiento del habla (y del hablante), comprensión del lenguaje natural, análisis del sentimiento y otras APIs de reconocimiento que parecen capacidades cognitivas humanas. Ya se trate de Watson o de los Servicios Cognitivos de Microsoft, el término cognitivo es en realidad solo una marca de marketing envuelta en una colección de tecnologías (muy útil). Puede utilizar estas APIs para crear un chatbot desde una página de preguntas frecuentes existente que pueda responder a consultas de texto y también reconocer fotos de productos para proporcionar la información de soporte adecuada, o utilizar fotos de etiquetas de estantería para verificar niveles de stock.

Muchas APIs "cognitivas" utilizan el aprendizaje profundo, pero no es necesario saber cómo se construyen porque muchas funcionan como APIs de REST que llama desde su propia aplicación. Algunos le permiten crear modelos personalizados a partir de sus propios datos. Salesforce Einstein tiene un servicio de reconocimiento de imagen personalizado y las APIs cognitivas de Microsoft permiten crear modelos personalizados para texto, voz, imágenes y video.

Eso se hace más fácil mediante el aprendizaje de transferencia, que es menos una técnica y más un efecto secundario útil de las redes profundas. Una red neuronal profunda que ha sido entrenada para hacer una cosa, como traducir entre inglés y mandarín, puede aprender una segunda tarea, como traducir entre inglés y francés, de manera más eficiente. Eso puede deberse a que los números muy largos que representan, digamos, las relaciones matemáticas entre palabras como grande y gran, son en cierto grado comunes entre lenguas, pero en realidad no lo sabemos.

El aprendizaje de transferencia no se entiende bien, pero puede permitirle obtener buenos resultados a partir de un conjunto de entrenamiento más pequeño. El servicio Microsoft Custom Vision utiliza la transferencia del aprendizaje para entrenar a un reconocedor de imagen en tan solo unos minutos usando 30 a 50 imágenes por categoría, en lugar de las miles normalmente necesarias para obtener resultados precisos.

Construya su propio sistema de aprendizaje automático

Si no desea tener APIs preconstruidas y tiene los datos para trabajar, hay una enorme gama de herramientas para construir sistemas de aprendizaje automático, desde scripts R y Python hasta análisis predictivos utilizando Spark y Hadoop, hasta herramientas específicas y marcos de IA.

En lugar de configurar su propia infraestructura, puede utilizar servicios de aprendizaje automático en la nube para construir modelos de datos. Con los servicios en la nube no es necesario instalar una gama de herramientas. Además, estos servicios incorporan más de la experiencia necesaria para obtener resultados exitosos.

Aprendizaje automático de Amazon ofrece varios modelos de aprendizaje que se pueden utilizar con los datos almacenados en S3, Redshift o R3, pero no puede exportar los modelos, y el tamaño del conjunto de entrenamiento es bastante limitado. Microsoft Azure ML Studio, tiene una gama más amplia de algoritmos, incluyendo el aprendizaje profundo, más paquetes de R y Python, y una interfaz gráfica de usuario para trabajar con ellos. También ofrece la opción de usar Azure Batch, para cargar conjuntos de entrenamiento extremadamente grandes de forma periódica, y puede utilizar sus modelos de formación como las APIs para llamar desde sus propios programas y servicios. También hay funciones de aprendizaje automático como el reconocimiento de imágenes incorporado en las bases de datos de nube como SQL Azure Data Lake para que pueda hacer su aprendizaje automático dónde están sus datos.

Aprendizaje supervisado

Muchas técnicas de aprendizaje automático utilizan el aprendizaje supervisado, en el que una función se deriva de datos de formación etiquetados. Los desarrolladores eligen y etiquetan un conjunto de datos de capacitación, reservan una proporción de esos datos para las pruebas y anotan los resultados del sistema de aprendizaje automático para ayudarlos a mejorar. El proceso de formación puede ser complejo, y los resultados suelen ser probabilidades, con un sistema que, por ejemplo, está 30% confiado en que ha reconocido a un perro en una imagen, el 80% confía en que ha encontrado un gato y quizá el 2% está seguro de que es una bicicleta. La retroalimentación que los desarrolladores le dan al sistema probablemente tengan una puntuación entre uno y cero que indica qué tan acertada fue la respuesta.

Es importante no entrenar el sistema con demasiada precisión en los datos de entrenamiento; eso se llama superponer y significa que el sistema no será capaz de generalizar para hacer frente a nuevas entradas. Si los datos cambian significativamente con el tiempo, los desarrolladores tendrán que volver a entrenar el sistema debido a lo que algunos investigadores llaman "putrefacción del aprendizaje automático".

Algoritmos de aprendizaje automático -y cuándo usarlos

Si ya sabe cuáles son las etiquetas de todos los elementos de su conjunto de datos, asignar etiquetas a los nuevos ejemplos es un problema de clasificación. Si está tratando de predecir un resultado como el precio de venta de una casa en función de su tamaño, es un problema de regresión porque el precio de la vivienda es una categoría continua. (Predecir si una casa se venderá por más o menos que el precio solicitado es un problema de clasificación porque son dos categorías distintas).

Si no conoce todas las etiquetas, no puede utilizarlas para el entrenamiento; en su lugar, anote los resultados y deje que su sistema diseñe reglas que le den sentido a las respuestas que se hacen bien o mal, en lo que se conoce como aprendizaje sin supervisión. El algoritmo de aprendizaje no supervisado más común es la agrupación, que deriva la estructura de sus datos mediante la observación de las relaciones entre las variables de los datos. El sistema de recomendación de productos de Amazon que le dice lo que también le interesó a la gente que compró un artículo usa el aprendizaje sin supervisión.

Con el aprendizaje de refuerzo, el sistema aprende a medida que ve lo que sucede. Usted establece un conjunto claro de recompensas para que el sistema pueda juzgar el éxito de sus acciones. El aprendizaje de refuerzo es muy adecuado para el juego porque hay recompensas obvias. DeepMind AlphaGo de Google https://deepmind.com/research/alphago/, utilizó el aprendizaje de refuerzo para aprender, el Malmo Project de Microsoft https://www.microsoft.com/en-us/research/project/project-malmo/, permite a los investigadores utilizar Minecraft como un entorno de aprendizaje por refuerzo, y un robot construido con el algoritmo de aprendizaje de refuerzo de OpenAI recientemente venció a varios de los jugadores mejor clasificados en el juego Dota 2 de Valve https://blog.openai.com/dota-2/.

La complejidad de crear recompensas exactas y útiles ha limitado el uso del aprendizaje de refuerzo, pero Microsoft ha estado usando una forma específica de aprendizaje de refuerzo llamada 'bandidos contextuales' (basados en el concepto de una máquina tragamonedas con varios brazos) para mejorar significativamente las tasas de clicks en MSN. Ese sistema ya está disponible como el API de Microsoft Custom Decision Service https://azure.microsoft.com/en-us/services/cognitive-services/custom-decision-service/. Microsoft también está utilizando un sistema de aprendizaje de refuerzo en un piloto donde los chatbots de servicio al cliente monitorean la utilidad de sus respuestas automatizadas y ofrecen derivarlo con una persona real si la información no es lo que necesita; el agente humano también califica al bot para ayudarlo a mejorar.

Combine algoritmos de aprendizaje automático para obtener los mejores resultados

A menudo, se necesita más de un método de aprendizaje automático para obtener el mejor resultado; los sistemas de aprendizaje de conjunto utilizan múltiples técnicas de aprendizaje automático combinadas. Por ejemplo, el sistema DeepMind que superó a los jugadores humanos expertos en Go utiliza no sólo el aprendizaje de refuerzo, sino también supervisó el aprendizaje profundo para aprender de miles de partidos de Go registrados entre jugadores humanos. Esta combinación se conoce a veces como aprendizaje semi-supervisado.

Del mismo modo, el sistema de aprendizaje automático que utiliza Microsoft Kinect para reconocer los movimientos humanos fue construido con una combinación de un sistema discriminatorio y un sistema generativo, que utilizó un modelo de características de cada postura para sintetizar miles de imágenes más para darle al sistema un conjunto de datos suficientemente grande para que pueda aprender.

La analítica predictiva a menudo combina diferentes técnicas de aprendizaje y técnicas estadísticas; un modelo puede hacer notar la probabilidad de que un grupo de clientes se deshaga, y otro modelo predice qué canal debe utilizar para ponerse en contacto con cada persona con una oferta que podría mantenerlos como clientes.

Navegue sobre las desventajas del aprendizaje automático

Debido a que los sistemas de aprendizaje automático no están explícitamente programados para resolver problemas, es difícil saber cómo llegó un sistema a sus resultados. Esto se conoce como un problema de "caja negra", y puede tener consecuencias, especialmente en las industrias reguladas.

A medida que el aprendizaje automático se vuelve más utilizado, tendrá que explicar por qué los sistemas de aprendizaje automático hacen lo que hacen. Algunos mercados -vivienda, decisiones financieras y asistencia sanitaria- ya tienen regulaciones que requieren que dé explicaciones para las decisiones. También es posible que desee transparencia algorítmica para que pueda auditar el rendimiento del aprendizaje. Los detalles de los datos de entrenamiento y los algoritmos en uso no son suficientes. Hay muchas capas de procesamiento no lineal dentro de una red profunda, lo que hace muy difícil entender por qué una red profunda está tomando una decisión en particular. Una técnica común es usar otro sistema de aprendizaje automático para describir el comportamiento del primero.

También hay que ser conscientes de los peligros del sesgo algorítmico, como cuando un sistema de aprendizaje automático refuerza el sesgo en un conjunto de datos que asocia hombres con deportes y mujeres con tareas domésticas, porque todos sus ejemplos de actividades deportivas tienen imágenes de hombres y todas las personas representadas en las cocinas son mujeres. O cuando un sistema que correlaciona la información no médica toma decisiones que perjudican a las personas con una condición médica particular.

El aprendizaje automático solo puede ser tan bueno como los datos con los que se le entrena para construir su modelo y los datos que procesa, por lo que es importante que analicen los datos que está utilizando. El aprendizaje automático tampoco entiende los datos o los conceptos de la manera en que podría una persona. Por ejemplo, los investigadores pueden crear imágenes que parecerán estáticas aleatorias pero que se reconocerán como objetos específicos.

Hay muchos problemas de reconocimiento y clasificación que el aprendizaje automático puede resolver de forma más rápida y eficiente que los seres humanos, pero para el futuro previsible el aprendizaje automático es mejor concebido como un conjunto de herramientas para apoyar a las personas en el trabajo, en lugar de reemplazarlas.