Palestra proferida em 31/08/2016 na II Semana Acadêmica de Engenharia e Tecnologia (SAET), UTFPR/Toledo.
Aprendizagem profunda (Deep Learning) baseai-se em um conjunto de algoritmos que procuram modelar abstrações de alto nível, extraindo e organizando a informações discriminativas do problema diretamente dos dados “crus”, evitando assim a necessidade de um especialista no domínio do problema. Noutras palavras, aprender a representação. Dentre as diferentes abordagens de aprendizagem profunda, destacam-se as Redes Neurais Convolucionais (Convolutional Neural Networks – CNN) que são arquiteturas profundas de redes neurais artificiais inspiradas na organização do córtex visual dos mamíferos. CNNs têm alcançado sucesso complexos problemas de reconhecimento de padrões, como identificação visual de objetos, processamento de linguagem natural, reconhecimento de fala, processamento de sinais e transferência de aprendizado. A ideia de aprendizado da representação não é nova, mas emergiu recentemente como alternativa viável com a popularização de poderosas GPUs (Graphical Processing Units) capazes de entregar alto desempenho computacional a relativo baixo custo devido a suas arquiteturas massivamente paralelas. Esta palestra tem foco na abordagem de aprendizagem profunda com CNNs, sendo apresentados os conceitos fundamentais e as recentes aplicações.
2. $whoami
Marido
Pai de um jovem universitário e 10 gatos
• Ok, 8 cães também...
Apaixonado por programação (desde os 12)
Cinéfilo
Bacharel em Informática (Unioeste, 1999)
Mestre em Ciência da Computação (UFSC, 2002)
Doutorando UFPR (2014)
Professor na UTFPR-TD (desde 2009)
3. 2001: A Space Odyssey (Kubrick, 1968)
“Hal: Hello Dave”
6. Aprendizado de Máquina (Machine
Learning) provê aos computadores
habilidades de aprender sem terem
sido explicitamente programados
Abarca de reconhecimento de padrões
(pattern recognition) até teoria do
aprendizado (learning theory) na inteligência
artificial (artificial intelligence – AI)
7.
8. "A computer
program is said to learn
from experience E with
respect to some class
of tasks T and
performance measure P
if its performance at
tasks in T, as measured
by P, improves with
experience E.“
Tom M. Mitchell (1997)
9. Termos cognitivos X operacionais
Algoritmos que podem aprender a partir de/e
fazer previsões sobre dados
Construir um modelo para fazer predições ou tomar
decisões
Não segue instruções estáticas
10. Considerando entradas (input signal) e
feedback disponíveis ao sistema
(1) Aprendizado supervisionado
(2) Aprendizado não-supervisionado
(3) Aprendizado por reforço
**existem variações
15. Tipos de problemas/tarefas típicas
Classificação
• qual a classe de um objeto?
• Ex.: A imagem é de um tumor maligno ou benigno? A
mensagem é spam ou conteúdo válido?
Regressão
• Qual o próximo valor (contínuo) de um objeto?
• Ex.: Qual será o valor das ações da empresa X no
próximo pregão? Qual o consumo de água no próximo
mês? Qual será o valor médio de venda desse terreno no
próximo ano?
16. Tipos de problemas/tarefas típicas
Agrupamento (Clustering)
• Agrupar objetos similares
Redução de dimensionalidade
• “Comprimir” dados de altas dimensões de representação
para dimensões menores
• Usado para visualização e como operação interna de
certos algoritmos
17. Tipos de problemas/tarefas típicas
Ranking
• Arranjar uma lista de objetos para maximizar algum uso
Recomendação
• Filtrar um pequeno subconjunto de um grande conjunto
de objetos
18. A chave dos modelos está na representação
dos objetos características significativas
(features)
Qual a melhor característica (mais discriminativa) de
um objeto?
Como extrair das entradas?
Definir características ótimas para um problema
(aplicação) pode levar décadas e demandar o esforço
de toda uma comunidade de pesquisadores!
20. Para aprender representações significativas
diretamente dos dados!
Características projetadas manualmente são muito
específicas, incompletas e consomem muito tempo de projeto
e validação dependem de um especialista
Características aprendidas são fáceis de adaptar, fáceis de
aprender
Fornece um framework (quase?) universal e muito flexível
para representar informação visual, linguística, etc.
Aprender de forma supervisionada (usando rótulos) ou não-
supervisionada (texto/áudio/imagens/etc. puros)
23. Prof. Yann LeCUN
New York University
Director of AI Research, Facebook
Prof. Yoshua BENGIO
Université de Montréal
Prof. Geoff HINTON
Toronto University
Distinguished Researcher,
Google
Prof. Jürgen SCHMIDHUBER
University of Lugano
24. Prof. Andrew NG
Stanford University
Chairman and co-founder, Coursera
Chief Scientist, Baidu
Prof. Rob FERGUS
New York University,
Research Scientist, Facebook
25. O conceito-chave é a habilidade de aprender
representações hierárquicas de características
(inspirado no sistema visual dos mamíferos)
27. CNNs são similares a outras RN
são treinadas com uma versão de algoritmo back-
propagation
O que difere é a arquitetura delas
São projetadas para reconhecer padrões visuais
diretamente dos pixels com nenhum (mínimo)
preprocessamento
Podem reconhecer padrões com extrema
variabilidade e robustez a ruídos, distorções e
transformações geométricas simples
• Ex.: caracteres manuscritos
28.
29. Célula especializada em conduzir impulsos
elétricos
Tecido nervoso (H&E) e representação esquemática
de um neurônio
35. Treinar é aprender os pesos
Encontrar os pesos w da rede que minimizem o erro
entre os rótulos verdadeiros e os rótulos estimados
Minimização pode ser feita por “gradient descent”
fornecida uma diferenciável
O erro é usado para retornar e ajustar os pesos das
camadas anteriores
• Esse método de treinamento chama-se back-propagation
36. Na prática costuma-se usar Stochastic
Gradient Descent (SGD)
Uma aproximação estocástica do gradiente de custo
“verdadeiro”
37.
38. RN profunda é uma hierarquia de camadas
Cada camada transforma os dados de entrada em
representações mais abstratas
• Ex.: contornos nariz face
Camada final combina as representações Predição
41. Uma CNN (Convolutional Neural Network) é
essencialmente um arranjo de camadas:
Convolucionais (Convolutional Layers)
ReLU (Rectfied Linear Units Layers)
Pooling Layers
Totalmente Conectadas (Fully-Connected Layers)
42. Deslizar espacialmente uma máscara (kernel
ou filtro) pela imagem, calculando o produto
escalar
Stride = 1
43. A entrada é um volume
O filtro se estende por toda a profundidade
Imagem RGB = 3 canais
Imagem 32x32x3
Filtro 5x5x3
45. Os vários mapas de ativação são empilhados,
para gerar uma “nova imagem”
P.ex.: 6 filtros 5x5 geram 6 mapas 28x28, ou uma,
nova imagem de 28x28x6
46. Uma CNN é uma sequência de camadas
convolucionais intercaladas por funções de
ativação (activation functions)
Note a redução espacial dos volumes
47. Um mapa de ativação é uma camada de saída
de neurônios
Cada neurônio conecta-se a uma pequena região da
entrada
Todos compartilham parâmetros
Os neurônios estão arranjados em uma grade 3D
48. Não-linearidades são necessárias para
aprender representações complexas dos dados
(não-lineares)
Por elemento (independente)
max(0, x) é a mais usada
49. Torna a representação menor e mais
“gerenciável”
Opera sobre cada mapa de ativação de forma
independente
51. A Fully Connected Layer (FC) contém
neurônios conectados a todo o volume de
entrada, como uma RN convencional
A última camada da CNN normalmente é uma FC
• O tamanho da saída é igual ao número de classes
52. Reconstrução da imagem a partir das
características extraídas
Understanding deep image representations by inverting them
[Mahendran and Vedaldi CVPR 2015]
53. LeNet [LeCun et al. 1998]
Gradient-based learning applied to document recognition [LeCun, Bottou, Bengio,
Haffner 1998]
56. Framework semelhante ao de [LeCun98], mas:
Modelo maior (7 hidden layers, 650 mil neurônios, 60
milhões de parâmetros)
Mais dados (106 vs. 103 imagens)
Mais poder computacional: Uso de GPU (50x speedup vs CPU)
• Trainada em duas GPUs por ~1 semana
A. Krizhevsky, I. Sutskever, and G. Hinton,
ImageNet Classification with Deep Convolutional Neural Networks, NIPS 2012
63. Detecção de regiões (objetos contidos em retângulos)
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
[Ren et al. NIPS 2015]
64. Rotulagem de pixels Segmentação semântica
DeepEdge: A Multi-Scale Bifurcated Deep Network for Top-Down Contour Detection
[Bertasius et al. CVPR 2015]
65. Rotulagem de pixels Segmentação semântica
Fully Convolutional Networks for Semantic Segmentation [Long et al. CVPR 2015]
66. Criação de pinturas através de um exemplo e esboço
Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artworks
[Champandard 2016]