Processing math: 23%
+ - 0:00:00
Notes for current slide
Notes for next slide

Deep Learning com o R

UFRN, 2021

2021-02-10

1 / 28

Agenda

  • O que são redes neurais profundas e como elas se relacionam com o que já sabemos ?
2 / 28

Agenda

  • O que são redes neurais profundas e como elas se relacionam com o que já sabemos ?

  • Que programas podemos usar para trainar esses modelos e como eles se relacionam?

2 / 28

Agenda

  • O que são redes neurais profundas e como elas se relacionam com o que já sabemos ?

  • Que programas podemos usar para trainar esses modelos e como eles se relacionam?

(Spoiler: torch e keras/tensorflow)

2 / 28

Agenda

  • O que são redes neurais profundas e como elas se relacionam com o que já sabemos ?

  • Que programas podemos usar para trainar esses modelos e como eles se relacionam?

(Spoiler: torch e keras/tensorflow)



  • Como ajustar modelos de deep learning algumas situações específicas?
2 / 28

O que preciso saber?

  • Regressão linear
  • Regressão logística
  • R + Pipe!
3 / 28

O que preciso saber?

  • Regressão linear
  • Regressão logística
  • R + Pipe!

%>% %>% %>% %>% %>% %>% %>% %>% %>% %>% %>% %>%

3 / 28

Por que é importante?

  • Muito hype em torno do tema.
5 / 28

Por que é importante?

  • Muito hype em torno do tema.

  • Mercado de trabalho exige cada vez mais.

5 / 28

Por que é importante?

  • Muito hype em torno do tema.

  • Mercado de trabalho exige cada vez mais.

  • Uma parte considerável dos avanços na estatística atuais ocorrem no contexto de deep learning.

5 / 28

Por que profundo?

  • Nós usamos uma composição de operações não lineares, chamadas camadas, para aprender uma representação do que estamos estudando
  • O número de camadas é o que dá a "profundidade"
  • Hoje em dia temos modelos com centenas de camadas
6 / 28

Por que profundo?

  • Nós usamos uma composição de operações não lineares, chamadas camadas, para aprender uma representação do que estamos estudando
  • O número de camadas é o que dá a "profundidade"
  • Hoje em dia temos modelos com centenas de camadas

Nomes alternativos

  • Aprendizado de representação em camadas
  • Aprendizado de representação em camadas
6 / 28

Modelos lineares generalizados

  • Regressão linear: rede neural com uma camada, sem ativação
  • Regressão logística: rede neural com uma camada, com ativação sigmoide (inversa da função logística)
7 / 28

Regressão logística

8 / 28

Regressão logística

Função deviance: equivale à verossimilhança

D(y,ˆμ(x))=ni=12[yilogyiˆμi(xi)+(1yi)log(1yi1ˆμi(xi))]

=2DKL(y||ˆμ(x)),

onde DKL(p||q)=ipilogpiqi é a divergência de Kullback-Leibler.

9 / 28

Regressão logística

Ajuste do modelo:

Método de Fisher-Scoring (baseado no Newton-Raphson).

\boldsymbol\beta^{(m+1)}=\boldsymbol\beta^{(m)} + \{\mathcal I_{\beta\beta}^{-1} \}^{(m)}\mathbf U_\beta^{(m)}

10 / 28

Regressão logística

Ajuste do modelo:

Método de Fisher-Scoring (baseado no Newton-Raphson).

\boldsymbol\beta^{(m+1)}=\boldsymbol\beta^{(m)} + \{\mathcal I_{\beta\beta}^{-1} \}^{(m)}\mathbf U_\beta^{(m)} Implementação:

Em MLG, equivale a um problema de mínimos quadrados ponderados iterados.

\boldsymbol\beta^{(m+1)} = (\mathbf X^{\top} \mathbf W^{(m)} \mathbf X)^{-1}\mathbf X^{\top} \mathbf W^{(m)}\mathbf z^{(m)}, \mathbf z = \mathbf X \boldsymbol\beta + \mathbf W^{-1/2}\mathbf V^{-1/2}(\mathbf y -\boldsymbol\mu)

10 / 28

Rede neural: como funciona?

11 / 28

Rede neural 1 camada

  • Linear transformation of x, add bias and add some nonlinear activation.

f(x) = \sigma(wx + b)

12 / 28

Rede neural 1 camada

Função de perda:

D_{KL}(p(x)||q(x))

13 / 28

Rede neural 1 camada

Função de perda:

D_{KL}(p(x)||q(x))

13 / 28

Rede neural 1 camada

Ajuste do modelo: Descida de gradiente

\boldsymbol\beta^{(m+1)}=\boldsymbol\beta^{(m)} - \alpha\mathbf U_\beta^{(m)}

14 / 28

Rede neural 1 camada

Ajuste do modelo: Descida de gradiente

\boldsymbol\beta^{(m+1)}=\boldsymbol\beta^{(m)} - \alpha\mathbf U_\beta^{(m)}

Implementação super simples:

for(i in 1:num_epochs) {
grads <- compute_gradient(data, params)
params <- params - learning_rate * grads
}
14 / 28

Descida estocástica

15 / 28

Bibliotecas computacionais

Tensorflow

  • Google
  • Faz diferenciação automática
  • Utiliza GPU
16 / 28

Bibliotecas computacionais

Tensorflow

  • Google
  • Faz diferenciação automática
  • Utiliza GPU

Torch

  • Facebook
  • Faz diferenciação automática
  • Utiliza GPU
  • Possui algumas ferramentas para deep learning
16 / 28

Keras

  • Especifica modelos deep learning de forma intuitiva.
  • Utiliza o TensorFlow como backend.
  • Implementada originalmente em python.
  • Muito utilizada nos dias de hoje

17 / 28

Keras + R

  • Pacote: keras.
  • Baseado em reticulate.
  • Mantido por um brasileiro (Daniel Falbel, @dfalbel).
  • sintaxe tidy, usando o %>%.
18 / 28

Keras + R

  • Pacote: keras.
  • Baseado em reticulate.
  • Mantido por um brasileiro (Daniel Falbel, @dfalbel).
  • sintaxe tidy, usando o %>%.

Torch + R

  • Pacote: torch.
  • Baseado inteiramente na libtorch, em C e C++. Sem dependência do python.
  • Mantido por um brasileiro (Daniel Falbel, @dfalbel).
  • Em fase inicial de desenvolvimento.
18 / 28

GPU

Graphical Processing Unit

  • Com ela, paralelizamos as computações em maior volume do que é possível com um processador.
  • Resultados 50x, 100x mais rápidos.

19 / 28

Vantagens e desvantagens

R e python

  • Python está mais avançado e tem comunidade maior.
  • Desenvolver em R traz mais aprendizado sobre o tema.

keras e torch

  • {keras} tem mais recursos, mas depende do python.
  • {torch} tem muito potencial, mas está no começo.

20 / 28

Exemplo 01: Regressão linear

21 / 28

Exemplo 02: MLP

22 / 28

Ativação

23 / 28

Exemplo 03: Convolucionais

24 / 28

Convoluções

25 / 28

Convoluções

25 / 28

Max Pooling

26 / 28

Resumo

  • Deep learning é como uma regressão não linear estruturada.
27 / 28

Resumo

  • Deep learning é como uma regressão não linear estruturada.

  • Os modelos são flexíveis e a arquitetura é transparente.

27 / 28

Resumo

  • Deep learning é como uma regressão não linear estruturada.

  • Os modelos são flexíveis e a arquitetura é transparente.

  • GPU ajuda muito no ajuste dos modelos.

27 / 28

Resumo

  • Deep learning é como uma regressão não linear estruturada.

  • Os modelos são flexíveis e a arquitetura é transparente.

  • GPU ajuda muito no ajuste dos modelos.

  • Podemos usar {keras} e {torch} para ajustar os modelos.

27 / 28

Agenda

  • O que são redes neurais profundas e como elas se relacionam com o que já sabemos ?
2 / 28
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow