Cursos e Livros

Aprender Deep Learning: os 3 melhores cursos em Python

Carlos Melo
Escrito por Carlos Melo em 13/06/2019
Aprender Deep Learning: os 3 melhores cursos em Python
Junte-se a mais de 3.500 pessoas

Entre para nossa lista e receba conteúdos exclusivos e com prioridade

No artigo de hoje, quero compartilhar com vocês 3 cursos que considero excelentes para você aprender deep learning e implementar seus próprios códigos.

Apesar de haver muito conteúdo disponível na internet, eu sempre fiquei perdido sobre qual livro/curso escolher entre aquela infinidade de material disponível.

Cursos online grátis para aprender deep learning em Python.
Veja os melhores cursos grátis para aprender Deep Learning

Normalmente, eu acabava caindo em dois extremos: encontrava um bom curso, porém 100% teórico, ou achava cursos em que a única preocupação do autor era usar bibliotecas prontas, sem explicar nada da teoria.

O que eu trago aqui são os 3 cursos que mais gostei, que na minha opinião são os mais completos, e que trazem um bom equilíbrio entre teoria e prática.

Obviamente, não são os únicos existentes para se aprender deep learning (e talvez você tenha outras sugestões melhores), mas estes com certeza vão contribuir muito para você ir mais deep no universo da Inteligência Artificial.

Se você está começando na área de Data Science, recomendo baixar meu eBook, para saber mais sobre a carreira, salários e mais dicas de cursos gratuitos 🙂

1. Deep Learning Specialization (Coursera)

A especialização em deep learning é minha primeira recomendação, definitivamente. Apenas o fato de o cara por trás do curso ser o Andrew Ng, já seria de extrema relevância. Mas além de tudo, a divisão dos módulos e a estrutura preparada para este curso dentro da plataforma Coursera ficou ótima!

Andrew Ng é uma das pessoas mais influentes do mundo no campo de Inteligência Artificial , um dos fundadores do Coursera, professor adjunto na Universidade Stanford, criador do Google Brain, chefe de pesquisas do Baidu, entre várias outras coisas. Ele ficou muito conhecido pela comunidade graças ao seu primeiro curso de machine learning, lançado há alguns anos na Coursera.

Como aprender deep learning em Python - Especializacão da Coursera  (Andrew Ng)
Figura 1 – Curso de especialização em Deep Learning da Coursera, com Andrew Ng.

Bom, mantendo a mesma qualidade de teoria e exercícios práticos que consagraram o instrutor, eis que está disponível uma especialização completa composta de 5 cursos!  Usando Python como linguagem e Jupyter/iPython Notebooks para documentar todo o processo, todo o código roda diretamente no servidor da Coursera – ou seja, você não vai perder tempo instalando ambientes virtuais, pacotes, etc.

Abrangendo as principais áreas da deep learning, veja como a especialização está dividida:

Curso 1 – Neural Networks and Deep Learning

Este primeiro módulo vai ensinar os fundamentos da deep learning, mostrando as tendências atuais na área, e ensinando a construir na mão (from scratch) redes neurais profundas (deep neural networks).

O Andrew Ng também dá uma atenção especial em detalhar para o aluno a importância de se fazerem implementações vetorizadas, explicando a matemática por trás de operações de Algebra Linear e dando um curso rápido (opcional) sobre a biblioteca numpy.

Ou seja, ele vai mergulhar nos conceitos-chaves das arquiteturas das redes, deixando o aluno apto a colocar os conceitos aprendidos em aplicações diversas.

Curso 2 – Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization

Aprendeu a construir suas próprias redes neurais profundas? Que tal melhorar a performance delas entendendo conceitos como hiper-parametrização e otimização?

Neste módulo você vai entender as melhores práticas modernas para construir aplicações deep learning. São abordados conceitos como batch normalizationdropout regularization, por exemplo.

Também são apresentados métodos de otimização (minimizar a loss function) melhores que o Gradient Descent (GD) introduzido no Módulo 1, assim como outros parâmetros que irão melhorar a convergência.

Por fim, você será capaz de implementar 100% uma rede neural no TensorFlow.

Curso 3 – Structuring Machine Learning Projects

Neste terceiro curso, o instrutor compartilha sua experiência pessoal sobre como construir e entregar produtos deep learning.

Ao término do módulo, é esperado que você tenha capacidade de entender e diagnosticar erros em um sistema de machine learning, entender as configurações complexas em um sistema de aprendizado.

Replicando a informação da descrição do módulo, este é um curso que pode ser feito fora da sequência, isoladamente. Tudo que você precisa é de conhecimentos básicos em machine learning.

Curso 4 – Convolutional Neural Networks

Chegamos ao meu curso preferido – definitivamente fui abduzido pela área de Computer Vision. Eis aqui o momento da especialização que trata sobre Redes Neurais Convolucionais (admito que quando comecei a especialização, não consegui terminar o Curso 1 antes deste aqui).

Acho essa área tão fantástica por que considero (opinião totalmente pessoal) a técnica mais disruptiva de todas, e que está revolucionando áreas como a medicina e de carros autônomos – apenas para citar dois exemplos.

Aqui você vai aprender os fundamentos sobre trabalhar com imagens, e vai construir sua rede neural convolucional na raça, e aplicá-la diretamente nos exercícios preparados pelo Andrew Ng. Além de aplicar sua rede em tarefas de reconhecimento e classificação de imagens, verá ainda um sub-módulo sobre “transferência de estilo” para gerar arte.

Figura 2 – Exercício prático do Curso 3, onde você implementa o YOLO para detectar carros.

O instrutor faz ainda um review detalhado e muito didático sobre as principais arquiteturas modernas de redes convolucionais, entra em conceitos como data augmentation, e evolui até os complexos problemas de detecção de objetos.

Para ter noção da profundidade deste módulo, em um dos exercícios práticos você vai  implementar o sistema YOLO, estado da arte para detecção de objetos em tempo real, para detectar carros em frames de um vídeo.

Curso 5 – Sequence Models

Finalizando a especialização, aqui você vai aprender a construir modelos de Processamento de Linguagem Natural (PLN) e outros modelos sequenciais.

Entre os assuntos abordados aqui, estão Recurrent Neural Networks (RNNs) e algumas variantes comumente encontradas, como GRUs e LSTMs.

Ao final do módulo você vai poder aplicar as estruturas a problemas de linguagem natural e à aplicações envolvendo reconhecimento de fala.

2. Fast.ai

O curso da fast.ai é muito recomendado para todos os níveis de conhecimento em deep learning, mas especialmente recomendados para aqueles que estão começando do zero. Como está escrito no próprio site, o curso inicial não requer pré-requisito de conhecimento em machine learning.

Segundo a definição do fundador do site fast.ai, Jeremy Howard, o objetivo desse MOOC (Massive Open Online Course) é “tornar o poder da deep learning acessível para todos”.

Quem já ouviu algum discurso ou palestra do Jeremy Howard na internet, sabe que ele acredita profundamente que para uma tecnologia atingir seu potencial pleno de impacto na sociedade, é necessário que esta seja muito fácil de usar, confiável e muito intuitiva.

Com esse pensamento na cabeça, o curso todo é pensado em todos tipos de público alvo, e é feito para que qualquer pessoa com apenas 1 ano de experiência em programação possa sair ao final da primeira aula escrevendo uma rede neural convolucional capaz de atingir mais de 97% de acurácia no desafio Dogs vs. Cats do KaggleOu seja, abordagem top-down, com hands-on desde o primeiro minuto.

Para justificar esse método utilizado (primeiro se aprende na prática e somente depois se estudam os conceitos de deep learning), Howard faz uma analogia com as aulas de música: faria sentido você estudar teoria musical durante 6 anos (em um curso de piano) para somente no final começar a tocar de fato o instrumento?

Como aprender deep learning em Python - Fast.ai  (Jeremy Howard)
Figura 3 – Aula sobre detecção de objetos com deep learning, do site fast.ai.

Para tornar possível uma pessoa com pouquíssimo conhecimento escrever aplicações deep learning , Jeremy Howard e Rachel Thomas (co-fundadora do site) desenvolveram um framework robusto e completo, e escreveram bibliotecas prontas, que atingem tanto desenvolvedores como usuários finais.

O curso todo é realizado em instâncias da Paperspace (para fazer uso do poder das GPUs) e é muito bem documentado (wiki, fórum, Jupyter notebooks, etc). O mesmo é dividido em 2 partes, cada uma com 7 módulos completos (detalhes da Parte 1 e Parte 2 aqui).

Então, se esse é seu primeiro contato com deep learning, recomendo dar uma checada no fast.ai e ver logo as aplicações na prática. Assim você prototipa rapidamente suas ideias e vê se realmente gostou de vivenciar a área.

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

JEREMY HOWARD

3. CS231n: Convolutional Neural Networks for Visual Recognition

O curso CS231n é um curso específico para a área de Computer Vision. Ministrado ao longo de 10 semanas de aulas em Stanford, a teoria é excelente e detalhada, e os exercícios são bem práticos.

Neste curso, você vai entrar nos detalhes das arquiteturas de deep learning, botando a mão na massa para implementar, treinar e debugar as redes neurais apresentadas. O destaque do CS231n vai para o fato de que os detalhes da matemática envolvida são bem acadêmicos e completos (que tal entender as derivações da backpropagation, por exemplo).

Como aprender deep learning em Python - CS 231n (Stanford)
Figura 4Slide do curso CS231n de Stanford sobre Redes Neurais Convolucionais. Fonte: CS231n.

Na primeira parte do curso, é dada uma introdução sobre o contexto histórico da Computer Vision, e são apresentadas as primeiras abordagens rudimentares usadas para resolver problemas de classificação (K-nearest neighbor, classificação linear, etc).

Evoluindo os conceitos, são abordadas as redes neurais, o algoritmo backpropagation, as redes neurais convolucionais, problemas de detecção e segmentação, entre outros conceitos mais avançados. A programação completa das aulas está no Syllabus do curso. Detalhe importante, apenas os vídeos de 2017 se encontram liberados para não-alunos.

Para os exercícios, é utilizado o Google CloudHá um notebook bem detalhado sobre como o aluno deve criar sua instância, conectar via SSH e acessar os exercícios nessa instância.

Apesar de haverem exercícios práticos muito bem elaborados, este é um curso acadêmico, com ênfase na teoria. Você vai ver muita derivada parcial, operações de vetores e matrizes, e ver conceitos bem avançados de matemática.

Por isso, este é um curso recomendado apenas caso você queira dominar o assunto e possua conhecimentos sólidos de Cálculo, Algebra Linear, Probabilidade, Estatística e Python.

Aprender deep learning em 2019

Obviamente eu não conheço todos os cursos disponíveis para aprender deep learning – na verdade eu também estou apenas começando a me aprofundar na área.

Entretanto, quis trazer minha opinião sobre estes três cursos que, dentre todos que eu já tive contato ou realizei, são os que eu considero com melhor estrutura e qualidade:

  • Especialização em deep learning (Coursera) – Tendo como instrutor o renomado Andrew Ng, este curso aborda os principais aspectos teóricos e práticos de maneira bem completa. Composto por 5 cursos, esta seria minha recomendação pessoal como o melhor de todos.
  • fast.ai – Curso 100% hands-on, que utiliza uma abordagem top-down. Nele você já constrói uma rede neural convolucional estado-da-arte logo na primeira aula. Recomendado para todos os níveis de conhecimento, porém fortemente recomendado se você está apenas começando e não possui conhecimento em machine learning.
  • CS231N (Stanford) – Curso com foco maior na teoria (bastante aprofundado nos aspectos matemáticos). Focado na área de Computer Vision, este curso é recomendado apenas se você quer dominar os conceitos teóricos e entender matematicamente os detalhes por trás das redes neurais convolucionais.

Por fim, se você tem alguma sugestão sobre cursos ou livros que você também recomendaria, deixe registrado nos comentários, e ajude a divulgar mais material de qualidade sobre esse campo fantástico da deep learning.

Recomendo você ver este artigo mostrando como o deep learning pode ser aplicado também no Setor Espacial, e oportunidades para você nesta área 🙂

Hey,

o que você achou deste conteúdo? Conte nos comentários.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Entre para nossa lista e receba conteúdos exclusivos e com prioridade

Junte-se a mais de 3.500 pessoas

FAQ e Curso
Curso Data Science