Home
Login

Quarta Etapa: Aprendizado Profundo e Redes Neurais

Livro didático de aprendizado profundo de código aberto que combina teoria, código e prática, suporta múltiplas implementações de framework e fornece um caminho completo de aprendizado de aprendizado profundo do iniciante ao avançado.

DeepLearningPyTorchNeuralNetworksWebSiteebookFreeMulti-Language

Introdução Detalhada ao Curso Dive into Deep Learning (D2L)

Visão Geral do Curso

Dive into Deep Learning (D2L) é um livro didático de código aberto sobre aprendizado profundo, projetado para tornar o aprendizado profundo fácil de entender e aprender. O livro combina conceitos, contexto e código para fornecer aos leitores um recurso de aprendizado abrangente sobre aprendizado profundo.

Contexto do Curso

Há alguns anos, era raro encontrar cientistas de aprendizado profundo desenvolvendo produtos e serviços inteligentes em grandes empresas e startups. Naquela época, o aprendizado de máquina não era manchete de jornal, e nossos pais não sabiam o que era aprendizado de máquina. O aprendizado de máquina era então uma disciplina acadêmica de "céu azul", e sua relevância industrial era limitada a algumas aplicações práticas, incluindo reconhecimento de fala e visão computacional.

No entanto, em apenas alguns anos, o aprendizado profundo surpreendeu o mundo, impulsionando um rápido desenvolvimento em várias áreas, como visão computacional, processamento de linguagem natural, reconhecimento automático de fala, aprendizado por reforço e informática biomédica. O sucesso do aprendizado profundo até catalisou o desenvolvimento do aprendizado de máquina teórico e da estatística.

Características do Material Didático

1. Combinação de Mídias Diversificadas

  • Combinação de Código, Matemática e HTML: Integra código, fórmulas matemáticas e conteúdo web em uma única plataforma.
  • Código Executável: A maioria dos capítulos inclui exemplos de código executável.
  • Atualizações em Tempo Real: Suporta atualizações rápidas e contribuições da comunidade via GitHub.

2. Método de Aprendizagem: Aprender Fazendo

  • Aprendizagem de Conceitos Imediata: Os conceitos relevantes são ensinados apenas quando necessários para resolver problemas práticos.
  • Prioridade à Prática: Permite que os alunos experimentem a satisfação de treinar seu primeiro modelo antes de se preocuparem com conceitos mais esotéricos.
  • Conjuntos de Dados Reais: Cada capítulo subsequente fornece vários exemplos de trabalho autocontidos usando conjuntos de dados reais.

3. Suporte a Múltiplos Frameworks

O material didático suporta implementações em múltiplos frameworks de aprendizado profundo:

  • PyTorch (framework principal)
  • TensorFlow
  • MXNet
  • JAX

Estrutura do Conteúdo

O material didático pode ser dividido em três partes principais:

Parte Um: Fundamentos e Conhecimentos Preliminares

  • Capítulo 1: Introdução ao Aprendizado Profundo
  • Capítulo 2: Conhecimentos Preliminares (Armazenamento e Manipulação de Dados, Operações Numéricas, etc.)
  • Capítulo 3: Regressão Linear
  • Capítulo 5: Perceptron Multicamadas
  • Abrange conceitos fundamentais como regressão e classificação, modelos lineares, perceptron multicamadas, overfitting e regularização.

Parte Dois: Técnicas Modernas de Aprendizado Profundo

  • Capítulo 6: Componentes Computacionais Chave de Sistemas de Aprendizado Profundo
  • Capítulos 7-8: Redes Neurais Convolucionais (CNN)
  • Capítulos 9-10: Redes Neurais Recorrentes (RNN)
  • Capítulo 11: Mecanismos de Atenção e Transformer
  • Abrange as ferramentas mais poderosas e versáteis amplamente utilizadas por profissionais de aprendizado profundo modernos.

Parte Três: Escalabilidade, Eficiência e Aplicações (Disponível Online)

  • Capítulo 12: Algoritmos de Otimização
  • Capítulo 13: Desempenho Computacional
  • Capítulo 14: Aplicações de Visão Computacional
  • Capítulos 15-16: Pré-treinamento de Modelos de Representação de Linguagem e Aplicações de Processamento de Linguagem Natural

Características da Implementação do Código

Pacotes e Dependências Essenciais

O material didático utiliza o pacote d2l para evitar repetições desnecessárias. Este pacote é leve e requer apenas as seguintes dependências:

#@save
import collections
import hashlib
import inspect
import math
import os
import random
import re
import shutil
import sys
import tarfile
import time
import zipfile
from collections import defaultdict
import pandas as pd
import requests
from IPython import display
from matplotlib import pyplot as plt
from matplotlib_inline import backend_inline
d2l = sys.modules[__name__]

Dependências para Implementação em PyTorch

#@save
import numpy as np
import torch
import torchvision
from PIL import Image
from scipy.spatial import distance_matrix
from torch import nn
from torch.nn import functional as F
from torchvision import transforms

Dependências para Implementação em TensorFlow

#@save
import numpy as np
import tensorflow as tf

Dependências para Implementação em JAX

#@save
from dataclasses import field
from functools import partial
from types import FunctionType
from typing import Any
import flax
import jax
import numpy as np
import optax
import tensorflow as tf
import tensorflow_datasets as tfds
from flax import linen as nn
from flax.training import train_state
from jax import grad
from jax import numpy as jnp
from jax import vmap

Público-Alvo

Este material didático é destinado a:

  • Estudantes (graduação ou pós-graduação)
  • Engenheiros
  • Pesquisadores

Que buscam um domínio sólido das técnicas práticas de aprendizado profundo.

Requisitos de Conhecimentos Prévios

  • Conhecimento adequado de álgebra linear
  • Fundamentos de cálculo
  • Fundamentos de teoria da probabilidade
  • Fundamentos de programação Python

Recursos de Aprendizagem

Recursos Online

Formas de Acesso

  • Em formato de código executável
  • Livro físico
  • PDF para download
  • Versão online no site

Todos os notebooks podem ser baixados gratuitamente no site D2L.ai e no GitHub.

Vantagens do Material Didático

  1. Gratuito e Aberto: Disponível gratuitamente para todos.
  2. Profundidade Técnica: Oferece a profundidade técnica necessária para se tornar um cientista de aprendizado de máquina aplicado.
  3. Código Executável: Demonstra como resolver problemas na prática.
  4. Atualizações Rápidas: Suporta atualizações rápidas por parte dos autores e da comunidade.
  5. Suporte da Comunidade: Acompanhado de um fórum interativo para discussões técnicas e perguntas e respostas.

Características Inovadoras

  • Possivelmente o primeiro livro publicado usando um fluxo de trabalho integrado.
  • Combina a clareza de uma explicação de qualidade de livro didático com código limpo e executável de tutoriais práticos.
  • Utiliza o GitHub para compartilhar o código-fonte, com notebooks Jupyter que misturam código, equações e texto.
  • Usa Sphinx como motor de renderização e Discourse como plataforma de discussão.

Sugestões de Estudo

  1. Registre-se em uma conta no fórum de discussão.
  2. Instale Python em seu computador.
  3. Busque ajuda e participe de discussões através dos links do fórum no final dos capítulos.
  4. Aprenda fazendo, aproveitando ao máximo o código executável.
  5. Participe das discussões da comunidade e interaja com os autores e a comunidade em geral.

Este material didático representa um marco importante na educação em aprendizado profundo, fornecendo aos alunos um recurso de aprendizado abrangente, prático e de fácil acesso.