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

 
Michael Marchukajtes :

Hata hatası çekişmesi. Küçük bir hatanın büyük bir etkisi olabilir.

Ve NN'den yinelenen verileri yakalamaması istenir. Tekrarlayan verilerin yokluğunda doğru sonucu elde etmek için gizli kalıpları belirlemesi istenir. Genelleme kavramı. Sonlu bir veri alanımız olduğunda, ancak bu verilerin yalnızca %50'sine sahip olduğumuzda. Ağ eğitilmiştir ve bir kalıp belirlemek, görmediği verilerin geri kalanını oluşturabilir. Ağın kendi kendine çizdiği eksik piksellerle eski videoları geri yüklemek gibi.

Pekala, bu istatistiksel bir yaklaşım! Örneğin elimde 20 farklı üçgen fotoğrafı var. 21'inde, üçgenin hipotenüsü yoktur. Toplanan istatistiklere dayanarak bunun altı çizili bir üçgen olduğunu kolayca belirleyebilirim - (her fotoğrafta bir üçgen var). Yani, üçgenin çizimindeki hata kritik değil, çünkü zaten genel olarak istatistiklerim var. Bu ilke Ulusal Meclis ile çalışmıyor mu?
 
Peter Konow'un fotoğrafı.
Pekala, bu istatistiksel bir yaklaşım! Örneğin elimde 20 farklı üçgen fotoğrafı var. 21'inde, üçgenin hipotenüsü yoktur. Toplanan istatistiklere dayanarak bunun altı çizili bir üçgen olduğunu kolayca belirleyebilirim - her fotoğrafta bir üçgen var. Yani üçgenin çizimindeki hata benim için kritik değil çünkü zaten genel olarak istatistiklerim var. Bu ilke Ulusal Meclis ile çalışmıyor mu?
Yaklaşık olarak, 21 fotoğrafta sadece bir açı çizdiğiniz ve bir üçgen meselesi olmadığı dışında ...
 
Michael Marchukajtes :
Yaklaşık olarak, 21 fotoğrafta sadece bir açı çizdiğiniz ve bir üçgen meselesi olmadığı dışında ...
İstatistik tabanlı tahmin bu şekilde çalışır. Bunun bir sonraki fotoğrafta içi boş olacak, altı çizili bir üçgen olduğunu tahmin ediyorum.
 
sana öyle söyleyeceğim. Her şey deneyimle gelir ve MO'da teorik ve pratik olmak üzere iki tür deneyim vardır ve bunlar çok farklıdır, inan bana. Ne kadar çok pratik yaparsanız, bu alanın felsefesini o kadar çok anlamaya başlarsınız. İşte bu, izolasyon kapsamında patates almaya gittim, bir arayışa benziyor :-)(
 

Sinir ağlarının özünü ve teorik temelini anlamak için Kolmogorov, Arnold ve Hecht-Nilson teorisi bilgisi gereklidir.

Uygulama için bu bilgiye özellikle ihtiyaç duyulmaz, ancak bunların genel olarak anlaşılması zarar vermez.

 
elibrarius :

JSO verilerinden bölmeleri görüntülemek için bir bağlantı verdim. Orada, tam modelin bir dosyaya boşaltılması gerçekleşir. Sonra bölmeler ondan okunur.

Zaten asimetrik ağaçların kaldırılabileceğinden emin misiniz?


elibrarius :

Güçlendirmede, tanımı gereği, tüm ağaçlar önemlidir. Sonraki her biri, öncekilerin tümünü iyileştirir. Ortada bir ağaç atarsanız, bundan sonraki her şey yanlış verilerle çalışacaktır - atılan ağacı hesaba katmadan yeniden eğitilmeleri gerekir. Bu durumda, ilk ağaç, atılanı çok yakından tekrarlayacaktır.

Hayır, bu tamamen doğru değil. Model hazır olduğunda, içinde bir demet ağaç yaprağı oturur ve yaklaşık 0,5'lik bir olasılık verir - aslında çöptür.


elibrarius :

Evet. Takviyede ayrı yapraklar arızalıdır, çünkü. diğer arıtma ağaçlarından gelen yaprakların tepkileri ile tamamlanır. Ve sadece bir dizi cevap, örneğin 100 ağaç, doğru cevabı verir.

Güçlendirilmiş bir modelin tek bir sayfasından güvenilir bir şey elde etmeye çalışmak imkansızdır.
Güçlendirmede, 100 ağaçtan gelen 100 yanıtın tümü toplanır, her biri örneğin toplamda 0,01 = 1 verir. 1 yaprağın değeri = 0,01 - bundan ne elde etmek istiyorsunuz? İçinde hiçbir şey yok. Sadece 100 yaprağın toplamı doğru cevabı verecektir.
Aslında 1. ağaç orada güçlü ve örneğin 0.7 veriyor, geri kalanı toplamı 1'e yaklaştırıyor. Ayrı ayrı ele alırsak, o zaman sadece ilk ağacın yaprakları, ama bence herhangi bir ağaçtan daha zayıflar. daha küçük derinlik nedeniyle rastgele ormandan.
Rastgele bir ormanda, bir ortalama vardır, örneğin, 100 ağacın her yaprağı \u003d 1, ortalama da \u003d 1'dir. İçinde tilkiler tamamlandı, ancak rastgele sapmalarla. Ancak 100 yanıtlık bir kalabalık, ortalamayı oldukça doğru bir yanıt olarak verir.

Bir ağaçtan faydalı bir şey elde etmek mümkündür, ancak bu nadirdir.

İlk ağaç bile en iyisi olmayacak.

Hızlandırma hızlıdır, ancak burada modelleri dikkatli bir şekilde seçmeniz gerekir ve bu, büyük bir örneklem gerektirir ve bu bir sorundur.

 
Aleksey Nikolaev :

Sinir ağlarının özünü ve teorik temelini anlamak için Kolmogorov, Arnold ve Hecht-Nilson teorisi bilgisi gereklidir.

Uygulama için bu bilgiye özellikle ihtiyaç duyulmaz, ancak bunların genel olarak anlaşılması zarar vermez.

TEŞEKKÜR.

Yukarıdaki sinir ağları modelleriyle ilgili titiz bir teorinin olmaması, pratik problemleri çözmek için uygulama olasılıklarının incelenmesini engellemez.

 
Alexey Vyazmikin :

Zaten asimetrik ağaçların kaldırılabileceğinden emin misiniz?

Grow_policy='Lossguide' ekleyerek örneği denedim
Bölmeleri içeren modelin bir parçası:

'split': {'border': 16.049999237060547, 'float_feature_index': 1, 'split_index': 0, 'split_type': 'FloatFeature'}}, 'right': {'left': {'value': 0.05454545454545454, 'weight': 153}, 'right': {'value': 0.8265895953757225, 'weight': 161}, 'split': {'border': 5.999999046325684, 'ctr_target_border_idx': 0, 'split_index': 4, 'split_type': 'OnlineCtr'}}, 
'split': {'cat_feature_index': 1, 'split_index': 1, 'split_type': 'OneHotFeature', 'value': -845129958}}, {'left': {'left': {'value': -0.43103007753084105, 'weight': 444}, 'right': {'value': -0.10906568919445614, 'weight': 133}, 'split': {'border': 6.999999046325684, 'ctr_target_border_idx': 0, 'split_index': 2, 'split_type': 'OnlineCtr'}}, 'right': {'left': {'value': 0.02835585997337218, 'weight': 163}, 'right': {'value': 0.5713236394502054, 'weight': 151},
'split': {'border': 5.999999046325684, 'ctr_target_border_idx': 0, 'split_index': 3, 'split_type': 'OnlineCtr'}}, 
'split': {'cat_feature_index': 1, 'split_index': 1, 'split_type': 'OneHotFeature', 'value': -845129958}

Depthwise ile de bölmeler var. Ama bu Python'da, R'de modeli boşaltma fırsatını görmedim. Ama bence modeli R'de dahili bir formatta kaydedebilir, Python'da açıp JSON'a yükleyebilirsiniz. Ve ondan zaten kullanmanız gereken her şey

 
Meslektaşlar. Konu ilginç, ancak makine öğreniminin test cihazındaki basit parametre optimizasyonundan nasıl farklı olduğunu anlamıyorum? Sonuçta, amaç yaklaşık olarak aynı olacaktır - giriş (çıkış) parametreleri çakışırsa, piyasaya (piyasadan) girme (çıkış) kararı vermek. Ve bu ve bu yöntem, piyasada güçlü bir değişiklikle çalışmayı bırakır. Yeniden eğitilmesi ve optimize edilmesi gerekiyor. Mümkünse kısaca ve felsefesiz.
 
Yan Barmin :
Meslektaşlar. Konu ilginç, ancak makine öğreniminin test cihazındaki basit parametre optimizasyonundan nasıl farklı olduğunu anlamıyorum? Sonuçta, amaç yaklaşık olarak aynı olacaktır - giriş (çıkış) parametreleri çakışırsa, piyasaya (piyasadan) girme (çıkış) kararı vermek. Hem bu hem de bu yöntem, pazarın güçlü değişiminde işe yaramaz. Yeniden eğitilmesi ve optimize edilmesi gerekiyor. Mümkünse kısaca ve felsefesiz.

Fark, takım esnekliğindedir. Sinir ağı herhangi bir diziye uyum sağlayabilir. Aşağıdaki polinomu inceleyiniz. Katsayıların bit derinliği ve sayıları tamamen farklı olabilir.

 double getBinaryClassificator1( double v0, double v1, double v2, double v3, double v4, double v5, double v6, double v7, double v8, double v9, double v10) {
   double x0 = 2.0 * (v0 + 2.6721302849319 ) / 5.70376880500565 - 1.0 ;
   double x1 = 2.0 * (v1 + 0.862195874260524 ) / 4.318953971518134 - 1.0 ;
   double x2 = 2.0 * (v2 + 0.636958350251177 ) / 2.893126110958697 - 1.0 ;
   double x3 = 2.0 * (v3 + 1.28131145039971 ) / 4.47439455086403 - 1.0 ;
   double x4 = 2.0 * (v4 + 1.40655622673661 ) / 3.84454848827483 - 1.0 ;
   double x5 = 2.0 * (v5 + 1.05792133319783 ) / 4.0361119526354905 - 1.0 ;
   double x6 = 2.0 * (v6 + 0.960632890559664 ) / 2.810809591513934 - 1.0 ;
   double x7 = 2.0 * (v7 + 2.50474545671368 ) / 4.50657217846072 - 1.0 ;
   double x8 = 2.0 * (v8 + 3.37124943164126 ) / 5.00153555828254 - 1.0 ;
   double x9 = 2.0 * (v9 + 1.01434366581359 ) / 3.81959911946484 - 1.0 ;
   double x10 = 2.0 * (v10 + 0.997401251919643 ) / 2.959840023725593 - 1.0 ;
   double decision = 0.0455519244734931 * sigmoid(x0 + x5 + x8)
  + 0.01733841684822077 * sigmoid(x5 + x7 + x8)
  + 0.21269063180827888 * sigmoid(x0 + x5 + x7 + x8)
  + 0.02875816993464052 * sigmoid(x0 + x8 + x9)
  - 0.025853304284676835 * sigmoid(x0 + x4 + x8 + x9)
  + 0.021169208424110384 * sigmoid(x0 + x7 + x10)
  + 0.07184095860566449 * sigmoid(x0 + x8 + x10)
  + 0.03769063180827887 * sigmoid( 1.0 + x0 + x3 + x5 + x8)
  - 0.03179012345679012 * sigmoid( 1.0 + x3 + x6 + x9)
  + 0.02750544662309368 * sigmoid( 1.0 + x0 + x5 + x7 + x9)
  + 0.1463507625272331 * sigmoid( 1.0 + x1 + x2 + x8 + x9)
  + 0.012799564270152506 * sigmoid( 1.0 + x0 + x2 + x10)
  + 0.1864560639070443 * sigmoid( 1.0 + x0 + x1 + x5 + x8 + x10)
  + 0.07494553376906318 * sigmoid( 1.0 + x0 + x2 + x5 + x8 + x10)
  + 0.014669571532316631 * sigmoid( 1.0 + x2 + x5 + x6 + x8 + x10)
  + 0.05266884531590414 * sigmoid( 1.0 + x0 + x1 + x7 + x8 + x10)
  + 0.04566085693536674 * sigmoid( 1.0 + x0 + x1 + x2 + x8 + x9 + x10)
  + 0.061546840958605666 * sigmoid( 1.0 + x0 + x2 + x4 + x8 + x9 + x10);
   return decision;
}

Şimdi seçeneklerin sayısını hayal edin, çok parametreli hiçbir Uzman Danışman böyle bir esnekliğe sahip olamaz. Bir de genelleme yeteneğine sahip olduklarını söylüyorlar ama bu doğru değil :-)

Neden: