Esta sección contiene información relacionado a temas de inteligencia artificial

AI Builder Power Apps

En continuación de la entrada anterior donde utilizamos uno de los servicios cognitivos ya previamente construidos, lo que vamos a hacer en esta ocasión es ejemplificar como ir integrando estas características a nuestras aplicaciones, para ello vamos a ilustrarlo desde Power Apps.

Power Apps es un conjunto de herramientas diseñadas por Microsoft para agilizar y simplificar el desarrollo de aplicaciones pequeñas. El proceso de desarrollo se simplifica bastante para usuarios acostumbrados al uso de funciones como las encontradas en Excel o Power Bi y para el público en general al necesitar mínima o nula cantidad de código escrito.

Otra característica positiva de Power Apps es la facilidad con la que interactúa con otros productos de Microsoft y en particular con la gran oferta de servicios de inteligencia artificial que existen.

Para ejemplificar lo sencillo y rápido que es crear una aplicación que aproveche las capacidades de reconocimiento de la inteligencia artificial, veamos cuanto tiempo nos toma tener una app que me facilite capturar elementos de varios formularios.

Digamos que nos interesa agilizar el proceso de captura de una gran cantidad de formularios, necesitamos que nuestra app sea capaz de reconocer campos y los valores que se encuentren  en ellos.

De las multiples opciones que tenemos en la secciòn de AIBuilder existe un modelo llamado FormProcessing, que como su nombre dice, tiene la capacidad de procesar imágenes de formularios y extraer los campos y valores.

El proceso de entrenamiento te pide subir al menos 5 documentos con el mismo formato, posteriormente estos serán analizados y si se logro identificar los campos, podremos elegir aquellos que queramos.

Terminado el proceso de entrenamiento podemos usar nuestro modelo en una app.

Una vez publicado el modelo Podemos crear una nueva app, haciendo esto nos encontraremos en Power Apps Studio. Por ejemplo, una app que me ayude a procesar cuestionarios rápidamente o formularios.

Usando Power Apps Studio esto se puede lograr en menos de 10 minutos

Power Apps Studio usa una sencilla interfaz donde no es necesario escribir código para construir un producto. La ventana de la izquierda muestra todos los elementos en nuestra app, también tiene la función de añadir nuevos elementos. La ventana de la derecha muestra las propiedades del elemento seleccionado y la ventana central muestra la vista del programa que estamos creando.

Encontraremos que nuestra aplicación tiene un elemento llamado FormProcessor1, este es el modelo de inteligencia que creamos. Para este ejemplo creamos 3 etiquetas o labels.

Posteriormente en la Ventana de la derecha de cada etiqueta en el campo Text llenamos como en la imagen. Lo que esto hace es acceder al valor de los campos que nuestro modelo analizó y poner estos valores en la etiqueta.

Este pequeño ejemplo se puede escalar y potencialmente puede ayudar a procesar exámenes para un profesor o peticiones gubernamentales. Todo esto se puede lograr en muy poco tiempo y con muy poca necesidad de conocimiento de inteligencia artificial o programación, haciendo esto una herramienta muy útil para una gran cantidad de persona

Servicios Cognitivos de Microsoft «Custom Vision»

En recientes fechas hemos escuchado noticias respecto a la inversión de Microsoft en México, uno de los rubros que captó mi atención fue el uso de tecnología de inteligencia artificial para el monitoreo de tiburones pelágicos. Si han seguido mis entradas al blog la aplicación de inteligencia artificial para la resolución de problemas es un área donde tengo especial interés, así que me dispuse a escribir una entrada al blog a manera de introducción de alguno de los servicios que Microsoft tiene disponibles para el uso de funciones existentes de inteligencia artificial.

En entradas posteriores profundizaremos en como consumir alguna de estas funciones a través de código para agregarla en nuestras aplicaciones y examinaremos lo que hay en la iniciativa “AI for Earth” que es la que será utilizada para el programa de conservación del tiburón, la intención inicial de esta entrada es dar un marco general de las capacidades e iniciaremos con el servicio denominado “Custom Vision”.

Empezar a utilizar el servicio de custom visión es muy sencillo, desde un browser accedemos a https://www.customvision.ai/ y accedemos usando una cuenta de Azure.

Al acceder nos encontramos con esta pantalla y al dar click en New Project podremos definir el proyecto en el que estamos interesados.

En esta ocasión queremos crear un clasificador de imágenes, es decir, una inteligencia que al suministrarle una imagen pueda determinar a qué categoría pertenece.

Para crear el proyecto es necesario tener un recurso Cognitive Services de Azure, en caso de no tenerlo se puede crear en la misma pagina haciendo click en create new.

Al crear nuestro recurso debemos de introducir los datos pertenecientes a nuestra cuenta a nuestra cuenta, así como al recurso que vamos a crear. Para propósitos de este demo usaremos CustomVision.Training y F0, siendo está la opción gratuita.

Una vez creado nuestro recurso seleccionamos las opciones restantes como aparecen en la imagen y damos click en el botón de Create Project.

Toda inteligencia artificial debe de tener ejemplos de entrenamiento, es de estos ejemplos donde obtendrá la capacidad de diferenciar entre imágenes. Estas imágenes serán diferenciadas por etiquetas dadas por nosotros. Un bonito ejemplo es el siguiente:

¿Cómo logro que mi inteligencia artificial diferencié entre una deliciosa dona y mi amigo peludo dormido?

Justo como lo haría con un niño, dándole ejemplos.

En nuestro caso estos ejemplos se traducen en imágenes y alimentar estas imágenes es un proceso muy sencillo.

Dando click en Add Images podemos subir imágenes de ejemplo a nuestro proyecto.

Al subir las imágenes debemos de llenar el campo My Tags, estas serán las etiquetas sobre las que la inteligencia clasificará.

Una vez que el proyecto posee al menos dos etiquetas y cinco imágenes por etiqueta podemos entrenarlo dando click en el botón Train. Para este ejemplo basta seleccionar la opción de Quick Training.

Una vez entrenado nos encontraremos con esta pantalla.

Los valores de Precision y Recall determinan que tan buena es la inteligencia para determinar a qué etiqueta corresponde cada ejemplo. Precision dice que porcentaje de etiquetas determinadas por nuestro sistema fueron correctas, Recall nos dice a qué porcentaje de etiquetas dadas por nosotros fueron correctamente seleccionadas. Si nuestra inteligencia hubiera asignado a todas las imágenes la etiqueta de Dona, el valor de Precision en Dona sería de 100% ya que todas las donas fueron correctamente clasificadas, sin embargo, el Recall de Amigo sería de 0% ya que no clasificó ningún Amigo correctamente.

En nuestro caso un valor de 100% es excelente, pero esto sólo garantiza que nuestro modelo es capaz de diferenciar ejemplos que nosotros hemos etiquetado. ¿Será capaz de diferenciar imágenes que no ha visto?

Al dar click en Quick Test podemos averiguar esto.

Pues sí, con los ejemplos dados nuestra inteligencia obtuvo suficiente información para diferenciar estas dos imágenes.

Hagamos el ejercicio un poco más difícil.

Estos cuatro caracteres pertenecen al idioma japonés, en particular dos de ellos pertenecen al silabario llamado Hiragana y los otros dos a uno llamado Katakana. Los caracteres pertenecientes al Katakana son formados generalmente con rectas y el Hiragana con curvas. Veamos si la inteligencia puede determinar cual pertenece a cuál.

De la misma manera que en el ejemplo anterior debemos proporcionar imágenes que representen nuestras etiquetas, en este caso Hiragana y Katakana.

Entrenamos y los números nos dicen que todo salió bien, sin embargo…

Error, este carácter no es Katakana pero la inteligencia está muy segura de que lo es. ¿Significa entonces que nuestro proyecto ha fracasado? Para nada, ante errores de clasificación la mejor solución usualmente es alimentar mejor y más datos a nuestra inteligencia.

Incrementando la variedad y cantidad de ejemplos proporcionados mejoró dramáticamente la clasificación de nuestro sistema al punto que realice un trabajo de reconocimiento de buena calidad, todo esto sin necesidad de codificar nada.

Si estamos interesados en realizar un demo o prototipo usando la tecnología dada por Microsoft, la herramienta de customvision hace la creación de este fácil y rápida.