Otomatik farklılaşma ne zaman ucuz?


12

Otomatik farklılaşma , belirli bir girdi üzerindeki bir programın türevini sayısal olarak değerlendirmemizi sağlar. Bu hesaplamanın orijinal programı çalıştırma maliyetinin beş katından daha az bir maliyetle yapılabileceği teoremi vardır. Bu beş faktörü bir üst sınırdır.

Hangi durumlarda bu maliyet daha da azaltılabilir? Birçok saha içi türev kodu orijinal programın hızına yakın çalışır. Bu hızlandırmayı elde etmek için ne yapılır?

Hesaplamayı hızlandırmak için orijinal programın özellikleri nelerdir?

Hesaplamayı hızlandırmak için hangi yazılım mühendisliği hileleri kullanılabilir?


1
Kuşkusuz, üstel fonksiyon ve trigonometrik fonksiyonlar gibi fonksiyonların türevlerinin özel özelliklerinden yararlanmak istenir. Birçok potansiyel ortak alt ifade var.
JM

Ters mod veya ileri mod hakkında mı soruyorsunuz?
Jed Brown

Benim (sınırlı) anlayışım, hem ileri hem de geri modlarının kabaca benzer maliyetlere sahip olduğudur.
MRocklin

Yanıtlar:


6

AD hakkındaki sınırlı anlayışım Matt'in söylediklerine paralel. Türevlerin hesaplanmasını hızlandırmak için, ifade grafiğinin yapısı, Jacobian matrisleri kümesindeki spariteyi ve kıtlığı sömürmelidir. (Daha fazla bilgi için Griewank'ın bu makalesine bakın .) Jacobian matrisleri kümesindeki bu özelliklerden yararlanmak için ifade grafiğini yeniden yapılandırmak için muhtemelen yazılım kodlarının AD kodunda olması muhtemeldir. AD kodunun, yazdığınız koddan nasıl bir ifade grafiği oluşturduğunu bilmek, daha az hesaplama gerektiren kodların nasıl yazıldığını daha iyi anlamanıza yardımcı olur. Herhangi bir iyi AD kodu, ortak alt ifadelere sahip içsel özelliklerden zaten yararlanmalıdır, ancak iyi AD kodlarının yazılması zordur.

Alandaki standart referans, Türevleri Değerlendirmek: Algoritmik Farklılaşma Prensipleri ve Teknikleri, Andreas Griewank ve Andrea Walther tarafından İkinci Baskıdır ve bir programın türevini değerlendirmek için gereken hesaplama sayısının nasıl azaltılacağı hakkında daha ayrıntılı bilgi sağlamalıdır.


3

Herhangi bir AD hala bu intrinsics sağlanmalıdır, bu yüzden bir ifadenin genel karmaşıklığı ile ne ilgisi olduğunu göremiyorum. Ben AD bu şekilde ifade beri karmaşıklığı ifade grafik yoluyla yol sayısına göre sınıflandırabilirsiniz tahmin ediyorum. Andrew Lyons'ın seri paralel grafikler üzerinde iyi çalışmaları var.

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.