Um dos problemas do treinamento de redes neurais Ă© o treinamento. Foi quando o algoritmo aprendeu a funcionar bem com os dados que viu, mas em outros ele lida pior. No artigo, descrevemos como tentamos resolver esse problema combinando treinamento com descida de gradiente e uma abordagem evolutiva.

Se alguĂ©m quiser entender melhor o que serĂĄ discutido abaixo, vocĂȘ poderĂĄ ler estes artigos no hub : article1 e article2
( , , , )
, , . .
, , . , .
P.S. , , ., , , . .
:
-
- N -
- K
- -
- ( )
- goto 1
:
â CIFAR10
â resnet18
â SGD
â CrossEntropyLoss
â accuracy
5
50 ,
40-50
: , ..
â1. .
.
: Adding Gradient Noise Improves Learning for Very Deep Networks, Evolutionary Stochastic Gradient Descent for Optimization of Deep Neural Networks.
For i in range(N):
N -
SGD
#
For k in range(K):
.
, .
G .
:
- , , .
- ( 1) . â . ?
- .
.
, . accuracy , , . . ( 2).
.
? ? . SGD () . . , .
:
Accuracy 47.81% â .
Accuracy 47.72% â SGD.
. 40 . SGD . .
4 , resnet18 accuracy. accuracy. .
. .
, . , .
, .
.. , . . , .
.
:
- , .
- . , .
- . .
- backward.
â2.
OpenAI Evolution Strategies as a Scalable Alternative to Reinforcement Learning, https://github.com/staturecrane/PyTorch-ES
For i in range(N):
N - SGD
For k in range(K):
â . -1 1 Ï, .
normalized_rewards = (rewards - np.mean(rewards)) / np.std(rewards)
for index, param in enumerate(self.weights):
A = np.array([p[index] for p in population])
rewards_pop = torch.from_numpy(np.dot(A.T,normalized_rewards).T).float()
param.data = param.data + LEARNING_RATE/(POPULATION_SIZE * SIGMA) * rewards_pop
. - . , . .
/ â SGD+
/ â SGD
Loss â , . SGD , , .
Validation â accuracy. , - 5 SGD , , , SGD+
Final score â accuracy , .
: SGD , c .
, , , , Google .
accuracy
:
- Adam, , . .
- Foi possĂvel fazer das mutaçÔes parte do otimizador, em vez de escrever um shell separado para esse
- Demorou vĂĄrias vezes mais tempo do que planejamos
Teremos o maior prazer em receber feedback nĂŁo apenas sobre o conteĂșdo, mas tambĂ©m sobre o prĂłprio artigo como um todo. Se vocĂȘ estĂĄ interessado neste tĂłpico ou se interessou, escreva tambĂ©m, seria Ăłtimo conversar, talvez tenhamos perdido alguma coisa.
Links Ăteis
- Adicionar ruĂdo gradiente melhora o aprendizado para redes muito profundas
- Descida estocåstica evolutiva de gradiente para otimização de redes neurais profundas
- Estratégias de evolução como alternativa escalåvel ao aprendizado por reforço