Курсовая работа: Распознавание слов естественного языка с использованием нейросетей

private void calculate_input_layer_errors()

{

double sum;

for (int i = 0; i < MAX_INP; i++)

{

sum = 0; // {Сумма ошибок скрытого слоя}

for (int j = 1; j < MAX_HID; j++)

{ sum = sum + hl[j].E * hl[j].w[i]; }

ipl[i].E = ipl[i].a * (1 - ipl[i].a) * sum;

}

}

Используя формулы (9), (10), (11) получим функцию, обучающую весовые коэффициенты и пороговые уровни:

private void weight_change()

{ //i обозначает нейрон скрытого слоя, j - выходного

for (int j = 0; j < MAX_OUT; j++) //выходнойслой

{ for (int i = 0; i < MAX_HID; i++) //Подстройка}

{ ol[j].change[i] = BETA * ol[j].E * hl[i].a + M * ol[j].change[i];

ol[j].w[i] = ol[j].w[i] + ol[j].change[i]; }

//Подстройказначенияпорога

ol[j].t_change = BETA * ol[j].E * 1 + M * ol[j].t_change;

ol[j].threshold = ol[j].threshold + ol[j].t_change; // }

//Модифицируем веса между входным слоем и скрытым слоем

//Модифицируем веса между входами и входным слоем

… } }

Далее объединим вышеуказанные функции в одном методе back_propogate().

В общем виде функция обучения сети будет выглядеть следующим образом:

public void train_the_network()

{ blank_changes();//Очисткапредыдущихзначений changes}

К-во Просмотров: 477
Бесплатно скачать Курсовая работа: Распознавание слов естественного языка с использованием нейросетей