Discussão sobre exercícios aula 1 - Deep Learning

Qualquer dúvida mande aqui!!

1 curtida

Pessoal, o @Marcel_Aranha encontrou duas typos no exercício 1. Eu já corrigi e está disponível no site. Mas aqui estão a descrições:

O primeiro no model está faltando um "1"no x1. O segundo é que tem duas dyhat_dw1 e o segundo acho que deveria ser dyhat_dw2.

Boa noite pessoal!

Alguém conseguiu fazer o exercício de SGD?
Eu fiz, MAS ele só funciona quando itero 1 ou 2 vezes, se eu coloco meu código dentro do for(i in 1:length(x)) tanto o w quanto o b ficam muuuuito grande.
Se eu coloco isso dentro do for das epocas, dai fica infinito.

eu fiz assim:
aux <- 1
for(j in seq(batch_size, length(x), batch_size)){
vetor1 <- (dl_dyhat(y_hat) * dyhat_dw(w))[aux:j]
w <- w - lr*mean(vetor1)

aux <- 1 + j
}

Alguma dica?

2 curtidas

Oi Larissa,

Acho que está faltando vc atualizar as suas predições y_hat em cada iteração com os novos pesos.

Abraços,

1 curtida

Boa noite!

Uma dúvida, se em uma base de 3200 observações, por ex, eu selecionar amostras aleatórias de tamanho 32 (batch size) em 100 iterações, posso chamar isso de epoch?

Não lembro se vc comentou isso na aula, dani!

Obrigada!

1 curtida

@angelica-custodio é isso ai! A definição formal de uma epoch é quando todos as observações da sua base passam pela rede uma vez.

A epoch acaba qdo vc varre sua base inteira. Dps começa outra epoch pra varrer de novo e assim por diante.

@Athos mas tirando 100 amostras de tamanho 32 eu não garanto que passei exatamente por todos os elementos da base. Posso considerar uma epoch mesmo assim?

Oi Angelica,

Em geral fazemos amostragem sem reposição para garantir que passe por toda a base. No fundo não faz tanta diferença também, vc pode considerar que passou por uma epoch quando andou iterações suficientes para ter passado por toda a base de dados.

Abraços,

Daniel, estava assistindo novamente o video e você disse que o SGD funciona como
uma regularização, de certa forma, e por isso ajudava a minimizar overfitting (foi assim que entendi!). Intuitivamente, o que seria uma regularização?

Oi Deivison,

Em geral técnicas de regularização remetem à maneiras de evitar que o modelo fique muito específico para a base de treino.

Existem diversas técnicas de regularização, em regressão é bem comum fazer uma suposição de que se os pesos tem valores muito altos, então é bem provável que esteja tendo overfitting. Então a gente adiciona um termo que faz a função de custo aumentar se o valor dos pesos for alto.

No caso do SGD, não se sabe muito bem como que funciona, mas empiricamente foram encontrados resultados que mostram que ele ajuda a prevenir o overfitting.

Esse paper dá uma ideia:

https://arxiv.org/abs/1811.00659

Veja que quanto o batch-size é 1 (SGD) a região de decisão da rede neural é muito mais simples do que a das outras conforme aumenta-se o batch size. Nesse caso todas os modelos tem a mesma acurácia, mas um modelo parece bem mais simples.

Obrigada! Acabou não dando tempo de voltar ainda, mas super obrigada!