تدريب الشبكة العصبية المتقشف

واحدة من مشاكل تدريب الشبكات العصبية هي إعادة التدريب. هذا عندما تعلمت الخوارزمية العمل بشكل جيد مع البيانات التي شاهدتها ، ولكن على الآخرين تتأقلم بشكل أسوأ. في المقالة ، نصف كيف حاولنا حل هذه المشكلة من خلال الجمع بين التدريب مع الانحدار التدريجي والمنهج التطوري.


صورة


إذا أراد شخص ما أن يفهم بشكل أفضل ما سيتم مناقشته أدناه ، فيمكنك قراءة هذه المقالات على المحور : article1 و 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. .

.


صورة
1. accuracy.

, . accuracy , , . . ( 2).


صورة
2. .

.
? ? . SGD () . . , .


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


. 40 . SGD . .


صورة
1. ccuracy, resnet18, CIFAR10 10 , SGD. 40 5 . . SGD, .
صورة
:--:
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. كان من الممكن جعل الطفرات جزءًا من المُحسّن ، بدلاً من كتابة غلاف منفصل لهذا الغرض
  3. استغرق الأمر عدة مرات أكثر مما خططنا

سيكون من دواعي سرورنا تلقي التعليقات ليس فقط على المحتوى ، ولكن أيضًا على المقالة نفسها ككل. إذا كنت مهتمًا بهذا الموضوع أو كنت مهتمًا ، فقم بالكتابة أيضًا ، سيكون من الرائع التحدث ، ربما فاتنا شيء.


روابط مفيدة


  1. تؤدي إضافة ضوضاء التدرج إلى تحسين التعلم للشبكات العميقة جدًا
  2. تطور التدرج العشوائي العشوائي لتحسين الشبكات العصبية العميقة
  3. إستراتيجيات التطور كبديل قابل للتطوير لتعلم التعزيز

All Articles