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.
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.
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.
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 normalization e dropout 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.
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 Kaggle. Ou 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?
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).
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 Cloud. Há 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.
Aprenda Deep Learning comigo na Escola de Data Science
Se você está buscando um treinamento em português, com todo material de apoio e reconhecido como um dos melhores do Brasil, eu quero te convidar a conhecer a Escola de Data Science.
Além de aulas semanais ao vivo, você conta com cursos e masterclasses exclusivas. São mais de 150 horas de conteúdo disponíveis imediatamente após a sua matrícula.
Você terá acesso também a uma sequência de aulas onde eu explico a teoria e matemática por trás das Redes Neurais profundas, como utilizar a biblioteca TensorFlow e ainda farei alguns projetos práticos para você colocar no seu portfólio.
Clique aqui e se inscreva agora na maior Escola de Data Science do Brasil.