HyperOpt Gizeminden Arındırıldı

HyperOpt ile model ayarlama nasıl otomatikleştirilir?

Modelleri ayarlamayı seviyor musunuz? Cevabınız “evet” ise bu yazı değil senin için.

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Dedemden bir karikatür. Web sitesi.

Bu blogda son derece popüler olan otomatik hiperparametre ayarlama algoritmasını ele alacağız. Ağaç Tabanlı Parzen Tahmin Edicileri (TPE). TPE, açık kaynak paketi HyperOpt tarafından desteklenir. Makine öğrenimi mühendisleri, HyperOpt ve TPE'den yararlanarak şunları yapabilir: Yüksek düzeyde optimize edilmiş modelleri herhangi bir manuel ayarlamaya gerek kalmadan hızlı bir şekilde geliştirin.

Daha fazla uzatmadan, hadi dalalım!

HyperOpt, kullanıcı tanımlı bir amaç fonksiyonunu optimize eden model hiperparametrelerini seçmek için Ağaç Tabanlı Parzen Esimtors (TPE) adı verilen bir algoritma kullanan açık kaynaklı bir python paketidir. TPE, her bir hiperparametrenin işlevsel biçimini ve sınırlarını basit bir şekilde tanımlayarak, optimumlara ulaşmak için karmaşık hiper uzayda ayrıntılı ve etkili bir şekilde arama yapar.

TPE, Bayesian güncellemesinden yararlanan ve aşağıdaki sırayı takip eden sıralı bir algoritmadır.

  1. Amaç fonksiyonu değerlerini döndüren, rastgele seçilmiş hiperparametrelerden oluşan çeşitli setlerle bir model eğitin.
  2. Gözlemlenen amaç fonksiyonu değerlerimizi bazı eşik gamalarına (γ) göre "iyi" ve "kötü" gruplara ayırın.
  3. “Umut vericilik” puanını hesaplayın; P(x|iyi) / P(x|kötü).
  4. Karışım modelleri aracılığıyla umut vericiliği en üst düzeye çıkaran hiperparametreleri belirleyin.
  5. 4. adımdaki hiperparametreleri kullanarak modelimizi yerleştirin.
  6. Bir durdurma kriterine kadar 2-5 arasındaki adımları tekrarlayın.

İşte bulunuyor hızlı kod örneği.

Tamam bu çok büyük sözlerdi. Yavaşlayalım ve neler olup bittiğini gerçekten anlayalım.

1.1 — Amacımız

Veri bilimcileri meşgul. Gerçekten iyi modeller üretmek istiyoruz, ancak bunu verimli ve ideal olarak müdahalesiz bir şekilde yapıyoruz.

Ancak makine öğrenimi modelleme yaşam döngüsündeki belirli adımların otomatikleştirilmesi çok zordur. Örneğin, keşifsel veri analizi (EDA) ve özellik mühendisliği genellikle konuya özeldir ve insan sezgisini gerektirir. Model ayarlama ise bilgisayarların başarılı olabileceği yinelemeli bir süreçtir.

Bu yazı boyunca amacımız, model ayarlama sürecini otomatikleştirmek için algoritmalardan nasıl yararlanılacağını anlamaktır.

Bu amaç hakkında düşünmemize yardımcı olması için bir benzetme yapalım: Bizler gömülü hazineyi arayan korsanlarız. Gömülü hazineyi ararken harcayacağımız zamanı en aza indirmeye çalışan çok becerikli korsanlar olduğumuzu da unutmamak gerekir. Peki aramaya harcanan zamanı nasıl en aza indirebiliriz? Cevap bir harita kullanın!

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
şekil 1: örnek 3B hiperparametre arama alanı. Hazine sandığının konumu küresel bir optimumdur. Yazara ait resim.

Şekil 1'de hazinemizin nerede olduğunu gösteren hayali bir haritamız var. Bir sürü tırmanıp kazdıktan sonra bu hazineye ulaşmak çok da zor olmayacak çünkü tam olarak nerede olduğunu biliyoruz.

Peki haritamız olmadığında ne olur?

Bir modeli ayarlamakla görevlendirildiğimizde maalesef bize bir harita verilmiyor. Hiperparmetre arama uzayına karşılık gelen arazimiz bilinmiyor. Ayrıca, optimal hiperparametre setine karşılık gelen hazinemizin konumu da bilinmiyor.

Bu kurulumla, bu alanı verimli bir şekilde keşfetmenin ve bir miktar hazine bulmanın bazı potansiyel yollarından bahsedelim!

1.2 — Potansiyel Çözümler

Model ayarlamanın orijinal yöntemi "manuel"dir; mühendis aslında birçok farklı konfigürasyonu manuel olarak test edecek ve hangi hiperparametre kombinasyonunun en iyi modeli ürettiğini görecektir. Bilgilendirici olmasına rağmen bu süreç verimsizdir. Daha iyi bir yol olmalı…

1.2.1 — Izgara Arama (en kötü)

İlk optimizasyon algoritmamız grid aramadır. Izgara araması, kullanıcı tarafından belirlenen bir ızgara içindeki tüm olası hiperparametre kombinasyonlarını yinelemeli olarak test eder.

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Şekil 2: Izgara arama düzeni örneği. Yazara göre resim

Örneğin şekil 2'de kırmızı nokta gördüğünüz her yer modelimizi yeniden eğitip değerlendireceğimiz yerdir. Bu çerçeve verimsizdir çünkü hatalı hiperparametreleri yeniden kullanır. Örneğin, hiperparametre 2'nin amaç fonksiyonumuz üzerinde çok az etkisi varsa, yine de değerlerinin tüm kombinasyonlarını test edeceğiz, böylece gerekli yineleme sayısını 10 kat artıracağız (bu örnekte).

Ancak devam etmeden önce, ızgara aramanın hala oldukça popüler olduğunu belirtmek önemlidir, çünkü doğru şekilde belirlenmiş bir ızgara verildiğinde optimumu bulmanın garantisi vardır. Yöntemi kullanmaya karar verirseniz, Izgaranızı hiperparametrelerinizin işlevsel formunu yansıtacak şekilde dönüştürdüğünüzden emin olun. Örneğin, bir için maksimum_derinlik rastgele orman sınıflandırıcısı bir tam sayıdır; sürekli bir alanda arama yapmasına izin vermeyin. Aynı zamanda tek biçimli bir dağılıma sahip olması da pek olası değildir; eğer hiperparametrenizin işlevsel biçimini biliyorsanız, ızgarayı onu yansıtacak şekilde dönüştürün.

Özetle, Izgara araması boyutluluğun lanetine tabidir ve değerlendirmeler arasında bilgiyi yeniden hesaplar, ancak hala yaygın olarak kullanılmaktadır.

1.2.2 — Rastgele Arama (iyi)

İkinci algoritmamız rastgele aramadır. Rastgele arama, kullanıcı tarafından belirlenen bir ızgara içinde rastgele değerleri dener. Izgara aramasından farklı olarak, hiperparametrelerin olası her kombinasyonunu test etmek zorunda değiliz, bu da verimliliği artırır.

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Şekil 3: rastgele arama örneği. Yazara ait resim.

İşte harika bir gerçek: Rastgele arama, (ortalama olarak) en üstteki %5'lik hiperparametre yapılandırmasını bulacaktır. 60 yineleme. Bununla birlikte, ızgara aramada olduğu gibi, arama alanınızı her hiperparamın işlevsel formunu yansıtacak şekilde dönüştürmeniz gerekir.

Rastgele arama, hiperparametre optimizasyonu için iyi bir temeldir.

1.2.3 — Bayes Optimizasyonu (daha iyi)

Üçüncü adayımız ise ilk Sıralı Model Tabanlı Optimizasyon (SMBO) algoritmamızdır. Önceki tekniklerden temel kavramsal farkımız, Gelecekteki keşif noktalarını belirlemek için önceki çalışmaları yinelemeli olarak kullanın.

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Şekil 4: Bayes optimizasyon örneği — src. Yazara ait resim.

Bayesian hiperparametre optimizasyonu, hiperparametre arama uzayımızın olasılıksal bir dağılımını geliştirmeye çalışır. Buradan, hiperuzayımızı daha "aranabilir" hale getirmek için beklenen iyileştirme gibi bir edinme işlevini kullanır. Son olarak, edinme fonksiyonumuzu maksimuma çıkaran hiperparametreleri bulmak için stokastik gradyan iniş gibi bir optimizasyon algoritması kullanır. Bu hiperparametreler modelimize uymak için kullanılır ve süreç yakınsayana kadar tekrarlanır.

Bayes optimizasyonu genellikle rastgele aramadan daha iyi performans gösterir ancak sayısal hiperparametreler gerektirmesi gibi bazı temel sınırlamalara sahiptir.

1.2.4 — Ağaç Tabanlı Parzen Tahmin Edicileri (en iyisi)

Son olarak gösterinin yıldızından bahsedelim: Ağaç Tabanlı Parzen Tahmin Ediciler (TPE). TPE, tipik olarak temel bayes optimizasyonundan daha iyi performans gösteren başka bir SMBO algoritmasıdır, ancak asıl avantajı, karmaşık hiperparametre ilişkilerini bir ağaç yapısı aracılığıyla ele almasıdır.

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Şekil 5: TPE için hiyerarşik yapıya örnek — src. Yazara ait resim.

Bunu anlamak için şekil 5'i kullanalım ağaç yapısı. Burada bir Destek Vektör Makinesi (SVM) sınıflandırıcısını eğitiyoruz. İki çekirdeği test edeceğiz: linear ve RBF. bir linear çekirdek genişlik parametresini almaz ancak RBF öyle, iç içe geçmiş bir sözlük kullanarak bu yapıyı kodlayabiliyoruz ve böylece arama alanını sınırlayabiliyoruz.

TPE ayrıca geleneksel Bayes optimizasyonunun desteklemediği kategorik değişkenleri de destekler.

Devam etmeden önce hızlı sorumluluk reddi beyanı, diğer birçok hiperparametre ayarlama paketi. Her biri, bazıları rastgele orman, Gauss işlemleri ve genetik algoritmaları içeren çeşitli algoritmaları destekler. TPE çok popüler ve genel amaçlı bir algoritmadır ancak mutlaka en iyisi değildir.

Genel olarak TPE gerçekten sağlam ve verimli bir hiperparametre optimizasyon çözümüdür.

Artık bazı popüler hiperparametre optimizasyon algoritmaları hakkında genel bir anlayışa sahip olduğumuza göre, TPE'nin nasıl çalıştığına derinlemesine bakalım.

Benzetmemize dönecek olursak, biz gömülü hazineyi arayan korsanlarız ama haritam yok. Kaptanımızın hazineye en kısa sürede ihtiyacı var, bu nedenle, gelecekteki kazıların yerini belirlemek için önceki kazıları kullanarak, hazine bulma olasılığı yüksek olan stratejik yerleri kazmamız gerekiyor.

2.1 — Başlatma

Başlamak için, biz alanımızdaki kısıtlamaları tanımlayın. Yukarıda belirtildiği gibi, hiperparametrelerimiz genellikle işlevsel bir biçime, maksimum/minimum değerlere ve diğer hiperparametrelerle hiyerarşik ilişkiye sahiptir. ML algoritmalarımız hakkındaki bilgimizi ve verilerimizi kullanarak arama alanımızı tanımlayabiliriz.

Sonra, amaç fonksiyonumuzu tanımlayınhiperparametre kombinasyonumuzun ne kadar "iyi" olduğunu değerlendirmek için kullanılır. Bazı örnekler, RMSE veya AUC gibi klasik ML kaybı işlevlerini içerir.

Harika! Artık sınırlı bir arama alanımız ve başarıyı ölçmenin bir yolu olduğuna göre, aramaya başlamaya hazırız…

2.2 — Yinelemeli Bayes Optimizasyonu

Bayes optimizasyonu, hiperuzayda bir amaç fonksiyonuna göre "başarılı" olma olasılığı yüksek olan noktaları bulan sıralı bir algoritmadır. TPE, Bayes optimizasyonundan yararlanır ancak performansı artırmak ve arama alanı karmaşıklığının üstesinden gelmek için bazı akıllı hileler kullanır…

2.2.0 — Kavramsal Kurulum

İlk numara modellemedir P(x|y) yerine P(y|x)…

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Şekil 6: TPE'nin çözmeye çalıştığı koşullu olasılık. Yazara ait resim.

Bayes optimizasyonu genellikle modele bakar P(y|x), bu, bir amaç fonksiyonu değerinin olasılığıdır (y), hiperparametreler verildiğinde (x). TPE tam tersini yapıyor; modele benziyor P(x|y), hiperparametrelerin olasılığı (x), amaç fonksiyonu değeri verildiğinde (y).

Kısacası TPE, en iyi amaç fonksiyonu değerlerini bulmaya ve ardından ilgili hiperparametreleri belirlemeye çalışır.

Bu çok önemli kurulumla birlikte gerçek algoritmaya geçelim.

2.2.1 — Verilerimizi “İyi” ve “Kötü” Gruplara Ayırın

Unutmayın, amacımız bazı amaç fonksiyonlarına göre en iyi hiperparametre değerlerini bulmaktır. Peki nasıl yararlanabiliriz P(x|y) bunu yapmak için?

İlk olarak TPE, gözlemlenen veri noktalarımızı iki gruba ayırır: Tercih Etmenizin, belirtilen gr(x), ve kötü, belirtilen l(x). İyi ile kötü arasındaki sınır, gözlemlerimizi bölen amaç fonksiyonu yüzdelik dilimine karşılık gelen, kullanıcı tanımlı bir gama (γ) parametresi tarafından belirlenir (y*).

Yani γ = 0.5 ile gözlemlerimizi bölen amaç fonksiyonu değerimiz (y*) gözlenen noktalarımızın medyanı olacaktır.

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Şekil 7: p(x|y)'nin iki kümeye dağılımı. Yazara ait resim.

Şekil 7'de gösterildiği gibi, resmileştirebiliriz p(x|y) Yukarıdaki çerçeveyi kullanarak. Ve korsan benzetmesine devam edersek…

Korsan Perspektifi: Daha önce keşfettiğimiz yerlere baktığımızda, l(x) çok az hazineye sahip yerleri, g(x) ise çok hazineye sahip yerleri listeler.

2.2.32— “Umut Verme” Puanını Hesaplayın

İkincisi, TPE gözlemlenmeyen bir hiperparametre kombinasyonunu nasıl değerlendirmemiz gerektiğini tanımlar. “umut vericilik” puanı.

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Şekil 8: Umut vericilik puanı tanımı. Yazara ait resim.

Şekil 8 umut vericilik puanımızı tanımlamaktadır (P), bu sadece aşağıdaki bileşenlerle bir orandır…

  • pay: bir dizi hiperparametreyi gözlemleme olasılığı (x), karşılık gelen amaç fonksiyonu değeri verildiğinde “Tercih Etmenizin".
  • Payda: bir dizi hiperparametreyi gözlemleme olasılığı (x), karşılık gelen amaç fonksiyonu değeri verildiğinde “kötü".

"Umut vericilik" değeri ne kadar büyük olursa, hiperparametrelerimizin x “iyi” bir amaç fonksiyonu üretecektir.

Korsan Perspektifi: Gelecek vaat etme, bölgemizdeki belirli bir konumun çok fazla hazineye sahip olma ihtimalinin ne kadar yüksek olduğunu gösterir.

Devam etmeden önce kısa bir kenara bırakalım, eğer Bayesian optimizasyonuna aşina iseniz, bu denklem bir toplama fonksiyonu gibi davranır ve Beklenen İyileşme (EI).

2.2.3— Olasılık Yoğunluğu Tahminleri Oluşturun

Üçüncüsü, TPE "umut vericilik" puanını şu şekilde değerlendirmeye çalışır: karışım modelleri. Karışım modellerinin amacı, çoklu olasılık dağılımlarını alıp bunları doğrusal bir kombinasyon kullanarak bir araya getirmektir. src. Bu birleştirilmiş olasılık dağılımları daha sonra olasılık yoğunluk tahminlerini geliştirmek için kullanılır.

Genel olarak karışım modelleme süreci…

  1. Puanlarımızın dağıtım türünü tanımlayın. Bizim durumumuzda, değişkenimiz kategorik ise yeniden ağırlıklandırılmış kategorik dağılım, sayısal ise Gaussian (yani normal) veya tekdüze dağılım kullanırız.
  2. Her nokta üzerinde yineleyin ve o noktaya bir dağılım ekleyin.
  3. Olasılık yoğunluk tahmini elde etmek için tüm dağılımların kütlesini toplayın.

Bu işlemin her iki set için ayrı ayrı yürütüldüğünü unutmayın. l(x) ve g(x).

Şekil 9’daki bir örnek üzerinden ilerleyelim…

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Şekil 9: 3 hiperparametre gözlemine uyan kesik Gauss dağılımlarının örneği. Yazara ait resim.

Her gözlem için (x eksenindeki mavi noktalar), ~N(μ, σ) normal dağılımını yaratırız, burada…

  • μ (mü) normal dağılımımızın ortalamasıdır. Değeri, noktamızın x ekseni boyunca konumudur.
  • σ (sigma) normal dağılımımızın standart sapmasıdır. Değeri en yakın komşu noktaya olan mesafedir.

Noktalar birbirine yakınsa standart sapma küçük olacak ve dolayısıyla dağılım çok yüksek olacak, tam tersi noktalar birbirinden uzaksa dağılım düz olacaktır (Şekil 10)…

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Şekil 10: Standart sapmanın normal dağılımın şekli üzerindeki etkisine örnek. Yazara ait resim.

Korsan Perspektifi: NA — korsanlar karma modellerde pek iyi değiller.

Devam etmeden önce kısa bir bilgi daha: Eğer literatürü okuyorsanız, TPE'nin "kesilmiş" gaussian'lar kullandığını fark edeceksiniz; bu, Gaussian'ların +/- sonsuza kadar genişlemek yerine hiperparametre konfigürasyonumuzda belirlediğimiz aralıkla sınırlandığı anlamına gelir. .

2.2.4 — Keşfedilecek Bir Sonraki Noktanın Belirlenmesi!

Bu parçaları bir araya getirelim. Şu ana kadar 1) amaç fonksiyonu gözlemleri elde ettik, 2) “umut vericilik” formülümüzü tanımladık ve 3) önceki değerlere dayalı karışım modelleri aracılığıyla bir olasılık yoğunluk tahmini oluşturduk. Belirli bir noktayı değerlendirecek tüm parçalara sahibiz!

İlk adımımız her ikisi için de ortalama olasılık yoğunluk fonksiyonu (PDF) oluşturmaktır. g (x) ve l(x).

Hiperparametre hiper parametre ayarlama model ayarlama makine öğrenimi veri bilimi sklearn modeli mllib spark hyperopt ağacı parzen tahmincisi tpe ağaç tabanlı parzen esimtator mlflow databricks
Şekil 11: Gözlemlenen 3 nokta göz önüne alındığında ortalama olasılık yoğunluğunun üst üste bindirilmesi. Yazara ait resim.

Şekil 11'de örnek bir süreç gösterilmektedir - kırmızı çizgi ortalama PDF'mizdir ve tüm PDF'lerin toplamının PDF sayısına bölünmesiyle elde edilir.

Ortalama PDF'yi kullanarak herhangi bir hiperparametre değerinin olasılığını elde edebiliriz (x) olmak g (x) or l(x).

Örneğin şekil 11'deki gözlenen değerlerin “iyi” kümeye ait olduğunu varsayalım, g (x). Ortalama PDF'mize dayanarak, 3.9 veya 0.05'lik bir hiperparametre değerinin "iyi" kümeye ait olması pek olası değildir. Tersine, ~1.2'lik bir hiperparametre değerinin "iyi" kümeye ait olma ihtimali çok yüksek gibi görünüyor.

Şimdi bu resmin sadece yarısı. Aynı metodolojiyi “kötü” küme için de uyguluyoruz, l(x). Maksimuma çıkarmaya çalıştığımızdan beri g(x) / l(x), umut verici noktalar bulunmalı g (x) yüksek ve l(x) düşük.

Oldukça serin, değil mi?

Bu olasılık dağılımlarıyla, ağaç yapılı hiperparametrelerimizden örnek alabilir ve "umut vericiliği" en üst düzeye çıkaran ve dolayısıyla araştırmaya değer olan hiperparametreler kümesini bulabiliriz.

Korsan Perspektifi: Kazacağımız bir sonraki konum, (çok hazineye sahip olma olasılığı) / (az hazineye sahip olma olasılığını) maksimuma çıkaran konumdur.

Artık nasıl çalıştığını bildiğinize göre, TPE'yi açık kaynak paketi HyperOpt aracılığıyla uygulamaya yönelik bazı pratik ipuçlarını burada bulabilirsiniz.

3.1 — HyperOpt Uygulamasının Yapısı

HyperOpt'tan yararlanırken genel olarak üç ana adım vardır:

  1. Arama alanını tanımlayın, bu sadece optimize etmek istediğiniz hiperparametrelerin aralıkları ve işlevsel biçimleridir.
  2. Uydurma fonksiyonunu tanımlayın, hangisi seni çağırıyor model.fit() belirli bir eğitim/test bölümünde işlev görür.
  3. Amaç fonksiyonunu tanımlayın, RMSE veya AUC gibi klasik doğruluk ölçümlerinden herhangi biri.

Ne yazık ki, bu otomatik ayarlama yöntemleri hala veri bilimcisinden tasarım girdisi gerektiriyor; bu tamamen bedava bir öğle yemeği değil. Bununla birlikte, anekdotsal olarak TPE, hiperparametrenin yanlış belirlenmesine (mantık dahilinde) karşı oldukça dayanıklıdır.

3.2— İpuçları ve Püf Noktaları

  • HyperOpt her ikisi aracılığıyla da paralelleştirilebilir Apache Spark ve MongoDB. İster bulutta ister yerel makinenizde birden fazla çekirdekle çalışıyorsanız bu, çalışma süresini önemli ölçüde azaltabilir.
  • Ayarlama işlemini Apache Spark aracılığıyla paralelleştiriyorsanız, SparkTrialstek düğümlü ML modelleri (sklearn) için nesne ve Trails paralelleştirilmiş ML modelleri (MLlib) için nesne. Kod aşağıdadır.
  • ML akışı model çalıştırmalarınızı izlemeye yönelik açık kaynaklı bir yöntemdir. HyperOpt ile kolayca entegre olur.
  • Arama alanını çok erken daraltmayın. Hiperparametrelerin bazı kombinasyonları şaşırtıcı derecede etkili olabilir.
  • Arama alanını tanımlamak özellikle de alanı bilmiyorsanız zor olabilir. hiperparametrelerinizin işlevsel formu. Ancak kişisel deneyimlere göre TPE, bu işlevsel formların yanlış tanımlanmasına karşı oldukça dayanıklıdır.
  • İyi bir amaç fonksiyonu seçmek uzun bir yol kat eder. Çoğu durumda hata eşit şekilde yaratılmaz. Belirli bir hata türü daha sorunluysa, bu mantığı işlevinize yerleştirdiğinizden emin olun.

3.3— Bir Kod Örneği

HyperOpt'u dağıtılmış bir şekilde çalıştırmak için bazı kodları burada bulabilirsiniz. Kitaptaki koddan uyarlanmıştır, Makine Öğrenimi Mühendisliği İş Başında - burada git deposu.

Bu pasajın bazı güzel özellikleri arasında paralelleştirme yer alıyor Apache Spark ve model kaydı aracılığıyla ML akışı. Ayrıca bu pasajın bir sklearn RandomForestRegressor'u optimize ettiğini unutmayın; ihtiyaçlarınıza uyacak şekilde modeli ve yerleştirme işlevini değiştirmeniz gerekecektir.

Ve işte karşınızda - tüm görkemiyle HyperOpt!

Kilit noktaları ummak için hızlıca özetleyelim.

Hiperparametre ayarlama, ML modeli yaşam döngüsünün gerekli bir parçasıdır ancak zaman alıcıdır. Sıralı Model Tabanlı Optimizasyon (SMBO) algoritmaları, optimumlar için karmaşık hiper uzayları arama konusunda üstündür ve hiper parametre ayarlamaya uygulanabilirler. Ağaç Tabanlı Parzen Tahmin Edicileri (TPE) çok verimli bir SMBO'dur ve hem Bayes Optimizasyonundan hem de Rastgele Aramadan daha iyi performans gösterir.

TPE, bir durdurma kriteri oluşana kadar aşağıdaki adımları tekrarlar:

  1. Gözlemlenen noktaları bazı hiperparametreler olan gama'ya göre "iyi" ve "kötü" kümelere bölün.
  2. Ortalama olasılık yoğunluk tahmini geliştirmek için bir karışım modelini hem "iyi" hem de "kötü" kümeye yerleştirin.
  3. "İyi" ve "kötü" kümelerde olma olasılığını tahmin etmek için 2. adımdan yararlanan "umut vericilik" puanını optimize eden noktayı seçin.

Son olarak, HyperOpt'un SparkTrials aracılığıyla nasıl paralelleştirileceğini gösteren gerçekten harika bir kod pasajımız var. Ayrıca tüm yinelemelerimizi MLflow'a kaydeder.

HyperOpt Demystified Kaynaktan Yayınlandı https://towardsdatascience.com/hyperopt-demystified-3e14006eb6fa?source=rss—-7f60cf5620c9—4 https://towardsdatascience.com/feed aracılığıyla

<!–

->

Zaman Damgası:

Den fazla Blockchain Danışmanları