Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 01.02.2018
Сообщений: 1
1

Нейронные сети. Перцептрон Розенблата

01.02.2018, 10:27. Показов 1549. Ответов 1
Метки нет (Все метки)

Здравствуйте! Помогите разобраться в коде (напишите комментарии). Уже несколько дней пытался понять, как он работает, но ничего толкового не выудил. Недавно начал изучать нейронные сети, дали такой код, а разобраться не дали. Заранее спасибо за ответ!
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <iostream>
#include <windows.h>
#include <time.h>
 
using namespace std;
 
typedef struct _perceptron{
    double w0;
    double w1;
    double w2;
    double learnRate;
} perceptron;
 
void initPerceptron(perceptron *p){
    p->w0 = 0.5;
    p->w1 = rand()/(double)RAND_MAX;
    p->w2 = rand()/(double)RAND_MAX;
    p->learnRate = 0.1;
}
 
char calcPerceptron(perceptron *p,char *info){
    return (p->w1 * info[0] + p->w2 * info[1] - p->w0) >= 0 ? 1 : 0;
}
 
bool teachPerceptron(perceptron *p,char *info){
    char a = calcPerceptron(p,info);
    bool changed = false;
    double wNew;
    wNew = p->w1 - p->learnRate * (a - info[2]) * info[0];
    if(wNew != p->w1) {changed = true; p->w1 = wNew;}
    wNew = p->w2 - p->learnRate * (a - info[2]) * info[1];
    if(wNew != p->w2) {changed = true; p->w2 = wNew;}
    return changed;
}
 
bool testPerceptron(perceptron *p,char info[][3]){
    bool result = false;
 
    cout << "Проверка Перцептрона" << endl;
 
    for(int i = 0; i < 4; i++ ){
        cout << " x1 = " << info[i][0]*1
            << " x2 = " << info[i][1]*1
            << " y = " << info[i][2]*1
            << " a = " << calcPerceptron(p,info[i])*1
            << endl;
    }
 
    return result;
}
 
int main()
{
    time_t t;
    srand((unsigned) time(&t));
    SetConsoleOutputCP(1251);
    cout << "Перцептрон Розенблата" << endl;
 
    perceptron p1;
    initPerceptron(&p1);
 
    cout << p1.w1 << " " << p1.w2 << endl;
 
    char orInfo[4][3] = {{0,0,0},{0,1,1},{1,0,1},{1,1,1}};
    char andInfo[4][3] = {{0,0,0},{0,1,0},{1,0,0},{1,1,1}};
 
    testPerceptron(&p1,andInfo);
    while(teachPerceptron(&p1,andInfo[0])){
        testPerceptron(&p1,andInfo);
    };
 
    while(teachPerceptron(&p1,andInfo[1])){
        testPerceptron(&p1,andInfo);
    };
 
    while(teachPerceptron(&p1,andInfo[2])){
        testPerceptron(&p1,andInfo);
    };
 
    while(teachPerceptron(&p1,andInfo[3])){
        testPerceptron(&p1,andInfo);
    };
    system("pause");
    return 0;
}
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2018, 10:27
Ответы с готовыми решениями:

Нейронные сети. Написать перцептрон, который распознает введеную букву
нужно написать перцептрон который распознает введеную букву.Помогите с прогой я просто нейронные...

Нейронные сети (адаптивные сети)
нужен исходник 3д или 2д адаптивной сетки для небольшого использования в своей работе...

Нейронные сети
Добрый вечер, товарищи. Прошу у вас помощи по нейронным сетям. Есть обучающие выборка, там...

Нейронные сети
Добрый вечер! Можете подсказать где есть много примеров по нейронным сетям...? Хотелось бы...

1
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
01.02.2018, 11:40 2
TopProger1,
Недавно начал изучать нейронные сети
Уже несколько дней пытался понять, как он работает, но ничего толкового не выудил
Вы явно что-то не то изучаете.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.02.2018, 11:40

Нейронные сети на C++
Доброго времени суток. Решил начать изучать нейронки, попытался обучить нейросеть с обратным...

Нейронные сети
Недавно открыл для себя тему нейросетей, и хотел бы спросить ресурс где бы я смог довольствоваться...

Нейронные сети(персептрон)
Привет всем. Недавно начал изучать нейронные сети. Понравилось, очень интересно. Хочу...

Книги по С++ и нейронные сети
Уважаемые форумчане, может кто посоветовать книги (или статьи в интернете) по созданию нейронных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.