Форум программистов, компьютерный форум, киберфорум
Наши страницы
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
StelSmH
1 / 1 / 0
Регистрация: 23.10.2014
Сообщений: 20
1

Как переписать нейронную сеть?

03.11.2014, 08:29. Просмотров 515. Ответов 2
Метки нет (Все метки)

У меня есть нейронная сеть которая может обучится логическим функциям( с учителем, код ниже ) , как её обучить скажем игре в крестики-нолики (или шахматы). Обучение должно протекать БЕЗ учителя. Благодарю заранее.
Java
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
public class Main{
    
    double[] enters;
    double[] hidden;
    double[] outer;
    double[][] wEH;
    double[][] wHO;
    double[][] patterns = {
            {0,0}, {0,1}, {1,0}, {1,1}
    };
    double[] answers = {0,0,0,1};
    
    Main() {
        enters = new double[patterns[0].length];
        hidden = new double[4];
        outer = new double[1];
        wEH = new double[enters.length][hidden.length];
        wHO = new double[hidden.length][outer.length];
        
        initWeights();
        int k = study();
        System.out.println(k);
        for (int p = 0; p < patterns.length; p++) {
            for (int i = 0; i < enters.length; i++) {
                enters[i] = patterns[p][i];
            }
            
            countOuter();
            
            System.out.println(outer[0]);
        }
    }
    
    public void initWeights() {
        for (int i = 0; i < wEH.length; i++) {
            for (int j = 0; j < wEH[i].length; j++) {
                wEH[i][j] = Math.random()*0.2+0.1;
            }
        }
        
        for (int i = 0; i < wHO.length; i++) {
            for (int j = 0; j < wHO[i].length; j++) {
                wHO[i][j] = Math.random()*0.2+0.1;
            }
        }
        
    }
    
    public void countOuter() {
        for (int i = 0; i < hidden.length; i++) {
            hidden[i] = 0;
            for (int j = 0; j < enters.length ; j++) {
                hidden[i] += enters[j] * wEH[j][i];
            }
            if (hidden[i] > 0.5) hidden[i] = 1; else hidden[i] = 0;
        }
        
        for (int i = 0; i < outer.length; i++) {
            outer[i] = 0;
            for (int j = 0; j < hidden.length; j++) {
                outer[i] += hidden[j] * wHO[j][i];
            }
            if(outer[i]>0.5) outer[i]=1; else outer[i] = 0;
        }
        
    }
    
    public int study() {
        double[] err = new double[hidden.length];
        double gError = 0;
        double lErr = 0;
        int count = 0;
        do {
            gError = 0;
            count++;
            for (int p = 0; p < patterns.length; p++) {
                for (int i = 0; i < enters.length; i++) {
                    enters[i] = patterns[p][i];
                }
                
                countOuter();
                
                for (int i = 0; i < outer.length; i++) {
                    lErr = answers[p] - outer[i];
                }
                
                gError += Math.abs(lErr);
                
                for(int i = 0; i < hidden.length; i++) {
                    for (int j = 0; j < outer.length; j++) {
                        err[i]=lErr * wHO[i][j];
                    }
                }
                
                for(int i = 0; i < enters.length; i++) {
                    for(int j = 0; j < hidden.length; j++) {
                        wEH[i][j]+=0.1*err[j]*enters[i];
                    }
                }
                
                for (int i = 0; i < hidden.length; i++) {
                    for (int j = 0; j < outer.length; j++) {
                        wHO[i][j] += 0.1 * lErr * hidden[i];
                    }
                }
            }
        } while(gError != 0);
        return count;
    }
 
    
    public static void main(String[] args) {
        Main main = new Main();
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2014, 08:29
Ответы с готовыми решениями:

Возможно ли создать на java нейронную сеть, и выходя из нее хотя бы средненький исскуственный интеллект
Совсем недавно начал изучать java, и начал задаваться вопросом - достаточно ли...

Как переписать код
Добрый день всем, подскажите пожалуйста как можно переписать примерно такой...

Как переписать одну сторчу в файле?
Есть файл и в нем надо переписать указаную строчку. Пишу через метод с двумя...

Как переписать метод без System.out.println?
Здравствуйте! Подскажите пожалуйста как переписать этот метод, чтобы в нем не...

Альтернатива передачи параметров по ссылке, или как переписать код
Здравствуйте. Есть метод на языке C#, в котором используются передача...

2
EdisonMiranda
68 / 68 / 39
Регистрация: 22.05.2014
Сообщений: 311
03.11.2014, 15:24 2
Цитата Сообщение от StelSmH Посмотреть сообщение
У меня есть нейронная сеть

Не по теме:

а ко мне вчера Сашка Грей в гости заходила, посмотреть на мою новую феррари

0
StelSmH
1 / 1 / 0
Регистрация: 23.10.2014
Сообщений: 20
03.11.2014, 16:17  [ТС] 3
Цитата Сообщение от EdisonMiranda Посмотреть сообщение
а ко мне вчера Сашка Грей в гости заходила, посмотреть на мою новую феррари
рад за тебя, а по теме?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2014, 16:17

Как написать нейронную сеть на с++?
Как написать нейронную сеть на с++???

Как создать нейронную сеть?
Вообщем вопрос в заголовке,помогите разобраться с исходным кодом. Как создать...

Как запустить нейронную сеть на питон 3?
Доброго времени суток! Недавно возник интерес к написанию и обучению нейронной...


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

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

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