MT4 için hızlı ve ücretsiz bir kitaplık olan sinir ağı uzmanlarını memnun etmek için - sayfa 15

 
lasso >> :

Ekleyeceğim. Veya terminal çökmesi durumunda. Ama çözüm bulunmuş gibi.

Soru farklı. Vladislav, "aracılar" olmadan C++ kodunu okuyor gibisin.

Aynı ağ komitesi yanıtları ve ağırlıkların doğru başlatılmasıyla ilgili sorun hakkında yorum yapabilir misiniz? ( burada ve daha fazla günlük ayrıntılı olarak okuyun, ancak ağırlıklarla ilgili soru burada)

Kodları inceledi. Randomizasyon var. Ne değildir: standart C \ C ++ 'da yarı rasgele bir sayı üreteci olduğundan, her rand () çağrısından önce çekirdeği yeniden başlatmanız önerilir (seed - srand(int ) - başlangıç noktasını kaydırın)

 int rand ( void ) ;
  Return Value 
rand returns a pseudorandom number , as described above . There is no error return .

  Remarks 
The rand function returns a pseudorandom integer in the range 0 to RAND_MAX ( 32767 ) . 
Use the srand function to seed the pseudorandom - number generator before calling rand .

//------------------------------------------------

Sets a random starting point .


void srand (
   unsigned int seed 
) ;
  Parameters 
seed
Seed for random - number generation

  Remarks 
The srand function sets the starting point for generating a series of pseudorandom integers in the current thread . 
To reinitialize the generator , use 1 as the seed argument . Any other value for seed sets the generator to a random 
starting point . rand retrieves the pseudorandom numbers that are generated . 
Calling rand before any call to srand generates the same sequence as calling srand with seed passed as 1 .

  


 
Henry_White писал(а) >>

Evet. Her şebekenin farklı girdileri vardır, ancak bu zorunlu değildir. Örneğin, aynı RSI ve bir ızgara gibi standart bir sinyal alabilir ve herhangi bir girişte kaba kuvvet üzerinde yine de negatif değerler alabilirsiniz.

Ağırlıkların ilk başlatılması -1, 1'dir.

Profil hakkında ... Eğitimli ağın ortaya çıkan dosyasını mı kastediyorsunuz?

Numara. Farklı şeylerden bahsediyoruz. Sana çıkışları sordum!? Lütfen buraya giriniz. Onlar. 16 ağdan oluşan bir komitemiz var, onları rastgele ağırlıklarla başlatıyoruz, her birinin girişine tek bir &input_vector[] besliyoruz, sonuç olarak aynı çıktıları alıyorum !!! (tüm günlükler bağlantıda yayınlanmıştır)

İşte asıl soru bu!

........

Evet. eğitimli ağın ortaya çıkan dosyasını burada veya sabun için gösterin .... Ağırlıkların değerleri ile ilgileniyor. Başlatmadan hemen sonra eğitim almadan bir ağ profiline sahip olmak güzel olurdu. TAMAM?

 
lasso >> :

Numara. Farklı şeylerden bahsediyoruz. Sana çıkışları sordum!? Lütfen buraya giriniz. Onlar. 16 ağdan oluşan bir komitemiz var, onları rastgele ağırlıklarla başlatıyoruz, her birinin girişine tek bir &input_vector[] besliyoruz, sonuç olarak aynı çıktıları alıyorum !!! (tüm günlükler bağlantıda yayınlanmıştır)

İşte asıl soru bu!

........

Evet. eğitimli ağın ortaya çıkan dosyasını burada veya sabun için gösterin .... Ağırlıkların değerleri ile ilgileniyor. Başlatmadan hemen sonra eğitim almadan bir ağ profiline sahip olmak güzel olurdu. TAMAM?

Gerçekten farklı şeylerden bahsediyoruz)) Sorununuzu anlıyorum. Ve kontrol edildi. Ve evet, böyle bir etkinin mevcut olduğunu doğruladı.

Son yazımda "Başka bir tuhaflık" yazdım, yani ilk ağırlıkların rastgeleleştirilmesi sorunu ve tek bir girdi vektörü ile grid komitesinin çalışmalarının kimliği ile ilgisi yok.

MSE'ye göre, pozitif yakınsama ile aşırı öğrenme ile (etki normal ile de mevcut olmasına rağmen), ağın mutlak bir minimum "bulmadığını" ve hatta yerel bir tane bile bulmadığını, sadece aşağı yuvarlandığını söylüyorum. öğrenme algoritmasındaki sorunları gösteren aralığın sınırı ..

 

Bu arada, ilk ağırlıkların başlatılmasını kontrol ettim (oluşturduktan hemen sonra yazdım). Her şey çalışıyor. Randomizasyon var.

Ama işte profilde bulduğum garip bir giriş:

katman_boyutları=31 31 17 2

Ve bu ile:

ann = f2M_create_standard(4, AnnInputs, AnnInputs, AnnInputs / 2 + 1, 1); AnnInputs=30 ile

Gizli katmanlar nedense birden fazla açıklandı. Ama daha da fazlası, "2" çıktı katmanının boyutuyla "1" beyan edilenin boyutuyla kafam karıştı !!!

 
Henry_White >> :

Bu arada, ilk ağırlıkların başlatılmasını kontrol ettim (oluşturduktan hemen sonra yazdım). Her şey çalışıyor. Randomizasyon var.

Ama işte profilde bulduğum garip bir giriş:

katman_boyutları=31 31 17 2

Ve bu ile:

ann = f2M_create_standard(4, AnnInputs, AnnInputs, AnnInputs / 2 + 1, 1); AnnInputs=30 ile

Gizli katmanlar nedense birden fazla açıklandı. Ama daha da fazlası, "2" çıktı katmanının boyutuyla "1" beyan edilenin boyutuyla kafam karıştı !!!

Her şey orada. Toplam katman 4: giriş, 2 gizli, çıkış. Her katmanın bias = 1'i vardır, "kullanıcı" boyutuna katılmaz. Bu, FANN dokümantasyonundan alınmıştır.


İyi şanlar.

 
Evet, önyargı hakkında okudum ... Doğru, ızgara profilinde göründüğü gerçeği hakkında orada bir kelime görmedim. Muhtemelen haklısın ve bu gerçekten ek. geribildirim nöronu. Her durumda, bu mantıksal olarak katmanlardaki artan artışı açıklar ... Ve ızgaranın aralığın sınırına "uzaklaşması" hakkında bir ipucu bulduğuma sevindim)))
 
Henry_White писал(а) >>

Bu arada, ilk ağırlıkların başlatılmasını kontrol ettim (oluşturduktan hemen sonra yazdım). Her şey çalışıyor. Randomizasyon var.

Evet, ağırlıkların randomizasyonu var. Ama yine de tekrar ediyorum:

Algılanan. Rastgeleleştirme -1 ile 1 arasındadır ve ağ profilinde ağırlık değerleri -10.0e--003 ile 10.0e-003 arasındadır.

Örnek: (12, -7.35577636217311400000e-003) (13, 7.63970005423449810000e-002)

Bu doğru?

Bu yüzden ağ profillerinizi göstermenizi istedim ....

 
lasso >> :

Evet, ağırlıkların randomizasyonu var. Ama yine de tekrar ediyorum:

Algılanan. Rastgeleleştirme -1 ile 1 arasındadır ve ağ profilinde ağırlık değerleri -10.0e--003 ile 10.0e-003 arasındadır.

Örnek: (12, -7.35577636217311400000e-003) (13, 7.63970005423449810000e-002)

Bu doğru?

Bu yüzden ağ profillerinizi göstermenizi istedim ....

İşaretlendi - Farklı değerlere sahibim ve neredeyse eşit dağılmış durumdayım. İşte başlatmalardan biri:

bağlantılar (connected_to_neuron, ağırlık) = (0, -9.94689941406250000000e-001) (1, -6.88415527343750000000e-001) (2, 6.51367187500000000000e-001) (3, -8.20678710937500000000e-001) (4,9.83703613281250000000e-001) (5, -6.84936523437500000000E-001) (6, 3.60107421875000000000e-001) (7, 2.90527343750000000000E-001) (8, 7.54638671875000000000E-001) (9, -7.60314941406250000000e-001) (10, -7.781372031250000000e-001) ) (11, 7.55432128906250000000e-001) (12, -6.61560058593750000000e-001) (13, 1.65771484375000000000e-001) (14, 5.71044921875000000000e-001) (15, -1.54785156250000000000E-001) (16, 9.851074218755107421875000000E-002) ) (17, -5.26916503906250000000E-001) (18, 8.58947753906250000000e-001) (19, -5.66528320312500000000E-001) (20, 7.31445312500000000000E-001) (21, -8.80310058593750000000E-001) (22, 6.82373046875000000 002)

................................................ . ................................................ .. ................................................... ... ................................................ .... ................................

(42, -6.95373535156250000000E-001) (43, -7.01538085937500000000E-001) (44, -7.38952636718750000000E-001) (45, -3.44238281250000000000E-002) (46, -1.99401855468750000000E-001) (47, 2.731323232185550000 - 001) (48, 4.53186035156250000000e-001) (49, -4.70947265625000000000e-001) (50, -7.74169921875000000000e-001) (51, -9.547119114062500000000e-001) (52, 8.09509277343750000000e-001) (53 9.92370605468750000e-001) 001) (54, -4.13391113281250000000E-001) (55, 6.67297363281250000000E-001) (56, 9.59289550781250000000E-001) (57, 1.09252929687500000000E-001) (58, -3.0255,1269531250000000e-001) (59, - 5.20009785156250000E-001) e-001) (60, 5.85754394531250000000e-001) (61, 7.99987792968750000000e-001) (62, -1.11999511718750000000e-001) (63, -8.07495117187500000000e-001) (64, -7.08862304687500000000e-001) (65 , 8.05236816406250000000E-001) (66, 2.9260253906250000000E-001) (67, 3.61633300781250000000E-001) (68, -2.99011230468750000000E-001) (69, 6.2481689453125000000e-001) (70, -7.15759277343750000000e-001) ) (71, -7.57202148437500000000e-001) (72, -1.31774902343750000000e-001) (73, 5.53894042968750000000e-001) (74, -3.85009765625000000000e-001) (75, -3.33618164062500000000e-001) (76 -9.58740234375000000000) -001) (77, -3.70544433593750000000e-001) (78, 8.26904296875000000000e-001)


ZY Truth, kütüphaneyi kendisi topladı. f2M'den biraz farklı. Her ne kadar yazarın f2M ideolojisini sevsem de benzer bir görünüme yol açmış olsam da. Bugün bir jeneratör yeniden başlatma ekledim - ne kadar etkilediğini bilmiyorum.


 
VladislavVG писал(а) >>

İşaretlendi - Farklı değerlere sahibim ve neredeyse eşit dağılmış durumdayım. İşte başlatmalardan biri:

Ağırlıklarınız doğrudan fazla ama aynı giriş vektörüne sahip ağ çıkışlarının değerleri nedir?

 
lasso >> :

Ağırlıklarınız doğrudan fazla ama aynı giriş vektörüne sahip ağ çıkışlarının değerleri nedir?

Henüz her şeyi gerçekten test etmedim - test cihazı optimizasyon üzerinde çalışırken. Bölmek istemiyorum.

Dll, mqh ve bir uzman ekleyebilirim - orijinallerinden farklılıklar var - muhtemelen daha hızlı bir çalışma formuna getirmek mümkün olacak.