Tag: redes neuronales

Actualmente, miles de millones de productos se venden online y existen numerosas plataformas e-commerce que los venden. Identificar y combinar determinados productos para diversos fines, como para la comparación de precios, se convierte en un desafío para el sector del comercio electrónico, ya que no existen identificadores únicos y globales para cada producto. En este punto es donde entra en juego la Inteligencia Artificial y el Machine Learning.

Existen diversos portales webs enfocados a la comparación de precios para obtener las mejores ofertas en un determinado producto como la contratación de seguros de coche. Estos comparadores de precios están enfocados al cliente pero… ¿y si somos una tienda online y queremos comparar los precios de los productos de la competencia con los nuestros? ¿Cómo podemos abordarlo?

Antes de profundizar, un breve aspecto a tener en cuenta: el naming y descripción de los productos no poseen un formato estándar. Cada tienda online incluye estos datos (marca, titulo y descripción del producto) en su web de diferente forma para un mismo producto. Asimismo, las imágenes que se muestran del producto tampoco son estandarizadas y pueden aparecer con diferente perspectiva, color, claridad, etc. Evidentemente, sí existen identificadores generalizados para algunos productos como son las pulgadas de un televisor, pero es posible que según el portal de venta online no lo mencionen, lo incluyan en el titulo del producto o lo incluyan en la descripción.

Por tanto, una persona de forma manual puede visitar diferentes tiendas online y verificar que éstas coinciden con los mismos productos. No obstante,  el problema surge cuando no es viable realizar esta labor de forma manual porque el coste sería muy elevado. Es aquí donde entra en juego la Inteligencia Artificial y el Machine Learning para automatizar el proceso de Product Matching.

¡La Inteligencia Artificial y Machine Learning al rescate!

Inicialmente, en las soluciones de machine learning para la coincidencia de productos, el proveedor de soluciones tiene que construir primero una base de datos de miles de millones de productos. Esto se hace mediante la recopilación de información a través de rastreos web y feeds (crawlers).

Una vez se tiene la base de datos, se realiza el proceso de Product Matching. Un producto puede identificarse utilizando su título, su descripción, imágenes y lista de atributos o especificaciones. En muchos casos, el título del producto en sí mismo proporcionará mucha información y el sistema tiene que aprender a ordenar el nombre del producto (por ejemplo, el modelo de marca) de los atributos (pulgadas, resolución, etc. Toda esta información debe extraerse, clasificarse y colocarse en las categorías apropiadas: modelo de televisor, versión, resolución, etc.

Para cada comparación, el sistema pasa por muchos pasos y verificaciones. Se busca un número de identificación único, una prueba de similitudes de palabras clave, normalización de marca y coincidencia (por ejemplo, LG es lo mismo que Life´s Good), normalización de atributo y coincidencia (32″es lo mismo que 32 pulgadas, 32 pulg. , 32 pulgadas), coincidencia de imágenes, etc.

LG televisor

Figura 1. Ejemplo de Televisor LG en dos portales webs diferentes y cuyo título y descripción no aparecen estandarizados.

Todo esto es un proceso complicado, y existen diferentes soluciones Product Matching que se pueden emplear con diferentes técnicas pero la ventaja es que las redes neuronales y los sistemas de Product Matching aprenden con el tiempo, incluso de sus errores, y así mejoran con cada uso.

Por otro lado, el procesamiento de las imágenes de productos puede proporcionarnos información relevante que no aparece reflejado en el titulo y/o descripción del producto. En la figura 2, podemos ver cómo detectar un mismo producto (ej. Nata Pascual) en dos supermercados diferentes (supermercado A, supermercado B). En el supermercado B tenemos dos productos de Nata Pascual y queremos ver cuál de los dos hace “match” con el supermercado A. Si atendemos únicamente a las taxonomías de la descripción, ambos productos del supermercado B coinciden, en parte, con la descripción del proudcto del supermercado A. Sin embargo, ayudándonos de la imagen en lugar de la descripción se detecta cual de los dos productos del supermercado B coincide con el del supermercado A. Detectar este tipo de “anomalías” es bastante complicado, sin embargo, la herramienta netPrecie de ITELLIGENT a través de técnicas de Deep Learning detecta este tipo de diferencias en imágenes para aportar una mayor optimización al sistema de Product Matching.

PRODUCT MATCHING Ejemplo imagenes

Figura 2. Ejemplo de Product Matching a través del procesamiento imágenes con técnica de Deep Learning (netPrice)

El sistema automatizado de Product Matching desarrollado por ITELLIGENT se llama netPrice. Esta herramienta de monitorización de precios permite enlazar tu catálogo de productos con los de tu competencia a través de técnicas de Inteligencia Artificial y Machine Learning para asegurar la correcta analítica de precios. ¿Quieres saber más sobre nuestra herramienta? ¿Deseas tener una demo de netPrice?

¡Escríbenos!

La inteligencia artificial en la actualidad juega un papel importante en nuestra vida cotidiana; desde nuestros teléfonos inteligentes (smartphones) a otros dispositivos electrónicos como neveras inteligentes. La tecnología nos ha proporcionado oportunidades de cambiar nuestro modo de vida tanto en el trabajo como al hacer la compra, consumir energía, etc.

La  tecnología se vuelve, cada vez más, más inteligente y con capacidades múltiples: procesamiento de lenguaje natural, visión artificial, sistemas de recomendaciones, entre otros. Sin embargo, pese a que la inteligencia artificial y las máquinas se hayan convertido en parte de la vida cotidiana, esto no significa que las entendamos bien. Por este motivo queremos explicar qué diferencias existen entre Inteligencia Artificial (IA), Machine Learning y Deep Learning para entender mejor el entorno en el que se construye a nuestro alrededor con estas tecnologías inteligentes.

Qué es Inteligencia Artificial

En computación, la Inteligencia Artificial se trata de programas o bots diseñados para realizar determinadas operaciones que se consideran propias de la inteligencia humana. Se trata de hacer que éstos sean tan inteligentes como un humano. La idea es que perciban su entorno y actúen en base a ello, centrado en el auto-aprendizaje y que sean capaces de reaccionar ante nuevas situaciones.

El sueño de los pioneros en Inteligencia Artificial era construir máquinas complejas, habilitadas por computadoras emergentes, que poseyeran las mismas características de la inteligencia humana. Este es el concepto que consideramos “genérico” de Inteligencia Artificial: maquinas fabulosas que tienen todos nuestros sentidos (tal vez incluso más), toda nuestra razón y piensan igual que nosotros.  Podemos poner ejemplos de este concepto en películas como Star Wars (C-3PO) o Teminator. Claro está que este concepto genérico de máquinas de IA sólo quedan en el imaginario del cine y de novelas de ciencia ficción por una buena razón: no podemos llevarlo a cabo, por ahora.

imagenes similares pinterest

Imágenes similares en Pinterest

Sin embargo, sí existen en la actualidad tecnologías que pueden realizar tareas específicas que normalmente requieren inteligencia humana, como la percepción visual, el reconocimiento de voz, la toma de decisiones y la traducción entre idiomas. Algunos ejemplos de este tipo de Inteligencia Artificial, en la actualidad, son cosas como la clasificación de imágenes similares en Pinterest o Google Images y el reconocimiento facial en Face ID en  iPhone.

Estos son claros ejemplos de Inteligencia Artificial que exhiben algunas características de la inteligencia humana. Pero, ¿cómo lo hacen? ¿De dónde viene esa inteligencia? Eso nos lleva al siguiente concepto, Machine Learning.

Qué es Machine Learning

Machine Learning o aprendizaje automático es un subconjunto de Inteligencia Artificial en el campo de la informática que a menudo utiliza técnicas estadísticas para dar a las computadoras la capacidad de “aprender” (es decir, mejorar progresivamente el rendimiento en una tarea específica) con datos, sin estar explícitamente programadas.

En otras palabras, el aprendizaje automático en su forma más básica es la práctica de usar algoritmos para analizar datos, aprender de ellos y luego hacer una determinación o predicción sobre algo en el mundo. Por lo tanto, la máquina está “entrenada” utilizando grandes cantidades de datos y algoritmos que le dan la capacidad de aprender a realizar la tarea por sí misma.

El aprendizaje automático vino directamente de las mentes de los pioneros en Inteligencia Artificial. Resultó que una de las mejores áreas de aplicación para el aprendizaje automático, durante muchos años, fue la visión por computadora, aunque requería una gran cantidad de codificación manual para hacer el trabajo. La gente entraba y escribía clasificadores codificados a mano, como filtros de detección de bordes, para que el programa identificara dónde se inició y se detuvo un objeto; detección de forma para determinar si tenía ocho lados; o  un clasificador para reconocer las letras “S-t-o-p”. De todos los clasificadores codificados a mano, desarrollarían algoritmos para dar sentido a la imagen y “aprender” a determinar si era una señal de Stop, especialmente en un día de niebla cuando el cartel no es perfectamente visible o un árbol oscurece parte de él. Hay una razón por la que la visión por computadora y la detección de imágenes no se acercan a rivalizar con los humanos. Hasta hace poco, era demasiado frágil y propenso al error. Con el tiempo, los algoritmos de aprendizaje se corrigieron y marcaron una diferencia; esto nos lleva al siguiente concepto, Deep Learning.

Qué es Deep Learning

Deep Learning o aprendizaje profundo es una técnica dentro del machine learning basado en arquitecturas neuronales. 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 ventaja del deep learning, llamada “feature discovering”. Pueden, además, poseer una precisión que supera a la capacidad del ser humano.

El aprendizaje profundo es un subconjunto de aprendizaje automático en Inteligencia Artificial (AI) que tiene redes capaces de aprender sin supervisión a partir de datos que no están estructurados ni etiquetados. También conocido como Deep Neural Learning o Deep Neural Network. Aquí es donde reside la gran diferencia respecto al Machine Learning.

Las Redes Neuronales Artificiales se inspiran en nuestra comprensión de la biología de nuestros cerebros, todas esas interconexiones entre neuronas. Pero, a diferencia de un cerebro biológico donde cualquier neurona se puede conectar a cualquier otra neurona dentro de una cierta distancia física, estas redes neuronales artificiales tienen capas discretas, conexiones y direcciones de propagación de datos.

Pueden, por ejemplo, tomar una imagen, cortarla en un grupo de teselas que se ingresan en la primera capa de la red neuronal. En la primera capa, las neuronas individuales pasan los datos a una segunda capa. La segunda capa de neuronas hace su tarea, y así sucesivamente, hasta que se produce la última capa y producción final. Cada neurona asigna una ponderación a su entrada: qué tan correcta o incorrecta es en relación con la tarea que se realiza. El resultado final se determina luego por el total de esas ponderaciones.

Por ejemplo, imaginemos de nuevo la señal de Stop. Los atributos de una imagen de una señal de stop son cortados y “examinados” por las neuronas: su forma octogonal, el color rojo de su motor de bomberos, sus letras distintivas, el tamaño de su señal de tráfico y su movimiento o falta de ella. La tarea de la red neuronal es concluir si esto es una señal de Stop o no. Se trata de un “vector de probabilidad”, realmente una suposición altamente educada, basada en la ponderación.

google self driving

Self-driving car de Google

El Deep Learning ha permitido muchas aplicaciones prácticas de Machine Learning y, por extensión, el campo general de Inteligencia Artifical. El aprendizaje profundo desglosa las tareas de manera que hace que todo tipo de asistencia en máquinas parezca posible, incluso probable. Los automóviles sin conductor, una mejor atención médica preventiva, incluso mejores recomendaciones de películas, son claros ejemplos de aplicación. La Inteligencia es el presente y el futuro. Con la ayuda de Deep Learning, la Inteligencia Artificial puede llegar a ese estado de ciencia ficción que tanto tiempo hemos imaginado con Star Wars y Terminator.

En la última década, las empresas están utilizando el aprendizaje profundo para resolver los desafíos a nivel empresarial. Desde la detección de rostros (Face ID) hasta recomendaciones de productos, segmentación de clientes, reorganización de dígitos, traducción automática, inteligencia de negocios, Internet de las cosas, seguridad de redes, etc. El uso del  deep learning  y machine learning han transformado por completo el mundo en el que vivimos hoy.

Fuente: https://hackernoon.com/top-differences-between-artificial-intelligence-machine-learning-deep-learning-d39cb6f6feaa

 

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.