Compartir a través de


Fundamentos de los Servicios de Machine Learning e Inteligencia artificial de Microsoft (es-MX)

Artículo Original: https://blogs.msdn.microsoft.com/uk_faculty_connection/2018/03/02/learn-the-fundamentals-of-microsofts-machine-learning-and-artificial-intelligence-services/

Completar las rutas de aprendizaje: 15hrs 10m + laboratorios de práctica, ver https://azure.microsoft.com/en-us/training/

Conozca los fundamentos de los servicios de Aprendizaje automático e Inteligencia artificial de Microsoft y cómo crear aplicaciones que los usen.

Desarrolle habilidades prácticas de trabajo que puede comenzar a usar de inmediato.

*Registro gratis. Cursos gratuitos proporcionados en asociación con Pluralsight.
*

Principiante

Desarrollo de aplicaciones de inteligencia artificial en Microsoft Azure - Primeros pasos
Curso a su propio ritmo 4hrs 25m

Introducción

Usar los servicios cognitivos de Microsoft en sus aplicaciones Comencemos con este breve video que explica los Servicios Cognitivos de Microsoft y muestra una aplicación de muestra.
Explique a un amigo qué son los servicios cognitivos y dé un ejemplo de cómo puede usarlos en una aplicación.

Introducción y configuración

Instalar y configurar Visual Studio
Para comenzar, necesitará Visual Studio para crear y ejecutar su aplicación de Servicios Cognitivos. Puede utilizar la edición comunitaria gratuita.
Abra Visual Studio y cree una aplicación.

Copia la aplicación de muestra

A continuación, deberá descargar la aplicación de muestra. Trabajará a través de otras soluciones de ejemplo, pero esta tiene la aplicación completa utilizada para esta ruta de aprendizaje.
Abra el archivo ZIP y expórtelo a un directorio en su computadora. Abra la solución (el archivo ".sln") en Visual Studio.

Trabajando con el SDK de plataforma de Windows Universal - 

La plataforma universal de Windows (UWP) es la plataforma de aplicaciones para Windows 10. Utilizaremos este SDK a lo largo de la ruta de aprendizaje para trabajar con visión, texto y voz. Esta descripción general le brinda una introducción a lo que es el SDK.
Primero, configure el SDK y luego complete una aplicación de muestra.

La fase de adquisición

Accediendo a la cámara en Windows
Comenzaremos la Fase de Adquisición aprendiendo a usar la interfaz de usuario de la cámara incorporada de Windows, donde aprenderá a crear aplicaciones de la Plataforma Universal de Windows (UWP) que utilizan la cámara para capturar fotos, video o audio. Este ejemplo github tiene la API Windows.Media.Capture y cómo utilizarla.
Cree una aplicación básica que tenga foto, video y captura de audio usando MediaCapture.

Trabajando con escritura a mano - 

Ahora que hemos creado las interfaces de audio y video, estamos listos para agregar la siguiente parte de la interacción humana a la aplicación: escritura a mano. Aprenderemos cómo ingresar con la API InkCanvas. Este proyecto basado en github (desplazarse hacia abajo hasta el archivo README) muestra cómo usar la funcionalidad de tinta (como capturar tinta de la entrada del usuario y realizar reconocimiento de escritura a mano en trazos de tinta) en aplicaciones de Universal de Windows usando C#.
Cree una aplicación que admita escribir y dibujar con Windows Ink.

Adquirir reconocimiento de Lenguage con Cortana - 

Con ambas capacidades, Adquirir y Procesar, ahora nos enfocaremos en el Asistente inteligente de Microsoft, Cortana, y explicaremos cómo puede iniciar la aplicación de muestra, y establecer y recibir mensajes usando un lenguaje natural. Este sitio github demuestra cómo integrar su aplicación con los comandos de voz de Cortana. Cubre la creación e instalación de un archivo de definición de comandos de voz y muestra cómo su aplicación puede responder a la activación de Cortana.
Asegúrese de que puede iniciar una aplicación usando Cortana.

Fase de procesamiento

Procesamiento de voz con el espacio de nombres Windows.Media.SpeechRecognition
Una de las capacidades más complicadas (y potentes) en el procesamiento de tipo humano en AI es trabajar con el reconocimiento de voz. El espacio de nombres Windows.Media.SpeechRecognition proporciona una funcionalidad que puede adquirir y controlar la entrada de voz, crear gramáticas de reconocimiento de voz que producen resultados de reconocimiento tanto literales como semánticos, capturar información de eventos generados por el reconocimiento de voz y configurar y administrar motores de reconocimiento de voz. Este recurso tiene una visión general de esta tecnología en Windows, y también tiene un conjunto de artículos al final de la página para obtener más información y muestras que debe seguir.
Haga que una aplicación UWP responda con voz.

Reconociendo una imagen facial- 

Continuaremos la Fase de procesamiento usando el video que hemos capturado, nos concentraremos en la cara del usuario que usa la clase FaceDetectionEffect del espacio de nombres Windows.Media.Core. A continuación, tomaremos esa área del video y la pasaremos a nuestra primera llamada de Servicios Cognitivos, Face API. Al utilizar este servicio, primero cargaremos una imagen instantánea del usuario, que luego podremos comparar utilizando Face API identificando personas etiquetadas previamente en las imágenes. Esto permite al usuario establecer u obtener mensajes. Este ejemplo de github te muestra cómo trabajar con las API.
Crea una aplicación simple que detecta caras en una imagen.

Trabajando con la API de Servicios Cognitivos - 

Estamos listos para hacer nuestra primera llamada a la API de Servicios Cognitivos. En este paso aprenderemos cómo tomar las imágenes y enviarlas a la API para su procesamiento, y cómo interpretar los resultados. Lea este recurso y las guías API a las que hace referencia.
Siga este tutorial para asegurarse de saber cómo realizar llamadas a la API de CS.

La fase de respuesta - 

Compilación y ejecución de la aplicación de muestra
Estamos listos para probar la aplicación. Compilaremos la aplicación, abriremos la configuración e ingresaremos la información para la API de Servicios Cognitivos. Luego probaremos la aplicación con video, voz y escritura a mano.
Descargue la aplicación en este enlace y luego abra el archivo "FamilyNotes.sln" en Visual Studio. ¡Compila la aplicación, configura tu API key y pruébalo!

Próximos pasos

Otros servicios cognitivos
Ahora está listo para ramificarse y crear sus propias aplicaciones usando más de los Servicios Cognitivos. Echa un vistazo a la lista aquí y sigue las muestras que tienen.
Crear y desplegar más aplicaciones de IA

Intermedio

Desarrollar y desplegar aplicaciones de IA personalizadas utilizando servicios cognitivos
Curso a su propio ritmo 5hrs 15m

Introducción y configuración

Introducción a la comprensión del lenguaje del servicio inteligente (LUIS) - Microsoft Cognitive Services
Comenzaremos con una descripción general del servicio y cómo puede usarlo en sus aplicaciones con este breve video. Introduce los conceptos que usaremos en esta Ruta de Aprendizaje.
Explique a un colega lo que LUIS está usando en un escenario de ejemplo.

Instalar y configurar Visual Studio -

En esta ruta de aprendizaje, nos quedaremos en el Portal Microsoft Azure para la mayoría de los pasos. Para crear una interfaz de usuario fácil de usar, necesitará Visual Studio para crear y ejecutar su aplicación de Servicios Cognitivos utilizando Node.js, Python, C # y otros lenguajes de programación. La edición comunitaria gratuita funciona bien.
Abra Visual Studio y cree una aplicación de datos simple.

Crear claves de suscripción a través de Azure

Puede crear y administrar sus claves en la página Mis aplicaciones en Azure Portal. También puede acceder a esta página haciendo clic en Mis aplicaciones en la barra de navegación superior de la página web LUIS. Esta referencia cubre cómo hacer eso.
Cree sus claves de suscripción LUIS en Azure Portal.

Conceptos - Intenciones(Intents) - 

Como viste en el video general, las intenciones(intents) son una tarea o acción que el usuario desea realizar. Es un propósito u objetivo expresado en la entrada de un usuario, como reservar un vuelo, pagar una factura o encontrar un artículo de noticias. En esta referencia, aprenderá más sobre cómo usar Intents.
Piense en una aplicación LUIS que le gustaría crear. Comience a planear su aplicación identificando su dominio y sus intenciones principales.

Conceptos - Entidades - 

Ahora estamos listos para entender Entidades(Entities). Las entidades son palabras importantes en los enunciados que describen información relevante para la intención y, a veces, son esenciales para ella. Las entidades pertenecen a clases de objetos similares. Este artículo cubre los tipos de Entidades y cómo puede usarlas. También cubre tipos jerárquicos.
Identifique sus entidades principales y trace cualquier entidad jerárquica, compuesta o de lista para la aplicación que desea crear.

Conceptos - Expresiones - 

Las declaraciones son la entrada del usuario. Esta referencia cubre el entrenamiento de LUIS para extraer intents y entidades de Utterances.
Propone de 3 a 4 emisiones para cada uno de los intentos que identificaste.

Conceptos - Características - 

LUIS utiliza el aprendizaje automático en segundo plano. Una característica de aprendizaje automático es un atributo de los datos que afecta el resultado que desea obtener. Agregue características a un modelo de lenguaje para proporcionar sugerencias sobre cómo reconocer la entrada que desea clasificar, llamada etiqueta. Este artículo explica cómo las características ayudan a LUIS a reconocer los intentos y las entidades.
Determine qué listas de frases y patrones pueden ser útiles para incluir en su aplicación.

Conceptos - Trabajar con múltiples idiomas - 

Múltiples idiomas están disponibles en LUIS, y se están agregando más. Esta referencia, cubrirá cómo detectar palabras raras, y cuándo y cómo debe agregar tokens.
Explique cualquier palabra o caracteres que crea que deberían agregarse a una función de lista de frases no intercambiable.

La fase de adquisición

Crea la aplicación y obtén API KEY
La creación de una aplicación LUIS termina con una API a la que puede llamar desde varios idiomas, como Node.js, Python, C # y más. El primer paso es crear la aplicación en sí y obtener la KEY del punto de acceso. Este artículo explica cómo hacer eso.
Cree la aplicación que planificó en la sección de Introducción y Configuración anterior utilizando la clave de suscripción que creó anteriormente, y obtenga la API KEY.

Agregar Intenciones(Intents) - 

Para recibir información del usuario, primero debemos configurar los Intents de la aplicación, tal como aprendió en la sección de Introducción anterior. Esta referencia explica cómo configurarlos.
Agregue sus intents a LUIS, verificando primero si hay dominios preconstruidos que pueda utilizar.

Agregar expresiones y construcciones de búsqueda - 

Sus usuarios enviarán consultas de lenguaje natural a su aplicación. Para asegurarse de que están capacitados por el sistema de Aprendizaje automático detrás de LUIS, debe darle algunos ejemplos para trabajar. En esta referencia, creará algunas Expresiones, y luego las etiquetará como Intenciones o Entidades. También configurará las construcciones de búsqueda y filtro.
Agregue todos los enunciados que se le ocurrieron en Introducción y Configuración. A continuación, etiquételos con sus intenciones y entidades, agregando intenciones / entidades adicionales según sea necesario.

Agregar Entidades(Entities) - 

El siguiente paso es agregar sus Entidades, que pueden agruparse en Clases para mostrar similitud en sus temas. Este artículo le muestra cómo hacerlo y cómo aprovechar las entidades preconstruidas en el sistema.
Identifique qué entidades podrían ser satisfechas por las entidades preconstruidas y agréguelas. A continuación, agregue las entidades personalizadas restantes para su aplicación.

Fase de procesamiento

Uso de características para aumentar el rendimiento del modelo
Pasamos ahora a la Fase de procesamiento de su aplicación. Las características ayudan a que LUIS reconozca tanto los intentos como las entidades, al proporcionar pistas a LUIS de que ciertas palabras y frases forman parte de una categoría o siguen un patrón. Cuando su aplicación LUIS tiene dificultades para identificar a una entidad, agregar una característica y volver a capacitar la aplicación LUIS a menudo puede ayudar a mejorar la detección de intenciones y entidades relacionadas. Esta referencia explica cómo agregarlos a su aplicación.
Agregue las listas de frases y los patrones que desarrolló desde la sección de Introducción y Configuración.

Entrene su aplicación de procesamiento de lenguaje natural - 

Cuando "capacita" a un modelo, LUIS generaliza a partir de los ejemplos que ha etiquetado, y construye un modelo para reconocer las intenciones y entidades relevantes en el futuro, mejorando así su precisión de clasificación. Este artículo cubre ese tema.
Entrena tu aplicación y observa su desempeño.

Re-entrenamiento - o "Aprendizaje activo" - 

Una vez que un modelo de Aprendizaje automático está entrenado, puede proporcionarle datos del mundo real para volver a entrenarlo y hacerlo con mayor precisión. LUIS contiene un sistema que examina todas las emisiones que se le han enviado, y llama su atención sobre las que le gustaría etiquetar. Este proceso se llama "Aprendizaje activo" y puede implementarlo siguiendo estos pasos.
Analice cualquier error que observe en las pruebas ajustando sus intenciones / entidades / expresiones / características, reentrenamiento y pruebas nuevamente.

La fase de respuesta

Publicar y acceder a la aplicación
Estamos listos para usar su aplicación: puede publicar su aplicación directamente en el espacio de producción donde los usuarios finales pueden acceder y usar su modelo, o puede publicar en un intervalo de etapas donde puede probar su aplicación de forma iterativa para validar los cambios antes de publicar a la ranura de producción. Esta referencia te ayudará a hacer eso.
Publique y pruebe su aplicación configurando el parámetro URL. Después de algunas pruebas, revise el paso anterior y use el aprendizaje activo para ver y etiquetar cualquier enunciado adicional sugerido. También puede realizar pruebas interactivas en modelos actuales y publicados.

Crear una aplicación LUIS completa con Python - 

Esta aplicación rápida reúne todo para que puedas utilizar en una aplicación de Python como ejemplo. Puede ver cómo todo lo que ha aprendido se pone en producción hasta llegar a una aplicación cliente completa.
En los pasos anteriores, creó lo que debería ser una aplicación LUIS bastante robusta. Integre en una aplicación de Python simple.

Use una aplicación LUIS con Cortana - https://docs.microsoft.com/en-us/azure/cognitive-services/LUIS/cortana-prebuilt-app

Si bien hay ventajas en el uso de dominios preconstruidos para extender su aplicación LUIS, también puede usar el sistema Cortana en Windows 10 para implementar LUIS. Este artículo te muestra cómo.
Detalla 2-3 escenarios donde la aplicación preconstruida de Cortana sería útil, y 2-3 escenarios donde fallaría.

Próximos pasos

Otros servicios cognitivos
Ahora está listo para ramificarse y crear sus propias aplicaciones usando más de los Servicios Cognitivos. Echa un vistazo a la lista aquí y sigue las muestras que tienen.
Crear y desplegar más aplicaciones de IA.

Revisa los foros de LUIS - 

¿Tiene preguntas? Hay una buena posibilidad de que alguien más tenga la misma pregunta. O tal vez estás listo para ayudar a alguien más.
Revise los foros, responda al menos una pregunta.

Avanzado

Integración de servicios avanzados de aprendizaje automático en aplicaciones de IA
Curso a su propio ritmo 5hrs 30m

Introducción

Introducción al aprendizaje profundo para la visión por computadora
Esta conferencia, la primera de un curso en Stanford, ofrece una excelente introducción a la visión por computadora. Introduce el campo y describe el enfoque que tomaremos en esta ruta de aprendizaje
Explique a un alto nivel el éxito de las redes neuronales convolucionales para la visión por computadora

Configuración inicial

Implementar DSVM en Azure
Para hacer un aprendizaje profundo, necesitarás un sistema equipado con los requisitos de cálculo pesado. Azure DSVM será nuestro espacio de trabajo principal para el entrenamiento de algoritmos de aprendizaje profundo. Ya está equipado con los controladores que necesitamos para obtener GPU-acceleration, CNTK y un entorno completo de Python para escribir su aplicación. Asegúrese de seleccionar un NC6, NC12 o NC24SKU para obtener acceso a la GPU
Lanza una libreta Jupyter y haz un recorrido por la ciencia de los datos en tu nuevo DSVM

101-Curso

edX - Explicación del aprendizaje profundo
Este es un curso introductorio a CNTK y "aprendizaje profundo", que cubre los conceptos básicos en CNTK y aprendizaje profundo. Este curso dura más de 6 semanas, pero cada semana se puede completar en unas pocas horas. Si bien recomendamos este curso, esta ruta de aprendizaje también proporciona enlaces a tutoriales que puede hacer a su propio ritmo.
Completa los primeros cuatro módulos del curso

Conceptos

Prueba CNTK en datos sintéticos
Este primer tutorial le dará una introducción a la interfaz Python de CNTK y al proceso de uso de CNTK para aprendizaje automático. Si bien los datos aquí son sintéticos, obtendrá una base firme de los conceptos básicos de CNTK, incluida la carga de datos, la capacitación y la evaluación.
Ejecutar todo el cuaderno y cambiar el número de clases de salida

Reconocimiento de OCR

Ingerir y explorar datos con los paquetes científicos de CNTK y Python
Ahora que entienden la API de Python de CNTK para el procesamiento de datos y la capacitación / evaluación del modelo, están listos para probar sus habilidades en un conjunto de datos real. El conjunto de datos MNIST a veces se conoce como el "¡Hola mundo!" del mundo del aprendizaje automático. Comprender este conjunto de datos con CNTK es una excelente forma de aprender sobre aprendizaje profundo y CNTK
Explore el conjunto de datos de diferentes maneras: intente mezclar los datos, aplique transformaciones para ver cómo distorsionan las imágenes y agregue ruido para ver cómo eso afecta el error de generalización.

Regresión logística con MNIST - 

Este tutorial continúa nuestro problema de OCR usando un clasificador logístico simple. Aunque todavía no es una red neuronal "profunda", este enfoque obtiene una precisión del 93% y muestra el flujo de trabajo estándar de CNTK: lectura de datos, procesamiento de datos, creación de un modelo, aprendizaje y evaluación.
Ajuste los siguientes parámetros y vea cómo afectan la precisión de la prueba: tamaño del minibatch, número de barridos, arquitectura de la red. ¿Puedes explicar por qué estos parámetros afectaron el puntaje de la manera en que lo hicieron?

Red neuronal completamente conectada con dos capas ocultas - 

¡Finalmente, una red "profunda"! Aquí implementará una red neuronal completamente conectada con dos capas ocultas. ¡Su puntaje en la prueba debería subir hasta casi el 99%!
Intenta agregar más unidades ocultas. ¿En qué momento ocurre el "sobreajuste"?

Red neuronal convolucional para MNIST - 

Las redes neuronales convolucionales (CNN) son muy similares al perceptrón y a la red neuronal multicapa de las secciones anteriores. La principal diferencia son las suposiciones que hacen sobre la fuente de datos. Asumen explícitamente que la fuente de datos es una imagen, y limitan la arquitectura de la red de una manera sensata, en parte, inspirada por nuestra comprensión de nuestra corteza visual.
En lugar de conectar las neuronas de cada capa previa a cada neurona en la siguiente capa, las CNN usan "conexiones locales", donde solo se aplica una pequeña región de entrada (el campo receptivo) a la siguiente capa. Aquí implementará una CNN en el conjunto de datos MNIST, y si tiene cuidado, incluso podría superar una tasa de precisión del 99%.
Pruebe diferentes funciones de activación y avances, y vea cómo afectan el rendimiento.

Aprendizaje de Transferencia

Reconocimiento de imágenes con aprendizaje de transferencia
En las secciones anteriores, aprendió sobre la API central de CNTK y entrenó una red neuronal para el reconocimiento de OCR. Si bien esto funcionó de maravilla para nuestro problema, nuestros datos no eran muy grandes o muy variados. Consistió por completo en imágenes en escala de grises con solo 10 categorías. Sin embargo, en los ejemplos del mundo real, con frecuencia encontrará imágenes con una diversidad y categorías mucho mayores. En lugar de entrenar una arquitectura enormemente profunda para cada nuevo problema que encuentre, el aprendizaje de transferencia le permite reutilizar una arquitectura existente entrenada en un corpus grande de imágenes (generalmente ImageNet) y solo reciclar las últimas capas para "adaptarse" a su nuevo conjunto de datos.
Pruebe este portátil con un modelo preprogramado diferente, digamos ResNet-50 y un conjunto de datos diferente

Transferencia de estilo neuronal - 

Aunque no está directamente relacionado con el aprendizaje de transferencia, este módulo le mostrará cómo utilizar el procedimiento de optimización que hemos utilizado hasta ahora para optimizar una función de pérdida que conduzca a un resultado que se aproxime tanto al contenido de una imagen como al estilo de la otra imagen. ¡Aquí, tomarás una pintura famosa de Van Gogh y sintetizarás su textura en cualquier imagen que elijas!
Pruebe diferentes imágenes y diferentes arquitecturas de red entrenadas previamente.

Detección de Objetos

Rápido tutorial de detección de objetos R-CNN
Ha comprendido los conceptos básicos de CNTK, la clasificación de imágenes, el aprendizaje de transferencia y la optimización de las funciones de pérdida. ¡Ahora vas a aplicar todos esos a la tarea de detección de objetos! En particular, usará un enfoque llamado Fast R-CNN. El método básico de R-CNN es tomar una red neuronal profunda que originalmente se entrenó para la clasificación de imágenes utilizando millones de imágenes anotadas y modificarla con el fin de detectar objetos.
Pruebe este mismo enfoque en el MS Cocodataset, un conjunto de datos mucho más rico y desafiante para la detección de objetos.

Operacionalización

Clasificación de imagen paralela en pySpark con HDInsight
Ahora que ha entrenado su red neuronal profunda para las tareas de clasificación de imágenes y detección de objetos, la pregunta es ¿cómo operacionalizar? En este módulo, tomará un modelo de clasificación de imágenes y lo desplegará en HDInsight Spark, donde puede obtener miles de imágenes al mismo tiempo que utiliza el soporte nativo distribuidao de Spark y el alto rendimiento de Azure Data Lake.

Adapte el modelo para usar el modelo Fast-RCNN que entrenó en la sección anterior

Provisionar CNTK en una Raspberry Pi - 

Ahora tomará su arquitectura CNTK y la implementará en una simple Raspberry Pi. La Biblioteca de Aprendizaje Integrado de Microsoft le permite construir e implementar fuentes de datos/recursos machine-learned en plataformas integradas, como Raspberry Pi, Arduino, micro: bits y otros microcontroladores. Tomaremos nuestro modelo de clasificación de imágenes y lo pondremos en una Raspberry Pi donde se puede hacer una clasificación en tiempo real usando un video de alimentación
Disminuya el tamaño de su arquitectura de red y vea cómo eso mejora la latencia de su dispositivo de clasificación en tiempo real.