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

 
Dr. tüccar :

Genetik, doğru parametreleri bulmak için sınırlı sayıdaişlev çağrısı yapmaya çalışır. Bu parametre için seçeneklerin sayısını daraltarak (200 yerine 30), genetik bölgeyi 1'den 30'a kadar daha detaylı keşfedebilir. Ve bu doğrudur, eğer bazı model parametrelerini aramak için belirli sınırları biliyorsanız, o zaman bu doğrudur. genetiğin bu bilgiyi hemen vermesi daha iyi.


Alternatif olarak:

Bu satırı (yeşil) koda ekleyin, o zaman genetik, popülasyonda varsayılan 50 yerine 500 birey olacak. Ve 10 kat daha fazla modeli kontrol edebilecek (ancak komut dosyası yürütme süresi 10 kat artacak), mümkün olacak. mümkün olduğu kadar çok kombinasyonu sıralamak için model parametreleri. Hatta max. 200'deki nöron sayısı, genetiğin de 0.85 ile daha iyi bir sonuç bulabileceğini veya en azından ona yaklaşabileceğini düşünüyorum.

Hangi genetikten bahsettiğini anlamadım. ELM'de genetik yoktur. ELM teorisine veya elmNN paket açıklamasına bir göz atın:

"ELM algoritması, geleneksel gradyan tabanlı öğrenme algoritmalarının güncel konuları olan öğrenme hızı, momentum vb. gibi herhangi bir yinelemeli ayar veya ayar parametresi gerektirmeyen SLFN (Single Hidden Layer Feedforward Networks) için alternatif bir eğitim yöntemidir ( geri yayılım gibi).

Bir SLFN'nin ELM ile eğitimi, üç aşamalı bir öğrenme modelidir:

Bir eğitim seti verildiğinde P = {(xi , ti )|xi ER , ti ER , i = 1,..., N}, gizli düğüm çıkış fonksiyonu G(a, b, x) ve gizli düğüm sayısı L

1) Rastgele gizli düğüm parametreleri (ai , bi ), i = 1,..., L atayın. Bu, giriş katmanı ile gizli katman arasındaki yay ağırlıklarının ve gizli katman önyargısının rastgele oluşturulduğu anlamına gelir.

2) Mevcut aktivasyon fonksiyonlarından birini kullanarak gizli katman çıktı matrisini H hesaplayın.

3) B çıkış ağırlıklarını hesaplayın: B = ginv(H) %*% T ( matris çarpımı ), burada T, eğitim setinin hedef çıktısıdır.

ginv(H), gizli katman çıktı matrisi H'nin Moore-Penrose genelleştirilmiş tersidir. Bu, MASS paket işlevi ginv tarafından hesaplanır.

SLFN bir kez eğitildikten sonra, genel bir test setinin çıktısı basitçe Y = H %*% B'dir (matris çarpımı). Belirgin özellikleri:

- ELM'nin öğrenme hızı son derece hızlıdır.

- Yalnızca türevlenebilir etkinleştirme işlevleri için çalışan geleneksel gradyan tabanlı öğrenme algoritmalarının aksine, ELM tüm sınırlı sabit olmayan parçalı sürekli etkinleştirme işlevleri için çalışır.

- Yerel minimumlar, yanlış öğrenme oranı ve fazla uyum gibi çeşitli sorunlarla karşı karşıya kalan geleneksel gradyan tabanlı öğrenme algoritmalarının aksine, ELM bu tür önemsiz sorunlar olmadan çözümlere doğrudan ulaşma eğilimindedir.

- ELM öğrenme algoritması, diğer popüler öğrenme algoritmalarından çok daha basit görünüyor: sinir ağları ve destek vektör makineleri."

Az sayıda nöronla bile iki özdeş sinir ağı elde etmek imkansızdır. Sürekli bir çıktıyı bir sınıfa çevirmek için eşiği yanlış tanımlıyorsunuz. Eşik = 0,5 en kötü durum. Kabul edilebilir = ortanca/ Ancak daha gelişmişleri var.

İyi şanlar

 
Maksim Dmitrievski :

Oh, okunacak bir şey olacak, yoksa ne olduğunu unuttum. Daha doğrusu GBM'nin XGboost'tan ne kadar farklı olduğunu unuttum .. veya bilmiyordum

gbm gibi herhangi bir modeli artırabilirsiniz, xgb ağaçlarda olduğu gibi

Güçlendirmenin, ormanın inşa edildiği torbalamadan biraz daha iyi olduğunu biliyorum. Ve yeniden eğitimle nasıl olduğunu bilmiyorum.


Fazla takmanın model tipiyle hiçbir ilgisi yoktur.

Model iki durumda yeniden eğitilir:

  • gürültü tahmin edicilerin varlığı ana problemdir ve SADECE tahmin edicilerin seçimi ile çözülür.
  • modelin çok hassas uyumu - parametrelerinin genellikle küçük bir örnek üzerinde "optimizasyonu". Bu tür aşırı eğitim, geliştiricinin deneyimi ile çözülür.

 
San Sanych Fomenko :

SanSanych, histeriyi durdur

 
Vladimir Perervenko :

Hangi genetikten bahsettiğini anlamadım. ELM'de genetik yoktur. ELM teorisine veya elmNN paket açıklamasına bir göz atın:

"ELM algoritması, geleneksel gradyan tabanlı öğrenme algoritmalarının güncel konuları olan öğrenme hızı, momentum vb. gibi herhangi bir yinelemeli ayar veya ayar parametresi gerektirmeyen SLFN (Single Hidden Layer Feedforward Networks) için alternatif bir eğitim yöntemidir ( geri yayılım gibi).

Bir SLFN'nin ELM ile eğitimi, üç aşamalı bir öğrenme modelidir:

Bir eğitim seti verildiğinde P = {(xi , ti )|xi ER , ti ER , i = 1,..., N}, gizli düğüm çıkış fonksiyonu G(a, b, x) ve gizli düğüm sayısı L

1) Rastgele gizli düğüm parametreleri (ai , bi ), i = 1,..., L atayın. Bu, giriş katmanı ile gizli katman arasındaki yay ağırlıklarının ve gizli katman önyargısının rastgele oluşturulduğu anlamına gelir.

2) Mevcut aktivasyon fonksiyonlarından birini kullanarak gizli katman çıktı matrisini H hesaplayın.

3) B çıkış ağırlıklarını hesaplayın: B = ginv(H) %*% T ( matris çarpımı ), burada T, eğitim setinin hedef çıktısıdır.

ginv(H), gizli katman çıktı matrisi H'nin Moore-Penrose genelleştirilmiş tersidir. Bu, MASS paket işlevi ginv tarafından hesaplanır.

SLFN eğitildikten sonra, genel bir test setinin çıktısı basitçe Y = H %*% B'dir (matris çarpımı). Belirgin özellikleri:

- ELM'nin öğrenme hızı son derece hızlıdır.

- Yalnızca türevlenebilir etkinleştirme işlevleri için çalışan geleneksel gradyan tabanlı öğrenme algoritmalarının aksine, ELM tüm sınırlı sabit olmayan parçalı sürekli etkinleştirme işlevleri için çalışır.

- Yerel minimumlar, yanlış öğrenme oranı ve fazla uyum gibi çeşitli sorunlarla karşı karşıya kalan geleneksel gradyan tabanlı öğrenme algoritmalarının aksine, ELM bu tür önemsiz sorunlar olmadan çözümlere doğrudan ulaşma eğilimindedir.

- ELM öğrenme algoritması, diğer popüler öğrenme algoritmalarından çok daha basit görünüyor: sinir ağları ve destek vektör makineleri."

Az sayıda nöronla bile iki özdeş sinir ağı elde etmek imkansızdır. Sürekli bir çıktıyı bir sınıfa çevirmek için eşiği yanlış tanımlıyorsunuz. Eşik = 0,5 en kötü durum. Kabul edilebilir = ortanca/ Ancak daha gelişmişleri var.

İyi şanlar

Küçük antrenman dosyamda antrenmanlar arasında %100 eşleşme var..

 

Verileri hangi süre için atıyorsunuz?

2 yıllık bir boşluğum var ve veriler arasındaki fark 15 saniye. Tahminciler: "(double)(val1 <val2)" formatında oluşturulmuş 30 doğal ve 1000'den fazla.

İlk başta ben de tahmin edicilerin sayısının azaltılması gerektiğini düşündüm, ancak uygulama daha fazlasının daha iyi olduğunu gösterdi.

Tabii ki, 2 yıl için 1000 tahminci, yaklaşık 3 GB'lık bir hacim verir. R'yi bu tür hacimlerle kullanmak ciddi değildir.

Python, veri madenciliğinde R'yi geçti çünkü TensorFlow, Spark, MXNet gibi projelere bağlı Cython ve Jython var...

 
Dr. tüccar :

Genetik, doğru parametreleri bulmak için sınırlı sayıdaişlev çağrısı yapmaya çalışır. Bu parametre için seçeneklerin sayısını daraltarak (200 yerine 30), genetik bölgeyi 1'den 30'a kadar daha detaylı keşfedebilir. Ve bu doğrudur, eğer bazı model parametrelerini aramak için belirli sınırları biliyorsanız, o zaman bu doğrudur. genetiğin bu bilgiyi hemen vermesi daha iyi.


Alternatif olarak:

Bu satırı (yeşil) koda ekleyin, o zaman genetik, popülasyonda varsayılan 50 yerine 500 birey olacak. Ve 10 kat daha fazla modeli kontrol edebilecek (ancak komut dosyası yürütme süresi 10 kat artacak), mümkün olacak. mümkün olduğu kadar çok kombinasyonu sıralamak için model parametreleri. Hatta max. 200'deki nöron sayısı, genetiğin de 0.85 ile daha iyi bir sonuç bulabileceğini veya en azından ona yaklaşabileceğini düşünüyorum.

Teşekkürler!!!! Gerçekten de sonuçlar iyileşti. Tamam, bakalım ne ve nasıl ... Asıl mesele sürekli kazanmak ...

 
Vladimir Perervenko :

Hangi genetikten bahsettiğini anlamadım.

Bu, yaklaşık yüz sayfa önce Mikhail'e gösterdiğim R senaryosunda. Genetik algoritma , elmnn için parametreleri sıralar (aktivasyon fonksiyonu, hpc tohumu, gizli nöron sayısı). Genetik için uygunluk fonksiyonunda, elmnn modellerinden oluşan bir komite bu parametreler kullanılarak eğitilir, kfold açısından değerlendirilir, vb.

Komut dosyasının kendisi, elmnn ve Bayesian optimizasyonu hakkındaki makalenizden esinlenerek yazılmıştır. Ama Baes yerine genetik yaptım, benim için çok daha hızlı çalışıyor ve komitenin değerlendirmesini kendi zevkime göre yaptım.

 
San Sanych Fomenko :

Model iki durumda yeniden eğitilir:

  • gürültü tahmin edicilerin varlığı ana problemdir ve SADECE tahmin edicilerin seçimi ile çözülür.

Soru sadece sizin için değil, herkes için.

Uygulamada, bu doğrudur, yani. gürültü tahmin edicileri varsa, NN %50-55'ten kaçamaz. Alırsanız,% 70 verebilir.

Ama neden bu?
1) Sonuçta, NN, eğitim sırasında, gürültü tahmin edicileri için 0'a yakın ağırlıkları seçmelidir (bu, seçim sırasında hariç tutulmalarına eşdeğerdir). Bunu şubenin başındaki problemde gördük.
2) Ağırlıkları hafife almak için eğitimle değilse, en azından bırakma onları filtrelemelidir ...

 
Dr. tüccar :

Bu, yaklaşık yüz sayfa önce Mikhail'e gösterdiğim R senaryosunda. Genetik algoritma , elmnn için parametreleri sıralar (aktivasyon fonksiyonu, hpc tohumu, gizli nöron sayısı). Genetik için uygunluk fonksiyonunda, elmnn modellerinden oluşan bir komite bu parametreler kullanılarak eğitilir, kfold açısından değerlendirilir, vb.

Blogunuza kopyalayın, belki başka biri için faydalı olur. Burada aranacak bir şey yok.
 
elibrarius :

Soru sadece sizin için değil, herkes için.

Uygulamada, bu doğrudur, yani. gürültü tahmin edicileri varsa, NN %50-55'ten kaçamaz. Alırsanız,% 70 verebilir.

Ama neden bu?
1) Sonuçta, NN, eğitim sırasında, gürültü tahmin edicileri için 0'a yakın ağırlıkları seçmelidir (bu, seçim sırasında hariç tutulmalarına eşdeğerdir). Bunu şubenin başındaki problemde gördük.
2) Ağırlıkları hafife almak için eğitimle değilse, en azından bırakma onları filtrelemelidir ...

ek boyut hala kalır ve bir şekilde içinden bir eğri çizmek gerekir, belki büyük bir hatayla

Tersine, terk, hatayı artırır, değil mi?

Neden: