Derin sinir ağlarını eğitirken gradyan kırpma


10

Ne zaman bir RNN veya CNN antrenman yaparken gradyan kırpma yapmak istersiniz? Özellikle ikincisiyle ilgileniyorum. Kırpma için iyi bir başlangıç ​​değeri ne olabilir? (elbette ayarlanabilir)

Yanıtlar:


4

Degradeleri yok etme veya degradeleri patlatma sorununu yaşarken degrade kırpma yapmak istersiniz. Ancak, her iki senaryo için de daha iyi çözümler vardır:

  • Patlayan degrade, degrade çok büyük olduğunda ve sayısal taşma olduğunda oluşur. Bu, ağın ağırlıkları daha küçük değerlere başlatılarak kolayca düzeltilebilir. Bu işe yaramazsa, kodda bir hata olması muhtemeldir.

  • Ufuk gradyanı, optimizasyon bir eyer noktasında sıkıştığında gerçekleşir, degrade optimizasyonun ilerlemesi için çok küçük olur. Bu, momentum veya RMS prop veya her ikisi ile de grad inişi kullanılarak (Adam optimizer olarak da bilinir) düzeltilebilir.

Degrade kırpmanın üst sınırı için başlangıç ​​değerleri, değişkenin alabileceği en büyük sayıdan daha küçük bir şey olacaktır. Alt sınır için, probleme özgü olduğunu söyleyebilirim ama belki 1e-10 gibi bir şeyle başlayabilirim.


1
Bu cevabın bağlamının RNN'leri hariç tutması gerekip gerekmediğinden emin değilim, ancak eğer değilse, önerilen çözümlerin her ikisi de özellikle RNN'lerde gradyan kırpmadan daha iyi değildir .
Alex R.

Üzgünüm CNN'ler bağlamında daha fazlasını düşünüyordum, çekinmeyin
Miguel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.