Tag: Deep Learning

La era digital ha provocado una explosión de datos en todas las formas y desde todas las regiones del mundo. Esta explosión de datos, conocido como Big Data, no siempre están bien estructurados y no son accesibles. Se podría tardar que una persona pudiera manualmente extraer la información relevante de estos grandes datos desestructurados. Sin embargo, existen técnicas de Inteligencia Artificial que permiten la estructuración de los datos y posibilita la extracción de información útil de los mismos. Por este motivo, las empresas se dan cuenta el increíble potencial del Big Data & Inteligencia Artificial.

QUÉ ES DEEP LEARNING

Deep learning (aprendizaje profundo) es una nueva técnica dentro del aprendizaje automático (machine learning) basado en arquitecturas de redes neuronales. Está relacionado con algoritmos inspirados en la estructura y función del cerebro, de ahí el nombre redes neuronales artificiales. Las redes neuronales artificiales se construyen como el cerebro humano, con nodos de neuronas conectados como una red.

Mientras que los modelos tradicionales crean análisis con estructuras lineales, los modelos de deep learning se caracterizan por su estructura jerárquica permitiendo procesar los datos con un enfoque no lineal.

¿Qué tiene de especial el deep learning? Un modelo basado en deep learning puede aprender a realizar tareas de clasificación directamente a partir de imágenes, texto o sonido, etc. Sin necesidad de intervención humana para la selección de características, esto se puede considera la principal característica y ventaja del deep learning, llamada “feature discovering” .Pueden, además, poseer una precisión que supera al ser humano.

EN QUÉ CONSISTE, CÓMO FUNCIONA

Los modelos se entrenan mediante un amplio conjunto de datos etiquetados y arquitecturas de redes neuronales que contienen muchas capas.

La primera capa de la red neuronal procesa una entrada de datos brutos como por ejemplo una imagen, y la pasa a la siguiente capa como salida, este proceso se va repitiendo sucesivamente hasta completar todas las capas de la red neuronal. Por ejemplo, una imagen que comienza como una matriz de píxeles. Las características aprendidas en la primera capa puede ser por ejemplo, la aparición o no de ejes en una parte concreta de la imagen. La segunda capa detecta uniones de ejes. La tercera capa aprende combinaciones que correspondería a partes de objetos. La principal característica de este método es que estas capas realizan el descubrimiento de características sin intervención humana, aprendiéndolo directamente de los datos brutos.

El término “deep” (profundo) suele hacer referencia al número de capas ocultas en la red neuronal que pueden ser hasta 150 capas (las redes neuronales tradicionales solo contienen dos o tres capas oculta).

ARQUITECTURAS DEEP LEARNING

Hemos comentado que la mayoría de métodos de machine learning emplean arquitecturas neuronales, por lo que las arquitecturas de deep learning emplean modelización de redes neuronales, tales como:

  • Deep Neural Network (DNN) o Redes neuronales profundas
  • Convolutional Neuronal Network (CNN) ó Redes neuronales profundas convolucionales
  • Deep Belief Network (DBN) o Redes de creencia profundas

corteza visual_deep learning

CONVOLUTIONAL NEURONAL NETWORK 

En este post nos centraremos en la arquitectura de deep learning, Convolutional Neural Network (CNN) que, traducido al español, se trata de Redes Neuronales Convolucionales. En este tipo de arquitectura se emplean modelizacion de redes neuronales artificiales donde las neuronas correspondes a campos receptivos -similar a las neuronas en la corteza visual V1 de un cerebro humano-. Este tipo de redes son muy efectivas para tareas de:

  • Detección y categorización de objetos
  • Clasificación y segmentación de imágenes

El objetivo de CNN es aprender características de orden superior utilizando la operación de convolución. Puesto que las redes neuronales convolucionales puede aprenden relaciones de entrada-salida (donde la entrada es una imagen), en la convolución, cada pixel de salida es una combinación lineal de los pixeles de entrada.

Pero, ¿qué significa “convolucion”? La convolución consiste en filtrar una imagen utilizando una máscara. Diferentes máscaras producen distintos resultados. Las máscaras representan las conexiones entre neuronas de capas anteriores. (INAOE).

Estas capas aprenden progresivamente las características de orden superior de la entrada sin procesar. Este proceso para aprender características automáticas es la característica principal del modelo de deep learning, llamado descubrimiento de características.

Las redes neuronales convolucionales se forman usando dos tipos de capas: convolucionales y pooling.(INAOE). La capa de convolución transforma los datos de entrada utilizando la operación matemática de convolución. La operación de convolución describe cómo fusionar dos conjuntos de información diferentes.

Después de la capa o capas de convolucion se usa una capa de pooling. La función de las capas de pooling es resumir las respuestas de las salidas cercanas. La principal característica de la capa de pooling son dos. Primero, la capa de pooling reduce progresivamente el tamaño espacial de los datos. Y segundo, la agrupación ayuda a obtener una representación invariable a una pequeña traslacion de la entrada.

Convolutional Neuronal Network

Las redes neuronales convolucionales fueron algunas de las primeras redes neuronales aplicadas para resolver aplicaciones comerciales importantes. Un ejemplo de ello fue en la década de 1990, AT & T desarrolló un modelo de CNN para la lectura de cheques. También más tarde se desarrollaron muchos sistemas OCR basados ​​en CNN. Actualmente, el interés por el deep learning se debe en gran parte a la victoria de Krizhevsky et al. en el desafío de imageNet.

El congreso IWANN se trata de un foro de discusión para científicos, ingenieros, educadores y estudiantes en el que se debaten y se exponen los últimos descubrimientos realizados en teorías, modelos y sistemas inspirados en la naturaleza. Estos descubrimientos han sido realizados mediante la utilización de diferentes metodologías de inteligencia computacional, enfocadas particularmente en temas relevantes al Deep Learning, la computación centrada en el ser humano y en proyectos del cerebro humano.

Este evento, organizado por la Universidad de Málaga, Universidad de Granada, Universidad Politécnica de Catalunya, Universidad de Cádiz y IEEE Computational Intelligence Society se realiza cada dos años, y los próximos días 14, 15 y 16 de junio se celebrará por primera vez en la ciudad de Cádiz.

Coincidiendo con el estreno de la Universidad de Cádiz en la participación de este Congreso, nuestro compañero Mario Rivas, ingeniero I+D+i  de nuestro equipo técnico, asistirá al IWANN el primer día del congreso para hablar de  “Using deep learning for image similarity in Product Matching”. En esta ponencia colaboran también nuestro director técnico Jaime Martel junto a docentes de la Universidad de Cádiz como María De La Paz Guerrero, Elisa Guerrero, Guillermo Bárcena y Pedro L. Galindo.

Ésta ponencia tendrá lugar el primer día de IWANN 2017, el miércoles 14 de junio de 9 a 11 de la mañana en el Salón Lequerica del edificio Constitución 1812 (ver programación).  Será la primera ponencia de las que componen la sesión “Image and Signal Processing” moderada por el Dr. Joseph Constantin.

Asimismo,  a lo largo de estos tres días, en IWANN 2017 se darán cita docentes, investigadores y profesionales del sector donde compartirán experiencias y estudios relacionados con:

  • Los métodos matemáticos y teóricos en la inteligencia computacional.
  • Formulaciones neurocomputacional.
  • Aprendizaje y adaptación.
  • La emulación de las funciones cognitivas.
  • Sistemas y neuro-ingeniería Bio-inspirado.
  • Temas avanzados en inteligencia computacional.
  • Aplicaciones

Además, IWANN 2017 contará con tres ponentes invitados de gran prestigio cómo son:

invited speakers IWANN

  • Matthias Rauterberg, de la Universidad de Eindhoven, que hablará sobre “How to desig for tne unconscious”.
  • Ulrich Rückert, de la Universidad de Bielefeld, cuya ponencia tratará acerca de “Cognitronics: Resource-efficient Architectures for Cognitive Systems”.
  • Le Lu, del Instituto Nacional de Salud de Estados Unidos, cuyo tema será “Towards ´Big Data, Weak Label and True Clinical Impact´ on Medical Image Diagnosis: The Roles of Deep Label Discovery and Open-ended Recognition”.

El Product Matching es un área perteneciente a Data Matching o Record Linkage encargada de identificar automáticamente aquellas ofertas, productos o entidades en general, que aparecen en la web procedente de diversas fuentes, aparentemente de forma distinta e independiente, pero que hacen referencia a una misma entidad real.

Actualmente, el Product Matching está experimentando un auge debido al incremento de compras online, lo cual ha propiciado la aparición de herramientas de comparación, monitorización y análisis de precios de los productos en venta. Desde el punto de vista de la implementación software, este proceso conlleva un arduo trabajo, ya que para un mismo producto, su descripción o nombre puede aparecer de distinta forma en páginas web diferentes, lo cual puede llevar a equívoco al motor de búsqueda obteniendo resultados incorrectos. Por tanto, se requiere de:

  • Un minucioso, exhaustivo y preciso proceso de búsqueda de productos a través de la web
  • Un filtrado de elementos candidatos, extracción de características, identificación y asociación de productos iguales y distintos
  • Un análisis de los parámetros o características que se requieren investigar entre estas entidades

Aproximación al estado del arte

El Product Matching debido a su relación con el Data Matching o Record Linkage comparte muchas de sus características. El Record Linkage se ha centrado principalmente, desde su nacimiento, en la fusión de distintas bases de datos en una única en la que se identifiquen aquellos elementos relacionados en ambas bases de datos, bien eliminando esas duplicaciones  y/o registrando nuevos enlaces. En las investigaciones realizadas hasta la fecha en el campo del Product Matching se pueden distinguir dos enfoques distintos:

  1. Uso de técnicas de similitud de textos (asociar a cada producto el título, descripción, características técnicas, etc.) para decidir si dos elementos de fuentes distintas hacen referencia a una misma entidad.
  2. Aplicar técnicas de aprendizaje automático para generar modelos que realicen la correspondencia entre productos.

Estos dos enfoques no son independientes entre sí. Normalmente, para el uso de técnicas de aprendizaje automático es necesario el uso de técnicas englobadas en el primer enfoque (Ej. tokenizado de textos, medidas de similitud, etc.) para obtener las entradas a los modelos que serán generados con el segundo enfoque.

Una nueva aplicación conocida como Content Based Image Retrieval (CBIR) ha surgido en el ámito del procesamiento de imágenes con el objetivo de resumir la información de una imagen en varias de sus características tales como el color, textura, forma o la combinación de éstas.

La forma de los objetos que se encuentran dentro de una imagen, es una de las características más usadas en las técnicas CBIR. Para obtenerla con necesarias técnicas de extracción morfológicas. Dentro de estas técnicas tiene una especial relevancia la basada en los Descriptores de Fourier. Dentro del campo de CBIR, también se deben destacar las técnicas de descomposición de imágenes en regiones locales de interés. Estas técnicas detectan, en una imagen, aquellos puntos más importantes y significativos pertenecientes a una región. Dichos puntos son denominados keypoints. En la literatura es posible encontrar una gran variedad de algoritmos para la obtención de keypoints dentro de una imagen.

ITELLIGENT_Product Marching_Monitorizacion de precios

Con el reciente auge del Deep Learning también han aparecido aplicaciones para CBIR. El Deep Learning consiste en un conjunto de algortimos de aprendizaje automático que generan modelos abstractos de alto nivel mediante el empleo de arquitecturas “profundas” -deep- compuestas de múltiples transformaciones no lineales, dispuestas de manera jerárquica. Ese enfoque es diferente a las técnicas convencionales de aprendizaje automático que se basan en arquitecturas “planas”.

Dentro de las múltiples técnicas englobadas dentro del Deep Learning, la técnica Convolutional Neuronal Network (CNN) es especialmente usada en el campo de CBIR. Esta técnica consiste en la utilización de múltiples capas de convolución situadas una encima de otra. Entre estas capas se comparten pesos así como la salia producida a la capa inferior. Mediante el entrenamiento de estos pesos y la disposición de las capas se consiguen modeles capaces de ser independientes a la rotación, traslación, contrastes, etc.

La importancia e imparable crecimiento del comercio electrónico –ecommerce- ha obligado a las organizaciones a disponer herramientas de monitorización de precios, que le permitan gestionar sus políticas de precios y conocer las estrategias de la competencia. Para estas herramientas es fundamental realizar una identificación adecuada de los productos entre las distintas fuentes que se monitorizan, ya que de no ser así no se podrán comparar los productos con sus verdaderos rivales, distorsionando toda la información obtenida.

“Aplicación práctica del Deep Learning al Marketing Digital: análisis y desambiguación de conversaciones digitales”. Por Jaime Martel y Enrique Pérez Montero

El análisis de conversaciones procedentes de la web (tweets, posts en facebook, blogs,etc.) es un recursos primordial para entender a los usuarios y clientes: ¿de qué hablan?, ¿cuál es el sentimiento respecto a la marca?, ¿quiénes son los que más hablan?, ¿qué efecto tiene la conversación que la marca genera?, etcétera.

Deep Learning_Marcas que implican desambiguación en conversaciones_ITELLIGENTUno de los recursos más utilizado para capturar esta conversación es la utilización de términos de búsqueda sobre la web o sobre redes sociales, como por ejemplo: realizar búsquedas del termino “Mapfre” para capturar la conversación en Twitter sobre dicha empresa. Un problema habitual de la conversación captada mediante términos de búsqueda es la captura de conversación no relevante o “ruido” debido a la existencia de términos ambiguos, es decir palabras que se escriben de la misma forma y tienen distinto significado (términos polisémicos). Así, si intentamos capturar conversación sobre la empresa de cosméticos MAC utilizando como búsqueda el termino MAC, capturaremos conversación sobre los MAC de Apple, sobre Big MAC de Mac Donalds, sobre la MAC de los ordenadores, etc. Como es bien sabido, si introducimos “ruido” en los datos solo conseguiremos que los resultados de los análisis resultantes no sean fiables (principio de Garbage In Garbage Out).

A continuación vamos a describir un caso de uso en el que se utilizan técnicas de Deep Learning para resolver un caso real de conversaciones obtenidas a partir de un término polisémico, este problema se suele denominar “desambiguación” de las conversaciones y consiste en eliminar aquellas conversaciones que no sean relevantes de todas las extraídas.

NECESIDAD DEL CLIENTE:

El cliente nos solicitó realizar un estudio que requería la captura de conversación sobre el Banco de Santander, desgraciadamente el termino Santander puede referirse al banco pero también a la ciudad, al equipo de futbol, etc. Para evitar la ambigüedad del término SANTANDER cabía la posibilidad de restringir la búsqueda a aquella conversaciones que contuviesen el término BANCO y SANTANDER, pero tras un análisis de los resultados se comprobó que esta opción sesgaría mucho los resultados ya que una parte considerable (más del 30%) de las conversaciones sobe el Banco de Santander se dejaban fuera, lo que invalidaría realizar comparativa con otras entidades bancarias como BANKIA o BBVA que no sufren de este problema de ambigüedad.

Deep Learning_tweets desambiguación_ITELLIGENT

SOLUCION PROPUESTA:

Habitualmente hemos resuelto este problema utilizando un clasificador supervisado (svm, naive bayes, logit,…) que es un algoritmo que a partir de una serie de ejemplos (ej. un conjunto de conversaciones sobre el Banco de Santander y otro conjunto que conteniendo el término SANTANDER no se refieran al Banco) se entrena y una vez entrenado se le puede pasar un texto y el clasificador decide si habla del Banco de Santader o no. El problema de esta aproximación es que para textos cortos (Ej. tweets) para tener buenos resultados se requieren un gran número de ejemplos revisados a mano que sirvan para entrenar el clasificador, lo que representa una fuerte inversión en tiempo.

Debido a lo anterior, se decidió probar con una técnica más novedosa basada en Word2Vec, que es un algoritmo desarrollado por Google  basado en Deep Learning, que permite hacer una representación vectorial de palabras manteniendo esa representación vectorial el significado (semántico) de la palabra. Esto es, una vez entrenado con un conjunto de textos, word2vec permite dada una palabra presente en los textos de entrenamiento (ej. coche) obtener palabras relacionadas (ej. autobús, chofer, conducción,…), operar con las palabras como si fueran vectores (ej. coche + conductor -> viaje), obtener la similitud entre dos palabras y muchas otras cosas. Conocimos Word2Vec a través de nuestros amigos del grupo de Procesamiento del Lenguaje Natural de la Universidad de Sevilla que nos habían introducido a Word2Vec en un proyecto de turismo inteligente que participamos con ellos.

La aplicación de Word2Vec al problema de la “desambiguación” de la conversación sobre el Banco de Santander, se realizo de la siguiente forma:

  • PASO 1: Se crearon dos listas de palabras una de ella relacionada con el Banco de Santander (ej. banco, entidad, crédito,…) y otra no relacionada con el Banco pero si con el término Santander (ej. ciudad, fútbol, lluvia, …).  Para la creación de estas listas de términos se utilizo una técnica denominada Mutual Information -esta técnica no es objeto de este post-.
  • PASO 2: Dado un texto se definió una métrica para medir la similitud del texto frente a las dos listas, pera ellos se utilizo una técnica basada en programación lineal -esta técnica tampoco es objeto de este post-.
  • PASO 3: El sistema procesa todas las conversaciones comparando el texto de cada conversación (ej. el texto de cada tweet) con las dos lista de palabras y a partir de la similitud con cada lista decide si es una conversación sobre el Banco de Santander o no lo es.

RESULTADOS:

Nuestro objetivo en el proyecto era reducir al máximo el esfuerzo de supervisión y al mismo tiempo obtener unos resultados muy fiables que permitiesen reducir al mínimo el “ruido” que pudiese pasar a la fase de análisis. Para medir la fiabilidad utilizamos dos medidas la Precisión y la Cobertura.

Para explicar cada una de ellas supongamos que tenemos un conjunto de conversaciones (tweets) y hemos comprobado manualmente cada una de ellas para determinar si son del Banco de Santander o no. Supongamos que clasificamos dichas conversaciones utilizando nuestro algoritmo basado en Word2Vec, la Cobertura será del total de conversaciones sobre el Banco de Santander, es decir de las comprobadas manualmente, cuántas de ellas (que proporción) han sido también señaladas como pertenecientes al Banco de Santander por el algoritmo. Mientras que la Precisión será del total de las conversaciones que nuestro algoritmo ha marcado como pertenecientes al Banco de Santander que proporción son realmente del Banco de Santader (es decir que proporción están también en las manualmente señaladas).

Una vez obtenidas la Cobertura y la Precisión obtenemos una combinación de las mismas denominada F1, la idea fue calcular F1 como medida de la bondad de los resultados y el Número de Conversaciones Supervisadas como medida del esfuerzo necesario para obtener dicho resultado. Así, la situación ideal sería obtener un F1 alto con pocas conversaciones supervisadas.

Deep Learning_Desambiguación conversaciones_ITELLIGENT

En esta imagen se comprueba que con un esfuerzo de supervisión de unos  40 minutos (200 ejemplos) se consiguen unos resultados muy buenos, por lo que el Deep Learning es una estupenda alternativa a métodos tradicionales basados en clasificadores que para textos de pequeña longitud (Ej. tweets) requieren un esfuerzo mucho mayor.

Guardar

Guardar

Guardar