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)
intrand(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 .voidsrand(unsignedint 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.
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?
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ı !!!
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.
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)))
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.
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)
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?
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ı !!!
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.
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 ....
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.
İş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?
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.