Un vistazo al Neural Compute Stick de Movidius/Intel

Recientemente Intel Corporation adquirió la empresa Movidius para adentrarse de lleno en el mundo de la así llamada inteligencia artificial.

Luego de esto sacaron al mercado el Neural Compute Stick (NCS); un “stick” USB capaz de realizar grandes cantidades de ciclos computacionales de inteligencia artificial con un bajo consumo de electricidad, liberando al procesador principal de dichas tareas y brindando la capacidad de realizar análisis de inteligencia artificial de tipo TensorflowCaffe sin necesidad de intercambiar datos con la nube.

En esta entrega vamos a darle un pequeño vistazo a este dispositivo, haciendo un poco de reconocimiento de imágenes “in situ” usando un modesto Raspberry PI 3 conectado a un Movidius NCS. Continuar leyendo “Un vistazo al Neural Compute Stick de Movidius/Intel”

Definición de “Hecho” – DoD

Siguiendo con nuestro gran tema de equipos AGILE y metodología SCRUM, hoy queremos profundizar un poco sobre el concepto de “definición de hecho” o en inglés “definition of done”.

Es aquello que debe cumplirse para decir que una unidad de trabajo (historia de usuario) está hecha, completada, finalizada.

Una historia de usuario no puede ser considerada para aceptación a menos que cumpla con dicho criterio. Continuar leyendo “Definición de “Hecho” – DoD”

Experimentación Ondas Cerebrales

Recientemente tuvimos la oportunidad de experimentar un poco con un sensor de ondas cerebrales (Emotiv Insight) que nos ha servido de introducción al fascinante mundo de los BCI (Brain-Computer Interface)

El proyecto que nos trajo a este punto trata de desarrollar formas de comunicación adicionales para personas con algunas dificultades físicas para comunicarse, incluyendo peronas con dificultades para el habla, la escucha o diversos niveles de parálisis cerebral.

En este artículo quiero condensar un poco una propuesta para una metodología de experimentación que nos permita capturar datos de este tipo de dispositivos y que sirvan de insumo para crear modelos de aprendizaje de máquinas que a su vez nos lleven a desarrollar modelos de interpretación de las ondas y por ende los deseos o necesidades de las personas.

Metodología de Experimentación

  1. Definir un repositorio para la documentación oficial de cada experimento y para los resultados de los experimentos.
  2. Definir personas y roles: facilitador, sujeto de experimentación, observadores.
  3. Definir objetivos y metas del experimento
  4. Definir características de los sujetos de experimentación.
  5. Definir un ambiente controlado para minimizar los estímulos no esperados y el ruido
  6. Establecer un guión o protocolo de pasos, tiempos y clases para el experimento,
    1. Definir tareas a realizar: preparación, arranque, ejecución, finalización y cierre.
    2. Identificar estímulos Intencionales: preparación, arranque, ejecución, finalización, cierre
    3. Identificar estímulos no intencionales: derivados, ruido aceptable, ruido no aceptable (invalidación temprana del experimento)
  7. El resultado de cada experimento será un archivo con la información sensada y la pre-clasificación de los diferentes eventos o estímulos ocurridos detectados por el observador. Este archivo se usará para generar modelos de aprendizaje de máquinas que nos permitan estudiar y entender los fenómenos documentados en cada experimento.

Como siempre, sus comentarios para enriquecer esta metodología serán de gran valor para nosotros.


Haga clic acá para una plantilla de ejemplo


Algunas Referencias Interesantes:

Anaconda y Jupyter Notebook como plataforma de Machine Learning en Python

¿Qué es Anaconda?

Anaconda es una de las plataformas más prominentes de ciencia de datos para Python. Se puede descargar Anaconda de este enlace: http://www.continuum.io/downloads 


Distribución Anaconda

Expanda para ver Distribución ANACONDA

La distribución gratuita incluye una serie de librerías y programas utilitarios avanzados tales como

Image tomada de https://www.anaconda.com/distribution/

Dentro de los paquetes que me han resultado más interesantes podemos mencionar:

  1. Numpy: Librería de Python para computación científica
  2. Scipy: Meta-librería de computación científica para Python
  3. Pandas: Librerías para estructuras de datos y analítica de datos para Python
  4. Jupyter Notebook: Es un IDE que permite crear documentación “activa/viva” incluyendo visualizaciones, scripts, ejemplos, etc

Jupyter Notebook

Expanda para ver ¿Cómo iniciar con Jupyter Notebook?

Jupyter Notebook perimte generar documentación viva que incluya scripts, datos y visualizaciones de ejemplo.

En Windows, para ejecutar Jupyter Notebook se abre la consola de Anaconda (Windows > Anaconda Prompt) y se ejecuta el comando jupyter notebook

Este comando levanta un servidor jupyter y una ventana de navegador apuntando a http://localhost:8888 (el puerto puede variar)

Cada línea del documento puede ser de tipo Markup, Titulo o Código.

En las líneas que son de tipo código puede ejecutarse este con solo presionar [CTRL] [ENTER]

Desde esa ventana web se pueden crear o modificar proyectos Jupyter que incluyan código de ejemplo Python que puede ser ejecutado en el documento.


Flujo de Trabajo para Aprendizaje de Máquinas

Expanda para ver más sobre Machine Learning Workflow

Machine Learning Workflow: Es un patrón repetible y orquestado que permite la transformación y el procesamiento sistemático de informació para crear soluciones de predicción.

  1. Definir la pregunta a responder
  2. Preparar los datos
  3. Seleccionar un algoritmo
  4. Entrenar un modelo
  5. Validar el modelo
  6. Retro-alimentación