Introducción a Machine Learning en AWS

 

Introducción a Machine Learning sobre AWS

Inteligencia artificial 

Durante muchas décadas, los investigadores han intentado simular la actividad del cerebro humano a través del campo conocido como inteligencia artificial. En 1956, un grupo de personas se reunió en el Proyecto de Investigación de Verano de Dartmouth sobre Inteligencia Artificial, un evento que es ampliamente aceptado como la primera discusión grupal sobre la IA tal como la conocemos hoy. Los investigadores intentaban demostrar que muchos aspectos del proceso de aprendizaje podían describirse con precisión y, por lo tanto, ser automatizados y replicados por una máquina. ¡Hoy sabemos que tenían razón!

En este campo aparecieron muchos otros términos, como aprendizaje automático (ML) y aprendizaje profundo (DL). Estas subáreas de la IA también han estado evolucionando durante muchas décadas (por supuesto, aquí no hay nada nuevo para la ciencia). Sin embargo, con el avance natural de la sociedad de la información y, más recientemente, el advenimiento de las plataformas de big data, las aplicaciones de IA han renacido con mucho más poder y aplicabilidad. Potencia, porque ahora tenemos más recursos computacionales para simularlos e implementarlos; aplicabilidad, porque ahora la información está en todas partes.

Incluso más recientemente, los proveedores de servicios en la nube han puesto IA en la nube. Esto está ayudando a empresas de todos los tamaños a reducir sus costos operativos o incluso a permitirles probar aplicaciones de inteligencia artificial (considerando que podría ser demasiado costoso para una empresa pequeña mantener su propio centro de datos).



Machine Learning 

ML(Machine Learning) es una subárea de la IA (Inteligencia artificial) que tiene como objetivo crear sistemas y máquinas que puedan aprender de la experiencia, sin estar programados explícitamente. Como sugiere el nombre, el sistema puede observar su entorno de ejecución, aprender y adaptarse sin intervención humana. Los algoritmos detrás de los sistemas ML generalmente extraen y mejoran el conocimiento de los datos que están disponibles para ellos, así como las condiciones (como los hiperparámetros), y retroalimentan después de probar diferentes enfoques para resolver un problema en particular.


Existen diferentes tipos de algoritmos de Machine Learning; por ejemplo, podemos enumerar redes neuronales, probabilísticas y basadas en árboles de decisión. Cada una de estas clases puede tener docenas de algoritmos específicos. 
Deep Learning (DL) es un subconjunto de ML(Machine Learning) que tiene como objetivo proponer algoritmos que conectan múltiples capas para resolver un problema en particular. Luego, el conocimiento se transmite capa por capa hasta que se encuentra la solución óptima. El tipo más común de algoritmo DL son las redes neuronales profundas.

DL es un tema muy candente en el campo del AA. La mayoría de los algoritmos de última generación para traducción automática, subtítulos de imágenes y visión por computadora se propusieron en los últimos años y forman parte de DL.

  • scikit-learn: Este es un paquete Python de código abierto que proporciona implementaciones de algoritmos ML como árboles de decisión, máquinas de vectores de soporte, regresión lineal y muchos otros. También implementa clases para el preprocesamiento de datos, por ejemplo, codificación one-hot, un codificador de etiquetas, análisis de componentes principales, etc. Todos estos métodos de preprocesamiento (y muchos otros).
  • MXNet es otra biblioteca DL de código abierto. Con MXNet, podemos escalar modelos basados ​​en redes neuronales utilizando varias GPU que se ejecutan en varias máquinas. También es compatible con diferentes lenguajes de programación, como Python, R, Scala y Java.
  • La compatibilidad con la unidad de procesamiento gráfico (GPU) es particularmente importante en bibliotecas DL como TensorFlow y MXNet. Estas bibliotecas permiten a los desarrolladores crear e implementar modelos basados ​​en redes neuronales con múltiples capas. El proceso de entrenamiento de las redes neuronales depende mucho de las operaciones matriciales, que funcionan mucho mejor en las GPU que en las CPU. Es por eso que estas bibliotecas DL ofrecen compatibilidad con GPU. AWS también ofrece instancias EC2 con GPU habilitada.

  • AWS ha implementado servicios de aprendizaje automático en diferentes niveles de abstracción. Los servicios de aplicaciones de aprendizaje automático, por ejemplo, tienen como objetivo ofrecer soluciones listas para usar para dominios de problemas específicos. AWS Lex es un ejemplo muy claro de una aplicación ML como servicio, donde las personas pueden implementar chatbots con un desarrollo mínimo.
  • AWS Rekognition es otro ejemplo, cuyo objetivo es identificar objetos, personas, texto, escenas y actividades en imágenes y videos.
  • Además de los servicios de aplicaciones, AWS también proporciona plataformas de desarrollo ML, como es el caso de SageMaker. A diferencia de los servicios listos para usar como AWS Lex y Rekognition, SageMaker es una plataforma de desarrollo que permite crear, entrenar e implementar sus propios modelos con mucha más flexibilidad.





Comentarios

Entradas más populares de este blog

Mejores practicas para migración de datos a Salesforce

AWS Lambda

Modelado de datos en Salesforce