Machine Learning y Deep Learning. Todo lo que necesitas saber - #spartanhack
 

Machine Learning y Deep Learning. Todo lo que necesitas saber

Machine Learning y Deep Learning. Todo lo que necesitas saber

Seguramente a muchas de las personas que no estén relacionadas con el mundo de la transformación digital y de las innovaciones tecnológicas los conceptos de machine learning y deep learning les suene a chino o, aun pudiendo hacerse una pequeña idea de a qué hacen referencia, no conozcan realmente la extensión e importancia que tienen.

 

No nos equivocamos al pensar que el futuro próximo depende en gran medida de conceptos como el aprendizaje automático (machine learning) o el aprendizaje profundo (deep learning), y es que todo apunta a que esa es la línea de evolución que va a seguirse durante los próximos años en nuestra sociedad: vehículos autónomos, asistentes personales, encriptación biométrica, máquinas que desempeñan trabajos tediosos, etc.

 

Tal y como ya adelantamos en el anterior artículo donde explicamos la Inteligencia Artificial, el machine learning es una rama de la IA que se encarga del estudio, investigación y desarrollo de máquinas que aprendan por sí solas y que sean capaces de autoprogramarse, aprendiendo de su propia experiencia combinando datos de entradas y situaciones del mundo real.

 

A su vez, dentro de la rama del machine learning que se engloba dentro del campo de la inteligencia artificial, nos encontramos con el denominado deep learning, que hace referencia a un subconjunto que desarrolla la idea del aprendizaje automático a través de modelos informáticos que funcionan de forma similar al cerebro humano, un sistema de redes artificiales de neuronas que analizan los datos.

 

Como decimos, el campo de la ciencia sobre el que se asientan ambos conceptos es el de la inteligencia artificial (artificial intelligence), también conocida como inteligencia computacional, donde se combina el área de la informática con otras como la lógica y las ciencias cognitivas, procurando tener como resultado el diseño de máquinas inteligentes.

 

En el presente artículo estudiaremos los conceptos de machine learning y deep learning, analizaremos sus características principales y veremos los métodos más importantes de cada uno de ellos.

 

MACHINE LEARNING o APRENDIZAJE AUTOMÁTICO

 

 

El concepto machine learning (ML) hace referencia al aprendizaje automático o aprendizaje de máquinas y, como tal, se engloba dentro del campo de la inteligencia artificial. La teoría del funcionamiento del ML es simple, las máquinas toman datos y aprenden por ellos mismos.

 

Los sistemas de aprendizaje automático permiten que un sistema aprenda a reconocer patrones por sí mismos y a hacer predicciones, a diferencia de otras técnicas más antiguas donde se requiere la codificación manual de un programa de software con instrucciones específicas para completar una tarea.

 

Mediante esta técnica, un sistema tiene la capacidad de aplicar rápidamente el conocimiento obtenido de grandes conjuntos de datos para conseguir distintos objetivos en poco tiempo como pueden ser, por ejemplo, un reconocimiento facial o de voz.

 

Tipos de Machine Learning

 

 

Los diferentes tipos de aprendizaje automático (machine learning) se dividen principalmente en tres grandes categorías: aprendizaje supervisado (supervised learning), aprendizaje no supervisado (unsupervised learning) y aprendizaje por refuerzo (reinforcement learning).

 

Aprendizaje supervisado

 

En este tipo de aprendizaje, los algoritmos utilizan datos que han sido previamente etiquetados (labeled data), buscando dar con una función que, dependiendo de los datos de entrada (input data), les asigne la etiqueta de salida que sea adecuada.

 

Además, el algoritmo es capaz de aprender de sus propias decisiones anteriores, es decir, utiliza un histórico de datos donde se encuentran todos los utilizados en ocasiones anteriores y de esta forma aprende a asignar la etiqueta de salida adecuada a un nuevo valor, es decir, es capaz de predecir el valor de salida.

 

Dentro de los principales métodos de aprendizaje supervisado nos encontramos con los siguientes:

 

  • Árbol de decisión (Decision tree): consiste en una herramienta que se encarga de realizar predicciones en base a un conjunto de datos, construyendo para ello una serie de diagramas lógicos que sirven para representar las condiciones que se suceden progresivamente, para finalmente dar solución a un determinado problema. Estos árboles de decisión están formados por nodos, vectores de números, flechas y etiquetas.

 

  • Clasificador bayesiano ingenuo (Naive Bayes Classifier): se trata de un clasificador probabilístico basado en el teorema de Bayes, que vincula la probabilidad del evento ‘A’ dado ‘B’ con la probabilidad de ‘B’ dado ‘A’, junto con otros tipos de hipótesis simplificadoras. De forma resumida, se podría decir que este algoritmo asume que la presencia o ausencia de una característica no depende de la presencia o ausencia de cualquier otra característica, por cuanto se trata de una clase variable.

 

  • Mínimos cuadrados ordinarios (Ordinary Least Squares o OLS): también conocido como mínimos cuadrados lineales, consiste en un método para encontrar los parámetros ‘β’ y estadísticas poblacionales en un modelo de regresión lineal, que sirve para aproximar la relación de dependencia entre una variable dependiente ‘Y’, otra independiente ‘X’, y un término aleatorio ‘ε’.

 

  • Regresión logística (Logistic regression): se trata de un tipo de análisis de regresión empleado para predecir la solución de una variable categórica en base a otras variables independientes o predictorias. Las probabilidades que representan el posible resultado de un ensayo concreto se modelan, como una formula de variables explicativas, utilizando una función logística. Este algoritmo es útil para analizar datos distribuidos binomialmente.

 

  • Máquinas de soporte vectorial (Support Vector Machines o SVM): se trata de un conjunto de algoritmos relacionados con problemas de clasificación y regresión. Su funcionamiento consiste en el entrenamiento de una SVM a través de etiquetar las clases de una serie de supuestos a modo de ejemplo, consiguiendo así que la máquina, ante un nuevo supuesto, sea capaz de predecir la clase a la que se corresponde. La SVM representa, mediante un hiperplano, los distintos puntos de muestra en el espacio, realizando una amplia separación entre dos espacios, y permitiendo así poder definir la clase de la que se trata en función de la mayor o menor proximidad que tenga con cada una de las clases.

 

  • Método ensamble (Ensemble Method): los métodos de ensamble o métodos de conjunto utilizan algoritmos de aprendizaje múltiples de forma combinada para obtener un mejor rendimiento predictivo que el que se podría obtener de cualquiera de los algoritmos de aprendizaje de forma individual. La evaluación de la predicción de un conjunto de algoritmos generalmente requiere más computación que la evaluación de la predicción por uno solo, por lo que los conjuntos pueden considerarse como una forma de compensar los algoritmos de aprendizaje pobres mediante la realización de una gran cantidad de cálculos adicionales. Los algoritmos rápidos, como los árboles de decisión, se usan comúnmente en los métodos de conjunto, aunque los algoritmos más lentos también pueden beneficiarse de las técnicas de conjunto.

 

Aprendizaje no supervisado

 

La característica principal del método de aprendizaje no supervisado consiste en que el aprendizaje se ajusta y se consigue a través de las meras observaciones, sin necesidad de tener que realizar entrenamientos con datos.

 

Así, se diferencia del aprendizaje supervisado en que en este caso no existe un conocimiento a priori, sino que se debe aprender directamente de lo que se observa. De esta forma, el aprendizaje no supervisado generalmente trata los datos de objetos de entrada como un conjunto de variables aleatorias, construyendo así un modelo de densidad para el conjunto de datos.

 

Dentro de los principales métodos de aprendizaje no supervisado nos encontramos con los siguientes:

 

  • Algoritmos Clustering (Clustering Algorithms): el término clustering hace referencia a la agrupación de un conjunto de elementos de una determinada manera, haciendo que los elementos que se encuentren en un mismo grupo (denominado cluster) sean más similares entre sí (en algún sentido) que aquellos elementos que se encuentran en un grupo distinto. El análisis de los elementos en sí mismo no es un algoritmo específico, sino más bien la tarea general a resolver. Se puede lograr mediante varios algoritmos que difieren significativamente de lo que constituye un cluster.

 

  • Análisis de componentes principales (Principal Component Analysis o PCA): mediante esta técnica se describe un grupo de datos en términos de nuevas variables (componentes) no correlacionadas. Estos componentes se ordenan por la cantidad de varianza original que describen, por lo que la técnica resulta de mucha utilidad para reducir la dimensionalidad de un conjunto de datos. El PCA se emplea sobre todo en análisis explorativo de datos y para construir modelos predictivos. Esta técnica comporta el cálculo de la descomposición en autovalores de la matriz de covarianza, generalmente tras centrar los datos en la media de cada atributo.

 

  • Descomposición en valores singulares (Singular Value Decomposition o SVD): la SVD de una matriz real o compleja es una factorización de la misma con muchas aplicaciones en los campos de la estadística, el procesamiento de señales y otras disciplinas.

 

    • Análisis de componentes independientes (Independent Component Analysis o ICA): consiste en un método computacional que sirve para separar una señal multivariante en sucomponentes aditivos suponiendo que la señal de origen tiene una independencia estadística y es no-Gausiana. Este es un caso especial de «separación ciega de las señales». El ICA es una generalización del análisis de componentes principales (PCA), ya que en ambos casos se practica una transformación lineal de los datos originales, aunque la diferencia básica es que el ICA no requiere que las variables originales tengan una distribución gausiana.

 

Aprendizaje por refuerzo

 

El aprendizaje por refuerzo es un sector que se ocupa del aprendizaje automático orientado hacia la resolución de unos determinados problemas de decisión secuenciales. Generalmente versa sobre problemas relacionados con aplicaciones pertenecientes a campos muy diversos como pueden ser el control automático, la medicina, la investigación operativa o la economía.

 

Los algoritmos clásicos de este tipo de aprendizaje automático están basados en la teoría matemática de la programación dinámica, donde se asume que el espacio de estados es discreto y que está compuesto de un número manejable de estados.

 

Sin embargo, en la mayor parte de aplicaciones de interés práctico, el espacio entre estados es continuo, lo que hace que dichos algoritmos clásicos pierdan utilidad. Para poder aplicar esta técnica a espacios continuos se deben dar dos requisitos: generalizar el comportamiento aprendido a partir de un conjunto limitado de experiencias a casos que no hayan sido experimentados anteriormente y representar las políticas de forma compacta.

 

La combinación de algoritmos de aprendizaje por refuerzo con técnicas de aproximación de funciones es actualmente un área de investigación activa. No obstante, y a pesar de los avances logrados en los últimos años en este campo, todavía existen aspectos que limitan la capacidad del aprendizaje por refuerzo en problemas complejos.

 

      • Programación dinámica (Dynamic programming): consiste en una técnica para reducir el tiempo de ejecución de un algoritmo mediante la utilización de subproblemas superpuestos y subestructuras óptimas.

 

      • Q-learning: el objetivo de este método es aprender una política que le indique a un agente qué acción tomar en qué circunstancias. No requiere un modelo del entorno y puede manejar problemas con transiciones estocásticas y recompensas, sin requerir de adaptaciones. Para cualquier proceso de decisión finito de Markov (FMDP), Q-learning finalmente encuentra una política óptima, en el sentido de que el valor esperado de la recompensa total sobre todos los pasos sucesivos, comenzando desde el estado actual, es el máximo alcanzable.

 

      • State-Action-Reward-State-Action (SARSA): se trata de un algoritmo empleado para aprender una política de proceso de decisión de Markov. El nombre de SARSA viene dado por cuanto refleja el hecho de que la función principal para actualizar el valor de un elemento (Q) depende del estado actual del agente (S1), la acción que el agente elige (A1), la recompensa que el agente obtiene para elegir dicha acción (R), el estado que ingresa el agente después de tomar esa acción (S2) y, finalmente, la siguiente acción que elige el agente en su nuevo estado (A2).

 

DEEP LEARNING o APRENDIZAJE PROFUNDO

 

El deep learning forma parte del machine learning, es decir, que el aprendizaje profundo es una rama concreta que se engloba dentro del aprendizaje automático. El aprendizaje profundo se desarrolla a través de modelos informáticos que funcionan de forma similar al cerebro humano, consistente en un sistema de redes artificiales de neuronas que se encargan de analizar los diferentes datos.

 

En este caso, la máquina o computadora en cuestión evalúa distintos ejemplos e instrucciones para modificar el modelo en caso de que se produzcan errores. De esta forma, el sistema reconoce y aplica patrones que facilitan la solución de problemas de manera muy precisa, es decir, que toma decisiones a partir de los distintos datos que recoge.

 

Como decimos, el aprendizaje profundo es un subconjunto del aprendizaje automático. Las redes neuronales artificiales constituyen un conjunto de algoritmos que alcanzan nuevos niveles de precisión que antes no existían y que dan solución a una serie de problemas importantes, como el reconocimiento de imágenes, el reconocimiento de sonidos o los sistemas de recomendación.

 

En otras palabras, este método utiliza algunas técnicas de aprendizaje automático para resolver problemas del mundo real recurriendo a redes neuronales que simulan la toma de decisiones humanas.

 

El aprendizaje profundo puede ser costoso y requiere de grandes conjuntos de datos para capacitarse. Esto se debe a que hay un gran número de parámetros que deben ser comprendidos por un algoritmo de aprendizaje, que puede producir principalmente muchos falsos positivos.

 

Por ejemplo, un algoritmo de deep learning podría ser entrenado para aprender cómo se ve un perro. Tomaría un enorme conjunto de datos de imágenes para entender los pequeños detalles que distinguen a un perro de un lobo o un zorro, por ejemplo.

 

Los principales métodos de aprendizaje profundo mediante los que se desarrollan los algoritmos son:

 

      1. Redes neuronales profundas (Deep Neural Networks o DNN): son un tipo de red neuronal artificial (ANN) que consiste en un modelo computacional basado en un gran conjunto de unidades neuronales simples, de forma similar al comportamiento observado en los axones de las neuronas en los cerebros biológicos. Cada una de las neuronas artificiales está conectada con otras muchas, creando una red neuronal y unos enlaces que pueden incrementar o inhibir el estado de activación de las neuronas adyacentes, ya que cada neurona artificial puede transmitir información a otra. De esta forma, estos sistemas aprenden y se forman a sí mismos, sin necesidad de ser programados, y sobresalen en áreas donde la detección de soluciones o características es difícil de expresar con la programación convencional.

 

Una DNN, además, es capaz de encontrar la manipulación matemática correcta para convertir la entrada (input) en la salida (output), ya sea a través de una relación lineal o no.

La red se mueve a través de las capas de entrada y salida calculando la probabilidad de cada salida. Por ejemplo, un DNN que está entrenando para reconocer razas de perros revisará la imagen dada y calculará la probabilidad de que el perro en la imagen sea de cierta raza.

El usuario puede revisar los resultados y seleccionar qué probabilidades debería mostrar la red y devolver la etiqueta propuesta. Cada manipulación matemática como tal se considera una capa, y las redes neuronales profundas tienen muchas capas, de ahí el nombre de redes “profundas”.

 

      1. Bosque decisión neuronal profunda (Deep Neural Decision Forest): este sistema presenta un enfoque novedoso que combina la técnica del árbol de decisión (Decision tree) con la funcionalidad de aprendizaje de representación conocida a partir de redes neuronales profundas. Para combinar ambos, se crea un modelo de árbol de decisión estocástico y diferenciable que dirige el aprendizaje de la representación generalmente conducido en las capas iniciales de una red neuronal profunda. Este sistema difiere de las redes neuronales profundas convencionales porque proporciona las predicciones finales y asimismo difiere del sistema de los árboles de decisión convencionales porque pretende una optimización conjunta, global y basada en principios de los parámetros de nodo dividido y hoja.

 

En resumen, el estudio e investigación de la inteligencia artificial, en efecto, se centra en muy diversos campos, entre los que se encuentran el machine learning y el deep learning, siendo además este último una nueva área de investigación del aprendizaje automático.

 

Por lo tanto, y de forma general, se podría decir que la inteligencia artificial es la tecnología más “básica”, ya que siempre responde igual ante unos mismos parámetros, que ha evolucionado en el machine learning, que es capaz de autoaprender y corregir errores, y en deep learning (la más compleja de las tres) que, además de eso, toma decisiones a partir de los diferentes datos.

 

¿Te ha resultado útil el artículo? ¿Crees que tanto el machine learning como el deep learning van a suponer un cambio importante en nuestro futuro próximo? Déjanos tu comentario y comparte con nosotros tu opinión.

1Comment
  • gaby leon
    Posted at 19:54h, 19 March Reply

    Muy útil!
    Soy bastante nueva en este mundo y tema, pero recientemente leí algo similar (en inglés) sobre esto y me ha resultado muy interesante. Pensar que en un futuro el mundo esté “controlado” por robots me parace super curioso, es decir, pensar que muchos trabajos levados a cabo por nosotros y que pronto sean ocupados solo por robots es algo realmente impactante. En mi opinión, no creo que esto suceda tan pronto.

    Para los que entienden inglés, les dejo el link del artículo que leí sobre esto. Lo recomiendo 100%
    https://www.linkedin.com/pulse/deep-learning-ai-bubble-bursting-samer-l-hijazi/

    What do you think? Qué opinan ustedes?

Post A Comment

Share This