Fastai | Cómo empezar ?

Por qué esta pregunta ?

La pregunta "¿Cómo comenzar con Fastai?" Puede parecer incongruente.

Solo mira el primer video, ¿verdad? No.

Tengo una doble experiencia con Fastai. Primero fui miembro de su programa de becas internacionales (partes 1 y 2) como estudiante desde octubre de 2017. Luego, con otros colegas, lancé en 2018 el primer grupo de estudio de Aprendizaje profundo en Brasilia utilizando el curso Fastai (parte 1, entonces hoy parte 2, así como la de ML). Así que también me convertí en instructor usando el contenido de Fastai.

Es sobre la base de esta doble experiencia con Fastai que publico hoy esta guía de inicio para los nuevos participantes de nuestro curso en Brasilia, así como para todos aquellos que desean comenzar su viaje a la Inteligencia Artificial (IA) utilizando Biblioteca Fastai.

Machine Learning en pocas palabras

El día en que el primer bebé con Inteligencia Artificial vendrá al mundo no es para mañana. Por el momento, cada IA ​​debe ser creada por el hombre ... ¡y necesitamos un código para eso!

Fuera del robot y la manipulación genética, la IA toma la forma de un algoritmo que debe ser entrenado para aprender (a menudo un modelo de redes neuronales artificiales).

En la práctica, los parámetros del algoritmo (también llamados pesos) inicialmente tienen valores aleatorios que se actualizan mediante observaciones (también llamadas ejemplos) que se proporcionan al algoritmo. Este método se llama "aprender de un conjunto de datos" o aprendizaje automático (los métodos de aprendizaje profundo hoy en día muy populares y ampliamente utilizados son el aprendizaje automático con una gran profundidad de cálculos).

De hecho, cada observación proporcionada al algoritmo le permite calcular un resultado predictivo (a menudo una probabilidad) de la naturaleza de esta observación, a través de operaciones matemáticas realizadas con sus parámetros (por ejemplo, si la observación es una imagen de un gato, el predictivo El resultado debe indicar la clase correspondiente a un gato). El error con respecto al valor verdadero de la observación permite una actualización de los valores de los parámetros (a menudo mediante el uso del método de BackPropagation del gradiente del error).

La capacitación continuará con una nueva observación y así sucesivamente.

Bibliotecas para implementar Machine Learning

El Machine Learning (ML) es, por lo tanto, tener datos, capacidad computacional ... y algoritmos. Por lo tanto, debemos usar un lenguaje de codificación para implementar estos algoritmos, entrenarlos, probarlos y luego usarlos en la producción.

Desde el comienzo de la década de 2010, la fecha que marca el comienzo del uso a gran escala de la inteligencia artificial, el lenguaje Python se ha convertido en el lenguaje para el desarrollo de algoritmos ML y Deep Learning (DL) en las notebooks Jupyter.

Dado que las arquitecturas de estos algoritmos están a punto de estandarizarse, se han desarrollado bibliotecas para facilitar su uso como TensorFlow (Google) con Keras, y luego PyTorch (Facebook) con Fastai.

Fastai, más que una biblioteca

Fastai es una biblioteca de implementación de algoritmos ML y DL y también el título de un curso que comenzó en el Instituto de Datos de la Universidad de San Francisco y ahora está disponible en línea (1 curso sobre ML y 2 cursos sobre DL).

Pero sus creadores Jeremy HOWARD y Rachel THOMAS fueron más allá. También es un nuevo método de aprendizaje de arriba hacia abajo que permite aprender haciendo, así como una comunidad de más de 10,000 personas hoy (lea "Lanzamiento fast.ai" de Jeremy Howard, octubre de 2016).

Cada curso tiene un video de descarga gratuita, hilo de foro y cuadernos jupyter que se ejecutan a través de la biblioteca fastai.

¿Cómo comenzar con Fastai? La guía en 4 pasos.

Vi demasiados participantes en nuestro curso en Brasilia, ya sea para parar o no poder aprovechar realmente el curso debido a 4 razones principales: python, cuadernos Jupyter, GPU y tarea.

1) Python

Python es el lenguaje de programación utilizado en el curso Fastai y sus cuadernos. Si no es esencial ser un especialista en python para seguir el curso de Fastai, es necesario tener una práctica mínima.

Cursos online:

  • Primer cuaderno de Python
  • Tutoriales de Python Data Science
  • Cursos de Python en Coursera
  • Libro: Aprendizaje profundo con Python (François Chollet)

Las 2 siguientes bibliotecas de Python son muy utilizadas en los cuadernos Fastai, pero puede aprenderlas durante el curso (no son requisitos previos).

NumPy

NumPy es el paquete fundamental para la computación científica con Python. Permite operaciones matematicas en matrices, matrices, vectores y tensores de alta dimensión como si fueran variables de Python.

Cursos en línea: Tutorial Numpy y Tutorial Python Numpy.

Pandas

Pandas es una biblioteca de código abierto con licencia BSD que proporciona estructuras de datos de alto rendimiento y fáciles de usar (por ejemplo, archivos csv) y herramientas de análisis de datos para el lenguaje de programación Python. Pandas funciona muy bien con NumPy.

  • Curso de Introducción a Análise de Dados (en portugués)
  • Cursos en línea: lista de tutoriales sobre pandas.

2) cuaderno Jupyter

Project Jupyter existe para desarrollar software de código abierto, estándares abiertos y servicios para computación interactiva en docenas de lenguajes de programación y, en particular, Python. Utilizará una computadora portátil Jupyter para implementar todos sus algoritmos ML o DL.

Cursos online :

  • 1: 30: 521: Introducción a los cuadernos Jupyter
  • Comandos y atajos de Jupyter Notebook
    - Comandos y atajos de Jupyter Notebook1
    - 28 consejos, trucos y atajos para el cuaderno Jupyter
  • Usar "celdas jupyter plegables / expandibles" en los cuadernos seus jupyter
  • Una galería de interesantes cuadernos de Jupyter: https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks1

3) GPU

Una vez que conozca al menos Python y sepa cómo usar una computadora portátil Jupyter, debe instalar la biblioteca Fastai y sus computadoras portátiles en un servidor con GPU.

Nota: si no tiene una GPU NVIDIA local y no desea usar una en línea, puede instalar Fastai en su computadora y usar solo su CPU, pero luego puede llevar un tiempo obtener el resultado del entrenamiento de su ML / Modelo DL ...

¿Por qué una GPU? Lo necesita cuando entrena un algoritmo ML o DL para reducir el tiempo de entrenamiento. Sin una GPU, no podrá entrenar "fácilmente" un algoritmo ML o DL con millones de datos.

Además de la instalación de la CPU local, tiene 2 posibilidades: configurar su GPU local si su computadora tiene una, como una GPU NVIDIA, o puede alquilar una en línea usando Google Cloud, Google Colab, PaperSpace, AWS u otras.

Guías en línea: lea el párrafo "GPU (Unidades de procesamiento gráfico)" del artículo "Aprendizaje profundo Brasilia - Revisión" o enlaces a continuación.

CPU local

Lea el documento README.md pero siga los pasos a continuación:

  1. instalar Anaconda para Windows
  2. Abre el terminal "Anaconda Prompt" (que fue instalado por Anaconda) y digita los siguientes comandos en este terminal.
  3. mkdir fastai (para crear la carpeta fastai)
  4. cd fastai (para ingresar a la carpeta fastai)
  5. git clone https://github.com/fastai/fastai.git (para descargar los archivos Fastai, incluidos cuadernos y archivos para instalar el entorno virtual fastai-cpu: pytorch, bibliotecas numpy, pandas, bcolz, etc.)
  6. conda env update -f environment-cpu.yml (IMPORTANTE: use el archivo environment-cpu.yml porque desea usar su CPU, no una GPU)
  7. conda active fastai-cpu (para activar el entorno virtual fastai-cpu)
  8. cd cursos \ ml1 (ingrese en la carpeta ml1 por ejemplo)
  9. del fastai (elimine el enlace simbólico fastai que se creó para ejecutarse en el entorno bash)
  10. mklink / d fastai .. \ .. \ fastai (cree el enlace simbólico windows fastai a la carpeta fastai que tiene los archivos de la biblioteca Fastai)
  11. cd .. \ .. (salga de la carpeta ml1 para volver a la raíz de la carpeta creada en el paso 3)
  12. notebook jupyter (inicie la notebook jupyter que se abrirá en un navegador web)

“Et voilà”: tiene la biblioteca Fastai (y sus notebooks) instalada en su computadora con CPU y puede ejecutar todas las notebooks de la carpeta ml1.

GPU local

  • Cómo: instalación en Windows

GPU en línea

  • Google Cloud Platform (crédito de 300 $)
  • Paperspace (crédito de 15 $)
  • Clouderizer + Google Colab (¡GRATIS!)
  • Servicios web de Amazon (AWS)
  • Crestle

¡No olvides apagar tu máquina virtual!

4) tarea

Jeremy Howard habla de 10 horas de trabajo personal para cada video de su clase ... ¡y tiene razón!

De hecho, si quieres aprender a hacer ML y DL y no solo entender los principios, debes PRACTICAR.

Los elementos presentados anteriormente (en resumen, conocer el lenguaje de Python y cómo usar una computadora portátil Jupyter, y haber instalado la biblioteca Fastai en una GPU) son requisitos previos NECESARIOS pero no suficientes.

Para aprender realmente, debe ver videos varias veces, ejecutar los cuadernos de Fastai, estudiar las líneas de códigos, hacer preguntas en el foro de Fastai cuando no entienda, responder las preguntas formuladas por otros y publicar artículos para mejorar su comprensión. ¡Esto es un verdadero aprendizaje!

Una palabra más: ¡DISFRUTA! :-)