Baseado em O que devemos fazer quando uma pergunta postada no DataScience é uma duplicata de uma pergunta postada no CrossValidated? , Estou reposicionando minha resposta para a mesma pergunta feita no CrossValidated ( https://stats.stackexchange.com/a/311318/89653 ).
Nota: ao longo desta resposta, refiro-me à minimização da perda de treinamento e não discuto critérios de parada, como perda de validação. A escolha dos critérios de parada não afeta o processo / conceitos descritos abaixo.
O processo de treinamento de uma rede neural é encontrar o valor mínimo de uma função de perda , onde W representa uma matriz (ou várias matrizes) de pesos entre os neurônios e X representa o conjunto de dados de treinamento. Eu uso um índice subscrito para X para indicar que nossa minimização de ℒ ocorre apenas sobre os pesos W (ou seja, estamos procurando por W de modo que ℒ seja minimizado) enquanto X é corrigido.LX(W)WXXLWWLX
Agora, se assumirmos que temos elementos em W (ou seja, existem pesos P na rede), ℒ é uma superfície em um espaço dimensional P + 1 . Para dar um analógico visual, imagine que temos apenas dois pesos de neurônios ( P = 2 ). Então ℒ tem uma interpretação geométrica fácil: é uma superfície em um espaço tridimensional. Isso decorre do fato de que, para qualquer matriz de pesos W , a função de perda pode ser avaliada em X e esse valor se torna a elevação da superfície.PWPLP+1P=2LWX
Mas há o problema da não-convexidade; a superfície que descrevi terá numerosos mínimos locais e, portanto, algoritmos de descida gradiente são suscetíveis de ficar "presos" nesses mínimos, enquanto uma solução mais profunda / baixa / melhor pode estar próxima. É provável que isso ocorra se for inalterado em todas as iterações de treinamento, porque a superfície é fixa para um determinado X ; todas as suas características são estáticas, incluindo seus vários mínimos.XX
Uma solução para isso é o treinamento em mini-lote combinado com o embaralhamento. Ao embaralhar as linhas e treinar apenas um subconjunto delas durante uma determinada iteração, muda a cada iteração, e é realmente possível que duas iterações em toda a sequência de iterações e épocas de treinamento sejam executadas exatamente no mesmo X . O efeito é que o solucionador pode "saltar" facilmente de um mínimo local. Imagine que o solucionador esteja preso no mínimo local na iteração i com o treinamento do minilote X i . Este mínimo local corresponde a ℒ avaliado em um valor particular de pesos; vamos chamá-lo ℒ X i ( WXXiXiL . Na próxima iteração a forma do nosso superfície perda efectivamente muda porque estamos a utilizar X i + 1 , isto é, ℒ X i + 1 ( W i ) pode assumir um valor muito diferente do ℒ X i ( W i ) e isso é bem possível que não corresponda a um mínimo local! Agora podemos calcular uma atualização gradiente e continuar com o treinamento. Para ser claro: a forma de ℒ X i + 1 será - em geral - diferente da de ℒ X iLXi(Wi)Xi+1LXi+1(Wi)LXi(Wi)LXi+1LXi. Observe que aqui estou me referindo à função de perda avaliada em um conjunto de treinamento X ; é uma superfície definida completo sobre todos os valores possíveis de W , em vez do que a avaliação de que a perda (que é apenas um escalar) para um valor específico de W . Observe também que, se mini-lotes forem usados sem embaralhar, ainda haverá um grau de "diversificação" das superfícies de perda, mas haverá um número finito (e relativamente pequeno) de superfícies de erro exclusivas vistas pelo solucionador (especificamente, ele verá o mesmo conjunto exato de mini-lotes - e, portanto, superfícies de perda - durante cada época).LXWW
Uma coisa que evitei deliberadamente foi uma discussão sobre tamanhos de mini lotes, porque há um milhão de opiniões a respeito e isso tem implicações práticas significativas (maior paralelismo pode ser alcançado com lotes maiores). No entanto, acredito que vale a pena mencionar o seguinte. Como é avaliado calculando um valor para cada linha de X (e somando ou calculando a média; isto é, um operador comutativo) para um determinado conjunto de matrizes de peso W , o arranjo das linhas de X não tem efeito ao usar full- descida do gradiente do lote (ou seja, quando cada lote é o X completo e iterações e épocas são a mesma coisa).LXWX X