¿Qué es Machine Learning?
En la ciencia que estudia los datos, un algoritmo es una secuencia de pasos de procesamiento estadístico. En el Machine Learning, los algoritmos están ‘entrenados’ para encontrar patrones y características en cantidades masivas de datos con el fin de tomar decisiones y hacer predicciones basadas en nuevos datos. Cuanto mejor sea el algoritmo, más precisas serán las decisiones y predicciones a medida que procese más datos.
Hoy en día, los ejemplos de Machine Learning están por todas partes. Los asistentes digitales buscan en la web y tocan música en respuesta a nuestras órdenes de voz. Los sitios web recomiendan productos, películas y canciones basadas en lo que compramos, vimos o escuchamos antes. Los robots aspiran nuestros pisos mientras hacemos algo mejor con nuestro tiempo. Los detectores de spam impiden que los correos electrónicos no deseados lleguen a nuestros buzones. Los sistemas de análisis de imágenes médicas ayudan a los médicos a detectar tumores que podrían haber pasado por alto. Y los primeros coches que se autoconducen están ya saliendo a la carretera.
¿Podemos esperar aún más? A medida que los grandes datos sigan creciendo, que la informática sea más potente y asequible, y que los científicos de los datos sigan desarrollando algoritmos más capaces, el aprendizaje automático impulsará una eficiencia cada vez mayor en nuestras vidas personales y laborales.
¿Cómo funciona el Machine Learning?
El kit de la cuestión no es saber para qué sirve el Machine Learning, sino que saber cómo funciona y cómo poder implementarlo en la industria para aprovechar sus beneficios. Se podría decir que hay una serie de 4 pasos básicos para crear una aplicación o modelo de Machine Learning. Estos son típicamente realizados por científicos de los datos que trabajan en estrecha colaboración con los profesionales de los negocios para los que se están desarrollando el modelo.
Paso 1: Seleccionar y preparar un conjunto de datos de entrenamiento
Los datos de entrenamiento son un conjunto de datos representativos de los datos que el modelo de Machine Learning ingerirá para resolver el problema que está diseñado para resolver. En algunos casos, los datos de entrenamiento se etiquetan como datos ‘etiquetados’ para llamar a las características y clasificaciones que el modelo necesitará identificar. Otros datos no están etiquetados, y el modelo necesitará extraer esas características y asignar clasificaciones por su cuenta.
En cualquier caso, los datos de capacitación deben prepararse adecuadamente: aleatorizados, desdoblados y comprobados en busca de desequilibrios o sesgos que pueden afectar a la capacitación. También deben dividirse en dos subconjuntos: el subconjunto de capacitación, que se utilizará para entrenar la aplicación, y el subconjunto de evaluación, que se utilizará para probarla y perfeccionarla.
Paso 2: Elegir un algoritmo para ejecutarlo en el conjunto de datos de entrenamiento
Este puede que sea un conjunto de pasos de procesamiento estadístico, ya que debe elegir qué algoritmo utilizar, siendo este un conjunto de pasos de procesamiento estadístico. El tipo de algoritmo dependiente del tipo (con o sin etiqueta) y la cantidad de datos del conjunto de datos de entrenamiento y del tipo de problema que se debe resolver. Entre los tipos comunes de algoritmos de aprendizaje automático que se utilizan con los datos etiquetados se incluyen los siguientes:
1. Algoritmos de regresión: la regresión lineal y logística son ejemplos de algoritmos de regresión utilizados para comprender las relaciones en los datos. La regresión lineal se utiliza para predecir el valor de una variable dependiente basándose en el valor de una variable independiente. La regresión logística puede utilizarse cuando la variable dependiente es de naturaleza binaria: A o B. Por ejemplo, un algoritmo de regresión lineal podría entrenarse para predecir las ventas anuales de un vendedor (la variable dependiente) basándose en la experiencia del técnico de ventas (la variable independiente). Otro tipo de algoritmo de regresión llamado máquina de vector de apoyo es útil cuando las variables dependientes son más difíciles de clasificar.
2. Árboles de decisión o ‘Decision Trees’: los árboles de decisión utilizan datos clasificados para hacer recomendaciones basadas en un conjunto de reglas de decisión. Por ejemplo, un árbol de decisión que recomienda elegir a un vendedor en particular, usaría la información de dicho vendedor (por ejemplo, las valoraciones de su página web o el número de ventas) y aplicar las reglas a esos factores para recomendar una acción o decisión.
3. Algoritmos basados en instancias: un buen ejemplo de un algoritmo basado en instancias es K-Nearest Neighbor, comúnmente conocido como K-NN. Utiliza la clasificación para estimar la probabilidad de que un punto de datos sea miembro de un grupo u otro en función de su proximidad a otros puntos de datos.
Entre los algoritmos que se pueden utilizar con datos no etiquetados se encuentran los siguientes:
4. Algoritmos de agrupación: los clústeres hay que considerarlos como grupos. La agrupación se centra en la identificación de grupos de registros similares y en el etiquetado de los registros según el grupo al que pertenecen. Esto se hace sin conocimiento previo de los grupos y sus características. Los tipos de algoritmos de agrupación incluyen la agrupación de K-means, TwoStep y Kohonen.
5. Algoritmos de asociación: los algoritmos de asociación encuentran patrones y relaciones en los datos e identifican relaciones frecuentes ‘if-then’ llamadas reglas de asociación. Estas son similares a las reglas usadas en la minería de datos.
6. Redes neuronales: una red neuronal es un algoritmo que define una red en capas de cálculos con una capa de entrada, donde se ingieren los datos; al menos una capa oculta, donde se realizan los cálculos y se sacan diferentes conclusiones sobre la entrada; y una capa de salida, donde a cada conclusión se le asigna una probabilidad. Una red neuronal profunda define una red con múltiples capas ocultas, cada una de las cuales refina sucesivamente los resultados de la capa anterior.
Paso 3: Entrenamiento del algoritmo para crear el modelo
El entrenamiento del algoritmo es un proceso iterativo: implica correr las variables a través del algoritmo, comparar el resultado con los resultados que debería haber producido, ajustar los pesos y los sesgos dentro del algoritmo que podrían dar un resultado más exacto, y correr las variables de nuevo hasta que el algoritmo devuelva el resultado correcto la mayoría de las veces. El algoritmo resultante, entrenado y preciso, es el modelo de Machine Learning, una distinción importante que hay que tener en cuenta, porque el ‘algoritmo’ y el ‘modelo’ se utilizan incorrectamente de forma intercambiable, incluso por los expertos en Machine Learning.
Paso 4: Usar y mejorar el modelo
El paso final es utilizar el modelo con nuevos datos y, en el mejor de los casos, para que mejore en precisión y eficacia con el tiempo. De dónde procedan los nuevos datos dependerá del problema que se resuelva. Por ejemplo, un modelo de Machine Learning diseñado para identificar el spam ingerirá mensajes de correo electrónico, mientras que un modelo de Machine Learning que maneja una aspiradora robot ingerirá datos que resulten de la interacción en el mundo real con muebles movidos o nuevos objetos en la habitación.
¿Qué tipo de enfoques ofrece el Machine Learning?
Otra clasificación que se hace dentro del Machine Learning es el tipo de enfoque que se aplica, pudiendo ser este: supervisado, parcialmente supervisado o no supervisado. Esto hace referencia a sí hay que dar pistas al algoritmo o no, en función de qué enfoque se use servirá para una aplicación u otra.
1. Machine Learning supervisado: este se entrena con un conjunto de datos etiquetados. Es decir, los datos están etiquetados con información que el modelo de Machine Learning está construyendo para determinar y que incluso puede ser clasificada de manera que el modelo se supone que clasifique los datos. Por ejemplo, un modelo de visión computarizada diseñado para identificar herramientas de corte desgastadas podría ser entrenado en un conjunto de datos de varias imágenes de herramientas etiquetadas. El Machine Learning supervisado requiere menos datos de entrenamiento que otros métodos de Machine Learning y facilita el entrenamiento porque los resultados del modelo pueden compararse con los resultados reales etiquetados. Pero, los datos etiquetados adecuadamente son caros de preparar, y existe el peligro de que se sobreajusten, o de crear un modelo tan estrechamente ligado y sesgado a los datos de entrenamiento que no maneje con precisión las variaciones de los nuevos datos.
2. Machine Learning no supervisado: este método ingiere datos no etiquetados -muchos y muchos- y utiliza algoritmos para extraer características significativas necesarias para etiquetar, clasificar y ordenar los datos en tiempo real, sin intervención humana. El aprendizaje no supervisado no tiene tanto que ver con la automatización de decisiones y predicciones, sino con la identificación de patrones y relaciones en los datos que los humanos no verían. Tomemos la detección de spam, por ejemplo: la gente genera más correo electrónico que lo que un equipo de científicos de datos podría esperar etiquetar o clasificar en su vida. Un algoritmo de aprendizaje no supervisado puede analizar grandes volúmenes de correos electrónicos y descubrir las características y los patrones que indican el spam (y seguir mejorando en la señalización del spam con el tiempo).
3. Machine Learning semisupervisado: este enfoque ofrece una alternativa entre el supervisado y el no supervisado. Durante el entrenamiento, utiliza un conjunto de datos etiquetados más pequeño para guiar la clasificación y la extracción de características de un conjunto de datos más grande y sin etiquetar. El Machine Learning semisupervisado puede resolver el problema de no tener suficientes datos etiquetados (o no poder permitirse etiquetar suficientes datos) para entrenar un algoritmo de aprendizaje supervisado.
4. Machine Learning por refuerzo: el Machine Learning por refuerzo es un modelo de Machine Learning de comportamiento que es similar al aprendizaje supervisado, pero el algoritmo no se entrena usando datos de muestra. Este modelo aprende sobre la marcha mediante el uso de ensayo y error. Se reforzará una secuencia de resultados exitosos para desarrollar la mejor recomendación o política para un problema determinado.
¿Qué es el Deep Learning?
El Deep Learning es un subconjunto del Machine Learning en el que las redes neuronales de múltiples capas —modeladas para funcionar como el cerebro humano— aprenden a partir de grandes cantidades de datos. Dentro de cada capa de la red neural, los algoritmos de Deep Learning realizan cálculos y hacen predicciones repetidamente, aprendiendo progresivamente y mejorando gradualmente la precisión del resultado a lo largo del tiempo.
De la misma manera que el cerebro humano absorbe y procesa la información que entra en el cuerpo a través de los cinco sentidos, el Deep Learning ingiere información de múltiples fuentes de datos y la analiza en tiempo real.
El Deep Learning impulsa muchas aplicaciones y servicios de inteligencia artificial (IA) que mejoran la automatización, realizando tareas analíticas y físicas sin intervención humana. La tecnología de Deep Learning se encuentra detrás de los productos y servicios cotidianos (como los asistentes digitales, los mandos a distancia de televisión con capacidad de voz y la detección de fraudes con tarjetas de crédito), así como de las tecnologías emergentes (como los coches que se conducen solos).
Deep Learning vs Machine Learning
Si el Deep Learning es un subconjunto del Machine Learning, ¿en qué se diferencian? En los términos más simples, lo que diferencia al Deep Learning del resto del Machine Learning son los datos con los que trabaja y cómo aprende.
Mientras que todo el Machine Learning puede trabajar y aprender de datos estructurados y etiquetados, el Deep Learning también puede ingerir y procesar datos no estructurados y no etiquetados. En lugar de basarse en etiquetas dentro de los datos para identificar y clasificar objetos e información, el Deep Learning utiliza una red neural de múltiples capas para extraer las características de los datos y mejorar cada vez más la identificación y clasificación de los datos por sí mismo.
Por ejemplo, las aplicaciones de voz a texto de hace 10 años (en las que los usuarios tenían que entrenarse pronunciando decenas de palabras en la aplicación y, en el proceso, etiquetar sus propios datos de voz) son ejemplos de Machine Learning. Las aplicaciones de reconocimiento de voz actuales (entre ellas Siri de Apple, Amazon Alexa y Google Assistant), que pueden reconocer los comandos de voz de cualquier persona sin necesidad de una sesión de entrenamiento específica, son ejemplos de Deep Learning.
En términos más técnicos, mientras que todos los modelos de Machine Learning son capaces de un aprendizaje supervisado (que requiere la intervención humana), los modelos de Deep Learning también son capaces de un aprendizaje no supervisado. Pueden detectar características o patrones previamente no detectados en datos que no están etiquetados, con el mínimo de supervisión humana. Los modelos de Deep Learning también son capaces de reforzar el aprendizaje: un proceso de aprendizaje no supervisado más avanzado en el que el modelo ‘aprende’ a ser más preciso basándose en la retroalimentación positiva de los cálculos anteriores.
¿Cómo funciona el Deep Learning?
Las redes neuronales de Deep Learning (llamadas Deep Neural Networks o redes neuronales profundas) están modeladas según la forma en que los científicos creen que funciona el cerebro humano. Procesan y reprocesan los datos, refinando gradualmente el análisis y los resultados para reconocer, clasificar y describir con precisión los objetos dentro de los datos.
Las redes neuronales profundas consisten en múltiples capas de nodos interconectados, cada una de las cuales utiliza un algoritmo de aprendizaje profundo cada vez más complejo para extraer e identificar características y patrones en los datos. A continuación, calculan la probabilidad o la confianza de que el objeto o la información puedan clasificarse o identificarse de una o más maneras.
Las capas de entrada y salida de una red neuronal profunda se denominan capas visibles. La capa de entrada es donde el modelo de aprendizaje profundo ingiere los datos para su procesamiento, y la capa de salida es donde se calcula la identificación, clasificación o descripción final.
Entre las capas de entrada y salida hay capas ocultas en las que los cálculos de cada capa anterior son ponderados y refinados por algoritmos cada vez más complejos para llegar a cero en el resultado final. Este movimiento de los cálculos a través de la red se denomina propagación hacia adelante.
Otro proceso llamado propagación hacia atrás identifica los errores en las predicciones calculadas, les asigna pesos y sesgos y los empuja de vuelta a las capas anteriores para entrenar o refinar el modelo. Juntos, la propagación hacia adelante y la propagación hacia atrás permiten a la red hacer predicciones sobre la identidad o la clase del objeto, al tiempo que se aprende de las inconsistencias en los resultados. El resultado es un sistema que aprende a medida que trabaja y se vuelve más eficiente y preciso con el tiempo al procesar grandes cantidades de datos.
Lo anterior describe el tipo más simple de red neuronal profunda en los términos más sencillos. En la práctica, los algoritmos de aprendizaje profundo son increíblemente complejos. Y se han desarrollado muchos métodos y modelos complejos de aprendizaje profundo para resolver ciertos tipos de problemas, incluyendo los siguientes ejemplos:
1. Las redes neuronales convolucionales (CNN), utilizadas principalmente en aplicaciones de visión por computadora, pueden detectar características y patrones dentro de una imagen compleja y, en última instancia, reconocer objetos específicos dentro de la imagen. En 2015, una CNN superó por primera vez a un humano en un desafío de reconocimiento de objetos.
2. Las redes neuronales recurrentes (RNN) se utilizan para modelos de aprendizaje profundo en los que las características y los patrones cambian con el tiempo. En lugar de ingerir y producir instantáneas de datos, las RNNs ingieren y producen secuencias de datos. Las RNNs impulsan aplicaciones emergentes como el reconocimiento de voz y los coches sin conductor.
Aplicaciones del Deep Learning
Las aplicaciones de Deep Learning en el mundo real forman parte de nuestra vida cotidiana, pero en la mayoría de los casos están tan bien integradas en los productos y servicios que los usuarios no son conscientes del complejo procesamiento de datos que tiene lugar en segundo plano. Algunos de estos ejemplos son los siguientes:
Aplicación de la ley
Los algoritmos de Deep Learning pueden analizar y aprender de los datos de las transacciones para identificar patrones peligrosos que indiquen una posible actividad fraudulenta o delictiva. El reconocimiento del habla, la visión por computadora y otras aplicaciones de Deep Learning pueden mejorar la eficiencia y la eficacia del análisis investigativo al extraer patrones y pruebas de grabaciones de sonido y vídeo, imágenes y documentos, lo que ayuda a las fuerzas del orden a analizar grandes cantidades de datos con mayor rapidez y precisión.
Servicios financieros
Las instituciones financieras utilizan regularmente el análisis predictivo para impulsar el comercio algorítmico de acciones, evaluar los riesgos empresariales para la aprobación de préstamos, detectar el fraude y ayudar a gestionar las carteras de crédito e inversión de los clientes.
Servicio de atención al cliente
Muchas organizaciones incorporan la tecnología de aprendizaje profundo en sus procesos de servicio al cliente. Los robots de chat, utilizados en una variedad de aplicaciones, servicios y portales de atención al cliente, son una forma sencilla de IA. Los chatbots tradicionales utilizan un lenguaje natural e incluso reconocimiento visual, que se encuentra comúnmente en los menús de los centros de llamadas. Sin embargo, las soluciones más sofisticadas de los chatbots intentan determinar, a través del aprendizaje, si hay múltiples respuestas a preguntas ambiguas. Basándose en las respuestas que recibe, el chatbot intenta entonces responder a esas preguntas directamente o agilizar la transición del diálogo a un usuario humano.
Los asistentes virtuales como Siri de Apple, Amazon Alexa o Google Assistant añaden una tercera dimensión al concepto de chatbot al combinar las capacidades de aprendizaje profundo con la tecnología subyacente. Estas innovaciones de la ciencia de los datos permiten el reconocimiento de voz y respuestas personalizadas, dando como resultado una experiencia personalizada para los usuarios.
Asistencia sanitaria
La industria de la salud se ha beneficiado enormemente de la capacidad de aprendizaje profundo desde la digitalización de los registros e imágenes de los hospitales. Las aplicaciones de reconocimiento de imágenes pueden servir de apoyo a los especialistas en imágenes médicas y a los radiólogos, ayudándoles a analizar y evaluar más imágenes en menos tiempo.
Curso de Machine Learning y Deep Learning en la EIB
Los días 7-8-11-12 de enero se impartieron unas clases de introducción al Machine Learning y al Deep Learning en la escuela de Ingeniería de Bilbao por parte de los profesores Josu Ceberio Uribe del departamento de Ciencia de la Computación e Inteligencia Artificial y Leticia Hernando Rodríguez del departamento de Matemáticas. Estas clases fueron promovidas y organizadas por el CFAA, ya que no se quiere quedar atrás en las nuevas tecnologías de tratamiento de datos. Es por ello que a estas clases acudieron distintos trabajadores del centro para formarse tanto en el conocimiento de esas tecnologías como en la implementación de dichos algoritmos. A su vez, aparte de los miembros del CFAA, también acudieron miembros de ITP Aero e IDEKO a las clases.
Cada día del curso se trataron temas distintos todos ellos englobados dentro del Machine Learning. En primer lugar, se realizó una pequeña introducción relativa a conceptos globales para poder después ahondar más en concreto en cada tema. El primer día del curso se impartió una clase sobre clasificación supervisada, mostrando los distintos tipos de algoritmos que se pueden emplear, y también se habló sobre el preprocesamiento de los datos, algo esencial antes de aplicar el Machine Learning. Después, el segundo día, la clase giró en torno a la clasificación no supervisada, haciendo hincapié en el caso de las series temporales. El anteúltimo día del curso se trató el tema de la optimización, quizás uno de los temas más empleados en el sector industrial, donde cada detalle cuenta y una pequeña mejora supone una gran victoria. Por último, el curso terminó con la lección de Deep Learning.
Cabe destacar que este curso no ha sido sólo teórico, sino que también se han puesto en práctica los conocimientos adquiridos con ejercicios prácticos orientados a un caso real del CFAA. Para ello, se ha usado la plataforma de Google Collaboratory, la cual permite ejecutar códigos de Python sin necesidad de descargarse ningún programa. El objetivo que se ha seguido a lo largo de las prácticas ha sido el de desarrollar un modelo/algoritmo de Machine Learning para predecir el grosor de la pieza que se está cortando en tiempo real en base a los parámetros de corte que recoge la maquina a partir de sus sensores.