Pelatihan jaringan saraf sederhana

Salah satu masalah pelatihan jaringan saraf adalah pelatihan ulang. Ini adalah saat algoritma belajar bekerja dengan baik dengan data yang dia lihat, tetapi pada orang lain copes lebih buruk. Dalam artikel tersebut, kami berbicara tentang bagaimana kami mencoba menyelesaikan masalah ini dengan menggabungkan pembelajaran dengan gradient descent dan pendekatan evolusioner.


gambar


Jika seseorang ingin lebih memahami apa yang akan dibahas di bawah ini, maka Anda dapat membaca artikel ini di hub : article1 dan article2


( , , , )


, , . .


, , . , .


P.S. , , ., , , . .


:


-


  1. N -
  2. K
  3. -
  4. ( )
  5. 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. , , .
  2. ( 1) . — . ?
  3. .

.


gambar
1. accuracy.

, . accuracy , , . . ( 2).


gambar
2. .

.
? ? . SGD () . . , .


:
Accuracy 47.81% — .
Accuracy 47.72% — SGD.


. 40 . SGD . .


gambar
1. ccuracy, resnet18, CIFAR10 10 , SGD. 40 5 . . SGD, .
gambar
:--:
2. ccuracy, resnet18, CIFAR10 10 , SGD. 40 5 . accuracy. SGD, .

4 , resnet18 accuracy. accuracy. .


. .
, . , .


, .


.. , . . , .


.


:


  1. , .
  2. . , .


  1. . .
  2. 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


CPretrained

Loss — , . SGD , , .


Validation — accuracy. , - 5 SGD , , , SGD+


Final score — accuracy , .


: SGD , c .
, , , , Google .


accuracy


Pretrained
SGD47.72%68.56 %
47.81%68.61 %
SGD + OpenAI49.82%69.45 %

:


  1. Adam, , . .
  2. Dimungkinkan untuk menjadikan mutasi sebagai bagian dari optimizer, daripada menulis shell terpisah untuk ini
  3. Butuh waktu beberapa kali lebih banyak dari yang kami rencanakan

Kami akan senang menerima umpan balik tidak hanya pada konten, tetapi juga pada artikel itu sendiri secara keseluruhan. Jika Anda tertarik dengan topik ini atau tertarik, kemudian menulis juga, akan menyenangkan untuk berbicara, mungkin kita melewatkan sesuatu.


tautan yang bermanfaat


  1. Menambahkan Gradient Noise Meningkatkan Pembelajaran untuk Jaringan yang Sangat Mendalam
  2. Keturunan Gradien Stochastik Evolusioner untuk Optimalisasi Jaringan Saraf Tiruan
  3. Strategi Evolusi sebagai Alternatif yang Dapat diskalakan untuk Pembelajaran Penguatan

All Articles