Tag: Machine Learning

Netflix es la red de televisión por Internet líder en el mundo con más de 160 millones de miembros en más de 190 países. Sus usuarios disfrutan de cientos de millones de horas de contenido al día, incluidas series originales, documentales y largometrajes. Es por ello, que para mejorar la experiencia de sus usuarios y optimizar sus servicios, Netflix invierte en la investigación y desarrollo de tecnología como el Machine Learning, utilizando en muchas áreas donde prototipan, diseñan, implementan, evalúan y producen modelos y algoritmos tanto a través de experimentos off line como con pruebas A-B on line.

Como hemos dicho, el Machine Learning tiene un impacto en muchas áreas de Netflix. Históricamente, la personalización ha sido el área más conocida, donde el aprendizaje automático impulsa algoritmos de recomendación para ofrecer a sus usuarios contenidos en base a sus perfiles. Sin embargo, también utilizan el aprendizaje automático con otras finalidades como:

  • Ayudar a dar forma al catálogo de películas y programas de televisión al aprender las características que hacen que el contenido sea exitoso.
  • Optimizar la producción de películas y programas de TV originales en el estudio de rápido crecimiento de Netflix.
  • Optimizar la codificación de vídeo y audio, la selección de velocidad de bits adaptativa y su red de entrega de contenido interna que representa más de un tercio del tráfico de Internet de América del Norte.
  • También, potencia el gasto en publicidad, mezcla de canales y creatividad publicitaria para que puedan encontrar nuevos miembros que disfrutarán de Netflix.

El uso generalizado del aprendizaje automático en Netflix presenta muchos desafíos nuevos en los que deben impulsar el estado de la técnica. Esto significa generar nuevas ideas y probarlas, ya sean nuevos modelos y algoritmos o mejoras a los existentes, mejores métricas o metodologías de evaluación, y abordar los desafíos de escala. Netflix presta especial atención a la investigación en esta área abarcando muchos enfoques algorítmicos diferentes que incluyen modelado causal, bandidos, aprendizaje por refuerzo, conjuntos, redes neuronales, modelos gráficos probabilistas y factorización matricial.

Fuente: Netflix Research

  • Un año más, durante el próximo curso académico 2020/2021 ITELLIGENT será la empresa colaboradora que participe en la IV Edición del Curso «Python: Machine Learning, Optimización y Aplicaciones» de la Universidad de Sevilla.
  • El plazo de prescripción termina el 20 de septiembre de 2020.

Si eres graduado o alumno de Máster y/o Doctorado y quieres seguir formándote, te invitamos a que prestes atención a las oportunidades que te puede brindar este Curso de Formación Permanente del Vicerrectorado de Ordenación Académica de la Universidad de Sevilla. También, pueden inscribirse cualquier persona interesada con conocimientos previos de programación ni tampoco es necesario en Python.

ITELLIGENT, como empresa colaboradora, participa activamente con la impartición de algunas sesiones formativas a lo largo del curso. Los encargados de ello son: Jaime Martel, CTO de ITELLIGENT y Mario Rivas, Ingeniero de I+D+i. Entre el resto de profesorado se encuentran docentes de la Universidad de Sevilla especialistas en diversos disciplinas: Ingeniería Electrónica, Geografía Física y Análisis Geográfico Regional y Administración de Empresas y Marketing. Por último, cabe destacar la figura de Sergio Luis Toral (Departamento Ingeniería Electrónica) como Director de los estudios a quien los interesados en el curso pueden dirigirse a través del mail y teléfono de la siguiente imagen.

Python iv edicion

Los principales objetivos del curso son:

  1. Proporcionar una introducción al lenguaje de programación Python y a sus principales módulos (Numpy, Scipy y Matplotlib)
  2. Introducir desde un perspectiva teórico-práctica técnicas de machine learning de regresión, clasificación y clustering, utilizando el módulo scikit-learn en Python
  3. Introducir desde un perspectiva teórico-práctica técnicas de optimización metaheurísticas basadas en trayectoria y en población, utilizando el módulo DEAP en Python
  4. Introducir desde un perspectiva teórico-práctica técnicas de deep learning, incluyendo las Fully Connected Networks, Convolutional Neural etworks (CNNs) y Recurrent Neural Networks (RNNs)
  5. Aplicaciones comerciales

Para más información visita la web del curso o descárgate este folleto.

PyTorch es un framework de Machine Learning de código abierto creado para ser flexible y modular para la investigación, con la estabilidad y el soporte necesarios para el despliegue de producción. PyTorch proporciona un paquete de Python para funciones de alto nivel como el cálculo de tensor (como NumPy) con una fuerte aceleración de GPU y TorchScript para una transición fácil entre el modo «eager» y el modo gráfico. Con la última versión de PyTorch, el framework proporciona ejecución basada en gráficos, capacitación distribuida, implementación móvil y cuantización. La sencillez de su interfaz, y su capacidad para ejecutarse en GPUs (lo que acelera el entrenamiento de los modelos), lo convierten en la opción más asequible para crear redes neuronales artificiales.

Originalmente desarrollado por Facebook AI Research, PyTorch ha sido a su vez una pieza fundamental en el desarrollo de relevantes aplicaciones de Inteligencia Artificial, como el Autopilot de Tesla y el Pyro de Uber. Gracias a su facilidad de uso, PyTorch se ha convertido en uno de los frameworks de Deep Learning más populares del mundo, al que sólo hacen sombra Tensorflow y Keras, ambos respaldados por el patrocinio de Google. En este artículo (en inglés), puedes descubrir las diferencias entre PyTorch y TensorFlow.

¿Por qué PyTorch es el framework de Deep Learning del futuro?

A continuación, te exponemos las diez razones por las que PyTorch es uno de los framework de aprendizaje profucndo más populares a nivel mundial:

1. Python es uno de los lenguajes de programación más populares utilizados por los científicos de datos, para construir modelos de Machine Learning. PyTorch está diseñado para integrarse perfectamente con Python y sus bibliotecas populares como NumPy.

2. Fácil de aprender. PyTorch es más fácil de aprender que otros frameworks de Deep Learning. Esto se debe a que su sintaxis y aplicación son similares a muchos lenguajes de programación convencionales como Python.La documentación de PyTorch también es muy organizada y útil para principiantes. Más adelante os mostraremos recursos para aprender PyTorch.

3. Mayor productividad del desarrollador. PyTorch es muy simple de usar, lo que también significa que la curva de aprendizaje para los desarrolladores es relativamente corta. PyTorch tiene una interfaz Python simple y proporciona una API simple pero potente. PyTorch también se puede implementar fácilmente en Windows y Linux.

4. Debugging (depuración) fácil. Como PyTorch está profundamente integrado con Python, muchas herramientas de depuración de Python también se pueden usar en el código PyTorch. Específicamente, las herramientas pdb e ipdb de Python se pueden usar para este tipo de depuración en PyTorch.

5. Data Parallelism. PyTorch tiene una característica muy útil conocida como paralelismo de datos. Con esta función, PyTorch puede distribuir el trabajo computacional entre múltiples núcleos de CPU o GPU

6. Support de gráfico dinámico. PyTorch admite gráficos computacionales dinámicos, lo que significa que el comportamiento de la red se puede cambiar mediante programación en tiempo de ejecución. Esto facilita una optimización de modelo más eficiente y le da a PyTorch una gran ventaja sobre otros frameworks de aprendizaje automático, que tratan las redes neuronales como objetos estáticos. Con este enfoque dinámico, podemos ver todos y cada uno de los cálculos y saber exactamente lo que está sucediendo. Cuando el flujo de datos y las operaciones correspondientes se definen en tiempo de ejecución, la construcción del gráfico computacional ocurre dinámicamente. Esto se hace con la ayuda de la clase de autogrado implícitamente.

7. PyTorch también proporciona un nuevo front-end híbrido. Esto significa que tenemos dos modos de operación, a saber, el modo «eager» y el modo gráfico. Generalmente utilizamos el modo «eager» para la investigación y el desarrollo, ya que este modo proporciona flexibilidad y facilidad de uso. Y generalmente utilizamos el modo gráfico para la producción, ya que esto proporciona una mejor velocidad, optimización y funcionalidad en un entorno de tiempo de ejecución C ++.

8. Bibliotecas útiles. Una gran comunidad de desarrolladores ha creado muchas herramientas y bibliotecas para extender PyTorch. La comunidad también está apoyando el desarrollo en visión por computadora, aprendizaje de refuerzo y mucho más.

9. PyTorch tiene soporte nativo de ONNX y puede exportar modelos en el formato estándar de intercambio de red neuronal abierta. Esto permitirá que los modelos basados ​​en PyTorch accedan directamente a las plataformas y tiempos de ejecución compatibles con ONNX.

10. PyTorch también es bien recibido por las principales plataformas en la nube, lo que permite a los desarrolladores e ingenieros realizar trabajos de capacitación a gran escala en GPU con PyTorch. El soporte en la nube de PyTorch también proporciona la capacidad de ejecutar modelos en un entorno de producción.

learning pytorch

Recursos para aprender PyTorch

Gracias a Internet, podemos acceder a un gran numero de recursos gratuitos para aprender PyTorch. La propia web de PyTorch ofrece una serie de herramientas -en inglés- como son:

  • La guía de referencia de la API: https://pytorch.org/docs/stable/index.html
  • Videotutoriales de 60 minutos: https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html
  • Tutoriales: https://pytorch.org/tutorials/
  • Recetas de ejemplos de códigos: https://pytorch.org/tutorials/recipes/recipes_index.html
  • Manual: Deep Learning with PyTorch

Sin embargo si necesitas mejor videotutoriales en español, existe el canal de YouTube Not CSV el cual posee una interesante introducción a PyTorch dividida en dos vídeos de una hora cada uno.

Por otro lado, existen otros recursos formativos muy útiles fuera de la web de PyTorch como: