Model performansını iyileştirmek için bilimsel bir yaklaşım

Bu belgenin amaçları doğrultusunda:

Makine öğrenimi geliştirmenin nihai hedefi, dağıtılan modelin faydasını en üst düzeye çıkarmaktır.

Herhangi bir ML sorunu söz konusu olduğunda, bu bölümde genellikle aynı temel adımları ve ilkeleri kullanabilirsiniz.

Bu bölümde şu varsayımlarda bulunulur:

  • Makul bir sonuç sağlayan bir yapılandırmayla birlikte tam olarak çalışan bir eğitim ardışık düzenine sahip olursunuz.
  • Anlamlı ince ayar denemeleri ve paralel olarak en az birkaç eğitim işi yürütmek için yeterli miktarda hesaplama kaynağınız vardır.

Artımlı ayarlama stratejisi

Öneri: Basit bir yapılandırmayla başlayın. Ardından, soruna dair detaylı bilgiler edinirken aşamalı olarak iyileştirmeler yapın. İyileştirmelerin güçlü kanıtlara dayandığından emin olun.

Hedefinizin, modelinizin performansını en üst düzeye çıkaran bir yapılandırma bulmak olduğunu varsayarız. Bazen hedefiniz, belirli bir son tarihe kadar model iyileştirmesini artırmaktır. Diğer durumlarda, modeli süresiz olarak geliştirmeye devam edebilirsiniz. Örneğin, üretimde kullanılan bir modeli sürekli olarak iyileştirebilirsiniz.

Prensip olarak, olası yapılandırma alanlarının tamamında otomatik olarak arama yapmak için bir algoritma kullanarak performansı en üst düzeye çıkarabilirsiniz. Ancak bu seçenek pratik bir seçenek değildir. Olası yapılandırmalar son derece geniştir ve henüz bu alanı gerçek kişi tarafından yardım gerekmeden etkili bir şekilde arayacak kadar karmaşık bir algoritma bulunmamaktadır. Çoğu otomatik arama algoritması, arama yapılacak yapılandırma grubunu tanımlayan elle tasarlanmış bir arama alanına ihtiyaç duyar ve bu arama alanları biraz önemli olabilir.

Performansı artırmanın en etkili yolu, basit bir yapılandırmayla başlayıp kaliteyi artımlı olarak artırmak ve sorunu anlamak için geliştirme yapmaktır.

Her ayar turunda otomatik arama algoritmaları kullanmanızı ve anlamaya devam ettikçe arama alanlarını sürekli olarak güncellemenizi öneririz. Bununla birlikte doğal olarak daha iyi ve daha iyi yapılandırmalar keşfedersiniz. Dolayısıyla "en iyi" modeliniz sürekli olarak gelişir.

"Lansman" terimi, en iyi yapılandırmamızı güncellemeyi ifade eder (bir üretim modelinin gerçek lansmanına karşılık gelebilir veya gelmeyebilir). Her "lansman" için değişikliğin sadece güçlü bir konfigürasyona değil, güçlü bir yapıya dayalı olduğundan emin olmanız gerekir. Böylece, eğitim ardışık düzenine gereksiz karmaşıklık eklemeyin.

Yüksek bir düzeyde, artımlı ayarlama stratejimiz aşağıdaki dört adımı tekrarlamayı içerir:

  1. Bir sonraki deneme turu için hedef seçin. Hedefin uygun kapsamda olduğundan emin olun.
  2. Bir sonraki deneme turunu tasarlayın. Bu hedefe ulaşmak için bir dizi deneme tasarlayın ve yürütün.
  3. Deneysel sonuçlardan ders çıkarın. Denemeyi bir kontrol listesiyle karşılaştırın.
  4. Aday değişikliğini uygulayıp uygulamayacağınızı belirleyin.

Bu bölümün geri kalanında bu strateji ayrıntılı bir şekilde açıklanmaktadır.

Sonraki deneme turu için hedef seçin

Birden çok özellik eklemeye veya birden fazla soruyu tek seferde yanıtlamaya çalışırsanız sonuçlar üzerindeki farklı etkileri netleştiremeyebilirsiniz. Örnek hedefler şunlardır:

  • Ardışık düzende potansiyel bir iyileştirme yapmayı deneyin (örneğin, yeni bir normalleştirici, ön işleme seçeneği vb.).
  • Belirli bir model hiperparametresinin (ör. etkinleştirme işlevi) etkisini anlama
  • Doğrulama hatasını en aza indirin.

Kısa vadeli doğrulama hatası iyileştirmelerinden çok uzun vadeli ilerlemeye öncelik verin

Özet: Çoğunlukla birincil hedefiniz, ayarlama sorunu hakkında bilgi edinmektir.

Zamanın büyük bir kısmını, sorun hakkında detaylı bilgi edinmek ve doğrulama kümesindeki performansı en üst düzeye çıkarmaya odaklanacak kadar kısa süreli olmak için harcamanızı öneririz. Diğer bir deyişle, zamanınızın çoğunu "keşfet" için ve yalnızca küçük bir kısmı "keşif" için harcayabilirsiniz. Nihai performansı artırmak için sorunu anlamak çok önemlidir. Kısa vadeli kazançlar yerine analizlere öncelik vermek:

  • İyi performans gösteren çalıştırmalarda meydana gelen gereksiz değişiklikleri sadece geçmiş kaza sonucunda başlatmaktan kaçının.
  • Doğrulama hatasının en hassas olduğu hiperparametreleri, en çok hangi hiper parametrelerin en çok etkileşime girdiğini ve bu nedenle birlikte ayarlanması gerektiğini, diğer hiperparametrelerin diğer değişikliklere göre nispeten hassas olmadığını ve bu nedenle gelecekteki denemelerde düzeltilebileceğini belirleyin.
  • Denenmesi gereken yeni özellikler önerin. Örneğin, fazla uyum sorunu yaşarken yeni normalleştiriciler kullanabilirsiniz.
  • İşe yaramayan ve dolayısıyla kaldırılabilecek özellikleri belirlemek, gelecekteki denemelerin karmaşıklığını azaltır.
  • Hiperparametre ayarında yapılan iyileştirmelerin doyma olasılığının yüksek olduğu zamanı belirleyin.
  • Ayarlama verimliliğimizi artırmak için arama alanlarımızı en uygun değer etrafında sınırlandırın.

Sonunda sorunu anlayacaksınız. Böylece, denemeler ayar sorununun yapısı hakkında son derece bilgilendirici olmasa bile yalnızca doğrulama hatasına odaklanabilirsiniz.

Sonraki deneme turunu tasarlayın

Özet: Deneysel hedef için hangi hiperparametrelerin bilimsel, rahatsız edici ve sabit hiperparametre olduğunu belirleyin. Rahatsız edici hiperparametrelerde optimizasyon yaparken bilimsel hiperparametrelerin farklı değerlerini karşılaştırmak için bir dizi çalışma oluşturun. Kaynak maliyetlerini bilimsel değerle dengelemek için rahatsız edici hiperparametrelerin arama alanını seçin.

Bilimsel, rahatsız edici ve sabit hiperparametreleri tanımlama

Belirli bir hedef için tüm hiperparametreler aşağıdaki kategorilerden birine girer:

  • bilimsel hiperparametreler, modelin performansı üzerindeki etkisini ölçmeye çalıştığınız parametrelerdir.
  • sorunlu hiperparametreler, bilimsel hiperparametrelerin farklı değerlerini adil bir şekilde karşılaştırmak için optimize edilmesi gereken parametrelerdir. Rahatsız edici hiperparametreler, istatistiklerdeki rahatsız edici parametrelere benzer.
  • sabit hiperparametrelerin geçerli deneme turunda sabit değerleri vardır. Sabit hiperparametrelerin farklı değerlerini karşılaştırdığınızda, sabit hiperparametrelerin değerleri değişmemelidir. Bir deneme grubu için belirli hiperparametreleri düzelterek, denemelerden türetilen sonuçların sabit hiperparametrenin diğer ayarları için geçerli olmayabileceğini kabul etmeniz gerekir. Diğer bir deyişle, sabit hiperparametreler, denemelerden elde ettiğiniz sonuçlar için uyarılar oluşturur.

Örneğin, hedefinizin aşağıdaki gibi olduğunu varsayalım:

Daha fazla gizli katmana sahip bir modelin doğrulama hatasının daha düşük olup olmadığını belirleyin.

Bu durumda:

  • Öğrenme hızı, farklı sayıda gizli katmana sahip modelleri, yalnızca öğrenme hızı her bir gizli katman sayısı için ayrı olarak ayarlandıysa oldukça adil bir şekilde karşılaştırabileceğiniz için rahatsız edici bir hiperparametredir. (En uygun öğrenme hızı genellikle model mimarisine bağlıdır).
  • Önceki denemelerde en iyi etkinleştirme işlevinin model derinliğine hassas olmadığını tespit ettiyseniz etkinleştirme işlevi sabit bir hiperparametre olabilir. Alternatif olarak, bu etkinleştirme işlevini kapsayacak gizli katmanların sayısıyla ilgili endişelerinizi sınırlandırabilirsiniz. Alternatif olarak, her bir gizli katman sayısı için ayrı ayrı ayarlamaya hazırsanız sorun yaratan bir hiperparametre olabilir.

Belirli bir hiperparametre, bilimsel bir hiperparametre, rahatsız edici hiperparametre veya sabit hiperparametre olabilir. Hiperparametrenin ataması deneysel hedefe bağlı olarak değişir. Örneğin, etkinleştirme işlevi aşağıdakilerden herhangi biri olabilir:

  • Bilimsel hiperparametre: ReLU veya tanh sorunumuzda daha iyi bir seçim mi?
  • Rahatsız edici hiperparametre: Birkaç olası etkinleştirme işlevine izin verdiğinizde en iyi beş katmanlı model, en iyi altı katmanlı modelden daha iyi midir?
  • Sabit hiperparametre: ReLU ağları için, belirli bir konuma toplu normalleştirme eklemek işe yarar mı?

Yeni bir deneme turu tasarlarken:

  1. Deneysel hedefe ilişkin bilimsel hiperparametreleri belirleyin. (Bu aşamada, diğer tüm hiperparametreleri, rahatsız edici hiperparametre olarak kabul edebilirsiniz.)
  2. Bazı rahatsız edici hiperparametreleri sabit hiperparametrelere dönüştürün.

Sınırsız kaynaklarla, bilimsel olmayan hiperparametrelerin tamamını rahatsız edici hiperparametre olarak bırakırsınız. Böylece, denemelerinizden elde ettiğiniz sonuçlar sabit sabit parametre değerleriyle ilgili uyarılar içermez. Bununla birlikte, rahatsız edici hiperparametrelerde ne kadar çok ayarlama yaparsanız, parametrelerin her bir bilimsel hiperparametre ayarı için yeterince iyi ayarlanmama ve deneylerinizden yanlış sonuçlara ulaşma riskini de o kadar artırır. Sonraki bir bölümde açıklandığı gibi, hesaplama bütçesini artırarak bu riske karşı koyabilirsiniz. Bununla birlikte, maksimum kaynak bütçeniz genellikle tüm bilimsel olmayan hiperparametreleri ayarlamak için gerekenden daha azdır.

Bir düzeltme rahatsız edici hiperparametresinin, rahatsız edici hiperparametre olarak eklenmenin maliyetinden daha az ağırlığa sahip olması durumunda bir rahatsız edici hiperparametreyi sabit bir hiperparametreye dönüştürmenizi öneririz. Bir rahatsızlık verici hiperparametresi bilimsel hiperparametrelerle ne kadar çok etkileşim kurarsa değerini düzeltmek için o kadar çok zarar görür. Örneğin, ağırlık azalmasının en iyi değeri genellikle model boyutuna bağlıdır. Bu nedenle, farklı model boyutlarını karşılaştırarak ağırlıklandırmanın tek bir belirli değerini karşılaştırmak çok bilgilendirici olmayacaktır.

Bazı optimize edici parametreleri

Genel bir kural olarak, bazı optimize edici hiperparametreler (ör.öğrenme hızı, momentum, öğrenme hızı zaman planlaması parametreleri, Adam beta'lar vb.) rahatsız edici hiperparametrelerdir. Çünkü bunlar, en çok diğer değişikliklerle etkileşime girer. Bu optimize edici hiperparametreler nadiren bilimsel hiperparametredir, çünkü "Mevcut ardışık düzen için en iyi öğrenme hızı nedir?" gibi bir hedef çok fazla bilgi vermez. Sonuçta, bir sonraki ardışık düzen değişikliğiyle en iyi ayar değişebilir.

Kaynak kısıtlamaları veya bilimsel parametrelerle etkileşime girmediklerine dair güçlü kanıtlar nedeniyle bazı optimize edici hiperparametrelerini zaman zaman düzeltebilirsiniz. Ancak, genellikle bilimsel hiperparametrelerin farklı ayarları arasında adil karşılaştırmalar yapmak için optimize edici hiperparametrelerini ayrı olarak ayarlamanız gerektiğini ve bu durumun sabitlenmemesi gerektiğini varsaymanız gerekir. Ayrıca, bir optimize edici hiperparametre değerini başka bir değer yerine tercih etmek için bir öncelikle neden yoktur. Örneğin, optimize edici hiperparametre değerleri, genellikle gelecekteki geçişlerin veya gradyanların hesaplama maliyetini etkilemez.

Optimize Edici seçimi

Optimize Edici seçeneği genellikle şunlardan biridir:

  • bilimsel bir hiperparametre
  • sabit bir hiperparametre

Deneme amaçlı hedefiniz, iki veya daha fazla farklı optimize edici arasında adil karşılaştırmalar yapmayı içeriyorsa optimize edici, bilimsel bir hiperparametredir. Örneğin:

Hangi optimize edicinin belirli adımlarda en düşük doğrulama hatasını oluşturduğunu öğrenin.

Alternatif olarak, optimize ediciyi aşağıdakiler de dahil çeşitli nedenlerle sabit hiperparametre haline getirebilirsiniz:

  • Önceki denemeler, düzenleme sorununuz için en iyi optimize edicinin mevcut bilimsel hiperparametrelere duyarlı olmadığını gösteriyor.
  • Eğitim eğrilerinin akılda bulundurulması daha kolay olduğundan, bu optimize ediciyi kullanarak bilimsel hiperparametrelerin değerlerini karşılaştırmayı tercih edersiniz.
  • Alternatiflerinden daha az bellek kullandığı için bu optimize ediciyi kullanmayı tercih edersiniz.

Normalleştirme hiperparametreleri

Normalleştirme tekniğinin sunduğu hiperparametreler, genellikle rahatsız edici hiperparametrelerdir. Ancak, normalleştirme tekniğini dahil etme veya etmeme seçimi, bilimsel veya sabit bir hiperparametredir.

Örneğin, normalleştirme sürecinin dışında kod karmaşıklığı ortaya çıkar. Bu nedenle, ayrılma normalleştirmesini dahil edip etmeyeceğinize karar verirken "bırakma yok" ve "bırakma" karşılaştırmasını bilimsel bir hiperparametre olarak, rahatsız edici bir hiperparametre olarak belirleyebilirsiniz. Bu denemeye göre ardışık düzene ayrılma normalleştirmesi eklemeye karar verirseniz ayrılma oranı, gelecekteki denemelerde rahatsız edici bir hiperparametre olur.

Mimari hiperparametreler

Mimari değişiklikler, yayınlama ve eğitim maliyetlerini, gecikmeyi ve bellek gereksinimlerini etkileyebileceği için mimari hiperparametreleri genellikle bilimsel veya sabit hiperparametredir. Örneğin, hız sayısı ve bellek kullanımı açısından dramatik sonuçlar doğuracağından katman sayısı genellikle bilimsel veya sabit bir hiperparametredir.

Bilimsel hiperparametrelere bağımlılıklar

Bazı durumlarda, rahatsız edici ve sabit hiperparametre grupları, bilimsel hiperparametrelerin değerlerine bağlıdır. Örneğin, Nesterov ivmesindeki optimize ediciyi belirlemeye çalıştığınızı ve Adam'ın en düşük doğrulama hatasını ürettiğini varsayalım. Bu durumda:

  • Bilimsel hiperparametre, değerleri alan optimize edicidir {"Nesterov_momentum", "Adam"}
  • optimizer="Nesterov_momentum" değeri, rahatsız edici veya sabit hiperparametre olabilecek {learning_rate, momentum} hiperparametrelerini sunar.
  • optimizer="Adam" değeri, rahatsız edici veya sabit hiperparametre olabilecek {learning_rate, beta1, beta2, epsilon} hiperparametrelerini sunar.

Yalnızca bilimsel hiperparametrelerin belirli değerleri için mevcut olan hiperparametrelere koşullu hiperparametreler adı verilir. İki koşullu hiperparametrenin, aynı ada sahip olması nedeniyle aynı olduğunu varsaymayın. Önceki örnekte, learning_rate adlı koşullu hiperparametre, optimizer="Nesterov_momentum" için optimizer="Adam" parametresinden farklı bir hiperparametredir. Rolü, iki algoritmada benzerdir (ancak aynı değildir), ancak her bir optimize edicide iyi sonuç veren değer aralığı genellikle birkaç büyüklük derecesine göre farklılık gösterir.

Çalışma grubu oluşturma

Bilimsel ve rahatsız edici hiperparametreleri tanımladıktan sonra, deneme amaçlı hedefe doğru ilerlemek için bir çalışma veya bir dizi çalışma tasarlamanız gerekir. Çalışma, sonraki analiz için çalıştırılacak bir dizi hiperparametre yapılandırması belirtir. Her yapılandırmaya deneme denir. Çalışma oluşturmak için genellikle aşağıdakiler seçilmelidir:

  • Denemeler arasında farklılık gösteren hiperparametreler.
  • Bu hiperparametrelerin alabileceği değerler (arama alanı).
  • Deneme sayısı.
  • Arama alanından bu kadar çok sayıda deneme örneği alınacak otomatik bir arama algoritması.

Alternatif olarak, hiperparametre yapılandırma grubunu manuel olarak belirterek bir çalışma oluşturabilirsiniz.

Çalışmaların amacı şunları yapmaktır:

  • Ardışık düzeni farklı bilimsel hiperparametre değerleriyle çalıştırın.
  • Bilimsel hiperparametrelerin farklı değerleri arasındaki karşılaştırmaların mümkün olduğunca adil olması için rahatsız edici hiperparametreleri "optimize etmek" (veya "optimize etmek").

En basit şekilde, bilimsel parametrelerin her bir yapılandırması için ayrı bir çalışma yaparsanız her bir sorun rahatsız edici hiperparametreler üzerinde yükselir. Örneğin, hedefiniz Nesterov ivmesi ve Adam'dan en iyi optimize ediciyi seçmekse iki çalışma oluşturabilirsiniz:

  • optimizer="Nesterov_momentum" ve rahatsız edici hiperparametrelerin {learning_rate, momentum} olduğu bir çalışma
  • optimizer="Adam" ve rahatsız edici hiperparametrelerin {learning_rate, beta1, beta2, epsilon} olduğu bir başka çalışma daha yapıldı.

Her çalışmadan en iyi performansı gösteren denemeyi seçerek iki optimize ediciyi karşılaştırırsınız.

Sorunlu hiperparametreler üzerinde optimizasyon yapmak için Bayes optimizasyonu veya evrimsel algoritmalar gibi yöntemler dahil olmak üzere gradyansız optimizasyon algoritmalarını kullanabilirsiniz. Ancak bu ayardaki çeşitli avantajları nedeniyle arama ince ayarı için keşif aşamasında yarı rastgele arama kullanmayı tercih ediyoruz. Keşif tamamlandıktan sonra, modern Bayes optimizasyon yazılımını (varsa) kullanmanızı öneririz.

Bilimsel hiperparametrelerin çok sayıda değerini karşılaştırmak istediğiniz daha karmaşık bir durum düşünün, ancak bu kadar fazla sayıda bağımsız araştırma yapmak pratik değildir. Bu durumda, aşağıdakileri yapabilirsiniz:

  • Bilimsel parametreleri, rahatsız edici hiperparametrelerle aynı arama alanına ekleyin.
  • Tek bir çalışmada hem bilimsel hem de rahatsız edici hiperparametrelerin değerlerini örneklemek için bir arama algoritması kullanma.

Bu yaklaşım uygulanırken koşullu hiperparametreler sorunlara neden olabilir. Ne de olsa, rahatsız edici hiperparametre kümesi, bilimsel hiperparametrelerin tüm değerleri için aynı olmadığı sürece bir arama alanı belirtmek zordur. Bu durumda, daha ilginç kara kutu optimizasyon araçları yerine yarı rastgele arama kullanma tercihimiz, bilimsel hiperparametrelerin farklı değerlerinin tek tip olarak örnekleneceğini garanti ettiği için daha da güçlüdür. Arama algoritması ne olursa olsun, bilimsel parametrelerin eşit bir şekilde arandığından emin olun.

Bilgilendirici ve uygun fiyatlı denemeler arasında denge kurun

Bir çalışma veya bir dizi çalışma tasarlarken aşağıdaki üç hedefe yeterince ulaşmak için sınırlı bir bütçe ayırın:

  • Bilimsel hiperparametrelerin yeterli miktarda farklı değerini karşılaştırma.
  • Yeterince büyük bir arama alanında rahatsız edici hiperparametreleri ayarlama.
  • Rahatsız edici hiperparametrelerin arama alanını yeterince yoğun bir şekilde örnekleme.

Bu üç hedefe ne kadar iyi ulaşabilirseniz, denemeden daha fazla analiz elde edebilirsiniz. Bilimsel hiperparametrelerin mümkün olduğu kadar çok değerinin karşılaştırılması, deneyden elde ettiğiniz analizlerin kapsamını genişletir.

Mümkün olduğunca çok rahatsız edici hiperparametreyi dahil etmek ve her bir rahatsız edici hiperparametrenin mümkün olduğunca geniş bir aralıkta değişiklik yapmasına izin vermek, bilimsel hiperparametrelerin her bir yapılandırması için rahatsız edici hiperparametrelerin "iyi" değerinin mevcut olduğuna dair güveni artırır. Aksi takdirde, bilimsel hiperparametre alanının olası bölgelerinde arama yapmadan bilimsel hiperparametrelerin değerleri arasında haksız karşılaştırma yapabilirsiniz. Burada daha iyi değerler, bilimsel parametrelerin bazı değerleri için uzanabilir.

Rahatsız edici hiperparametrelerin arama alanını mümkün olduğunca yoğun şekilde örnekleyin. Böylece, arama prosedürünün, arama alanınızda olabilecek rahatsız edici hiperparametreler için iyi ayarları bulacağına dair güven artar. Aksi takdirde, bazı rahatsız edici hiperparametrelerde daha fazla şans bulunduğu için bilimsel parametrelerin değerleri arasında haksız karşılaştırmalar yapabilirsiniz.

Maalesef, bu üç boyuttan herhangi birinde yapılan iyileştirmeler için aşağıdakilerden biri gerekir:

  • Deneme sayısını ve dolayısıyla kaynak maliyetini artırır.
  • Diğer boyutlardan birinde kaynakları kaydetmenin bir yolunu bulma.

Her sorunun kendine özgü tutarsızlıkları ve hesaplama kısıtlamaları vardır. Bu nedenle, kaynakları bu üç hedef arasında paylaştırmak için bir miktar alan bilgisi gerekir. Bir çalışma yaptıktan sonra, çalışmanın rahatsız edici hiperparametreleri yeterince iyi ayarlayıp ayarlamadığını her zaman anlamaya çalışın. Diğer bir deyişle, çalışma bilimsel hiperparametreleri adil bir şekilde karşılaştırmak için yeterince geniş bir alanda arama yapmıştır (bir sonraki bölümde daha ayrıntılı bir şekilde açıklanmıştır).

Deneysel sonuçlardan ders çıkarın

Öneri: Her deney grubunun orijinal bilimsel hedefine ulaşmanın yanı sıra, ek sorulardan oluşan bir yapılacaklar listesini de inceleyin. Sorun tespit ederseniz denemeleri gözden geçirin ve yeniden çalıştırın.

Sonuç olarak her deneme grubunun belirli bir hedefi vardır. Denemelerin bu hedefe yönelik kanıtı değerlendirmeniz gerekir. Ancak doğru soruları sorarsanız genellikle belirli bir deneme grubunun orijinal hedefine ilerleyebilmesi için düzeltilmesi gereken sorunlar bulabilirsiniz. Bu soruları sormazsanız yanlış çıkarımlar yapabilirsiniz.

Deneme çalıştırmak pahalı olabileceğinden, bu analizler mevcut hedefle hemen alakalı olmasa bile her deneme grubundan başka faydalı analizler çıkarmanız da gerekir.

Orijinal hedeflerine doğru ilerlemek için belirli bir deneme grubunu analiz etmeden önce kendinize aşağıdaki ek soruları sorun:

  • Arama alanı yeterince büyük mü? Bir çalışmadaki en uygun nokta, bir veya daha fazla boyutta arama alanının sınırına yakınsa muhtemelen arama yeterince geniş değildir. Bu durumda, genişletilmiş arama alanı ile başka bir çalışma gerçekleştirin.
  • Arama alanından yeterli sayıda örnek aldınız mı? Yoksa daha fazla puan isteyin veya ayarlama hedeflerinde daha az iddialı olun.
  • Her çalışmadaki denemelerin ne kadarlık bir kısmı uygulanabilir değildir? Yani hangi denemeler birbirinden farklı, çok düşük kayıp değerleri elde ediyor veya bazı dolaylı kısıtlamaları ihlal ettiği için hiç çalışmıyor? Bir çalışmadaki noktaların çok büyük bir kısmı uygulanabilir olmadığında arama alanını, bazen arama alanının yeniden parametrelenmesini gerektiren bu tür noktaların kullanılmasını önleyecek şekilde ayarlayın. Bazı durumlarda, çok sayıda uygulanabilir nokta, eğitim kodunda bir hata olduğu anlamına gelebilir.
  • Modelde optimizasyon sorunları var mı?
  • En iyi denemelerin eğitim eğrilerinden neler öğrenebilirsiniz? Örneğin, en iyi denemelerde sorunlu uyumla tutarlı bir eğitim eğrisi bulunur mu?

Gerekirse önceki soruların yanıtlarına göre arama alanını iyileştirmek ve/veya daha fazla deneme örneklemek ya da başka bir düzeltici işlem yapmak için en son çalışmayı veya çalışma grubunu hassaslaştırın.

Önceki soruları cevapladıktan sonra, denemeleri orijinal hedefiniz için sağladığı kanıtları değerlendirebilirsiniz. Örneğin, bir değişikliğin faydalı olup olmadığını değerlendirme.

Arama alanından örneklenen en iyi nokta, limitine yakınsa arama alanı şüphelidir. Arama aralığını o yönde genişletirseniz daha da iyi bir nokta bulabilirsiniz.

Arama alanı sınırlarını kontrol etmek için tamamlanmış denemeleri temel hiperparametre ekseni şemaları olarak adlandırılmasını öneririz. Bu adımlarda, doğrulama hedef değerini hiperparametrelerden birine (ör. öğrenme hızı) karşılık olarak gösteririz. Grafikteki her nokta tek bir denemeye karşılık gelir.

Her denemenin doğrulama hedefi değeri, eğitim süresince genellikle elde ettiği en iyi değer olmalıdır.

Doğrulama kümesi (y ekseni) ile en yüksek öğrenme hızı (x ekseni) karşılaştırmasının hatalı arama alanı sınırlarını gösteren hata oranı grafiği. Bu grafikte, en iyi denemeler (en düşük hata oranları), arama alanının sınırına yakındır ve en yüksek öğrenme hızı en yüksektir. Doğrulama kümesindeki (y ekseni) ve en yüksek öğrenme hızına (x ekseni) göre arama oranı sınırlarını gösteren hata oranı grafiği. Bu grafikte, en iyi denemeler (en düşük hata oranları) arama alanının ortasına yakındır. Buradaki En yüksek öğrenme oranı, 0,00001 veya 0,1 olduğunda En yüksek öğrenme oranı 0,001'dir.

1. Şekil: Kötü arama alanı sınırları ve kabul edilebilir arama alanı sınırları örnekleri.

Şekil 1'deki grafikler, ilk öğrenme hızına göre hata oranını (daha düşük olanı daha iyidir) göstermektedir. En iyi noktalar, bir arama alanının kenarına doğru kümeleniyorsa (bazı boyutlarda) gözlemlenen en iyi nokta artık sınıra yakın olmayacak şekilde arama alanı sınırlarını genişletmeniz gerekebilir.

Çoğunlukla bir çalışma, farklı veya çok kötü sonuçlar elde eden "uygulanabilir" denemeler içerir (Şekil 1'de kırmızı X'ler ile işaretlenmiştir). Bazı denemeler, bir eşik değerinden büyük olan öğrenme hızları için uygun değilse ve en iyi performansı gösteren denemeler bu bölgenin kenarında öğrenme oranlarına sahipse model, kararlılık sorunlarından dolayı yüksek öğrenim hızlarına erişemeyebilir.

Arama alanında yeterli sayıda örnek yok

Genel olarak, arama alanının yeterince yoğun bir şekilde örneklenip örneklenmediğini bilmek çok zor olabilir. 🤖 Daha fazla deneme yapmak, daha az deneme çalıştırmaktan daha iyidir ancak daha fazla deneme yapmak bariz bir ekstra maliyet oluşturur.

Yeterince örneklediğinizi bilmek çok zor olduğundan, şunları yapmanızı öneririz:

  • Neler maddi olarak karşılayabileceğinizi gösteren içerikler.
  • Çeşitli hiperparametre ekseni çizimlerine sürekli bakma ve arama alanının "iyi" bölgesinde kaç nokta olduğu hakkında fikir edinmeye ilişkin sezgisel güveninizi kalibre etme.

Eğitim eğrilerini inceleyin

Özet: Kayıp eğrilerini incelemek, yaygın hata modlarını tespit etmenin kolay bir yoludur ve gelecekteki olası işlemlere öncelik vermenize yardımcı olabilir.

Çoğu durumda denemelerinizin birincil amacı yalnızca her denemenin doğrulama hatasını dikkate almaktır. Ancak her deneme tek bir sayıya indirilirken dikkatli olun. Çünkü odak noktası, yüzeyde olup bitenlerle ilgili önemli ayrıntıları gizleyebilir. Her çalışma için en az birkaç en iyi denemenin kayıp eğrilerini incelemenizi kesinlikle öneririz. Bu, birincil deneysel hedefe ulaşmak için gerekli olmasa da, kayıp eğrilerini (hem eğitim kaybı hem de doğrulama kayıpları dahil) incelemek, yaygın hata modlarını belirlemek için iyi bir yoldur ve sıradaki adımlara öncelik vermenize yardımcı olabilir.

Kayıp eğrilerini incelerken aşağıdaki sorulara odaklanın:

  • Bu denemelerden herhangi birinde sorun var mı? Eğitim sırasında doğrulama hatası artmaya başladığında sorunlu bir uyum ortaya çıkar. Bilimsel hiperparametrelerin her ayarı için "en iyi" denemeyi seçerek rahatsız edici hiperparametreleri optimize ettiğiniz deneysel ayarlarda, karşılaştırdığınız bilimsel hiperparametrelerin ayarlarına karşılık gelen en iyi deneylerin her birinin en az sığdırılmasında sorun olup olmadığını kontrol edin. En iyi denemelerin herhangi birinde uyum sorunu yaşandığı görülüyorsa aşağıdakilerden birini veya ikisini birden yapın:

    • Ek normalleştirme teknikleriyle denemeyi yeniden çalıştırın
    • Bilimsel hiperparametrelerin değerlerini karşılaştırmadan önce mevcut normalleştirme parametrelerini yeniden ayarlayın. Bilimsel hiperparametrelerde normalleştirme parametreleri varsa bu durum geçerli olmayabilir. Bu nedenle, bu normalleştirme parametrelerinin düşük güçlük ayarları sorunlu uyuma yol açarsa şaşırtıcı olmaz.

    Fazla uydurmanın azaltılması genellikle kod karmaşıklığını veya ekstra hesaplamayı (ör. ayrılma normalleştirmesi, etiket yumuşatma, ağırlık azaltma) ekleyen yaygın normalleştirme teknikleri kullanılarak basitçe gerçekleştirilir. Dolayısıyla, bir veya daha fazla deneme turuna genellikle bir veya daha fazlasını eklemek kolaydır. Örneğin, bilimsel hiperparametre "gizli katman sayısı" ise ve en yüksek gizli katman sayısını kullanan en iyi deneme sorun yaratacak kadar etkiliyse birden fazla gizli katman seçmek yerine ek normalleştirme ile tekrar denemenizi öneririz.

    "En iyi" denemelerin hiçbiri soruna uyum sağlamasa bile deneme sürelerinden birinde gerçekleşse bile sorun yaşanabilir. En iyi deneme sürümünü seçmek, sorunlu uyuma yol açan yapılandırmaları gizler ve yapmayanlara öncelik verir. Diğer bir deyişle, en iyi deneme seçildiğinde yapılandırmalar daha normal hale gelir. Ancak eğitimin kalitesini düşüren her şey, bu amaçla tasarlanmamış olsa bile normalleştirici olarak değerlendirilebilir. Örneğin, daha düşük bir öğrenim hızı seçmek, optimizasyon sürecini bozarak eğitimi normalleştirebilir, ancak genellikle öğrenim hızını bu şekilde seçmek istemeyiz. Bilimsel hiperparametrelerin her bir ayarı için "en iyi" deneyin, bazı bilimsel veya rahatsız edici hiperparametrelerin "kötü" değerlerini destekleyecek şekilde seçilebileceğini unutmayın.

  • Eğitimin son aşamasındaki eğitim veya doğrulama hatasıyla ilgili büyük bir sapma var mı? Bu durum, aşağıdakilerin ikisini de etkileyebilir:

    • Bilimsel hiperparametrelerin farklı değerlerini karşılaştırabilme. Bunun nedeni, her denemenin rastgele bir "şanslı" veya "şanssız" adımda sona ermesidir.
    • Üretimdeki en iyi denemenin sonucunu yeniden oluşturma imkanı. Bunun nedeni, üretim modelinin çalışmadakiyle aynı "şanslı" adımda sona ermemesi olabilir.

    Adım adım sapmanın en olası nedenleri şunlardır:

    • Her bir grup için eğitim kümesinden rastgele örnekleme örnekleri nedeniyle toplu farklılıklar.
    • Küçük doğrulama kümeleri
    • Eğitimde çok yüksek bir öğrenim oranı kullanılması.

    Olası çözümler şunlardır:

    • Grup boyutu artırılıyor.
    • Daha fazla doğrulama verisi elde etme.
    • Öğrenme hızında azalmayı kullanma.
    • Polyak'in ortalamasını alarak.
  • Denemeler eğitimin sonunda hâlâ iyileşiyor mu? Bu durumda, "işleme bağlı" düzendesinizdir ve eğitim adımı sayısını artırabilir veya öğrenme hızı programını değiştirebilirsiniz.

  • Eğitim ve doğrulama setlerinin performansı, son eğitim adımından çok önce doymuş mu? Bu, "işleme bağlı değil" rejiminde olduğunuzu ve eğitim adımlarının sayısını azaltabileceğinizi gösterir.

Bu listenin dışında, birçok kayıp davranışın kayıp eğrilerini incelemesi açıkça görülebilir. Örneğin, eğitim sırasında artan eğitim kaybı genellikle eğitim hattındaki bir hataya işaret eder.

İzolasyon planlarında bir değişikliğin faydalı olup olmadığını tespit etme

ImageNet'te eğitilen ResNet-50 için ağırlık azaltmanın en iyi değerini araştıran izolasyon şeması. Bu durumda, en düşük doğrulama hatası oranı yaklaşık 0,00005'tir.

2. Şekil: ImageNet'te eğitilen ResNet-50 için ağırlıkta azalmanın en iyi değerini araştıran izolasyon şeması.

 

Çoğu zaman, bir dizi denemenin amacı, bir hiperparametrenin farklı değerlerini karşılaştırmaktır. Örneğin, en iyi doğrulama hatasıyla sonuçlanan kilo vermenin değerini belirlemek istediğinizi varsayalım. İzolasyon şeması, temel hiperparametre eksen şemasının özel bir örneğidir. İzolasyon şemasındaki her nokta, rahatsız edici hiperparametrelerin bazılarında (veya tümünde) en iyi denemenin performansına karşılık gelir. Başka bir deyişle, rahatsız edici hiperparametreleri "optimize ettikten" sonra model performansını görüntüleyin.

İzolasyon şeması, bilimsel hiperparametrenin farklı değerleri arasında benzer değerleri karşılaştırmayı kolaylaştırır. Örneğin, Şekil 2'deki izolasyon şeması, ImageNet'te eğitilen belirli bir ResNet-50 yapılandırması için en iyi doğrulama performansını sağlayan ağırlık azalmasının değerini ortaya koyar.

Hedef, kilo çürütmeyi ekleyip eklemeyeceğinizi belirlemekse bu şemadaki en iyi noktayı, ağırlıkta azalmanın referans değeri ile karşılaştırın. Adil bir karşılaştırma olması için referansın da öğrenme oranı eşit düzeyde olmalıdır.

Rastgele arama tarafından oluşturulan verileriniz olduğunda ve bir izolasyon şeması için sürekli hiperparametreyi dikkate aldığınızda, temel hiperparametre eksen grafiğinin x ekseni değerlerini gruplayarak ve paketler tarafından tanımlanan her dikey dilimde en iyi denemeyi yaparak izolasyon grafiğini yaklaşık olarak tahmin edebilirsiniz.

Genel olarak yararlı olay örgülerini otomatikleştirin

Grafik oluşturmak için ne kadar çaba gösterirseniz bunlara ihtiyacınız olduğu ölçüde bakma ihtimaliniz de o kadar azalır. Bu nedenle, mümkün olduğunca fazla olay örgüsünü otomatik olarak oluşturacak şekilde altyapınızı oluşturmanızı öneririz. En azından, bir denemede değiştirdiğiniz tüm hiperparametreler için temel hiperparametre eksenlerini otomatik olarak oluşturmanızı öneririz.

Ayrıca, tüm denemeler için otomatik olarak kayıp eğrileri oluşturulmasını öneririz. Ayrıca, her çalışmanın en iyi birkaç denemesini bulmayı ve kayıp eğrilerini incelemeyi mümkün olduğunca kolay hale getirmenizi öneriyoruz.

Başka birçok faydalı potansiyel konu ve görselleştirme ekleyebilirsiniz. Geoffrey ipucuon için farklı bir ifade:

Yeni bir şeylerin haritasını çıkardığınızda yeni bir şeyler öğrenirsiniz.

Aday değişikliğinin kabul edilip edilmeyeceğini belirleme

Özet: Modelimizde veya eğitim prosedürümüzde değişiklik yapmak mı, yoksa yeni bir hiperparametre yapılandırması kullanmak mı istediğinize karar verirken, sonuçlarınızda yer alan farklı varyasyon kaynaklarını not edin.

Bir modeli iyileştirmeye çalışırken belirli bir aday değişikliği, başlangıçta geçerli bir yapılandırmaya kıyasla daha iyi bir doğrulama hatasına ulaşabilir. Ancak, denemenin tekrarlanması tutarlı bir avantaj sağlamayabilir. Gayriresmi bir şekilde, tutarsız sonuçların en önemli kaynakları aşağıdaki geniş kategoriler halinde gruplandırılabilir:

  • Eğitim prosedürü varyasyonu, yeniden eğitilen varyans veya deneme varyasyonu: Aynı hiperparametreleri kullanan, ancak farklı rastgele temelleri kullanan eğitim çalışmaları arasındaki varyasyon. Örneğin, rastgele rastgele başlatmalar, eğitim verileri karıştırma, çıkarım maskeleri, veri genişletme işlemi desenleri ve paralel aritmetik işlemleri sıralamaları, deneme varyasyonlarının olası kaynaklarıdır.
  • Hiperparametre arama varyantı veya çalışma değişkeni: hiperparametreleri seçme prosedürümüzden kaynaklanan sonuçlardaki varyasyon. Örneğin, belirli bir arama alanıyla aynı denemeyi, rastgele rastgele arama için iki farklı kaynak kullanarak çalıştırabilir ve farklı hiperparametre değerleri seçebilirsiniz.
  • Veri toplama ve örnekleme varyansı: Eğitim verileri oluşturma süreci, genel anlamda eğitim, doğrulama ve test verileri veya sapmaya herhangi bir türde ayrılan değişkendir.

Doğru, güvenilir istatistiksel testler kullanarak sonlu bir doğrulama kümesinde tahmin edilen doğrulama hatası oranlarını karşılaştırabilirsiniz. Ancak genellikle tek bir deneme değişkeni, aynı hiperparametre ayarlarını kullanan iki farklı eğitilmiş model arasında istatistiksel açıdan anlamlı farklar oluşturabilir.

En büyük endişesi, hiperparametre alanlarındaki tek bir noktanın düzeyini aşan sonuçlar çıkarmaya çalışırken çalışmadaki değişkenlikle ilgili. Çalışmadaki farklılıklar, deneme sayısına ve arama alanına bağlıdır. Çalışmadaki sapmanın deneme değişkeninden büyük olduğu ve çok daha küçük olduğu durumlarla karşılaştık. Bu nedenle, bir aday değişikliğini benimsemeden önce, tüm çalıştırma denemesini tanımlamak için en iyi N denemesini çalıştırmayı düşünün. Genellikle deneme değişimini yalnızca ardışık düzende büyük değişiklikler yapıldıktan sonra yeniden canlandırarak giderebilirsiniz ancak bazı durumlarda daha güncel tahminlere ihtiyacınız olabilir. Diğer uygulamalarda, deneme varyantını tanımlamak buna değmez.

Yalnızca gerçek iyileştirmeler sağlayan değişiklikleri (yeni hiperparametre yapılandırmaları dahil) benimsemek istiyor olsanız da belirli bir değişikliğin yardımcı olmasını sağlayan şeyin doğru yanıt olmadığından emin olmak gerekir. Bu nedenle, yeni bir hiperparametre noktası (veya başka bir değişiklik) referans değerden daha iyi bir sonuç alırsa (hem yeni noktanın hem de referans değerin yeniden eğitim varyansını dikkate alarak mümkün olduğunca iyi şekilde) muhtemelen gelecekteki karşılaştırmalar için yeni referans noktası olarak benimsemelisiniz. Ancak, yalnızca sağladıkları karmaşıklıktan ağır basan iyileştirmeler sağlayan değişiklikler yapmanızı öneririz.

Keşif sona erdikten sonra

Özet: İyi bir arama alanı ararken ve hangi hiper parametrelerin ayarlanması gerektiğine karar verdikten sonra Bayes optimizasyon araçları cazip bir seçenektir.

Nihayetinde öncelikleriniz, ayarlama sorunu hakkında daha fazla bilgi edinmekten kullanıma sunulacak veya en iyi şekilde kullanılacak tek bir en iyi yapılandırmaya dönüşecek. Bu noktada, en iyi gözlemlenen denemenin çevresindeki yerel bölgeyi rahatça içeren ve yeterli düzeyde örneklenmiş zarif bir arama alanı olmalıdır. Keşif çalışmanızda ince ayarlamalar için en temel hiperparametreler ve bunların anlamlı aralıkları ortaya çıkarılmış olmalıdır. Mümkün olduğu kadar büyük bir ayarlama bütçesi kullanarak nihai otomatik ayarlama çalışması için arama alanı oluşturabilirsiniz.

İnce ayar sorunuyla ilgili analizleri en üst düzeye çıkarmayı artık önemsemediğinizden, yarı rastgele aramanın avantajlarının çoğu artık geçerli değildir. Bu nedenle, en iyi hiperparametre yapılandırmasını otomatik olarak bulmak için Bayes optimizasyon araçlarını kullanmanız gerekir. Açık Kaynak Vizier, Bayes Optimizasyon algoritmaları dahil olmak üzere ML modellerini ayarlamak için çeşitli gelişmiş algoritmalar uygular.

Arama alanının, verimsiz noktalardan oluşan önemsiz bir hacmi içerdiğini varsayalım. Bu, NAN eğitimi kaybı, hatta eğitim kaybı yaşayan ortalama sayının ortalamadan daha kötü olduğu anlamına gelir. Bu durumda, farklı deneme sürümlerini uygun şekilde işleyen siyah kutu optimizasyon araçlarını kullanmanızı öneririz. (Bu sorunu ele almanın mükemmel bir yolu olarak Bayes Kısıtlamasını Bilinmeyen Kısıtlamalarla Optimize Etme konusunu inceleyin.) Açık Kaynaklı Vizier, denemeleri uygun olarak işaretleyerek çeşitli noktaları işaretlemeyi destekler. Bununla birlikte, yapılandırmanın nasıl yapıldığına bağlı olarak Gelbart ve v. tercihlerimizi de kullanamaz.

Keşif tamamlandıktan sonra, test kümesindeki performansı kontrol edebilirsiniz. Hatta ilk olarak, doğrulama grubunu eğitim grubuna katabilir ve Bayes optimizasyonuyla bulunan en iyi yapılandırmayı yeniden eğitebilirsiniz. Ancak bu durum, yalnızca bu belirli iş yüküyle (ör. tek seferlik Kaggle rekabeti) gelecekte kullanıma sunulmayacaksa uygundur.