Bu makale, AI Araştırma Enstitüsü tarafından derlenen, orijinal başlığı olan teknik bir blogdur:
Yüksek boyutlu hiper parametre ayarlamasına giriş
Yazar | Thalles Silva
Tercüme | Yulian
Düzeltme | Stephen Ergouzi İnceleme | Pide Bitirme | Liyuwang
Orijinal bağlantı:
https://medium.freecodecamp.org/an-introduction-to-high-dimensional-hyper-parameter-tuning-df5c0106e5a4
Makine öğrenimi modellerinin (ML) performansını ayarlamak için çok çalışıyorsanız, doğru yeri bulmak için bu makaleyi okuyun.
Hiperparametre ayarlamasının sorunu, bir öğrenme algoritması için en uygun parametre setinin nasıl bulunacağıdır.
Genellikle, bu değerleri seçme işlemi çok zaman alır.
Doğrusal regresyon algoritmaları gibi en basit algoritmaların bile hiperparametrelerin optimal çözüm setini bulması zordur. Derin öğrenme algoritmaları söz konusu olduğunda bu mesele daha zor hale geliyor.
Sinir ağlarını (NN'ler) optimize ederken, ayarlanması gereken bazı parametreler şunları içerir:
Öğrenme oranı
itme
Düzenlilik
bırakma olasılığı
Toplu standardizasyon
Bu kısa makalede, makine öğrenimi modellerini optimize etmek için en iyi yöntemlerden bahsedeceğiz. İki veya üçten fazla parametrenin ayarlanması gerektiğinde, bu yöntemler kullanılabilir.
Optimize etmek için yalnızca birkaç parametremiz olduğunda, ızgara araması genellikle iyi bir seçimdir. Diğer bir deyişle, iki veya hatta üç farklı parametre için bu doğru yol olabilir.
Her hiperparametre için, önce aranacak parametre setini tanımlamanız gerekir.
Daha sonra, bu yöntemin fikri, her bir parametre değeri arasındaki olası tüm kombinasyonları dener.
Her kombinasyon için farklı bir modeli eğitiyor ve değerlendiriyoruz.
Son olarak, yalnızca minimum genelleme hatası olan bir modeli elimizde tutuyoruz.
Web aramasının temel sorunu üstel bir zaman algoritmasıdır. Parametre sayısı arttıkça maliyeti katlanarak artar.
Diğer bir deyişle, p parametrelerini ve her birini v değerleriyle optimize etmemiz gerekirse, yürütme süresi O (v) zamanıdır.
Aynı zamanda, ızgara araması hiperparametre uzayında düşündüğümüz kadar etkili değildir.
Yukarıdaki koda bir göz atın. Bu deneysel düzeneği kullanarak 256 model eğiteceğiz. Optimizasyona bir parametre daha eklemeye karar verirsek, deney sayısının 1024'e çıkacağını unutmayın.
Elbette mevcut ayar, her parametre için yalnızca dört farklı değeri keşfedecektir. Diğer bir deyişle, 256 modeli yalnızca öğrenme hızı ve düzenliliğin dört değerini keşfetmek için eğitiyoruz.
Ek olarak, ızgara araması genellikle tekrarlanan denemeler gerektirir. Örneğin, yukarıdaki koddaki öğrenme_ hızı_aramanın değerini örnek olarak alın.
learning_rate_search =İlk çalıştırmayı (256 model testi) göz önüne aldığımızda, en iyi modelin öğrenme oranının 0.01 olduğunu gördük.
Bu durumda, daha iyi değerler bulmak için ızgarayı 0.01 civarında "yakınlaştırarak" arama değerimizi iyileştirmeye çalışmalıyız.
Bunun için, yeni bir ızgara araması oluşturabilir ve öğrenme hızının arama aralığını yeniden tanımlayabiliriz, örneğin:
learning_rate_search =Peki ya aldığımız en iyi modelin öğrenme oranı 0.0001 ise?
Bu değer ilk arama aralığının en kenarında olduğundan, arama değerini değiştirmeli ve farklı bir küme kullanarak tekrar aramalıyız:
learning_rate_search =Ve iyi bir aday değer bulduktan sonra aralığı iyileştirmeye çalışın.
Bu makale, bu ayrıntıları sadece hiperparametre aramanın ne kadar zaman alıcı olduğunu vurgulamak için yazmaktadır.
Hiperparametre aday değerlerimizi rastgele nasıl seçebilirim? Bu fikir sezgisel ve anlaşılması kolay olmasa da, rastgele arama bir dereceye kadar grid aramasından daha iyidir.
Biraz sezgi
(Okuyucular), bahsedilen bazı hiperparametrelerin diğerlerinden daha önemli olduğuna dikkat etmelidir.
Örneğin, öğrenme hızı ve momentum faktörü diğer parametrelere göre ayarlanmaya değerdir.
Bununla birlikte, yukarıdaki durumun istisnaları olduğu için, optimizasyon sürecinde hangi parametrelerin önemli bir rol oynadığını bilmek bizim için zor. Aslında farklı model mimarileri ve veri setlerinden dolayı her parametrenin öneminin değişebileceğini düşünüyorum.
İki hiperparametre öğrenme oranını ve düzenlileştirme katsayısını optimize ettiğimizi varsayalım. Ve sadece öğrenme oranının problem için önemli olduğunu düşünüyoruz.
Izgara araması durumunda, dokuz farklı deney yapacağız, ancak öğrenme oranı için yalnızca üç adayı deneyeceğiz.
Resim kaynağı: Hiper Parametre Optimizasyonu için Rastgele Arama, James Bergstra, Yoshua Bengio.
Şimdi, tüm parametreler için aynı anda rastgele aday değerleri örneklediğimizde ne olacağını görün. Bu durumda, aslında her parametre için dokuz farklı değer araştırıyoruz.
(Örnek) Buna inanmıyorsanız, üç hiperparametreyi optimize ettiğimizi varsayalım. Örneğin, öğrenme hızı, düzenlilik gücü ve momentum.
3 hiperparametrede ızgara aramasını kullanarak optimize edin
Izgara aramasını kullanarak, her bir parametrenin beş farklı değerini keşfetmek için 125 eğitim seansı yürütmemiz gerekiyor.
Öte yandan, rastgele aramayı kullanarak, her parametre için 125 farklı değeri keşfedeceğiz.
Nasıl yapılır
Öğrenme oranını optimize etmeye çalışmak istersek, örneğin, değer 0.1 ila 0.0001 aralığındaysa, şunları yapacağız:
Logaritmik fonksiyon altında tekdüze bir dağılımda örnekleme yaptığımıza lütfen dikkat edin.
-1 ve -4 (öğrenme oranı) değerlerini üsler olarak düşünebilirsiniz, gerçek aralıktır.
Logaritmik yöntemi kullanmazsak, eşit olmayan örnekleme dağılımına yol açacaktır. Başka bir deyişle, aşağıdaki gibi örneklemeye çalışmamalısınız:
Bu durumda, çoğu değer "geçerli" alandan örneklenmeyecektir. Aslında, bu örnekteki öğrenme oranı örneği göz önüne alındığında, değerin% 72'si aralığa düşecektir.
Ek olarak, örneklenen değerin% 88'i aralıktan gelecektir. Diğer bir deyişle, öğrenme oranı aday değerlerinin sadece% 12'si yani 3 değeri aralıktan örneklenecektir. O yüzden lütfen bunu yapma.
Aşağıdaki şekilde, aralıktan 25 rastgele değeri örnekliyoruz. Sol üst köşedeki grafik, orijinal değeri gösterir.
Sağ üst köşede, örneklenen değerlerin% 72'sinin aralık içinde olduğuna dikkat edin. Değerin% 88'i aralık dahilindedir.
Alttaki grafik, değerlerin dağılımını gösterir. Değerlerin yalnızca% 12'si aralık dahilindedir. Bu sorunu çözmek için, logaritmik aralıktaki tekdüze bir dağılımdan değerleri örnekleyin.
Ayrıca, düzenlileştirme parametrelerini optimize ederken günlük almaya çalışın
Ayrıca, ızgara araması gibi, yukarıda bahsettiğimiz iki durumu da göz önünde bulundurmanız gerektiğini lütfen unutmayın.
En iyi aday değer kenara çok yakınsa, aralığınız sapabilir ve değer aralığını değiştirip yeniden örneklemeniz gerekir. Ek olarak, ilk aday değeri seçtikten sonra, daha ince bir değer aralığına yeniden örneklemeyi deneyebilirsiniz. Lei Feng Ağı Lei Feng Ağı Lei Feng Ağı
Kısaca bunlar anahtar noktalardır.
İki veya üçten fazla hiperparametreyi ayarlamak isterseniz, "rastgele arama" tercih edilir. Uygulama ve yakınsama, ızgara aramasından daha hızlı / daha kolaydır.
Değerinizi seçmek için uygun oranı kullanın. Logaritmik uzayda tekdüze dağıtılmış örnekleri örneklemeyi deneyin. Bu, parametre aralığı içinde eşit olarak dağıtılan değerleri örneklemenize olanak tanır.
İster rastgele arama ister ızgara araması olsun, seçtiğiniz aday değerler aralığına dikkat edin. Parametre aralığını doğru ayarladığınızdan ve daha doğru sonuçlar elde etmek için olabildiğince yeniden örneklediğinizden emin olun.
Bu makalenin ilgili bağlantılarını ve referanslarını görüntülemeye devam etmek ister misiniz?
Tıklamak ML modellerini optimize etmek için yüksek boyutlu hiperparametre ayarlaması-en iyi uygulamaları tanıtın] Şunları ziyaret edebilirsiniz:
https://ai.yanxishe.com/page/TextTranslation/1623
AI Araştırma Enstitüsü bugün şunları tavsiye ediyor: Makine öğrenimi çılgınlığı
Sınırlı bir süre için ücretsiz \ 18 klasik kitap / Stanford klasik ders kitapları + makaleler
Almak için bağlantıya tıklayın:
https://ai.yanxishe.com/page/resourceDetail/574