"MQL dili kullanarak sıfırdan bir Derin Sinir Ağı programlama" makalesi için tartışma - sayfa 2

 
Anddy Cabrera # :

Merhaba Li,

Makaleyi 2 demo dosyası ile güncelledim. Biri MQL5, diğeri MQL4 için. DeepNeuralNetwork.mqh, hem mql5 hem de mql4 için kullanılabilir.


Her neyse, nasıl kullanılacağını göstermek için bu dosyaları buraya ekliyorum.


Eğer başka sorunuz varsa bana haber verin.

Gerçekten Çok Güzel bir makale, demoyu denedim ve sadece yValues[1]'in .5'ten daha fazla değer verebileceğini, yValues[0] ve yValues[2] değerlerinin maksimum .2 veya .3 olduğunu not ettim. optimizasyonda bile, bir satış emri olan birden fazla ticaret açılmayacaktır.
 
nail sertoglu # :

Paylaşmış olduğunuz kodlar için teşekkürler. Senin yolunu anlamaya çalıştım.


yValues[0] , yValues[1], yValues[2] hakkında beri değişmedikleri ve her zaman 0,33333 ancak _x Değerleri[1,2,3] yeni bar ile değişiyor; yani yDeğerlerine dayalı ticaret varsa , koşullar _x Değerlerine dayalı olduğunda TİCARET OLURKEN HİÇBİR TİCARET görmedim.

Bu benim hatam mı yoksa orijinal kodunuzdaki yanlış kodlama hatası mı?

Aşağıdaki işlevi 'void' yerine 'bool' döndürmek için güncelleyin ve verilen ağırlıkların çok az olduğunu göreceksiniz.

 bool SetWeights( double &weights[])
     {
       int numWeights=(numInput*numHiddenA)+numHiddenA+(numHiddenA*numHiddenB)+numHiddenB+(numHiddenB*numOutput)+numOutput;
       if ( ArraySize (weights)!=numWeights)
        {
         printf ( "Bad weights length (%i), expected %i" , ArraySize (weights), numWeights);
         return false ;
        }

Ayrıca dosyanın üstündeki ağırlıkları da güncellemeniz gerektiğini unutmayın (sadece ağı başlattığınızda güncellemeniz yeterli değildir :P

 #define SIZEI 25 // input * hidden A
#define SIZEA 25 // hidden A * hidden B
#define SIZEB 15 // hidden B * output
 
Merhaba Andy,

Bu çok iyi bir makale.
Bir kaç sorum var.
1) Hem Sigmoid hem de Tan-h aktivasyon uçlarını kombinasyon yoluyla çok katmanlı bir nöronda çıktıya götürebilir miyim?
2) Dosyanın üst kısmındaki ağırlıkları Karlis Balcers'ın önerdiği şekilde güncellemeniz gerekiyor mu?
 #define SIZEI 20 // (input * hidden A)+hidden A
#define SIZEA 25 // (hidden A * hidden B)+hidden B
#define SIZEB 18 // (hidden B * output)+output
Not: SIZEI 20 ve SIZEB 18 olmalı, doğru mu?
3) Bu makalede anlatıldığı gibi derin bir sinir ağı şeması ekledim, doğru mu?

çok teşekkürler


EADNN

 
Nihai sonucu daha iyi hale getiren değerleri seçerek genetik algo ith optimizer gibi çalışır
 
<Silindi>
 

Güzel animasyon.

İki katmanlı bir sinir ağı "sığ" bir sinir ağıdır, derin bir sinir ağı değildir. Derin sinir ağları üçten fazla gizli katmana sahip ağları içerir. Bu tür sinir ağlarını eğitmenin özellikleri nedeniyle, derin öğrenme yöntemleri geliştirilmiştir.

MCL üzerinde programlama örneği olarak makale muhtemelen yararlıdır. MLP konusuna aşina olmak için - kesinlikle gereklidir. Sinir ağı uygulamasının bir örneği olarak - tam değildir ve konunun mevcut durumunun çok gerisindedir.

Kural olarak hiperparametrelerin optimizasyonu olmadan sinir ağı tatmin edici bir kalite vermez.

Bu konuda hazır bir program denizi varken, neden doğaçlama araçlardan bir bisiklet inşa edildiğini anlamıyorum?

 
NS'nin iyi ve açık olduğunu anlamak için.
 

Düzeltme. Makalede derin ağın bir tanımı var. Ben görememişim.

Genetik kullanarak bir sinir ağının ağırlıklarını optimize etme süreci tam anlamıyla "öğrenme" değildir. Sonuçta bu bir optimizasyon. Eğitimde tamamen farklı yöntemler kullanılır. Yine de sinir ağı kullanımının bu çeşidi de uygulanmakta ve oldukça başarılıdır.

Bir sinir ağının çalışmasını anlamak için, bir sinir ağının hatanın geri yayılımı ile nasıl eğitildiğini anlamak önemlidir. Ben zaten seninle uğraşıyorum :)

İyi şanslar

 
Makale için yazara çok teşekkürler. Sinir ağlarından uzak bir kişi olarak, işin özüne inmeme çok yardımcı oldu ve konuya daha fazla aşina olma açısından çok ilginçti. Tekrar teşekkürler!
 

Bu ağa hata geri yayılımını dahil etmenin bir yolu var mı?

Bazı nedenlerden dolayı böyle bir ağın daha esnek olacağı ve daha iyi girdiler sağlayacağı yönünde bir görüş var - out....

Hata geri yayılımlı bir ağ tamamen farklı bir ağ değildir, değil mi?