Aprendendo Aprendizado de Máquina - primeiro passo

Machine Learning - ferramentas e frameworks...

Machine Learning - ferramentas e frameworks...

Outro dia comecei a participar de um grupo de estudos sobre Apredizagem de Máquina1 que é parte da disciplina de Inteligência Artificial2.

Considerando que o grupo tem usado como referência de estudos o método e biblioteca fast.ai3 dos professores Jeremy Howard e Rachel Thomas faz-se necessário a preparação de ambiente de estudo - seja ele na nuvem ou em um equipamento pessoal.

“fast.ai is dedicated to making the power of deep learning accessible to all” - fast.ai

Tendo em mente alguns dos custos para uso na nuvem e os estudos básicos que irei fazer, resolvi usar o meu próprio notebook - o que não será empecilho por enquanto por não ter uma GPU4.

primeiro passo

Parte essencial no arcabouço de estudos é ter o ambiente! Neste primeiro passo iremos preparar o ambiente de aprendizagem com algumas ferramentas e recursos para o fast.ai sob sistema operacional Linux Fedora 285.

Então vamos lá…

  1. instale o gerenciador de pacotes Conda6

    sudo dnf install conda python2-pathlib git
    
  2. clone com git o framework fast.ai7 que é a nossa referência de estudos em ML

    git clone https://github.com/fastai/fastai.git
    

    Lembre-se desse diretório de clonagem (a.k.a. FASTAI_HOME), pois este será o local de trabalho para o fastai.

  3. agora é a fase de preparação do ambiente de aprendizagem do fast.ai que requer a instalação de uma série de bibliotecas de data science e ML baseadas em Python. Como meu notebook não possui GPU é orientado preparar o ambiente apenas para uso de CPU. Assim usaremos a pré-configuração environment-cpu.yml

    cd fastai # FASTAI_HOME
    conda env update -f environment-cpu.yml
    

    Após um looongo tempo de instalação de bibliotecas para este ambiente, poderemos começar a usa-lo seguindo os demais pontos a seguir.

  4. uma vez que o passo anterior finalizou com sucesso a preparação do ambiente, poderemos passar a usa-lo. Para isso o conda tem o conceito de environments. Podem ser diversos, mas os nossos estudos serão no ambiente recém criado e nomeado fastai-cpu.

    • Para ativa-lo:
    conda activate fastai-cpu
    
    • Para lista de ambientes conda:
    conda info --env
    
    • Para desativar o ambiente conda ativo no momento:
    conda deactivate
    

    Leia a documentação do conda para ver outros comandos e mais detalhes.

Uma vez que tenhamos o ambiente fastai-cpu ativado com sucesso já poderemos começar a brincar mais e partir efetivamente para os estudos de referência.

O grupo de estudo irá serguir uma série de vídeos gravados8 pelo próprio professor Jeremy Howard em suas aulas.

We’ll be officially releasing a new course (tentatively) called Machine Learning For Coders soon (it’s not up on the website yet). It’s being recorded with the masters students at MSAN. I’ve decided to share the videos with you all as well, since for those of you that haven’t done any ML before, you might find this a helpful additional resource. It uses the same fastai library as our deep learning course, so your existing repo and AWS instance will work fine.” - Jeremy

Para que os alunos possam acompanhar a aula e ao mesmo tempo ver os “programas ML” e os resultados de sua execução, o professor Jeremy usa a ferramenta Jupyter notebook9. No ambiente que preparamos também podemos usar igualmente como o professor…

Com o ambiente fastai-cpu ativado e em seu diretório de trabalho FASTAI_HOME:

jupyter notebook # ou jupyter-notebook

O resultado deste comando será algo como:

jupyter-notebook logging
Observe que para encerrar o Jupyter-notebook faça Control-C ali.

O comando Jupyter acima irá automaticamente abrir o navegador padrão na página inicial do fastai permitindo navegação na estrutura de diretórios do projeto.

jupyter-notebook UI
Poderemos falar especicamente de Jupyter noutro artigo.

Para as aulas citadas a pasta alvo é: courses/ml1.

A partir daqui já podemos seguir a aula do Professor Jeremy e começar ao que viemos de fato:

Aprender Aprendizagem de Máquina

jupyter-notebook UI

A folha (notebook) da primeira aula: Random Forests, bagging, over-fitting…

Bons assuntos para falarmos num outro artigo!

Boas aulas!