Categories
54cuatro

REINFORCEMENT LEARNING : ¿que es?

En la ciencia de datos existen diversas áreas de investigación, entre la cuales se encuentra Reinforcement Learning (RL). Ante el avance del #DeepLearning, las grandes cantidades de datos ya no representan una dificultad y han surgido nuevos modelos de entrenamiento de algoritmos como el que estamos mencionando. 

Este es el tercer método desarrollado de modelos de Machine Learning, mediante el cual los algoritmos aprenden por sí mismos, después del aprendizaje supervisado y el aprendizaje no supervisado. 

Reinforcement Learning o Aprendizaje por Refuerzo se basa en obtener recompensas ante el aprendizaje de una nueva tarea, es decir, consiste en entrenar modelos para la toma de decisiones sin requerir datos para el condicionamiento. De este modo, los datos se generan a través de un método de prueba y error, donde se marcan con una etiqueta.  

Durante varias fases de entrenamiento el algoritmo recibe marcas de recompensa cuando lleva a cabo la función correcta. Tras repetir la experiencia y verificar las recompensas recibidas, aprende por sí mismo. 

En definitiva, Reinforcement Learning, es un aprendizaje autónomo por el cual se aprende la acción que debe realizarse al interactuar con el entorno, recibiendo señales de error o recompensas en función de las acciones que se lleven a cabo. Es decir, el sistema busca encontrar la toma de decisiones más eficiente que le permita maximizar las recompensas. 

Ejemplos de aplicaciones de Reinforcement Learning 

Conducción autónoma: la toma de decisiones de conducción basadas en las entradas de cámaras es un área adecuada para reinforcement learning, teniendo en cuenta el éxito de las redes neuronales profundas en aplicaciones relacionadas con imágenes. 

Robótica: Reinforcement Learning puede ayudar en aplicaciones tales como el agarre robótico, por ejemplo, para enseñar a un brazo robótico a manipular diversos objetos para la aplicación del sistema pick-and-place. Otras aplicaciones de robótica incluyen colaboración humano-robot y robot-robot. 

Planificación: los problemas de planificación aparecen en muchos escenarios, incluidos los sistemas de control de semáforos y la coordinación de recursos en fábricas para cumplir objetivos. Reinforcement Learning es una buena alternativa a los métodos evolutivos para resolver estos problemas de optimización combinatoria. 

Calibración: las aplicaciones relacionadas con la calibración manual de parámetros, como, por ejemplo, la calibración de una unidad de control electrónico (ECU), pueden ser buenas candidatas para Reinforcement Learning. 

Videojuegos: los videojuegos son idóneos para el Reinforcement Learning, ya que incluyen diferentes entornos de simulación y opciones de control. Por lo general, el método de funcionamiento de los videojuegos es presentar un problema y obligar a resolverlo mediante tareas complejas, obteniendo puntuaciones o recompensas a cambio. Reinforcement Learning aprende jugando contra sí mismo para mejorar la experiencia del usuario. 

Beneficios del aprendizaje por refuerzo 

El aprendizaje por refuerzo es aplicable a una amplia gama de problemas complejos que no se pueden abordar con otros algoritmos de aprendizaje automático. RL está más cerca de la inteligencia artificial general (AGI), ya que posee la capacidad de buscar un objetivo a largo plazo mientras explora varias posibilidades de forma autónoma. Algunos de los beneficios de RL incluyen: 

  • Se enfoca en el problema como un todo.  Los algoritmos de aprendizaje automático convencionales están diseñados para sobresalir en subtareas específicas, sin una noción del panorama general. RL, por otro lado, no divide el problema en subproblemas; trabaja directamente para maximizar la recompensa a largo plazo. Tiene un propósito obvio, entiende el objetivo y es capaz de intercambiar recompensas a corto plazo por beneficios a largo plazo. 
  • No necesita un paso de recopilación de datos por separado. En RL, los datos de entrenamiento se obtienen a través de la interacción directa del agente con el entorno. Los datos de entrenamiento son la experiencia del agente de aprendizaje, no una colección separada de datos que se debe alimentar al algoritmo. Esto reduce significativamente la carga del supervisor a cargo del proceso de capacitación. 
  • Trabaja en entornos dinámicos e inciertos.  Los algoritmos de RL son inherentemente adaptables y están diseñados para responder a los cambios en el entorno. En RL, el tiempo importa y la experiencia que recopila el agente no se distribuye de forma independiente e idéntica, a diferencia de los algoritmos de aprendizaje automático convencionales. Dado que la dimensión del tiempo está profundamente arraigada en la mecánica de RL, el aprendizaje es inherentemente adaptativo. 

Conclusiones 

Este tipo de aprendizaje automático se centra en problemas complejos a través de un enfoque de ensayo y error. Sin duda alguna, RL se puede aplicar en diferentes ámbitos, desde las finanzas a los sistemas de recomendación hasta los videojuegos o la robótica. 

No obstante, también se debe tener en cuenta que es un método que requiere sesiones de entrenamiento con simulación, para en un futuro recibir las recompensas reales. En cualquier caso, el aprendizaje por refuerzo es un método del aprendizaje automático que permite resolver problemas cada vez más complejos y controlar gran variedad de procesos. 

En definitiva, se busca que la #AI sea capaz de resolver problemas de forma autónoma sin recibir instrucciones previas del ser humano. Este método demuestra ser más rápido y eficiente, y se espera obtener mejores resultados. 

¿Conocés a #TGA (https://www.tgacompany.com/) y todas las soluciones de gamificación basadas en modelos de machine learning?  

Categories
54cuatro

Desarrollando soluciones CV con Inteligencia Artificial en Azure

La visión por computadora, o #CV (Computer Vision) es un método exploratorio de imágenes por medio de la inteligencia artificial (#IA) que entrena a las computadoras para interpretar y comprender el mundo visual. Permite analizar fotos y/o vídeos con equipos tales como cámaras y que a partir de algoritmos de análisis pueden identificar y clasificar objetos que sirven para tareas tales como:

  • Reconocimiento de patrones/comportamientos
  • Procesamiento e interpretación de imágenes de video vigilancia
  • Análisis de imágenes multiespectrales
  • Modelado y reconstrucción 3D
  • Visión por computador en ciudades inteligentes para controles

¿Como puedo usar Azure para realizar desarrollos de Inteligencia Artificial?

#Microsoft ofrece servicios cognitivos a través de su plataforma #Azure por medio de su suite “Azure Cognitive Services“, desde donde se pueden analizar imágenes por medio de tecnología de CV, como también trabajar con Lenguaje y Voz.

Los servicios que se ofrecen tienen SDK y API disponibles. Para el caso puntual de esta nota, la parte de visión, actualmente cuenta con tres servicios:

  • Azure Computer Vision : para usar algoritmos de análisis de imágenes avanzados preexistentes.
  • Azure Custom Vision para crear, mejorar e implementar sus propios clasificadores de imágenes.
  • Rostro : para utilizar algoritmos faciales avanzados preexistentes para detectar y reconocer rostros humanos.

Casos Prácticos

El uso típico de las herramientas de CV se basan en enviar una imagen y obtener información detallada sobre las diversas características visuales (y atributos) que se encuentran en ella. Pero estos son algunos usos interesantes que se le puede dar a la visión por computadora:

  • Etiquetar características visuales: obtenga atributos que puedan servir como metadatos para la imagen.
  • Detectar objetos: observar imágenes/vídeos y poder detectar objetos, un caso practico podría ser detectar un automóvil mal estacionado
  • Detectar marcas: observar imágenes/vídeos y poder detectar marcas comerciales, esto podría ser de utilidad para una empresa que desea comparar su posicionamiento en anaqueles de un supermercado respecto a su competencia
  • Detectar rostros: observar imágenes/vídeos y detectar a una persona, de gran utilidad para seguridad, controles de acceso o incluso para onboarding digital. En este punto es importante destacar que Azure posee un servicio mas complejo, llamado Face Service dentro Azure Cognitive Services que permite detectar emociones, poses de la cabeza o la presencia de máscaras faciales

En caso de que lo que esté desarrollando sea muy especifico, se provee una suite llamada Custom Vision. Este módulo se centra en la creación de modelos personalizados para la detección de objetos.

Por lo general, esto requeriría un conocimiento avanzado de las técnicas de aprendizaje profundo (#deeplearning) y un gran conjunto de datos de entrenamiento, pero el uso de Custom Vision Service nos permite lograr esto con menos imágenes y sin experiencia en ciencia de datos (#datascience)

Lectura de Documentos

Otra gran funcionalidad que permite la visión por computadora, es la de reconocer textos. Como parte de la suite de Azure existe un modulo basado en #OCR (Reconocimiento óptico de caracteres) que permite leer texto impreso y escrito a mano desde imágenes y como complemento existe un servicio orientado puntualmente a la lectura de formularios llamado Form Recognizer. Esta herramienta no solo permite interpretar los datos de un formularios, sino que posibilita el procesamiento inteligente de formularios y la creación de los flujos de trabajo de automatización para documentos como recibos y facturas.

Es una herramienta de gran utilidad para la digitalización de procesos de empresas que aun dependen de la recepción de recibos de pagos de sus clientes en papel, de manera que el modelo puede reconocer formatos de los recibos, extraer los atributos (fecha y hora del pago, monto, impuestos, etc) y cargarlos en sus sistemas informáticos corporativos.

La visión por computadora es de gran utilidad para la digitialización de las compañías y organizaciones gubernamentales, ya que permiten realizar tareas repetitivas y monótonas a un ritmo más rápido y con menos errores, lo que simplifica el trabajo de los humanos.