Рефераты. Классификация сейсмических сигналов на основе нейросетевых технологий

* =========================

*/

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();

time(&tim);

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;

return x;

}

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);

Debug("\nStep :%d NumErr :%d Error:%6.4f",num,NumErr,err_cur);

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

x1

y=f(s)

8A. 1.1. 0B5=

f(x)

f(x)

f(x)

f(x)

f(x)

x2

xp

w12

w3p

w40

v1

v2

v3

vРис. 1.3. Двухслойный персептрон.

y

Рис. 1.2. Передаточные функции нейронов.

s

f

wp

xp

(

x0

w1

w0

x1

y=f(s)

Рис. 1.1. Математический нейрон

f(x)

f(x)

f(x)

f(x)

f(x)

x2

xp

w12

w3p

w40

v1

v2

v3

v0

v4

1

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)

x1

w0

w1

x0

(

xp

wp

f

[pic]

[pic]

[pic]

[pic]

Рис. 4.2. Линейный дискриминатор.

1

4

3

2

Рис 4.3. Сети Ворда

Рис.4.4 Сеть Кохонена.

[pic]

Рис.4.5 Сеть Кохонена для классификации сейсмических сигналов.

[pic]

Рис 5.1. Гистограмма значений переменной при наличии редких, но больших по

амплитуде отклонений от среднего.

[pic]

Рис 5.2. Нелинейная нормировка, использующая логистическую функцию

активации [pic]

[pic]

Рис 5.3. Автоассоциативная сеть с узким горлом – аналог правила обучения

Ойя.

[pic]

Рис 5.4. Слой линейных нейронов

Рис. 6.1. Двухслойный персептрон.

(

f2

(

f1

z1

(

f1

z2

(

f1

zH

z0(1

y

x0(1

x1

x2

xp

w10

wH0

wHp

v0

v1

v2

vH

x

f(x)

0

1

Рис. 6.2. Единичная сигмоида, со значениями в диапазоне (0,1).

Ошибка обучения

Ошибка на тестовом наборе

Рис 6.3 Ранняя остановка обучения в момент минимума ошибки валидации.

[pic]

Рис. 7.1 Инициализация весовых коэффициентов случайным образом из интервала

[-a,a].

[pic]

Рис. 7.2. Инициализация весовых коэффициентов с помощью нормального

распределения с параметрами N[-(,(].

[pic]

Рис. 7.3. Инициализация весовых коэффициентов случайным образом из

интервала [-a,a].

[pic]

Рис 7.4. Инициализация весовых коэффициентов с помощью нормального

распределения с параметрами N[-(,(].

[pic]

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.