martes, 14 de junio de 2016

Aproximación a la Computación Cognitiva

Que es la Computación Cognitiva?



En la computación tradicional, el análisis de datos consiste en tomar un grupo de datos y realizar búsquedas de patrones establecidos usando palabras clave; Los resultados se podrán usar posteriormente en operaciones establecidas para obtener información.

Cuando hacemos una búsqueda en internet, usamos un navegador web, entramos a un motor de búsqueda e ingresamos una palabra clave. (Generalmente no ingresamos una pregunta completa). Si los resultados de búsqueda no corresponden a lo que esperamos, entonces cambiamos la palabra clave.



La computación cognitiva consiste en lograr inteligencia digital mediante el uso de patrones y relaciones de datos que no se han probado anteriormente.

Bajo este contexto, cuando hacemos una busqueda, el sistema cognitivo entiende el lenguaje natural, entiende la pregunta y todas las partes que la componen. No solamente las palabras claves, sino también los verbos, los adjetivos, los artículos, etc. De esta manera, se generan varias respuestas y se argumentan dichas respuestas (el "por qué") usando analisis de las evidencias y se usan niveles de confianza para computar esas respuestas.


En el contexto de la computación cognitiva, el aprendizaje de las máquinas se basa en la construcción de sistemas que pueden aprender de los datos disponibles en múltiples fuentes. Para ello, se pueden usar técnicas de Analytics. Dicho aprendizaje también se fundamenta en la predicción basada en propiedades desconocidas.

Este tipo de aprendizaje se fundamenta en algunos puntos como:

- Aprendizaje supervisado

Consiste en alimentar al sistema con preguntas, respuestas y patrones suficientes para lograr proveer información en la búsqueda de una respuesta.
Para llegar a esta respuesta, el sistema ejecuta múltiples algoritmos. Estas respuestas son generadas basándose en evidencias y niveles de confianza. Si la respuesta es adecuada, el usuario puede registrarlo en el sistema; de esta forma el sistema aprende, se registra el algoritmo usado para llegar a esa respuesta.

Un sistema cognitivo normalmente no crea conocimiento per se; crea inferencias, es decir, conclusiones basadas en hechos y razonamiento, a las cuales se llega mediante la relación de los datos.

- Aprendizaje No-supervisado

Este método no usa ejemplos para aprender; usa algoritmos que intentan encontrar patrones o estructuras de datos basadas en la pregunta.

Evolución de la computación:
  • Desde inicios de 1800 se comenzaron a crear máquinas que ayudaban a resolver tareas aritméticas. A esta etapa se le llama "Era de la tabulación"
  • Desde 1950, se desarrolló software mediante el uso de lenguajes de programación de código para dar solución a tareas más complejas. Sin embargo, estas tareas estaban limitadas a procesos ya establecidos, pero los sistemas de esta etapa no tienen capacidad de interactuar con información no estructurada. Bajo este esquema, los sistemas tradicionales dependen de una base de conocimiento estructurada.

Datos estructurados Datos no estructurados
Los elementos y relaciones de los datos estructurados están organizados y estandarizados de acuerdo al modelo de datos.
Todos los elementos están escritos de la mísma manera y la relación entre dichos elementos está definida.
Los elementos y relaciones de los datos estructurados NO están organizados o estandarizados. Las relaciones entre elementos no se definen de antemano.

  • La computación cognitiva entiende, aprende y se comunica con las personas en lenguaje natural y no con líneas de código. Los sistemas cognitivos pueden encontrar el significado de grandes volumenes de información no estructurada, ya sea visual, verbal o numérica. Una de las formas usadas para obtener grandes volumenes de datos, es mediante el uso de técnicas como Big Data. En lugar de programarlos, los sistemas cognitivos son entrenados previamente con un cuerpo de información. Generalmente se combinan técnicas convencionales de búsqueda en adición al uso de lenguaje natural. Se construyen hipótesis y se prueban, se priorizan respuestas o recomendaciones en lugar de obtener respuestas basadas en arboles de decisión (Ejemplo, los mecanismos de respuesta usados en los sistemas expertos). 
Un sistema cognitivo idealmente debería:

- Entender contexto.
- Completar / comprender piezas de información faltante en las preguntas
- Establecer supuestos / suposiciones.
- Resolver ambiguedad.
- Considerar incertidumbre.
- Interpretar lenguaje
- Tener disponibilidad

Turing Test


Algunos usos y servicios de la computación cognitiva:

- Análisis de conducta y personalidad de usuarios. Cómo piensa la gente, por qué las personas piensan lo que piensan, cómo actúan, etc.

Se usa el análisis de linguistica y personalidad a partir de los textos que las personas publican digitalmente (ej. en redes sociales, e-mails o en blogs).

Para esto se usan algoritmos de análisis de datos que combinan el uso de modelos de caracterización de personalidad como Big Five (Costa and Norman), Needs (basado en investigaciones de Marketing de Kotler y Ford) y Values (El cual se basa en investigaciones de Schwartz en psicología).

- Interpretación del Lenguaje Natural. Se usan técnicas como NLP (Natural language processing) para permitir que el sistema cognitivo entienda textos en lenguaje natural y pueda hacer predicciones del contexto y significado de la comunicación. De esta manera, el sistema puede contestar preguntas rápida y adecuadamente.


- Interpretación de imágenes. Se usan algoritmos de interpretación de imágenes (fundamentalmente patrones) para determinar la semántica y significado de las mísmas.

No hay comentarios:

Publicar un comentario