Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 23.10.2014
Сообщений: 20
1

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

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

Author24 — интернет-сервис помощи студентам
У меня есть нейронная сеть которая может обучится логическим функциям( с учителем, код ниже ) , как её обучить скажем игре в крестики-нолики (или шахматы). Обучение должно протекать БЕЗ учителя. Благодарю заранее.
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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2014, 08:29
Ответы с готовыми решениями:

DeepLerning4j Как направить сверточную нейронную сеть распознавать изображения
Код сверточной нейронной сети приведен в образцах на github, код составлен самой компанией...

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

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

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

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

Не по теме:

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

0
1 / 1 / 0
Регистрация: 23.10.2014
Сообщений: 20
03.11.2014, 16:17  [ТС] 3
Цитата Сообщение от EdisonMiranda Посмотреть сообщение
а ко мне вчера Сашка Грей в гости заходила, посмотреть на мою новую феррари
рад за тебя, а по теме?
0
03.11.2014, 16:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2014, 16:17
Помогаю со студенческими работами здесь

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

* Как распараллелить сверточную нейронную сеть на CPU?
Пишу СНС для рукописного текста. Часто пишут, что данный процесс легко реализовать на CPU, но в...

Создать нейронную сеть
Доброе время суток! Нейрон - это класс? Типо это нейронная сеть или нет class Neuron {...

Поправте нейронную сеть)))
Я программу вродь как написал, хотел попросить посмотреть, правильно ли я вобще делаю))) А то...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru