Ferramentas do usuário

Ferramentas do site


ti_publica:notas_deep_learning

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
Última revisãoAmbos lados da revisão seguinte
ti_publica:notas_deep_learning [2019/09/30 17:39] – [O que pode dar errado] cartolati_publica:notas_deep_learning [2019/10/01 12:45] – [Dicas lição 2] cartola
Linha 2: Linha 2:
  
 Estou estudando Deep Learning (IA) no fast.ai e guardo aqui minhas anotações. Estou estudando Deep Learning (IA) no fast.ai e guardo aqui minhas anotações.
 +
 +**Referências externas:**
 +  * [[https://course.fast.ai/|Curso Fast AI]]
 +  * Reforço matemática:
 +    * [[https://pt.khanacademy.org|Khan Academy]]
 +    * [[https://machinelearningmastery.com/computational-linear-algebra-coders-review/|Curso de álgebra linear computacional]]
  
 ===== Lição 2 ===== ===== Lição 2 =====
Linha 7: Linha 13:
 ==== O que pode dar errado ==== ==== O que pode dar errado ====
  
-  Taxa de aprendizado muito alta ou baixa +  Taxa de aprendizado (LR) muito alta
-  Número de iterações muito alto ou baixo+  - Taxa de aprendizado muito baixa; 
 +  Número de iterações (epochs) muito alto
 +  - Número de iterações muito baixo.
  
 Learning rate padrão = 0.003. Pode ser alterada em max_lr: Learning rate padrão = 0.003. Pode ser alterada em max_lr:
Linha 14: Linha 22:
  
 **Ajustes:**\\ **Ajustes:**\\
-  * Se sua perda no treino é maior que na validação: ou sua taxa de aprendizado (learning rate) está muito baixa ou o número de iterações (epochs).+  * Se sua perda na validação (valid_loss) está muito grande, sua LR está alta; 
 +  * Se sua perda no treino é maior que na validação: ou sua taxa de aprendizado (learning rate) está muito baixa ou o número de iterações (epochs);
   * Não aumente tanto o número de epochs, ou seu modelo pode ficar treinado pra reconhecer apenas a sua fotografia e não qualquer fotografia daquele tipo   * Não aumente tanto o número de epochs, ou seu modelo pode ficar treinado pra reconhecer apenas a sua fotografia e não qualquer fotografia daquele tipo
   * O risco de treinar demais o modelo (e passar a reconhecer só suas fotos) é muito baixo. Isso pode ser percebido se seu erro caiu bem e depois começou a aumentar de novo durante as iterações   * O risco de treinar demais o modelo (e passar a reconhecer só suas fotos) é muito baixo. Isso pode ser percebido se seu erro caiu bem e depois começou a aumentar de novo durante as iterações
 +
 +==== Dicas lição 2 ====
 +  * Não há como definir quanto material é necessário pra um treino, só testando. Se treinar com muitas iterações e o erro começar a piorar sem antes ter chegado onde quer, e se não tiver com um dos quatro problemas mencionados, pode precisar de mais dados.
 +  * Dados desproporcionais (muito mais dados de uma das classes) também funcionam, teste. Se não funcionar uma ideia é fazer //over sampling//, copiando os dados que tem pra aumentar.
 +
 +===== Álgebra =====
 +
 +==== Equações lineares ====
 +
 +  * Notação equação reduzida da reta: y = ax + b
 +    * a = coeficiente de inclinação da reta (tb chamado 'm'): m = Δy / Δx
 +    * b = ponto onde a reta corta o eixo y
 +    * Para operações matriciais é mais conveniente redigir como: y = ax<sub>1</sub> + bx<sub>2</sub>, com x<sub>2</sub> = 1 sempre
 +    * Mais convenientemente ainda pode ser notada assim para um conjunto de dados: {{:ti_publica:equcacao_linear_matricial.gif|}}, onde a<sub>2</sub> era o b e x<sub>i,2</sub> = 1 sempre.
 +  * Notação equação fundamental da reta: ''y-b = m(x-a)''
 +    * Mais prática pra escrever a partir de m e um ponto (a,b), mas não dá a interceptação do eixo y
 +
 +===== pi torch =====
 +
 +==== Criando um vetor====
 +  * ''x = torch.ones(n,2)'' inicia um tensor com n linhas e 2 colunas, segunda coluna com '1's (vide álgebra pra facilitar operações matriciais)
 +  * ''x[:,0].uniform_(-1.,1)'' - cria dados randômicos entre -1 e 1 na primeira coluna do vetor:
 +    * ''[:]'' endereça cada valor na dimensão (no caso endereça toda a linha);
 +    * ''0'' pega a primeira coluna;
 +    * ''uniform'' vai criar distribuição uniforme randômica;
 +    * O '_' indica que não vai retornar valor, vai atribuir valor a variável referida.
 +
ti_publica/notas_deep_learning.txt · Última modificação: 2019/10/01 13:08 por cartola