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

 
Alexey Terentev :
Çözümlerim başlangıçta OpenNN'ye (C++) dayanıyordu.
Şimdi, konileri doldurarak harika Keras (Python) projesine geçtim.

Genelde sınıflandırma problemlerini tahmin etmek için derin öğrenme yapıyorum.

Bu yüzden MO'nun bir alanıyla ilgileniyoruz. Keras, özellikle R'ye taşındığından beri iyi bir pakettir.

Yalnız ben soruyu anlamadım ne?

İyi şanlar

 
Vladimir Perervenko :

Bu yüzden MO'nun bir alanıyla ilgileniyoruz. Keras, özellikle R'ye taşındığından beri iyi bir pakettir.

Yalnız ben soruyu anlamadım ne?

İyi şanlar

Evet, bir şekilde tartışmaya katılmaya karar verdim. =)
 
Maksim Dmitrievski :


şimdi bu zaten ilginç .. bu yüzden ek testler yapmak gerekli olacak, belki daha önce düşünüldüğü gibi bu RNN'de bir anlamı yok

Tek artı, optimize edicideki ağırlıkların diğer sistem parametreleriyle aynı anda seçilmesidir.

Şimdi bilinen veri aralığında ne kadar iyi olduğunu anlamaya çalışıyorum. Örneğin çarpım tablosu.

Güncelleme.

Danışmanı değiştirdikten sonraki ek deneyler, normal MLP 3-5-1 ile karşılaştırıldığında aşağıdaki sonuçları gösterdi.

Kontroller için farklı formüller kullanıldı:

//double func(double d1,double d2,double d3 ){return d1*d2;} //%0-2 hata, çünkü çarpma formüllere gömülüdür. %2 elde edilir çünkü genetik optimize edici her zaman ideal çözümden daha azında durmaz. Ancak hata = 0 olan kesinlikle kesin bir çözüm de var.
//double func(double d1,double d2,double d3 ){dönüş d1*d2*d3;}// hata %0-2 çarpma formüllere dahil edilmiştir, MLP'de %1
//double func(double d1,double d2,double d3 ){return MathSin (d1);}// hata %2-6, MLP'de %0,1
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3);}// MLP'de hata %2, %1
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// MLP'de hata %3-4, %1
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}// MLP'de %8-4 hata
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// MLP'de %8-4 hata

Sonuç olarak, normal MLP'nin Reshetov'un RNN'sinden 2-3 kat daha az hataya sahip olduğu sonucuna varabiliriz. Belki de bu hatanın bir kısmı, MT5 terminalinin genetik optimize edicisinin ideal bir çözümde durmamasından kaynaklanmaktadır.
 
elibrarius :

Şimdi bilinen veri aralığında ne kadar iyi olduğunu anlamaya çalışıyorum. Örneğin çarpım tablosu.

Güncelleme.

Danışmanı değiştirdikten sonraki ek deneyler, normal MLP 3-5-1 ile karşılaştırıldığında aşağıdaki sonuçları gösterdi.

Kontroller için farklı formüller kullanıldı:

//double func(double d1,double d2,double d3 ){return d1*d2;} //%0-2 hata, çünkü çarpma formüllere gömülüdür. %2 elde edilir çünkü genetik optimize edici her zaman ideal çözümden daha azında durmaz. Ancak hata = 0 olan kesinlikle kesin bir çözüm de var.
//double func(double d1,double d2,double d3 ){dönüş d1*d2*d3;}// hata %0-2 çarpma formüllere dahil edilmiştir, MLP'de %1
//double func(double d1,double d2,double d3 ){return MathSin(d1);}// hata %2-6, MLP'de %0,1
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3);}// MLP'de hata %2, %1
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// MLP'de hata %3-4, %1
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}// MLP'de %8-4 hata
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// MLP'de %8-4 hata

Sonuç olarak, normal MLP'nin Reshetov'un RNN'sinden 2-3 kat daha az hataya sahip olduğu sonucuna varabiliriz. Belki de bu hatanın bir kısmı, MT5 terminalinin genetik optimize edicisinin ideal bir çözümde durmamasından kaynaklanmaktadır.

Evet, ilginç sonuçlar, belki kapsamlı arama daha kesin olabilir
 
Maksim Dmitrievski :

Evet, ilginç sonuçlar, belki kapsamlı arama daha kesin olabilir
olurdu, ancak birkaç hafta veya ay içinde ...% 1'lik bir adımla 8 seçilen katsayı 100 8 = 1000000000000000 yineleme ve terminalin kendisi böyle bir sayı ile genetiğe geçer.
 
elibrarius :
öyle olurdu, ancak birkaç hafta veya ay içinde ...% 1'lik bir adımla 8 seçilen katsayı 100 8 = 10000000000000000 yineleme ve terminalin kendisi böyle bir sayı ile genetiğe geçer.

Söyleyin bana, MLP'yi alglib'den sınıflandırmak, anladığım kadarıyla en az 2 çıktı gerektiriyor, bununla nasıl çalışılır? yardım yok, hiçbir yerde açıklama yok .. teneke)
 
Maksim Dmitrievski :

Söyleyin bana, MLP'yi alglib'den sınıflandırmak, anladığım kadarıyla en az 2 çıktı gerektiriyor, bununla nasıl çalışılır? yardım yok, hiçbir yerde açıklama yok .. teneke)

Evet 2, yardımdan http://alglib.sources.ru/dataanalysis/neuralnetworks.php

Özel bir durum, doğrusal bir çıktı katmanına ve SOFTMAX çıktı normalleştirmesine sahip sinir ağlarıdır. Ağ çıktılarının negatif olmaması ve toplamlarının kesinlikle bire eşit olması gereken sınıflandırma problemleri için kullanılırlar, bu da girdi vektörünü sınıflardan birine atama olasılıkları olarak kullanılmalarına izin verir (sınırlı durumda) , eğitilmiş ağın çıktıları bu olasılıklara yakınsar). Böyle bir ağın çıktı sayısı her zaman en az ikidir (temel mantık tarafından belirlenen bir sınırlama).

Lineer ile denemeler yaparken henüz onunla ilgilenmedim.
 
elibrarius :

Evet, yardımdan http://alglib.sources.ru/dataanalysis/neuralnetworks.php

Özel bir durum, doğrusal bir çıktı katmanına ve SOFTMAX çıktı normalleştirmesine sahip sinir ağlarıdır. Ağ çıktılarının negatif olmaması ve toplamlarının kesinlikle bire eşit olması gereken sınıflandırma problemleri için kullanılırlar, bu da girdi vektörünü sınıflardan birine atama olasılıkları olarak kullanılmalarına izin verir (sınırlı durumda) , eğitilmiş ağın çıktıları bu olasılıklara yakınsar). Böyle bir ağın çıktı sayısı her zaman en az ikidir (temel mantık tarafından belirlenen bir sınırlama).


Ah, peki, yani, belirli bir sonucun olasılığını sunuyoruz, örneğin, 0,9 satın alma ve ardından 0,1 satma olasılığı, bir dizi satın alma, diğeri satma, bunları doldurma olasılıkları için bir tampon görevi görecektir. bu değerler ve öğrendikten sonra alım satım olasılıklarını ayrı ayrı atmak olacak, doğru anlamış mıyım?
 
Maksim Dmitrievski :

Ah, peki, yani, belirli bir sonucun olasılığını sunuyoruz, örneğin, 0,9 satın alma olasılığı, ardından 0,1 satma olasılığı, bir dizi satın alma, diğeri satış ve daha sonra olasılıklar için bir tampon görevi görecektir. onları eğitmek, olasılıkları ayrı ayrı fırlatacak, doğru anladın mı?

Ve okuduklarım - aynı fikirdeydim.

Avantajının ne olduğunu bilmesem de.. 1 çıkışa sahip olmak, ayrıca 0 (veya -1) Alış ve 1 Satış gibi olasılıklar da alacağız. (Ya da tam tersi, nasıl öğrettiğinize bağlı olarak).

3 veya daha fazla çıkış olması faydalı olabilir mi? Sonuçta 3 veya 4 görev için 1 çıktı .... kullanmak zor olacaktır (Sınıf al, bekle, sat olarak 0, 0,5 ve 1'i de kullanabilseniz de)

 
elibrarius :

Ve okuduklarım - aynı fikirdeyim.

Avantajının ne olduğunu bilmesem de.. 1 çıkışa sahip olmak, ayrıca 0 (veya -1) Alış ve 1 Satış gibi olasılıklar da alacağız. (Ya da tam tersi, nasıl öğrettiğinize bağlı olarak).

3 veya daha fazla çıkış olması faydalı olabilir mi? O zaman 3 veya 4 görev için 1 çıktı .... kullanmak zor olacaktır (Buna rağmen 0, 0,5 ve 1'i Buy sınıfları, bekle, Sat olarak da kullanabilirsiniz)


evet, muhtemelen 2'den fazla sınıfa sahip olmak için yaptılar .. o zaman muhtemelen daha fazla kümeleme olacak ve k-means gibi diğer yöntemleri kullanabilirsiniz :)
Neden: