Por que os pesquisadores de redes neurais se preocupam com épocas?

69

Uma época em descida de gradiente estocástico é definida como uma única passagem pelos dados. Para cada minibatch SGD, amostras são coletadas, o gradiente calculado e os parâmetros atualizados. Na configuração de época, as amostras são coletadas sem substituição.k

Mas isso parece desnecessário. Por que não desenhar cada minibatch do SGD como desenha aleatoriamente todo o conjunto de dados a cada iteração? Em um grande número de épocas, os pequenos desvios dos quais as amostras são vistas com mais ou menos frequência pareceriam sem importância.k

Restabelecer Monica
fonte
11
+1 em questão, curiosamente, eu tinha quase exatamente a mesma pergunta que estava prestes a perguntar!
Haitao Du
Evidência anedótica, mas recentemente montei uma rede neural de uma camada usando SGD nos dados do MNIST, que são 50000 em tamanho de treinamento. Após uma execução aleatória, a precisão da classificação não foi muito superior a 30-40% e a probabilidade de log claramente não convergiu. Então, repeti o procedimento por mais 30 épocas, levando a mais de 90% de precisão. Pelo menos por exemplo, isso me mostrou que eles podem ser necessários.
Tomka
6
@tomka Isso parece fornecer evidências de que várias passagens sobre os dados são necessárias, o que é consistente com o método proposto aqui: continue desenhando amostras por treinamento na iteração e nauseam. k
Reintegrar Monica
11
Outra pergunta interessante seria: a ordem de mini lote também terá impacto no ajuste excessivo?
Kh40tiK
3
@ Pininchio A prática padrão do SGD é a amostragem sem substituição (até que o conjunto de amostras seja esvaziado, momento em que uma nova época começa novamente com todos os dados). Minha pergunta é por que ele não usa amostragem com substituição. Acontece que uma resposta é que a amostragem sem substituição melhora a taxa de convergência para o modelo.
Reintegrar Monica

Respostas:

60

Além da resposta de Franck sobre aspectos práticos, e a resposta de David sobre a observação de pequenos subgrupos - os quais são pontos importantes - existem de fato algumas razões teóricas para preferir amostragem sem substituição. O motivo talvez esteja relacionado ao argumento de David (que é essencialmente o problema do colecionador de cupons ).

Em 2009, Léon Bottou comparou o desempenho da convergência em um problema específico de classificação de texto ( ).n=781,265

Bottou (2009). Curiosamente rápida convergência de alguns algoritmos estocásticos de descida de gradiente . Anais do simpósio sobre aprendizado e ciência de dados. ( pdf do autor )

Ele treinou uma máquina de vetores de suporte via SGD com três abordagens:

  • Aleatório : desenhe amostras aleatórias do conjunto de dados completo a cada iteração.
  • Ciclo : embaralhe o conjunto de dados antes de iniciar o processo de aprendizado e passe por ele sequencialmente, para que em cada época você veja os exemplos na mesma ordem.
  • Aleatório : reorganize o conjunto de dados antes de cada época, para que cada época ocorra em uma ordem diferente.

Ele examinou empiricamente a convergência , onde é a função de custo, os parâmetros na etapa da otimização, e a expectativa está acima do embaralhamento. de lotes atribuídos.C θ tE[C(θt)minθC(θ)]Cθtt

  • Para Random, a convergência foi aproximadamente da ordem de (conforme esperado pela teoria existente naquele momento).t1
  • O ciclo obteve convergência na ordem de (com mas variando dependendo da permutação, por exemplo para sua Figura 1). α > 1tαα>1α1.8
  • A reprodução aleatória foi mais caótica, mas a linha de melhor ajuste deu , muito mais rápido que Random.t2

Esta é a sua Figura 1 ilustrando que: ilustração da convergência a determinadas taxas

Isso foi posteriormente confirmado teoricamente pelo artigo:

Gürbüzbalaban, Ozdaglar e Parrilo (2015). Por que a reorganização aleatória é melhor que a descida estocástica do gradiente . arXiv: 1510.08560 . ( vídeo da palestra convidada no NIPS 2015 )

Sua prova se aplica apenas ao caso em que a função de perda é fortemente convexa, ou seja, não a redes neurais. É razoável esperar, no entanto, que raciocínios semelhantes possam se aplicar ao caso da rede neural (que é muito mais difícil de analisar).

Dougal
fonte
3
Esta é uma resposta muito perspicaz. Muito obrigado pela sua contribuição.
Reintegrar Monica
11
desculpe pela ignorância, mas você se importa de explicar um pouco mais qual é a diferença entre os três? Em particular, estou confuso sobre o Random, quando você diz "amostra", o que você quer dizer? Sei que não é isso o que você está referenciando, mas o mini-lote padrão SGD da Neural Net geralmente coleta amostras sem substituição a cada iteração. É isso que o Random faz? Se for, como isso é diferente do Shuffle?
Pinóquio
11
Agora que reli, todos os três parecem o mesmo algoritmo, qual é a diferença se o conjunto de dados é embaralhado ou não e com que frequência os lotes do SGD são sempre aleatórios de qualquer maneira?
Pinóquio
3
@Pinocchio Imagine um conjunto de dados de quatro lamentos. Aleatório pode ir ACADBBCA; cada entrada é completamente aleatória. O ciclo pode ficar BDAC BDAC BDAC; escolhe uma ordem para cada época e depois repete. A reprodução aleatória pode ser BDAC ADCB CBAD; ocorre em épocas, mas cada uma é aleatória. Essa análise não usa minibatches, apenas um SGD de um elemento por vez.
Dougal
Esta é uma ótima resposta. Thnx você!
precisa saber é o seguinte
24

De fato, é desnecessário do ponto de vista de desempenho com um grande conjunto de treinamento, mas o uso de épocas pode ser conveniente, por exemplo:

  • fornece uma métrica bastante boa: "a rede neural foi treinada por 10 épocas" é uma afirmação mais clara do que "a rede neural foi treinada para 18942 iterações" ou "a rede neural foi treinada em 303072 amostras".
  • há coisas aleatórias suficientes acontecendo durante a fase de treinamento: inicialização aleatória de peso, embaralhamento de mini lotes, desistência etc.
  • é fácil de implementar
  • evita pensar se o conjunto de treinamento é grande o suficiente para não ter épocas

[1] fornece mais um motivo, que não é tão relevante, dada a configuração atual do computador:

Como para qualquer método de descida de gradiente estocástico (incluindo o caso de mini-lote), é importante para a eficiência do estimador que cada exemplo ou minibatch seja amostrado aproximadamente independentemente. Como o acesso aleatório à memória (ou pior, ao disco) é caro, uma boa aproximação, denominada gradiente incremental (Bertsekas, 2010), é visitar os exemplos (ou minilotes) em uma ordem fixa correspondente à sua ordem na memória ou disco (repetindo os exemplos na mesma ordem em uma segunda época, se não estivermos no caso online puro em que cada exemplo é visitado apenas uma vez).Nesse contexto, é mais seguro se os exemplos ou mini-lotes forem primeiramente colocados em uma ordem aleatória (para garantir que seja esse o caso, pode ser útil primeiro embaralhar os exemplos). Uma convergência mais rápida foi observada se a ordem na qual os mini-lotes são visitados é alterada para cada época, o que pode ser razoavelmente eficiente se o conjunto de treinamento permanecer na memória do computador.


[1] Bengio, Yoshua. " Recomendações práticas para o treinamento baseado em gradiente de arquiteturas profundas. " Redes Neurais: Truques do comércio. Springer Berlin Heidelberg, 2012. 437-478.

Franck Dernoncourt
fonte
11
Estes parecem ser bons pontos, mas em relação à sua atualização, parece que a amostragem por época é dependente (porque a probabilidade de uma amostra ser vista duas vezes em uma época é 0). Portanto, não tenho certeza de como os autores podem afirmar que a construção da época é independente, a menos que o significado de "aproximadamente independentemente" não seja "totalmente independente". k
Reintegrar Monica
11
@ Sycorax A amostragem sem substituição, apesar de obviamente não ser independente, é "aproximadamente independente" no sentido de que pode ser trocada . Do ponto de vista do treinamento de um classificador que não se importa muito com nenhum ponto de dados, essa permutabilidade é definitivamente bastante próxima de "aproximadamente independente".
Dougal 24/10
18

Discordo um pouco que isso claramente não importa. Digamos que haja um milhão de exemplos de treinamento e coletamos dez milhões de amostras.

Em R, podemos ver rapidamente como é a distribuição

plot(dbinom(0:40, size = 10 * 1E6, prob = 1E-6), type = "h")

PMF binomial

Alguns exemplos serão visitados mais de 20 vezes, enquanto 1% deles será visitado 3 ou menos vezes. Se o conjunto de treinamento foi escolhido com cuidado para representar a distribuição esperada de exemplos em dados reais, isso pode ter um impacto real em algumas áreas do conjunto de dados - especialmente quando você começa a dividir os dados em grupos menores.

Considere o caso recente em que um eleitor de Illinois efetivamente superou a amostra em 30x e mudou dramaticamente as estimativas do modelo para seu grupo demográfico (e, em menor grau, para toda a população dos EUA). Se acidentalmente amostrarmos imagens de "Ruffed Grouse" capturadas em fundos verdes em dias nublados com uma profundidade de campo estreita e subamostrar outros tipos de imagens de galo silvestre, o modelo poderá associar esses recursos irrelevantes ao rótulo da categoria. Quanto mais maneiras houver de dividir os dados, mais desses subgrupos existirão e mais oportunidades para esse tipo de erro haverá.

David J. Harris
fonte
11
Eu não acho que faria uma grande diferença na prática para um grande conjunto de treinamento, mas definitivamente espero que isso aconteça com um conjunto menor de treinamento.
Franck Dernoncourt
5
@FranckDernoncourt: bem, o ponto principal é que isso pode importar para grandes conjuntos de dados, se você começar a analisar pequenos subgrupos. Que não é um procedimento incomum em grandes conjuntos de dados,
dimpol
certeza que você deveria ter usado uma distribuição uniforme, não um binomial
lahwran
2
107106samples = sample(1:1E6, size = 1E7, replace = TRUE)plot(table(table(samples)) / 1E7)
2
aha! Eu estava errado, então.
Lahwran