A descida de gradiente não funciona da maneira que você sugeriu, mas um problema semelhante pode ocorrer.
Não calculamos a perda média do lote, calculamos os gradientes médios da função de perda. Os gradientes são a derivada da perda em relação ao peso e, em uma rede neural, o gradiente para um peso depende das entradas desse exemplo específico e também de muitos outros pesos no modelo.
Se o seu modelo tiver 5 pesos e você tiver um tamanho de minilote 2, poderá obter o seguinte:
gradients=(1.5,−2.0,1.1,0.4,−0.9)
gradients=(1.2,2.3,−1.1,−0.8,−0.7)
(1.35,0.15,0,−0.2,−0.8)
0
editar em resposta aos comentários:
kLiwj
∂L∂wj=1k∑ki=1∂Li∂wj
O código do tutorial ao qual você vinculou nos comentários usa o Tensorflow para minimizar a perda média.
1k∑ki=1Li
Para minimizar isso, ele calcula os gradientes da perda média em relação a cada peso e usa a descida do gradiente para atualizar os pesos:
∂L∂wj=∂∂wj1k∑ki=1Li
A diferenciação pode ser trazida para dentro da soma, portanto é a mesma que a expressão da abordagem no meu exemplo.
∂∂wj1k∑ki=1Li=1k∑ki=1∂Li∂wj