Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

C++ Нейронная сеть - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Задача на строки http://www.cyberforum.ru/cpp-beginners/thread995612.html
Даны натуральное число n, символы s1,...,sn. Известно, что среди данных символов есть хотя бы один, отличный от пробела. Требуется преобразовать последовательность s1,...,sn следующим образом....
C++ Ошибка несоответствия! #include <iostream> #include <string> using namespace std; struct mecenats { string name; double donate; }; int main() http://www.cyberforum.ru/cpp-beginners/thread995600.html
Как найти количество непересекающихся фрагментов последовательности 1,1,2,1,3 C++
Как найти количество непересекающихся фрагментов последовательности 1,1,2,1,3
две студии C++
можно ли установить две студии: 2008 и 2012
C++ Матрица http://www.cyberforum.ru/cpp-beginners/thread995586.html
Сформировать квадратную матрицу порядка n по заданному образцу: 1 2 3 ... n n n-1 n-2 ... 1 1 2 3 ... n n n-1 n-2 ... 1 ... ... ... ... ... 1 2 3 ... ...
C++ Найти количество непересекающихся фрагментов последовательности Как найти количество непересекающихся фрагментов последовательности 1,1,2,1,3 без использования массивов? подробнее

Показать сообщение отдельно
Дев4енка
0 / 0 / 0
Регистрация: 26.03.2011
Сообщений: 85

C++ Нейронная сеть - C++

02.11.2013, 17:57. Просмотров 686. Ответов 0
Метки (Все метки)

Задание:
Написать на любом ЯВУ программу моделирования прогнозирующей линейной ИНС. Для тестирования использовать функцию y=3sin(7x)+0.3, количество входов 5. Метод обучения Видроу-Хоффа. Обучение производить на 30 значениях табулируя функцию с шагом 0.1.
Проблема следующая - ошибка очень большая получается. Т.е. где ошиблась или в вычислениях или в индексах. ( оформление программы не закончено. надо сначала с E разобраться)
p.s. извините, если не в ту тему. Просто не знаю, куда обратиться.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    int n_in=5, // количество входов
        n_ob=30, // размер выборки для обучения
        n_pr=15, // размер прогнозируемой выборки
        it=0; // счетчик итераций
    float w[5], // весовые коэффициенты
        T, // пороговое значение
        E, E_min, // ошибка обучения и мин.ошибка
        t[30], // массив эталонных значений
        y[50], // массив выходных значений сети
        a; // скорость обучения
    
    for(int i=0;i<n_in;i++)
        w[i]=(1+rand()%9)/(float)10; // инициализация весовых коэффициентов
    T=(1+rand()%9)/(float)10; // инициализация порогового значения
    float tmp=0.0;
    
    for(int j=0;j<n_ob;j++) // заполнение массива выборки, на которой проходит обучение, т.е. эталонными значениями
        t[j]=3*sin(0.7*j*3.14/180)+0.3;
 
    cout << "Enter a: ";
    cin >> a;
    cout << "Enter Emin: ";
    cin >> E_min;
    do
    {
        E=0;
        it++;
        cout << "it = " << it << endl;
        for(int i=0;i<=(n_ob-n_in);i++)
        {
            y[i]=0;
            for(int j=0;j<n_in;j++)
                y[i]+=w[j]*t[i+j];
            y[i]-=T; // рассчитываем выходную активность
        
            for(int j=0;j<n_in;j++)
                w[j]-=a*(y[i]-t[i+n_in])*t[i+j]; // изменяем весовые коэффициенты
            T+=a*(y[i]-t[i+n_in]); // меняем пороговое значение
        }
 
        for(int i=0;i<=(n_ob-n_in);i++)
        {
            y[i]=0;
            for(int j=0;j<n_in;j++)
                y[i]+=w[j]*t[i+j];
            y[i]-=T; // расчитываем выходную активность
            E+=0.5*pow((y[i]-t[i+n_in]),2); // находим суммарную среднеквадратичную ошибку
        }
        cout << E << endl;
    
    } while (E>E_min);
    
    system("pause");    
    return 0;   
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru