#Event – Materiales utilizados en la sesión [#ArtificialIntelligence and #MachineLearning in #Azure]

04

Buenas!

Gracias a los amigos de [The Azure Group (Canada’s Azure User Community] por el excelente rato hace un par de días en la sesión [Artificial Intelligence and Machine Learning in Azure].

Como siempre, ahora es el momento de compartir las slides y materiales utilizados en la sesión

Y esta vez en lugar de código, pues una lista larga de recursos

Windows 10 and YOLOV2 for Object Detection Series

Happy coding !

Saludos @ Burlington

El Bruno

 

 

Advertisements

#AI – #AISchool, Free Artificial Intelligence OnLine courses. (Update)

00 AI School

Hi!

A couple of months ago I wrote a post about AI School https://aischool.microsoft.com/. A collection of free courses on Artificial Intelligence that are an excellent entry point for amateurs. Well, AI School It has matured a lot and has some changes that deserve to be mentioned.

For example, AI School It gives us the possibility to choose 4 different categories to start

Conversational AI

Intelligent bots have become an intuitive way to enable interactions between people and apps. The learning paths in this house will guide you through how to build these intelligent bots, and incorporate features like natural language processing and intent recognition, as well as other features to create delightful bot interactions in your apps and other channels.

AI Services

Intelligent bots have become an intuitive way to enable interactions between people and apps. The learning paths in this house will guide you through how to build these intelligent bots, and incorporate features like natural language processing and intent recognition, as well as other features to create delightful bot interactions in your apps and other channels.

Machine Learning

Machine learning allows computers to learn how to interpret and understand the world to provide insights to humans that would otherwise take manual efforts, be dangerous, time consuming, or costly. These learning paths will cover the essential concepts of AI and machine learning and show you how to apply custom AI solutions.

Intelligent Edge AI

Intelligent edge allows ML models to run on edge devices like cell phones, drones, robots, and other IoT devices. These learning paths will cover the essential concepts of how to build, train, and export these models so that they are compatible with these edge devices and then deployed for processing without the cloud.

Each of these categories offers different Learning Paths. Which are a collection of resources related to that category. For example, in Machine Learning we can find

ai school machine learning learning path

Inside AI School we can also access to AI Demos, which is a collection of online AI demos. Most of them based on Azure Cognitive Services

02 AI Demos

And finally, we have access to AI Lab, with more examples and real life scenarios of AI. However, to this one I will dedicate a more complete post in the future..

Winter is coming, so happy coding!

Greetings @ Toronto

El Bruno

Resources

#AI – #AISchool, cursos gratuitos de Inteligencia Artificial OnLine. (Update)

00 AI School

Buenas!

Hace un par de meses escribí sobre AI School https://aischool.microsoft.com/. Una colección de cursos gratuitos sobre Inteligencia Artificial que son un excelente punto de entrada para aficionados. Pues bien, AI School ha madurado bastante y tiene algunos cambios que merecen ser mencionados.

Por ejemplo, AI School nos brinda la posibilidad de elegir 4 categorías diferentes para comenzar

Conversational AI

Los robots inteligentes se han convertido en una forma intuitiva de habilitar las interacciones entre personas y aplicaciones. Las rutas de aprendizaje en esta casa lo guiarán a través de cómo construir estos bots inteligentes e incorporarán funciones como el procesamiento del lenguaje natural y el reconocimiento de intenciones, así como otras características para crear interacciones de bot encantadoras en sus aplicaciones y otros canales.

AI Services

Los servicios de AI permiten que los servicios de IA pre-construidos se infundan fácilmente en las aplicaciones existentes, sin tener que preocuparse por el modelo ML subyacente; todo el trabajo duro está hecho por usted. Ya sea que esté agregando reconocimiento facial o análisis de sentimientos o cualquiera de nuestros otros más de 30 servicios de inteligencia artificial a su aplicación, estas rutas de aprendizaje lo guiarán a través de cómo incluir estas características en sus aplicaciones rápidamente.

Machine Learning

Machine Learning permite que las computadoras aprendan a interpretar y entender el mundo para brindar información a los seres humanos que, de lo contrario, realizarían esfuerzos manuales, serían peligrosos, consumirían mucho tiempo o serían costosos. Estas rutas de aprendizaje cubrirán los conceptos esenciales de la IA y el aprendizaje automático y le mostrarán cómo aplicar soluciones de AI personalizadas.

Intelligent Edge AI

Intelligent Edge AI permite que los modelos ML se ejecuten en dispositivos de borde como teléfonos celulares, drones, robots y otros dispositivos de IoT. Estas rutas de aprendizaje cubrirán los conceptos esenciales de cómo construir, entrenar y exportar estos modelos para que sean compatibles con estos dispositivos de borde y luego se implementen para el procesamiento sin la nube.

Cada una de estas categorías nos ofrece diferentes Learning Paths. Que son una colección de recursos relacionados con esa categoría. Por ejemplo, en Machine Learning podemos encontrar

ai school machine learning learning path

Dentro de AI School podemos acceder a AI Demos, que es un recurso online de demos. La mayoría basados en Cognitive Services

02 AI Demos

Y finalmente, tenemos acceso a AI Lab, con más ejemplos y real life scenarios de AI. Sin embargo, a este ultimo punto le dedicare un post mas completo en el futuro.

Winter is coming, so happy coding!

Saludos @ Toronto

El Bruno

Resources

#MLNET – Novedades en la version 0.7 de Machine Learning.Net (la excusa perfecta para actualizar proximos eventos!)

auto auto racing automobile automotive
Photo by Pixabay on Pexels.com

Buenas!

Hace unos días se publico la version 0.7 de Machine Learning .Net. No he tenido tiempo de repasar a fondo las novedades de esta version, sin embargo, tendré actualizada mi sesión y demos a la version 0.7 para la próxima sesión el próximo 22 de Noviembre en Mississauga

Getting Started with Machine Learning.Net & Windows Machine Learning https://www.meetup.com/MississaugaNETUG/events/255916993/ .

Pues bien, Cesar De la Torre y el equipo de ML.Net han publicado un post completo con las novedades de ML.Net 0.7 https://blogs.msdn.microsoft.com/dotnet/2018/11/08/announcing-ml-net-0-7-machine-learning-net/ y me apunto los puntos importantes del post para repasar esta semana

  •     Enhanced support for recommendation tasks with Matrix Factorization
  •     Enabled anomaly detection scenarios – detecting unusual events rel
  •     Improved customizability of ML pipelines
  •     x86 support
  •     NimbusML – experimental Python bindings for ML.NET
  •     Get started with ML.NET v07

Y, por último, hemos cambiado la ubicación del evento Artificial Intelligence and Machine Learning in Azure https://www.meetup.com/The-Azure-Group-Meetup/events/bvvjnpyxpbsb/ del próximo 14 Noviembre.

Happy coding!

Saludos @ Toronto

El Bruno

References

My Posts

#AI – MARLO 2018, Reinforcement Learning con Minecraft

01 Marlo 2018

Buenas!

Hace un tiempo escribí una serie de posts sobre “Artificial Intelligence con Minecraft utilizando Project Malmo”. Minecraft es un excelente playground para probar experiencias de AI, y competencias como MARMO son excelentes para aprender y para impulsar la comunidad de AI.

La competencia Malmo es un nuevo desafío que propone una investigación con Multi-Agent Reinforcement Learning utilizando juegos múltiples. Los participantes crean agentes de Minecraft para jugar múltiples juegos 3D como se define en la plataforma MalmO. El objetivo de la competencia es fomentar la investigación de IA sobre enfoques más generales a través de juegos multijugador.

El reto consistirá en no uno sino varios juegos, cada uno de ellos con varias tareas de diferente dificultad y configuración. Algunas de estas tareas serán públicas y los participantes podrán capacitarse en ellas. Otros, sin embargo, serán privados, y solo se utilizarán para determinar las clasificaciones finales de la competencia.

La competencia esta abierta desde hace tiempo para que los participantes puedan conocer el entorno, y se dará inicio formalmente el 14 de Noviembre en la Universidad de Alberta, en Edmonton, Canada.

Mas información en

Learning to Play: The Multi-Agent Reinforcement Learning in MalmÖ (MARLÖ) Competition

Saludos @ Toronto

El Bruno

#WinML – Alternativas a #TinyYolo para reconocimiento de objetos en formato #ONNX

Buenas!

Hace unos días comentaba con unos colegas el ejemplo de utilización de TinyYolo en una UWP. Ahora es muy simple poder utilizar un modelo de ML en formato ONNX y utilizarlo en una aplicación en Windows 10.

Nota: la app puede ser UWP o una app Win32 estándar, como, por ejemplo, los clásicos Windows Forms.

Pues bien, en el medio de la conversación, surgió la pregunta que mas respondo en eventos y charlas:

¿Hay un Marketplace de modelos de AI para Windows?

La respuesta es SI. Y aunque no es un marketplace solo de modelos, en Azure AI Gallery (https://gallery.azure.ai/models) podemos encontrar muchos modelos ONNX, ya preparados para ser utilizados en Windows 10.

01 azure ai gallery home

En la página principal podemos ver los diferentes modelos organizados por categorías y por relevancia. Si entramos al detalle de uno de los modelos, veremos los detalles del mismo, asi como la opción del descargar el archivo ONNX

02 azure ai gallery Alex Net details

Finalmente, de acuerdo con la documentación del modelo, podremos acceder a su repositorio de GitHub, al paper donde se explica el mismo, y otras opciones.

03 AlexNet paper

Así que, ya sabes, si quieres agregar algunas capacidades de AI en tus apps, la Azure AI Gallery es un #MustReview place donde buscar!

Happy Coding!

Saludos @ Toronto

El Bruno

References

Windows 10 and YOLOV2 for Object Detection Series

#MLNET – Analizando datos de la Pipeline con la nueva version API 0.6.0 (gracias LINQ!)

Buenas!

El cambio en la forma en la que las Pipelines trabajan en la version 0.6.0 de Machine Learning.Net, también requiere que el código se modifique un poco si queremos ver como se procesan los datos durante cada uno de los pasos de la Pipeline.

Retomando el ejemplo del post anterior, voy a trabajar con la siguiente estructura de datos.

01 mlnet age range data

En la línea 21, créate una vista temporal de datos con el siguiente código

que me permitirá analizar los mismos directamente en el IDE en modo de depuración, o inclusive guardarlos en archivos temporales para estudiar los mismos

02 MLNet temp view of pipeline data

Esto puede ser suficiente, sin embargo, al trabajar con una clase tipada con los 4 campos de mi set de datos, estoy obligando a mi App a cargar y mapear todos los datos en cada columna. En este ejemplo, el modelo generado permite generar una predicción del Label a partir del campo Age. De esta forma, podemos obviar la definición de las columnas Name y Gender en la carga.

Eso sí, nos encontraremos con el siguiente error

03 mlnet missing columns while loading data

System.InvalidOperationException

  HResult=0x80131509

  Message=Column ‘Name’ not found in the data view

  Source=Microsoft.ML.Api

Ya que, por defecto, la carga de datos intenta mapear todas las columnas. La solución es habilitar la opción para ignorar las columnas faltantes, como muestra el siguiente ejemplo.

04 mlnet ignore missing columns

Finalmente, si trabajamos con muchos datos, también podemos sacar provecho de Linq para solo analizar un subgrupo de filas

05 mlnet take only 3 elements

Happy coding!

Saludos @ Toronto

El Bruno

References

My Posts

#MLNET – Cambios en la API con la nueva version 0.6.0

Buenas!

Hace unos días se libero la version 0.6.0 de Machine Learning .Net y una de las novedades mas importantes de la misma fue que la API de uso de ML.Net cambio de una forma muy importante. En mis sesiones siempre suelo comentar el escenario de predicción del Label de una persona para ver si es niño, bebe o adolescente de acuerdo con su edad y género. El set de datos con el que trabajo tiene la siguiente estructura

01 mlnet age range data

Como se puede ver en la imagen anterior, mi training data set posee las columnas Name, Age, Gender y Label. Pues bien, un detalle importante es que también necesito 2 clases con campos para representar las filas de mis trainings datasets y el resultado esperado.

Hasta la version 0.5.0 de ML.Net la forma de trabajo se basaba en crear un pipeline con los siguientes pasos

  • Definir el modelo de datos y cargar los mismos
  • Definir las Features y Labels
  • Seleccionar un Trainer y entrenar el modelo

El modelo generado permitía realizar predicciones. El siguiente ejemplo lo explica en 20 líneas de código

Pues bien, con la version 0.6.0, la forma en la que se utiliza la API ha cambiado. Lo mejor en este punto es leer el post original de Cesar De la Torre donde explica las novedades de esta version (ver referencias). Sin embargo, creo que dejar un ejemplo del mismo código da una idea de lo flexible que es la nueva API

Los cambios principales los podemos encontrar en

  • Líneas 5 a 9, carga del archivo inicial de datos para training
  • Líneas 11 a 18, definición de Features y label para el training
  • Línea 20, entrenamiento y creación del modelo
  • Línea 22, creación de una función para realizar predicciones
  • Líneas 24 a 32, ejemplo de una predicción

El ejemplo completo se puede ver aquí https://github.com/elbruno/Blog/tree/master/20181011%20MLNET%200.6%20NewAPI

Happy coding!

Saludos @ Toronto

El Bruno

References

My Posts

#SnagIt – De los creadores de #Camtasia, una herramienta genial para realizar capturas de pantalla con scroll

Buenas!

Hoy me dejo apuntado este tip para esos escenarios poco frecuentes, en este caso la necesidad de realizar una captura de pantalla de un website completo.

Jugando con el zoom y varios [Print Screen] esto es posible, sin embargo, hace unos días me di cuenta que SnagIt (link) tiene una feature que nos permite hacerlo en un simple clic.

2018 10 09 SnagIt Capture Scrolling Window 01.gif

Este tipo especial de captura de pantalla se denomina [Scrolling Window] y el resultado es muy aceptable.

02 SnagIt Scrolling Windows03 SnagIt Output scrolling window

Ideal para esos momentos en donde una imagen vale mas que mil palabras!

Happy Coding!

Saludos @ Burlington

El Bruno

 

 

#VSCode – Visual Studio Code Tools for #AI disponible en el Visual Studio Marketplace @code

Buenas!

Feliz día de acción de gracias! Hoy es uno de esos festivos nuevos a los que tengo que acostumbrarme en el Norte. Así como tengo que acostumbrarme a pasar bastante tiempo en VSCode. Es solo porque para tareas simples en Python, la experiencia con este IDE es genial.

Pues bien, hoy me he enterado de que [Visual Studio Tools for AI] también tiene su version para VSCode.

Visual Studio MarketPlace: Visual Studio Code Tools for AI

Como siempre la instalación es un proceso muy simple

01 vscode tools for ai install02 vscode tools for ai installed

Una vez instalada la extensión, es conveniente repasar que todos los requerimientos del entorno de desarrollo estén instalados y bien configurados (drivers y paths pueden darte mas de un dolor de cabeza). Es por esto que dedicar un par de minutos a los siguientes links vale la pena

A partir de aquí creo que me animare con mis primeros pasos reales en Deep Learning!

Happy coding!

Saludos @ Burlington

El Bruno

References

Quickstarts