En los últimos tiempos se ha producido una mejora considerable en la capacidad de procesamiento de datos, lo que supone un crecimiento exponencial en la cantidad de datos procesados. Por este motivo, el desarrollo de las herramientas de Big Data para analizar, procesar y almacenar los datos es un aspecto clave en la evolución de esta disciplina.

La evolución del Big Data gira en torno a tres conceptos fundamentales: Inteligencia Artificial (IA), Machine Learning y Deep Learning. La Inteligencia Artificial es un concepto englobador que se define como un conjunto de programas informáticos que imitan el comportamiento humano. Por su parte, Machine Learning y Deep Learning son modelos de IA basados en algoritmos que permiten realizar funciones específicas como reconocimiento de imágenes, elaboración de predicciones o procesado de lenguaje. Para llevar a cabo estas funciones, existen distintas herramientas de Big Data con características diferentes y concretas. A continuación, repasamos las más importantes.

Las 3 herramientas de Big Data más utilizadas

1.     Spark

Es la herramienta de Big Data más potente para el procesamiento de grandes volúmenes de información.  Así pues, no es de extrañar que sea el sistema de procesamiento de datos más utilizado por las empresas y organizaciones más importantes del mundo.

Spark es un motor de código abierto para el procesamiento de datos gestionado por la Apache Software Foundation. Entre sus principales ventajas destaca su organización en clústeres, que permite realizar operaciones sobre un gran volumen de datos. El sistema trabaja en memoria para conseguir una mayor velocidad de procesamiento.

Además, la plataforma Spark integra distintas soluciones para potenciar su rendimiento:

Spark es una herramienta de Big Data gestionada por Apache Software Foundation

2.     Hadoop

Esta herramienta de Big Data surge cuando Google se encuentra con la necesidad de procesar los datos a alta velocidad en un momento en el que el volumen de información disponible en la web experimenta un crecimiento exponencial. Para conseguir este objetivo, la estrategia del gigante online pasa por la creación de un sistema de archivos distribuidos o nodos. Así nace Hadoop, un sistema de código abierto impulsado por las nuevas exigencias del entorno digital. Sus principales ventajas son las siguientes:

Hadoop es una herramienta de Big Data apta para la gestión de grandes volúmenes de datos

3.     Power BI

Power BI es una solución de inteligencia empresarial desarrollada por Microsoft. Permite recopilar información de diferentes fuentes en tiempo real y crear paneles, gráficos e informes compartidos por un gran número de usuarios. Se trata, por tanto, de una herramienta de Bussines Inteligente (BI) orientada a la monitorización de los datos relativos a una empresa u organización para su análisis y valoración en la toma de decisiones.

Entre sus funcionalidades destacan, además del almacenamiento masivo de datos, las capacidades de preparación y descubrimiento de datos, así como la creación de paneles interactivos completamente personalizables en función de las necesidades de cada usuario. Power BI integra distintas herramientas para la creación de informes como una aplicación de escritorio, una nube o un mercado de recursos visuales para hacer más atractivos los documentos. Además, cuenta con apps para iOS y Android y permite una integración completa con los servicios Office 365.

Power BI es una herramienta de Big Data para inteligencia empresarial

Aprende a utilizar las herramientas de Big Data más demandadas

En Datahack contamos con un profesorado experto altamente cualificado en distintas áreas de Big Data y Analytics. Si estás buscando una formación práctica y exigente, no dudes en contactar con nosotros, somos la escuela que buscas.

En el primer artículo de la serie vimos cómo aproximarnos a las distribuciones de probabilidad en la Computación Clásica. En el segundo, comenzamos a asomarnos de forma superficial a la Computación Cuántica introduciendo conceptos como qubit, base canónica, superposición, regla de Born y los circuitos cuánticos con Qiskit de python. En el tercero hablamos de la Esfera Bloch, la superposición y cómo construir un circuito cuántico.

En el cuarto artículo de esta serie se introdujeron conceptos como superposición e interferencia y cómo codificarlos empleando Qiskit. Ahora es turno de ver cómo representar varios qubits y de adentrarnos en la propiedad conocida como entanglement.

Múltiples qubits

En este punto vamos a empezar a trabajar con estados cuánticos formados por varios qubits. Si recordamos lo que vimos anteriormente, un estado cuántico lo podemos asemejar a una distribución de probabilidad y un qubit es un estado cuántico de 2 niveles [a0, a1],  de forma que podemos representar un estado cuántico mediante un vector columnar.

Para hacer referencia a su label (el nombre de dicho estado) se utilizará lo que se denomina ket en la notación Dirac, es decir, podemos referirnos a nuestro estado cuántico mediante el ket . Para continuar refrescando conceptos previos, estas distribuciones de probabilidad deberán tener norma 1 en la norma L2.

Por tanto recapitulando, podemos escribir un qubit de la siguiente forma:

Introducción a la Computación Cuántica con Qiskit

Donde a0 y a1 reciben el nombre de amplitudes de probabilidad y son números complejos, por lo que no solo estaremos restringidos al cuadrante positivo del plano como ocurría con las distribuciones de probabilidad clásica, cuya norma debe ser igual a 1 en la norma L1 y además cada probabilidad debía ser mayor o igual a 0 (lo que únicamente permitía representaciones en el cuadrante positivo citado anteriormente).

Como en computación cuántica el requisito de normalización debe ser la norma L2 eso puede formalizarse para el caso de un qubit en que:

Introducción a la Computación Cuántica con Qiskit

Podemos encontrar 2 qubits especiales llamados vectores de base canónica en 2 dimensiones que son:

Introducción a la Computación Cuántica con Qiskit

La parte interesante es que podemos expandir cualquier qubit en esta base de la siguiente forma dando lugar al fenómeno de superposición:

Introducción a la Computación Cuántica con Qiskit

Según la regla de Born, si extraemos una muestra del qubit |(|) > obtendremos la salida 0 con una probabilidad |a0|2 y la salida 1 con una probabilidad de |a1|2.

Producto Kronecker

Una vez finalizado este repaso, toca ponernos manos a la obra con nuevos conceptos. Vamos a comprobar cómo añadir más qubits nos permite introducir otro fenómeno cuántico.

En este punto nos puede surgir la duda sobre cómo representar en forma de vector columnar 2 qubits. La forma de hacerlo es empleando la operación de producto de tensores o producto Kronecker. Para entenderlo vamos a ver un ejemplo en el que partimos de 2 qubits: |(|) > y |(|)` > :

Introducción a la Computación Cuántica con Qiskit

El producto de tensores o producto Kronecker de esos 2 qubits será:

Introducción a la Computación Cuántica con Qiskit

Vamos a concretar un poco más. Supongamos que tenemos almacenado en el registro cuántico qr0 un qubit que está en el estado |0> y también disponemos de otro registro cuántico llamado qr1 que de forma similar al anterior almacena un qubit en el estado |0>. Una forma de visualizar la regla del producto Kronecker de esos 2 qubits (|0> ⊕ |0>) sería mediante el siguiente código:

Introducción a la Computación Cuántica con Qiskit

El estado resultante del producto Kronecker de esos dos qubits que cada uno de ellos se encuentra en el estado |0> se suele representar como |00>. Si quisiéramos representar los estados |01>, |10> y |11> tendríamos que seguir el mismo procedimiento que hemos realizado para generar el ket |00>.

Hay que señalar que los estados |00>, |01>, |10> y |11> forman los vectores de base canónica en un espacio de números complejos de 4 dimensiones denotado como:

Introducción a la Computación Cuántica con Qiskit

Conclusión

Cuando empleamos modelos de Machine Learning y Deep Learning también trabajamos con espacios de alta dimensionalidad pero no se construyen como un producto de tensores sino que suele tratarse de Rn, es decir, un mapeo a los números reales para alguna dimensión ‘n’.

El efecto de construir espacios de alta dimensionalidad empleando producto de tensores es que no todos los vectores de dicho espacio pueden ser escritos como el producto de vectores de los elementos de ese espacio. Este hecho que en principio puede parecer confuso, nos permitirá descubrir la propiedad cuántica conocida como entanglement, que recorreremos en el siguiente artículo viendo cómo la podemos observar empleando Qiskit.  ¡No te lo pierdas!


MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

En los artículos anteriores, introducción y mecanismos de atención, estuvimos hablando de las circunstancias que nos llevaron a embarcarnos en la construcción de este modelo y los principales enfoques que se han venido usando para el entrenamiento de redes neuronales con información secuencial. En este veremos como llevamos a cabo la construcción de nuestro primer modelo de speech to text, ¡¡¡es español!!!

Así, una vez definida la arquitectura que se quería usar, quedaba el último paso, entrenar y construir el modelo de Speech to Text. Proceso que queda reflejado en la siguiente figura:

Speech to Text con Tensorflow modelo datahack

Figura 7 - Esquema general del entrenamiento y construcción del modelo de speech to text

Construyendo el dataset inicial

Lo primero que se hizo fue construir un dataset (conjunto de datos) con el que entrenar al modelo. Este estaría formado por una serie de audiolibros y los ebooks correspondientes. Lo que se buscaba era tener un buen número de ejemplos de personas hablando y la transcripción a texto de lo que iban diciendo. Para esto se usaron tanto audiolibros como ebooks libres de derechos y en español, obtenidos de sitios como LibriVox y Project Gutenberg, entre otros.

Se recopilaron un total de 23 audiolibros, y los 23 ebooks correspondientes, que sumaban un total de 180 horas de audio.

Antes de entrenar el modelo de Speech to text

El siguiente paso fue procesar los audiolibros y ebooks recopilados para adaptarlos al formato LibriSpeech, ampliamente usado para el entrenamiento de modelos de Speech to Text. En este formato hay muchos recursos disponibles en inglés, pero no en español, de ahí que se tomará la decisión de dataset propio que sirviera para cumplir con los objetivos del proyecto.

Paso 1: procesar los audiolibros

El primer paso fue procesar los audiolibros para eliminar todas aquellas cosas que eran dichas por los narradores y que no aparecían en los ebooks. Por ejemplo, comentarios acerca del autor y menciones acerca del proyecto al que pertenecía el audiolibro en cuestión. También se ajustó el sampling rate de los mismos a 16 KHz, por motivos de compatibilidad con el modelo a entrenar. Todas  estas operaciones se hicieron con el programa Audacity.

Paso 2: procesar los ebooks

A continuación, se procesaron los ebooks. Para ello, se dividieron en el mismo número de partes que tenía el audiolibro correspondiente. Por ejemplo, si el audiolibro “La batalla de Trafalgar” estaba compuesto por 17 archivos mp3, el ebook de trafalgar, se dividió en 17 partes, de forma que cada una de ellas coincidiera con el archivo mp3 correspondiente. Además de esto, se hizo una revisión ortográfica, se eliminaron aquellas partes de texto que no aparecían en los audios y se trataron elementos del texto como abreviaturas y números romanos, es decir, donde ponía Sr., se sustituía por Señor y el XIX, se sustituía por 19, por ejemplo. Todo esto se hizo con herramientas de procesamiento de texto y la librería NLTK (Natural Language Toolkit) de Python.

Speech to Text con Tensorflow modelo datahack

Figura 8 - Archivos del audiolibro “La batalla de Trafalgar” y archivos de texto generados a partir del ebook, para conseguir la paridad entre el audio y texto disponible

Paso 3: Alineando audio y texto

Lo siguiente fue hacer el alineamiento de los pares audio-texto con la librería Aeneas. El resultado final fueron 17 directorios, siguiendo con el ejemplo anterior, que contenían: un archivo de texto, con el nombre del directorio, y un número determinado de archivos de audio, uno por cada párrafo existente en el archivo de texto de referencia. Cada uno de los archivos de texto que están dentro de los directorios, serían los índices que indican qué archivo de audio le corresponde a cada uno de los párrafos.

Speech to Text con Tensorflow modelo datahackFigura 9 - Directorios generados, y ejemplo del contenido del primero de ellos, tras alinear los parejas audio-texto correspondientes al audiolibro y ebook de “La batalla de Trafalgar”.

Además de los directorios, la librería Aeneas genera unos archivos json (mapas de sincronización audio-texto), uno por cada pareja de archivos de audio-texto, en los que queda recogida la alineación realizada. Estos se usaron, junto con la herramienta finetuneas, para comprobar si la alineación audio-texto se había hecho bien y aplicar correcciones, si fuera necesario.

Paso 4: división en subconjuntos

Tras alinear todos los audiolibros y ebooks correspondientes, los datos resultantes se distribuyeron los datos en tres subconjuntos: train, dev y test, siguiendo la siguiente proporción 60/20/20: 60% en train, 20% en dev y 20% en test. Los dos primeros, train y dev, se usarían para entrenar el modelo y el subconjunto de test, serviría para evaluar la eficiencia del modelo obtenido. Después de esto, se transformaron en tfrecords, formato nativo de tensorflow.

Speech to Text con Tensorflow modelo datahack

Figura 10 - Distribución de los datos en los tres subconjuntos: train, dev y test

Entrenamiento del modelo de Speech to text

Para el entrenamiento del modelo, se uso una librería de modelos de deep learning de Google, llamada tensor2tensor, que incluye la implementación de la arquitectura descrita del modelo The Transformer.

Lo primero que se hizo, es subir los tfrecords a un bucket de GCP (Google Cloud Platform), para poder entrenar el modelo se pudiera entrenar con una TPU (Tensor Processing Unit), una unidad de procesamiento creada por Google, que está optimizada para el desempeño de tareas de machine learning y deep learning.

Speech to Text con Tensorflow modelo datahack

Figura 11 - Vista de algunos de los tfrecords que se subieron al bucket de GCP

A continuación se creo una instancia de computación con una Cloud TPU, es decir, una máquina virtual con TPU. En la misma se instaló la librería tensor2tensor y se procedió a realizar el entrenamiento del modelo, lanzando una sentencia similar a esta:

Speech to Text con Tensorflow modelo datahack

Figura 12 - Sentencia para iniciar el entrenamiento del modelo, en ella se indica la orden de entrenamiento y los parámetros  asociados a la misma

Los progresos obtenidos durante el entrenamiento se fueron guardando en una carpeta “output”, situada en el mismo bucket donde estaban los datos de entrenamiento. Al finalizar el mismo, se obtuvieron una serie de checkpoints del modelo, versiones de progresión del entrenamiento. El entrenamiento se mantuvo hasta que el valor de pérdida (loss), estuvo por debajo de 0,010. Con esto se aseguraba que la precisión del mismo (accuracy), estuviera cerca del 100%.

Speech to Text con Tensorflow modelo datahack

Figura 13 - Vista de una parte de la carpeta output, donde se fueron guardando los resultados obtenidos durante el entrenamiento del modelo

Probando la eficacia del modelo...

Una vez entrenado el modelo, se llevó  a cabo una prueba de la eficiencia del mismo. Para ello, se hizo una prueba de la capacidad de inferencia (predicción) del mismo, haciendo uso del subconjunto de test, mencionado anteriormente. Los resultados fueron muy prometedores y el modelo lo hizo bien en casi el 100% de los casos.

Con el modelo  entrenado y validado, se procedió a realizar una prueba en real del mismo. Para ello, se les pasaron diferentes mensajes de voz, obtenidos a través de diferentes dispositivos, micrófono de ordenador, móviles, etc. Al hacer esto, se vio que el modelo era bastante sensible al ruido ambiental y, si este era demasiado acentuado, perjudicaba en gran medida a las predicciones realizadas.

Debido a esto, se decidió implementar un proceso de limpieza y normalización del audio entrante, antes de que este se pasara al modelo que hacía la predicción. Para ello, se usó una librería de python, SpeechRecognition, especializada en la detección y tratamiento de la voz humana. Con la limpieza previa del audio, los resultados mejoran bastante, aunque seguía teniendo cierta debilidad al ruido ambiental.

Resultados

El resultado final de todo esto fue la obtención de una primera versión de un modelo de speech to text, capaz de pasar la voz humana (en español) a texto con una eficiencia más que aceptable pero que aún sigue siendo sensible al ruido ambiental. No obstante, como he comentado, esta es una primera versión que esperamos mejorar en el futuro, llevando a cabo una o varias de las siguientes acciones:

Y hasta llega nuestra singladura acerca del desarrollo y puesta en marcha de nuestro primer modelo de speech to text, espero que os haya sido interesante. Por nuestra parte, seguiremos trabajando en ello y os iremos contando nuestros avances, ya sea a través de este canal u otros que tenemos disponibles.

¡Saludos a tod@s y buena semana!


Javier Moralo, Data & AI Creative de datahack


dia4ra cdtiEl proyecto empresarial de DATAHACK CONSULTING SL., denominado “DESARROLLO DE INTELIGENCIA ARTIFICIAL EN ROBOTS APLICADOS AL TRATAMIENTO DEL ALZHEIMER Y LA DEMENCIA” y número de expediente 00104725 / SNEO-20171211 ha sido subvencionado por el CENTRO PARA EL DESARROLLO TECNOLÓGICO INDUSTRIAL (CDTI)

MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

La convergencia entre la neurología y las ciencias de la computación es una tendencia innegable. Cada vez aprendemos más sobre nuestro cerebro gracias a los avances en Machine Learning y viceversa: descubrimos cómo construir y mejorar nuestros modelos informáticos en base a los descubrimientos de la neurociencia. Es por ello que, si queremos trabajar con deep learning y redes neuronales, debemos tener, al menos, unas nociones básicas de neurociencia.

La base de todo: la neurona

Si nuestro cerebro fuera una especie de escenario, la estrella indiscutible sería la neurona. El tamaño de una neurona es variable, siempre en el orden de la millonésima de metro (µm), pero no pensemos que todas las neuronas son iguales:

Introducción a neurociencia - primer paso para desarrollar Neural Networks

En estos fantásticos bocetos de tejido neuronal hechos por Don Santiago Ramón y Cajal, se aprecian distintos tipos de neuronas:

En tiempos de Ramón y Cajal, dos de las principales hipótesis que pugnaban por proponer una explicación satisfactoria a la incógnita de la estructura del cerebro eran:

Paradójicamente, los avances logrados por el propio Golgi en las técnicas de tintado de tejido nervioso permitieron a Ramón y Cajal no solo hacer los magníficos grabados mostrados más arriba, sino demostrar que la teoría neuronal era la que explicaba la realidad del cerebro. Ambos obtuvieron el premio Nobel de Medicina en 1906 por sus avances en el conocimiento del cerebro.

Doctrina neuronal

Los pilares fundamentales de la teoría encabezada por Ramón y Cajal son los siguientes:

En este esquema (obtenido del curso de neurociencia de la Universidad de Washington), se puede apreciar cual es el aspecto de una neurona que responda al esquema ideal planteado por la doctrina neuronal:

Introducción a neurociencia - primer paso para desarrollar Neural Networks

En la parte izquierda se muestra como la entrada de la neurona procede de los axones de otras neuronas. Estas “entradas” se traducen en algún tipo de actividad en la neurona destino que da lugar a una reacción conocida como EPSP (Excitatory Post-Synaptic Potential). En la realidad, las entradas proceden de muchas neuronas diferentes y participarán en la respuesta de la célula mediante la suma de todos los EPSP provocados. De este modo si como resultado de esa suma, se alcanza un determinado umbral o threshold, se generará una salida en la forma de un potencial de acción (action potential) o spike.

En resumen,

Los modelos de redes neuronales se basan en estos principios para funcionar.

En el próximo artículo hablaremos de la sinapsis y en el siguiente profundizaremos en la doctrina sináptica. Si os ha gustado y queréis seguir profundizando... ¡hacédnoslo saber!


Alejandro Arranz, Data Engineer en datahack

MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

Después de haber asimilado los tres artículos sobre la historia de lo que hoy llamamos Deep Learning (etapas, pioneros e hitos), lo normal es preguntarse qué ha ocurrido para que una tecnología, que en 1950 ya daba sus primeros pasos, se haya convertido hoy en una tecnología disruptiva. Como suele ocurrir en estos temas, no hay un único factor sino un cúmulo de ellos.

Tamaño de los dataset

Desde el punto de vista de la investigación, se intentó desde un primer momento orientar esta nueva ola hacia el aprendizaje no supervisado, con el objetivo de poder sacar conclusiones a partir de un conjunto reducido de datos. Pero la industria demandaba soluciones a problemas que se planteaban desde el punto de vista del aprendizaje supervisado, con la consiguiente necesidad de datos. Muchos datos.

Es interesante ver cómo los algoritmos de aprendizaje, que hoy alcanzan un performance similar al ser humano en ciertas tareas, son versiones ligeramente modificadas de aquellos que en la década de los 80 se las veían y se las deseaban para resolver problemas “de juguete”. Si que es cierto que algunas de esas modificaciones son las que hoy permiten entrenar arquitecturas más complejas. Pero el factor más diferencial es que se dispone del combustible que necesitan para funcionar: datos.

Dado que vivimos en la era digital y que cada vez estamos más y más interconectados, los datos que generamos se seguirán almacenando y limpiando. Esto dará lugar a datasets cada vez más y más grandes.

Deep Learning, 3ª ola de redes neuronales claves de éxito, tareas pendientes

Echemos la vista atrás.

En resumen, se percibe cómo, a medida que pasa el tiempo, el tamaño de los dataset se va incrementando más y más. Pero además, la complejidad de sus ejemplos también lo hace. Por ejemplo, el paso de las imágenes en escala de grises y 28x28 del MNIST a imágenes más pesadas en RGB de, por ejemplo, ImageNet.

Tamaño de los modelos

Si recopilamos lo aprendido en la ola del Conexionismo, uno de sus puntales era que una neurona, o un grupo de neuronas por sí solas, no iban a conseguir gran cosa. Para conseguir inteligencia, se necesitan neuronas y además interconexiones entre estas.

Partiendo de esa premisa, realmente cada una de nuestras neuronas no tienen un número exorbitante de conexiones (104 aproximadamente). Y, si de nuevo echamos la vista atrás, vemos cómo este número se ha ido incrementando hasta convertirse hoy en día en prácticamente una decisión de diseño:

Aunque, más que el número de conexiones por neurona, la parte que estaba (y está) algo más coja es el número de neuronas. Y es que, hasta el año 2000, las arquitecturas más disruptivas estaban compuestas de menos neuronas que una sanguijuela... (Visto de este modo, tampoco sorprende que no dieran buenos resultados cuando se trataba de resolver problemas complejos a través de ellas). Ahora mismo, las arquitecturas más complejas rondan las 107 neuronas (lo que sería el equivalente a una rana).

Conclusión y asignaturas pendientes

Si todo sigue su curso, entre la disponibilidad de máquinas cada vez más potentes y datasets más extensos, se espera que, alrededor de 2050, las redes neuronales ya tengan una cantidad de neuronas similar a las de un ser humano.

A pesar de todo esto, la gran asignatura pendiente del Deep Learning sigue siendo su capacidad para trabajar y generalizar adecuadamente con datasets pequeños y datasets sin etiquetar. Imaginad si se pudiera sacar provecho de todos los datos que existen sin etiquetar...


Alejandro Arranz, Data Engineer en datahack

MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

Hoy en día, el término “Inteligencia Artificial” es parte de nuestro día a día, tanto a nivel personal como a nivel empresarial, debido al progreso tan fulgurante que ha tenido en los últimos y que ha hecho que pase del campo de la investigación a las primeras etapas de la adopción empresarial.  Esto es, en gran parte, porque compañías como Google, Baidu, Microsoft, Facebook e IBM (entre otras), han creado muchos productos basados en ella. Y están haciendo ver que la Inteligencia Artificial no es solo algo rentable, sino una gran apuesta que va a influir futuro de la humanidad no solo a nivel económico, sino también a nivel humano y social..

En el artículo anterior se dieron algunas pinceladas sobre algunos de los conceptos relacionados con el mundo del big data que vamos a describir. En este artículo, se pretende dar una definición concisa de lo que se conoce como Inteligencia Artificial (IA) y de otros dos conceptos que están muy relacionados con ella, el Machine Learning (ML) y el Deep Learning (DL).

La inteligencia artificial

Como ya comenté en un conceptos relacionados con el mundo del big data, la Inteligencia Artificial (IA), fue definida por John McCarthy en 1956, como “Conjunto de técnicas que sirven para dotar de inteligencia a una máquina”, es decir,  un conjunto de programas informáticos, basados en algoritmos, que imitan el comportamiento humano.

Frente a este concepto, mucha gente entiende lo que se conoce como Inteligencia Artificial General (en inglés, AGI), es decir, máquinas que son igual o más inteligentes que los humanos, capaces de hacer una gran variedad de tareas y emular cualidades humanas como la conciencia, la sensibilidad y el autoconocimiento. La realidad es que actualmente se han hecho pocos avances en este campo. Ejemplos similares a HAL 9000 o C-3PO, quedan actualmente en el terreno de la ciencia ficción.

Donde sí se han hecho grandes avances es en lo que se conoce como Inteligencia Artificial Estricta (narrow AI), que se centra en realización de funciones específicas, normalmente aspectos cognitivos del ser humano, como la realización de predicciones y recomendaciones, el reconocimiento de imágenes, procesado de lenguaje natural, tareas de traducción, etc. Para la realización de estás tareas se usan modelos de IA basados en algoritmos de Machine Learnig y Deep Learning.

Inteligencia Artificial, machine learning y deep learning

Figura I.- Organización del ML y DL dentro de la IA

Machine Learning

Así, el Machine Learning es una subcategoría de la inteligencia artificial que utiliza métodos estadísticos para realizar aquellas funciones cognitivas más sencillas, como por ejemplo: predicción de fraude, clasificación de imágenes o sistemas de recomendación financiera, entre otros.

Inteligencia Artificial, machine learning y deep learning

Figura II.- Ejemplo de la arquitectura de una red neuronal

Deep Learning

Por otro lado el Deep Learning, es una subcategoría dentro del machine learning que imita el modo de funcionamiento del cerebro humano, organizando sus elementos en capas y formando redes neuronales. Estás redes neuronales interpretan mejor los datos desestructurados y mejoran su eficiencia en función de la cantidad de datos. No ocurre lo mismo con los algoritmos de machine Learning, que tienen un punto de saturación, es decir, que llegado un momento, aunque se les proporcionen más datos, no mejoran su eficiencia. Por esto, el deep learning se utiliza para solventar los problemas más complicados y que requieren más datos, como detección de objetos, procesado natural del lenguaje (PNL), análisis de sentimientos o transformación de voz humana en texto (Speech to Text), entre otras aplicaciones.

Inteligencia Artificial, machine learning y deep learning

Figura III.- Eficiencia del aprendizaje de los algoritmos de ML y DL, respecto a la cantidad de datos

Y hasta aquí este artículo acerca de la definición y aclaración del concepto de Inteligencia Artificial, Machine Learning y Deep Learning. Seguiremos publicando artículos relacionados con este tema, que va ser más que determinante en el futuro. Muchas gracias a tod@s y nos vemos en la siguiente! 🙂

MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

Cuando no sabes mucho sobre el mundillo del Big Data & Analytics, puede amedrentar un poco leer cualquier cosa sobre el tema, aunque solo sea por las palabras que se utilizan. Aquí tienes una guía rápida de las más utilizadas y su significado.

Big Data:

Término que hace referencia a la gran cantidad de datos variados y no siempre estructurados que se generan con cada vez más rapidez y que pueden generar valor a nuestra empresa. Para recopilar, limpiar, procesar, analizar y visualizar todos esos datos necesitamos conocer y manejar un largo conjunto de herramientas.  Aprende a hacerlo con nuestro master Big Data & Analytics.

¿Quieres saber más sobre la definición de Big Data? Te recomiendo que te pases por el artículo “Las cinco v’s del Big Data”.

Inteligencia de Negocio (Business Intelligence o BI):

Uso de aplicaciones e infraestructuras de Big Data para acceder y analizar la información de forma que podamos tomar mejores y más óptimas decisiones que aumenten nuestro rendimiento.

Internet de las cosas (IoT):

Se refiere a los objetos cotidianos que están conectados permanente entre si y a repositorios de datos que almacenan la información que recogen de su entorno.

Descubre más sobre la relación entre Big Data, IoT e Inteligencia Artificial en este artículo.

Inteligencia Artificial (Artificial Intelligence):

Es el área de la computación que tiene por objeto la creación de máquinas inteligentes que se comporten y reaccionen de forma similar a los humanos.

Algoritmo

Especificación matemática categórica que resuelve un problema complejo en base a un conjunto de datos inicial. Consiste en múltiples pasos que aplican en orden una serie de operaciones.

Machine Learning:

Es un campo dentro de la Inteligencia Artificial que tiene por objetivo que las máquinas aprendan a resolver una determinada tarea partir de la experiencia, es decir, los datos. De este modo se facilita que una máquina llegue a la solución de un problema sin que un humano tenga que programar explicitamente qué pasos tiene que seguir para ello.

¿Quieres saber más sobre la definición de Machine Learning? Te recomiendo que te pases por el artículo “Machine Learning. Una introducción

Deep Learning:

Es a su vez una disciplina del Machine Learning que se caracteriza no solo por ser capaz de aprender a solucionar una determinada tarea a partir de los datos, sino porque además aprende a representar los datos de para llegar a esa solución. En contraste con el Machine Learning más elemental, que requiere de que los datos estén muy bien estructurados para funcionar correctamente. Esta característica permite al Deep Learning atacar a problemas hasta ahora impensables de solucionar para una máquina (visión artificial, reconocimiento de voz...)

Datalake:

Repositorio de gran cantidad de datos, generalmente en bruto y sin estructurar.

Datawarehouse:

Repositorio de gran cantidad de datos, ordenados, limpiados e integrados que están listos para su análisis.

Minería de datos (data mining):

Búsqueda de patrones en grandes sets de datos para refinarlos, clasificarlos, hacerlos comprensibles y poderlos explotar.

Computación en la nube (Cloud Computing)

A diferencia de la computación tradicional on premise (es decir, con las máquinas y demás aparatos físicos cableados y montados in situ), el Cloud computing ofrece al usuario la posibilidad de usar recursos de computación desentendiéndose de mantenimiento hardware y pagando por lo que usa. Los distintos proveedores de Cloud disponen además de un amplio ecosistema para facilitar al usuario la gestión y configuración de la infraestructura deseada en el Cloud.

MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

Artículos anteriores de Historia del Deep Learning:

El cerebro biológico como guía

Hoy en día, la neurociencia todavía se sigue viendo como una fuente de inspiración para los investigadores que vuelcan sus esfuerzos en el Deep Learning, pero está muy lejos de ser el campo predominante de esta disciplina. La razón es simple: no tenemos suficiente información sobre el cerebro biológico para usarlo como guía, no podemos monitorizar simultáneamente la actividad de miles (tirando por bajo) de neuronas interconectadas y aún estamos lejos de entender incluso las partes más elementales del cerebro.

A raíz del experimento por el que un grupo de hurones aprendieron a ver utilizando la parte de su cerebro responsable en principio de la función auditiva, mediante un recableado de sus cerebros para enviar señales visuales a ese área se abrió la posibilidad de que el cerebro de los mamíferos realmente utilizara un único algoritmo para resolver las distintas tareas que este órgano se encarga de abordar, esto motivó que las comunidades que investigaban campos como procesamiento de lenguaje natural, reconocimiento de voz, visión computacional…y que hasta entonces estaban más disgregadas, se aproximaran entre sí para abordar problemas en común y trabajar en conjunto.

Con todo, es bastante confuso el mensaje que llega sobre todo de los medios de comunicación en los que cuales se proclama que el Deep Learning trata de simular el cerebro, cuando esto no es así. Sería mucho más razonable decir que sus principales fuentes de inspiración son el álgebra lineal, teoría de la información, probabilidad y optimización numérica.

Conexionismo en redes neuronales

Llegamos entonces a la segunda gran ola de las redes neuronales: el Conexionismo. Surgió en los años 80 en el ámbito de la ciencia cognitiva, que intenta entender la mente a través de múltiples niveles de análisis. En aquel momento, los investigadores de esta disciplina estaban volcados en el estudio de modelos de razonamiento simbólico. El problema de estos era la dificultad a la hora de explicar cómo el cerebro podría implementarlos mediante neuronas. Los conexionistas se centraron justamente en aquellos modelos cognitivos que sí pudieran ser implementados neuronalmente.

La idea en torno a la cual giraba el Conexionismo es que muchas unidades computacionales simples pueden alcanzar un comportamiento inteligente cuando se interconectan entre sí. Esto se aplica tanto a neuronas biológicas en los sistemas nerviosos como a las hidden units de los modelos computacionales. Hubo, además, otros conceptos que surgieron en este periodo y hoy son parte fundamental del Deep Learning

El invierno de las redes neuronales

A mediados de los años 90 los negocios y las inversiones basados en redes neuronales y otras tecnologías relacionadas con la Inteligencia Artificial empezaron a hacer promesas irrealizables y a inflar la burbuja para buscar capital. Por supuesto los resultados no acompañaron las poco realistas expectativas. Todo ello, junto con los avances conseguidos en otros campos del Machine Learning, condenaron a las redes neuronales a un nuevo invierno que duraría hasta el 2007.

No obstante este nuevo invierno no fue total, ya que durante el mismo la investigación en el campo de las redes neuronales siguió viva centralizada en el CIFAR (Canadian Institute For Advanced Research) en una iniciativa que aunó grupos liderados por Geoffrey Hinton de la Universidad de Toronto, Yoshua Bengio de la Universidad de Montreal y Yann LeCun de la Universidad de Nueva York.

Fue precisamente Geoffrey Hinton y su equipo quienes, en 2006, consiguieron entrenar de forma eficiente un tipo de redes denominado deep belief networks mediante la estrategia conocida como greedy layer-wise pretraining. Esta, básicamente, tenía como objetivo inicializar de la mejor manera posible los pesos de la red buscando así facilitar la convergencia (llegar a una solución), especialmente en los casos en los que aquella estaba compuesta por un número elevado de capas o, lo que es lo mismo, era especialmente profunda. Rápidamente, el resto de los grupos aplicaron la misma estrategia a otros tipos de redes consiguiendo una mejora notable en la capacidad de generalización de los modelos resultantes sobre el conjunto de test.

Panorama actual

Es esta tercera ola la que aún está vigente hoy en día. Aunque originalmente empezó enfocándose en aprendizaje no supervisado tratando de explotar la capacidad de las arquitecturas profundas (con una mayor número de capas) para generalizar a partir de pequeños datasets, el interés de la Industria en el aprendizaje supervisado ha hecho que el rumbo haya variado drásticamente desde los inicios de esta última etapa hasta nuestros días.


Alejandro Arranz, Data Engineer en datahack

MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

Artículo anterior: Historia del Deep Learning: Etapas

En 1945 Bertrand Russell recibió en su despacho de la Universidad de Cambridge una carta, en la que el remitente de la misma exponía distintos problemas y objeciones que había observado en el primer volumen del Principia Mathematica de aquel. Hasta aquí todo normal, de no ser porque el remitente era un chaval de doce años: Walter Pitts.

A los veinte años, Pitts trabajó junto a un más experimentado Warren McCulloch y de esta unión surgió una contribución seminal a la teoría de redes neuronales, la teoría de autómatas, la teoría de computación y la Cibernética. Las bases de esta, están condensadas principalmente en el paper McCulloch&Pitts, 1943

Primera ola del Deep Learning

Cuando se analiza el pasado, es bueno dar varios pasos atrás para hacerlo con la perspectiva adecuada, evitando caer en el error de no valorarlo como se merece. Durante la primera ola de lo que hoy llamamos Deep Learning (la Cibernética), se propusieron diversos modelos lineales motivados desde una perspectiva neurocientífica. Estaban diseñados para tomar un conjunto de n valores de entrada x1, x2, x3…xn y asociarlos con una salida. Para ello, tenían que aprender un conjunto de pesos w1, w2, w3…wn con los que poder calcular la salida del modelo: f(x, w) = x1∙ w1 + x2 ∙w2 + x3∙w3 +… xn∙wn

McCulloch-Pitts

La neurona propuesta por McCulloch-Pitts era uno de aquellos modelos, podía reconocer dos categorías diferentes, dependiendo que f(x, w) fuera positivo o negativo (o que estuviera por encima o por debajo de un determinado umbral). Entre sus limitaciones contaban el hecho de que los pesos no sean aprendidos, sino que tengan que ser configurados manualmente al igual que el umbral de decisión o threshold.

Rosenblatt

Pero si hablamos de “aprender”, tenemos que (ad)mirar a Frank Rosenblatt, padre del Perceptrón, modelo ya capaz de aprender los pesos (w) a partir de ejemplos de entrenamiento (con sus features de entrada y su salida). De esta manera, el Perceptrón podía resolver un problema de clasificación binario. Siempre y cuando, recordemos, exista una línea en el plano del dominio del problema que lo resuelva, de lo contrario el algoritmo no terminaría nunca.

ADALINE

Y de aquí saltamos al ADAptive LINEar element: ADALINE (Widrow and Hoff, 1960). En esta ocasión, se omite el uso de una función de activación y el modelo devuelve directamente un número real a partir del cual se realiza el ajuste de los pesos. De este modo, se consigue el entrenamiento que aprenda a predecir números reales (no solo clasificación binaria como habíamos visto hasta ahora). Widrow y Hoff (profesor y alumno) utilizaron para el entrenamiento de su ADALINE una ligera variación del Stochastic Gradient Descent (que seguro que ya os suena de algoJ)

Limitaciones de los modelos lineales

A pesar de todo esto, las limitaciones de los modelos lineales eran muchas. La más sonada de ellas era imposibilidad de representar mediante ellos la función lógica XOR ya que, como vemos, no es separable linealmente, por lo que se sale del ámbito de los problemas que los modelos hasta ahora citados son capaces de resolver

historia del deep learning 1

Todo esto ocasionó una corriente de rechazo hacia el aprendizaje de inspiración biológica en lo que constituiría el primer invierno de las redes neuronales.

Próximo artículo: Historia del Deep Learning: Hitos


Alejandro Arranz, Data Engineer en datahack

MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

Puede parecer extraño asociar la palabra “historia” a un campo que, por así decirlo, aún se está consolidando como es el Deep Learning. Pero lo cierto es que, para remontarnos a los inicios de esta aproximación a la Inteligencia Artificial, hay que retroceder hasta los años 40 del siglo pasado. Parece mentira, ¿verdad? Las razones por las que el Deep Learning parece algo tan reciente es porque, a lo largo de su historia, ha vivido etapas oscuras en cuanto a popularidad. También por haber sido rebautizado varias veces: solo en los últimos años ha sido referido mediante el término “Deep Learning”.

Creemos que conocer algo del contexto histórico de esta disciplina, que a todos nos atrae y nos trae de cabeza a partes iguales, ayudará a comprender mejor su base y sus fundamentos:

Tres grandes corrientes son el origen del Deep Learning

Podemos concretar cronológicamente tres etapas en las que, esto que hoy llamamos Deep Learning, acaparó buena parte de la atención de la sociedad científica de su tiempo:

Cibernética (entre los 40 y los 60)

Esta primera ola arrancó con los estudios sobre el aprendizaje biológico (McCulloch&Pitts, 1943 y Hebb, 1949) que a su vez dieron pie a la implementación de los mismos a través de los primeros modelos como por ejemplo el Perceptrón (Rosenblatt, 1958) que permitían el entrenamiento de una única neurona.

Conexionismo (entre 1980 y los 1995)

Fue en esta época en la que surgió el concepto de backpropagation (Rummelhart et al, 1986), que actualmente se utiliza de forma masiva en el entrenamiento de redes neuronales para calcular los pesos de las neuronas correspondientes a las distintas capas de las mismas.

Deep Learning (desde 2006)

La que actualmente estamos viviendo y que arrancó principalmente a raíz de tres papers: (Hinton et al, 2006; Bengio et al, 2007; Ranzato et al, 2007)

Dado que, históricamente, algunos de los primeros modelos pretendían emular el aprendizaje biológico o, lo que es lo mismo, cómo ocurre el aprendizaje en el cerebro, el término Artificial Neural Networks (ANN) se ha ido ligando cada vez más al Deep Learning. No obstante, a pesar de que los modelos de Deep Learning están inspirados en el cerebro biológico (ya sea humano o animal) NO están diseñados para ser una representación realista del mismo.

Sí es cierto que el cerebro es la prueba fehaciente de que el comportamiento inteligente es posible y que, en principio, el camino más intuitivo a seguir es hacer ingeniería inversa de los principios computacionales que subyacen al mismo y duplicar de este modo su funcionalidad. En este aspecto cualquier modelo que sirviera como herramienta en esta compleja tarea sería de gran utilidad (como en el caso del trabajo de Hinton&Shallice, 1991)

Actualmente, el término “Deep Learning” no va de la mano con la perspectiva neurocientífica, sino más bien con el tipo de aprendizaje que propone, a través de múltiples niveles de composición. Hay que pensar que esta disciplina tiene, entre sus objetivos, dar una solución al hecho de que hay máquinas que sobrepasan a nuestras mentes más brillantes en tareas formales o abstractas (como por ejemplo Deep Blue ganando al ajedrez a Garri Kasparov en 1997), pero que no pueden afrontar aquellas otras tareas para las cuales no es posible definir un conjunto formal de reglas que las determinen perfectamente (como por ejemplo reconocer palabras habladas o caras y objetos…).

Mediante el Deep Learning se propone que las máquinas sean capaces de entender el mundo a través de una jerarquía de conceptos, de manera que cada concepto se defina a través de sus relaciones con conceptos más simples. ¿Te imaginas un grafo que represente esta jerarquía cuántas capas tendría? Seguramente sería muy profundo, ¿verdad? Pues por ese motivo es que el Deep Learning recibe su nombre.

Siguientes entregas

En la siguiente entrega revisaremos a algunos pioneros e hitos de este apasionante campo.


Alejandro Arranz, Data Engineer en datahack

MÁSTER EXPERTO EN BIG DATA & ANALYTICS

Gracias al Master en Big Data Analytics 100% Online tendrás amplios conocimientos sobre las herramientas y técnicas analíticas necesarias para la modelización de los principales retos de negocio, con el fin de mejorar la toma de decisiones a través de los datos y el conocimiento.

chevron-down