NN öğrenme algoritmasının (bir öğretmenle) nasıl çalıştığını anlayamıyorum.
Örneğin, özellikle Ulusal Meclisimi alacağım (Pliz beni fazla azarlama, bu işte biraz yeniyim)
Bir NN öğrenme algoritmasının derlenmesiyle ilgili yardım
//Размеры матрицыdouble W [4][9];//Матрица весов размером 4 на 8// W // W31 -0,52 -0,01 -0,08 0,35 Выходной слой// W21 1,52 1,35 1,12 -1,38 // W22 7,05 4,75 3,25 1,45 // W23 7,36 4,42 3,90 2,26 Скрытый слой 2 // W24 6,79 5,54 3,74 2,81 // W11 -4,65 13,06 7,00 4,67 0,07// W12 -3,25 11,92 2,66 5,98 2,41 Скрытый слой 1// W13 -3,31 8,93 3,32 5,57 4,20// W14 4,33 4,86 9,84 8,96 1,52 //Функции активации нейроновdouble NormDate (double Date ,int Type ,int A ){double x ;if( Type ==0){
x = Date ;return(MathTan(MathExp( A * x )-MathExp(- A * x )/MathExp( A * x )+MathExp(- A * x )));//гиперболический тангенс}if( Type ==1){
x = Date ;return(1/(1+MathExp(- A * x )));// сигмоид}}//+------------------------------------------------------------------+//| Многослойная нейронная сеть. |//| Параметры сети: |//| Входные параметры подаются во входном массиве - X | //| Веса задаются в весовой матрице - W |//| Число скрытых слоёв = V |//| |//+------------------------------------------------------------------+double neuronet1 (double W [][],double X [],int V ){int N =ArraySize( X );int i , j , I ;double sum =0.0;double Out [99][99];double summ =0.0;//Расчёты скрытых слоёв NCfor( I =0; I <= V -1; I ++){for( i = I * N ; i <=( N -1+ N * I ); i ++){for( j =0; j <= N -1; j ++){if( I ==0)
summ +=( W [ j ][ i ]* X [ j ]);else
summ +=( W [ j ][ i ]* Out [ I -1][ j ]);}
Out [ I ][ i - I * N ]= NormDate ( summ ,0,1);
summ =0;}}//Расчёт выходного слоя NCfor( j =0; j <= N -1; j ++){
sum += W [ j ][8]* Out [ V -1][ j ];}
sum = NormDate ( sum ,0,1);return( sum );}int init (){//+------------------------------------------------------------------+//| Инциализирование весовой матрицы случайными числами |//+------------------------------------------------------------------+MathSrand(TimeLocal());double Dia =1;//диапазон случайных чиселArrayInitialize( W ,(MathRand()/32767.0* Dia ));}int start (){//+------------------------------------------------------------------+//| Создание массива с входными данными |//+------------------------------------------------------------------+double X [4];
X [0]=1.2447;// На первых порах пусть будут сами котировки
X [1]=1.2458;
X [2]=1.2364;
X [3]=1.2377;double Out [1];
Out [1]=0.8;// например в процессе обучения должно получиться значение больше 0.8//Пример обращения к функции нейросетиComment( neuronet1 ( W , X ,2));return(0);}//+------------------------------------------------------------------+
Ve eğer iki boyutlu bir dizi, 4'e 9'luk bir matris varsa ve her elemana 0,1 değeri atanırsa, bunun gibi bir şey mi olacak?
Talex'in size doğru bir şekilde belirttiği gibi, ArrayInitialize işlevini kullanarak dizileri başlatabilirsiniz (ve yapmalısınız).
Yardım!
NN öğrenme algoritmasının (bir öğretmenle) nasıl çalıştığını anlayamıyorum.
Örneğin, özellikle Ulusal Meclisimi alacağım (Pliz beni fazla azarlama, bu işte biraz yeniyim)
Bir NN öğrenme algoritmasının derlenmesiyle ilgili yardım
Ve ayrıca hiperbolik tanjant pahasına, doğru bir şekilde değerlendiriliyor mu?
Ve ayrıca hiperbolik tanjant pahasına, doğru bir şekilde değerlendiriliyor mu?
tanh(x) = sinh(x)/cosh(x) = (e^x - e^-x)/(e^x + e^-x)
Bu arada, e^x işlevi hızlı görünmüyor.
Yani böylesi daha iyi:
Daha hızlı olmalı.
Bir dizinin aralığını dinamik olarak ayarlamanın bir yolu var mı?
Değer alanı? -1'den 1'e kadardır. Eğer doğru anladıysam:
Değer alanı? -1'den 1'e kadardır. Eğer doğru anladıysam:
Numara. Ben başka bir şeyden bahsediyorum.
Standart dizi bildirimi :
int Mas[50]; // Burada dizi 0 ile 49 arasında ayarlanır
Ve dinamik olarak demek istedim, yani bazı hesaplamalarla bu aralığı değiştirin
ArrayResize() - Bir diziyi yeniden boyutlandırır.
Ah, işte bir örnek:
çift W[3][4];
ArrayResize(W,2)
Sonuç olarak, 3'ü 2'ye değiştireceğiz, ancak ikinciyi nasıl değiştireceğiz? 4'ten 6'ya kadar diyelim
--------
Başka bir fikrim vardı: (Örneğin)
#define Giriş 4 //Giriş katmanındaki nöron sayısı
#define Out 1 //Çıktı katmanındaki nöron sayısı
double W[Giriş][Çıkış+1];//Ağırlık matrisi
ancak burada Out eklenemez bir hata oluşur 1
Hepinize iyi günler.
Konuyla ilgili soru değil. Lütfen. söylemek -
PDF metni Word'e nasıl çevrilir?
(Dosya büyüktür, - "Alacakaranlık", D.Glukhovsky 65 mb)
Hepinize iyi günler.
Konuyla ilgili soru değil. Lütfen. söylemek -
PDF metni Word'e nasıl çevrilir?
(Dosya büyüktür, - "Alacakaranlık", D.Glukhovsky 65 mb)
Genelde FineReader'da tanırım ve Word'de damıtırım. Başka seçenekler olsa da.
Ama soru kesinlikle konu dışı.