* =========================
*/
void main (int argc, char *argv[])
{ int i;
char buf[MAXLINE], PrName[20], *ptr;
time_t tim;
time(&tim);
/* UNIX Module */
Dfp = OpenFile(DebugFile);
strcpy(buf,argv[0]);
ptr = strrchr(buf,'/');
ptr++;
strcpy(PrName,ptr);
Debug ("\n\n'%s' - Started %s",PrName,ctime(&tim));
getvalues();
Rfp = OpenFile(ReportFile);
DefineNetStructure(NetStr); /* NetStr string from input file */
getStructure(buf);
Debug ("\nNeyral net %s",buf);
Input = LocPatMemory(NPATTERN);
Work = LocPatMemory(NPATTERN);
Array_MinMax = LocateMemAMM();
Cur_Number = DefineCN (NPATTERN);
printf("\nMetka - 1");
if (Type == TYPE_ONE)
OnlyTestVector ();
if (Type == TYPE_TWO)
TestAfterLearn ();
if (Type == TYPE_THREE)
CheckOneVector ();
if (Type == TYPE_FOUR)
CrossValidation();
Debug ("\n\n%s - Normal Stoped %s",PrName,ctime(&tim));
CloseFile(Dfp);
CloseFile(Rfp);
FreeAMM (Array_MinMax);
DestroyCN (Cur_Number);
FreePatMemory(Input,NPATTERN);
FreePatMemory(Work, NPATTERN);
}
/*
* ^OnlyTestVectors - read net from (NetworkFile) and test the
TestVector(s)
void OnlyTestVector(void)
{ char buf[MAXLINE+1];
STAT **st, *stat;
int i,j;
float Res;
Debug ("\nOnlyTestVector proc start");
Debug ("\n NPATTERN = %d",NPATTERN);
Debug ("\n NTEST = %d",NTEST);
Test = LocPatMemory(NTEST);
ReadPattern(Test,TestVector, NTEST);
/* ShowPattern ("1.tst",Test,NTEST);*/
PrintStatHeader();
st = DefineAllStat (Test,NTEST);
ReadHeaderNet(NetworkFile,Array_MinMax);
if (Scaling == Yes)
{ for (i=0;i ",i+1);
ReadNet(NetworkFile,i+1);
for (j=0;j x/32768
* -> x from [0,1]
float RavnRaspr(float A, float B)
{float x;
x = (B-A)*rand()/(RAND_MAX+1.0) + A;
return x;
float NormRaspr(float A,float B)
{ float mat_ogidanie=A, Sigma=B;
float Sumx=0.0, x;
int i;
for (i=0;i N[a,sigma]*/
x = Sigma*(Sumx-6) + mat_ogidanie;
int Init_W ( void )
{ int i,j;
float A, B;
time_t t,t1;
t = time(NULL);
t1=t;
/* restart random generator*/
while (t==t1)
srand((unsigned) time(&t));
if (InitFunc == Random)
{ A = -Constant;
B = Constant;
Debug ("\nInit_W () --- Start (%ld))",t);
Debug ("\n InitFunc=Random[%4.2f,%4.2f]",A,B);
for(i=0; i LearnTolerance)
{ NumErr++;
Init_PromW();
Update_Last(K, Res);
Update_Prom1(K);
Prom_to_W();
err_cur = err_cur + (ep[n]*ep[n]);
err_cur=0.5*(err_cur/NWORK);
result = Reset(err_cur, num, NumErr);
if ((num % NumOut)==0)
Debug("\nStep :%d NumErr :%d Error:%6.4f",num,NumErr,err_cur);
} while (result == CONT || result == RESTART);
return num;
-----------------------
x1
w11
8A. 1.3. 2CEA;>9=K9 ?5@A5?B@>=.
y
8A. 1.2. 5@540B>G=K5 DC=:F88 =59@>=>2.
s
f
wp
xp
(
x0
w1
w0
y=f(s)
8A. 1.1. 0B5=
f(x)
x2
w12
w3p
w40
v1
v2
v3
vРис. 1.3. Двухслойный персептрон.
Рис. 1.2. Передаточные функции нейронов.
Рис. 1.1. Математический нейрон
v0
v4
1
Рис 1.4. Этапы нейросетевого решения задачи.
Рис 1.5. Процесс обучения нейронной сети.
Рис 1.6. Задача прогнозирования.
Рис 1.7. Задача распознавания.
Рис 1.8. Задача распознавания.
[pic]
Рис 1.9. Применение нейросетей для отыскания зависимостей переменных
Рис 1.10. Задача кластеризации.
Сейсмограмма
Решающее
правило
Землетрясение
Взрыв
Рис. 2.1. Постановка задачи классификации сейсмических сигналов.
Рис.3.1. Пример сейсмограммы.
Рис. 4.1. Одиночный нейрон
y=f(x)
Рис. 4.2. Линейный дискриминатор.
4
3
2
Рис 4.3. Сети Ворда
Рис.4.4 Сеть Кохонена.
Рис.4.5 Сеть Кохонена для классификации сейсмических сигналов.
Рис 5.1. Гистограмма значений переменной при наличии редких, но больших по
амплитуде отклонений от среднего.
Рис 5.2. Нелинейная нормировка, использующая логистическую функцию
активации [pic]
Рис 5.3. Автоассоциативная сеть с узким горлом – аналог правила обучения
Ойя.
Рис 5.4. Слой линейных нейронов
Рис. 6.1. Двухслойный персептрон.
f2
f1
z1
z2
zH
z0(1
x0(1
w10
wH0
wHp
vH
x
0
Рис. 6.2. Единичная сигмоида, со значениями в диапазоне (0,1).
Ошибка обучения
Ошибка на тестовом наборе
Рис 6.3 Ранняя остановка обучения в момент минимума ошибки валидации.
Рис. 7.1 Инициализация весовых коэффициентов случайным образом из интервала
[-a,a].
Рис. 7.2. Инициализация весовых коэффициентов с помощью нормального
распределения с параметрами N[-(,(].
Рис. 7.3. Инициализация весовых коэффициентов случайным образом из
интервала [-a,a].
Рис 7.4. Инициализация весовых коэффициентов с помощью нормального
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13