Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 609

 
Sergey Chalyshev :


Ağınızı rng değerlerine böyle tepki verdiği için çöp kutusuna atın. Normal bir ağ, sıfır olanlar da dahil olmak üzere herhangi bir başlangıç değeri için çalışır ve öğrenir.


aptallık.
 

  • optimal DNN hiper parametrelerinin belirlenmesi

Kural olarak, bir sinir ağının hiperparametreleri, gizli katmanların sayısını, her gizli katmandaki nöronların sayısını, kullanılan aktivasyon, başlatma ve düzenleme işlevlerini, eğitim seviyesini içerir. Aşağıdaki şekilde hiperparametre optimizasyon yapısı.

optimHP

Şekil 1. Sinir ağı hiper parametrelerinin yapısı ve optimizasyon yöntemleri

Hiperparametreler üç şekilde optimize edilebilir:

  1. ızgara arama
  2. Genetik optimizasyon
  3. Bayes optimizasyonu

İlk durumda, her hiperparametre için birkaç sabit değere sahip bir vektör belirtilir. Ardından, caret::train() işlevi veya özel bir komut dosyası kullanılarak model, hiperparametre değerlerinin tüm kombinasyonları üzerinde eğitilir. Daha sonra en iyi sınıflandırma kalite göstergelerine sahip bir model seçilir ve parametreleri optimal olarak kabul edilir. Bu yöntemin dezavantajı, bir değerler ızgarası ayarlayarak optimumu kaçırma ihtimalimizin çok yüksek olmasıdır.

İkinci durumda, genetik algoritmalar kullanılarak en iyi parametreler için stokastik bir arama olasılığı kullanılır. Makalenin başlarında, birkaç genetik optimizasyon algoritmasını biraz ayrıntılı olarak ele aldık. Bu nedenle, tekrar etmeyeceğiz.

Üçüncü durumda, bu makalede test edeceğimiz Bayes yaklaşımı (Gauss süreçleri ve MSMS) kullanılır. rBayesianOptimization paketini kullanacağız (sürüm 1.1.0). Uygulanan yöntemlerin bir teorisi için bkz. Jasper Snoek, Hugo Larochelle, Ryan P. Adams (2012) Practical Bayesian Optimization of Machine Learning Algorithms

Genel durumda, sinir ağı hiper parametreleri iki gruba ayrılabilir: küresel ve yerel (düğüm). Global olanlar, gizli katmanların sayısını, her katmandaki nöronların sayısını, eğitim seviyesini ve anını, nöronların ağırlıklarının başlatılmasını içerir. Yerel katman tipine, etkinleştirme işlevine, bırakma/düşürme bağlantısına ve diğer düzenleme parametrelerine.

 

Genel olarak, yine aynı veriler üzerinde birden fazla eğitim önerilir.

Burada birkaç manuel eğitim yaptım ve biraz kafam karıştı. Hatadaki azalmanın istikrarlı bir şekilde devam edeceğini varsaydım, ancak atlıyor.

Aynı ağ yapısı üzerinde tekrarlanan eğitimler bile %3-5 farkla sonuç verebilir ve bu da doğru yapı seçimine engel olabilir.

 

Eğitim verebilecek başka tüccarlar önerebilir misiniz? Bir arkadaşım çalışmamı tavsiye etti ( Polikarp Brekhunov'dan - Artyom Trishkin tarafından değiştirildi ), kim bilir, belki hala eğitim kursları yürüten bir tüccar var?

 
elibrarius :

Genel olarak, yine aynı veriler üzerinde birden fazla eğitim önerilir.

Burada birkaç manuel eğitim yaptım ve biraz kafam karıştı. Hatadaki azalmanın istikrarlı bir şekilde devam edeceğini varsaydım, ancak atlıyor.

Aynı ağ yapısı üzerinde tekrarlanan eğitimler bile %3-5 farkla sonuç verebilir ve bu da doğru yapı seçimine engel olabilir.

Olması gereken yol bu. Ağırlıkların ilk başlatılması, küçük rastgele sayı değerleriyle gerçekleştirilir (ilk başlatmanın türüne bağlıdır). Tekrarlanabilir sonuçlar elde etmek için, her eğitim başlamadan önce RNG'yi aynı duruma ayarlamak gerekir. set.seed() bunun içindir.

İyi şanlar

 
Vladimir Perervenko :

Olması gereken yol bu. Ağırlıkların ilk başlatılması, küçük rastgele sayı değerleriyle gerçekleştirilir (ilk başlatmanın türüne bağlıdır). Tekrarlanabilir sonuçlar elde etmek için, her eğitim başlamadan önce RNG'yi aynı duruma ayarlamak gerekir. set.seed() bunun içindir.

İyi şanlar

Ve, Darch RBM'de 2 çağda, LearnRate = 0.3 ile ön eğitim yaptım.

 
Vladimir Perervenko :

  • optimal DNN hiper parametrelerinin belirlenmesi

İkinci durumda, genetik algoritmalar kullanılarak en iyi parametreler için stokastik bir arama olasılığı kullanılır.

Ticaret için, model optimizasyonu (TS) fikri son derece şüpheli görünüyor, çünkü herhangi bir optimizasyon zirveleri / çukurları arıyor ve onlara ihtiyacımız yok. İdeal olarak, mümkün olduğu kadar geniş düz platolar istiyoruz. Bu platoların dikkate değer bir özelliği olmalıdır: modelin parametrelerini değiştirmek platodan ayrılmaya yol açmamalıdır.

Optimizasyonla ilgili.

Aslında, burada, eğer değişirlerse, oldukça dar (% 5) bir güven aralığı içinde olan model parametrelerinin kararlılığı sorununu da eklemeliyiz. Bana öyle geliyor ki, model parametrelerinin kararlılığı, performansının belirli bir platoda olmasına yol açıyor ve modeli test ederken aniden çok iyi bir sonuç alırsak, o zaman bu, minimaks noktasına atladığımız anlamına gelir, pratikte bir daha asla buluşmayacak olan kararsız bir duruma sahibiz, ayrıca bu optimal noktanın etrafında bir mola yeri bulunacak.

not.

Bu arada, test cihazında geliştiriciler, renge göre bir plato aramak için böyle bir fırsat sağladı. Şahsen, test cihazını bir bitirme aracı olarak kullanıyorum ve aynı renkteki karelerin etrafında döndüğü kareye atıfta bulunan parametreleri alıyorum. Bu benim "plato" kavramımın görsel bir ifadesidir.

 
elibrarius :

Ve, Darch RBM'de 2 çağda, LearnRate = 0.3 ile ön eğitim yaptım.

Darch() işlevinin içinde varsayılan olarak bir seed = NULL parametresi vardır. bir duruma ayarlayın, örneğin tohum = 12345.

Bu, küçük bir LearnRate değeridir. RBM ve NN için LearnRate = 0.7, numEpochs = 10 ile başlayın. Ancak bu, tavan verileridir. Belirli bir veri kümesi için optimize etmeniz gerekir.

İyi şanlar

 
Vladimir Perervenko :
Darch() işlevinin içinde varsayılan olarak bir seed = NULL parametresi vardır. bir duruma ayarlayın, örneğin tohum = 12345.

Bu, küçük bir LearnRate değeridir. RBM ve NN için LearnRate = 0.7, numEpochs = 10 ile başlayın. Ancak bu, tavan verileridir. Belirli bir veri kümesi için optimize etmeniz gerekir.

İyi şanlar

Teşekkür ederim! Deneyeceğim.
 
San Sanych Fomenko :

Ticaret için, model optimizasyonu (TS) fikri son derece şüpheli görünüyor, çünkü herhangi bir optimizasyon zirveleri / çukurları arıyor ve onlara ihtiyacımız yok. İdeal olarak, mümkün olduğu kadar geniş düz platolar istiyoruz. Bu platoların dikkate değer bir özelliği olmalıdır: modelin parametrelerini değiştirmek platodan ayrılmaya yol açmamalıdır.

Optimizasyonla ilgili.

Aslında, burada, eğer değişirlerse, oldukça dar (% 5) bir güven aralığı içinde olan model parametrelerinin kararlılığı sorununu da eklemeliyiz. Bana öyle geliyor ki, model parametrelerinin kararlılığı, performansının belirli bir platoda olmasına yol açıyor ve modeli test ederken aniden çok iyi bir sonuç alırsak, o zaman bu, minimaks noktasına atladığımız anlamına gelir, pratikte bir daha asla buluşmayacak olan kararsız bir duruma sahibiz, ayrıca bu optimal noktanın etrafında bir mola yeri bulunacak.

not.

Bu arada, test cihazında geliştiriciler, renge göre bir plato aramak için böyle bir fırsat sağladı. Şahsen, test cihazını bir bitirme aracı olarak kullanıyorum ve aynı renkteki karelerin etrafında döndüğü kareye atıfta bulunan parametreleri alıyorum. Bu benim "plato" kavramımın görsel bir ifadesidir.

1. Optimizasyon hakkında ne konuşuyorsunuz? Ne platosu? Hangi model hakkında? Bir sinir ağından bahsediyorsanız, kullanmadan önce DNN'yi eğitmemek (parametreleri optimize etmemek) garip olurdu.

2. Modelin(?) hangi parametreleri kararlı olmalıdır?

Düşüncelerinizi anlamadım.

Test cihazında değil, hatasız yapılması gereken DNN hiperparametrelerinin optimizasyonundan bahsettim.