С Новым годом! Форум программистов, компьютерный форум, киберфорум
Искусственный интеллект
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Искусственный интеллект О датамайнинге Здравствуйте. Объясните пожалуйста приведя пару примеров что такое датамайнинг. Обращаю ваше внимание что вопрос касается не вырезано, а датамайнинга. https://www.cyberforum.ru/ ai/ thread2563560.html Поиск предложений, текстов и прочее Искусственный интеллект
Всем привет. Надеюсь, что угадал с разделом. Прошу подсказать в решении вопроса. Может есть уже готовые наработки или готовые программы или даже сайты. Но подходящего не нашел. Суть вопроса в том, что есть определенный массив слов, как русских так и английских. Не важно в каком виде и в каком файле. Необходимо найти среди всей всемирной паутины( по новостям, и всяким родам развлекательным...
Искусственный интеллект Открытый Проект - Универсальная Экспертная Система https://www.cyberforum.ru/ ai/ thread2553567.html
Приглашаются все желающие, особенно знающие Qt Написано на Linux C++ 11 тыщ строк кода Универсальной Экспертной Системы выложено на виртуальный диск https://hdd.tomsk.ru/desk/vbglqdxa Типа Искусственного Разума, но безопаснее - даешь запрос - формируется ответ Например пишешь -
Искусственный интеллект Нейронная сеть для классификации вин mathlab Здравствуйте! В нейронных сетях начинающий юзер. Хочу с помощью обученной сети, в моём случае это AlexNet, в mathlab классифицировать изображения вин. Подскажите как лучше это сделать? Можно использовать не обязательно AlexNet https://www.cyberforum.ru/ ai/ thread2553174.html
Quantum computer и ИИ-суперпозиция Искусственный интеллект
Есть предложение: -- Анна, Софа и Анжела весело поют. В нём, после ИИ-разбора, есть три фразы: - Анна весело поёт 0.(3) - Софа весело поёт 0.(3) - Анжела весело поёт 0.(3) Вес 0.(3) - это либо 0.3 или 0.4, что и есть ИИ-суперпозиция. Веса фраз при ИИ-разборе текста (очень часто) есть Иррациональные числа, то есть ИИ по своей природе иррационален (как и человек); где ошибки и заблуждения ИИ...
Искусственный интеллект Время -Волатильность Добрый день, Уважаемые специалисты, необходимо узнать ваше мнение по данному вопросу Суть проблемы и сам вопрос изложены в этом файле 4.11. Картинки и любые другие файлы загружайте на форум, во избежание их удаления или потери на сторонних ресурсах. https://www.cyberforum.ru/ ai/ thread2548116.html
Искусственный интеллект Моделирование ассоциативной памяти с использованием нейронных сетей Приветствую. Помогите ,кто может,с заданием на счет моделирования ассоциативной памяти с помощью нейронных сетей в С++: Написать ЯВУ программу моделирования ИНС для распознавания векторов согласно варианту. ИНС содержит n нейронных элементов в первом слое и m во втором слое. Если n меньше размерности вектора, тогда из вектора использовать только первые n элементов. Провести исследование... https://www.cyberforum.ru/ ai/ thread2545632.html Искусственный интеллект Подскажите план решения задачи
Мы получаем платежи, со следующими назначениями: Возмещение коммун. услуг и энергоносителей согл. счета №58 от 05.02.2019г., электрическая энергия за январь 2019г. Возмещение коммун. услуг и энергоносителей согл. счета №60 от 05.02.2019г., вывоз твердых бытовых отходов за январь 2019г. Возмещение коммун. услуг и энергоносителей согл. счета №62 от 05.02.2019г.,техническое обслуживание...
Искусственный интеллект Проблемы обучения нейронной сети https://www.cyberforum.ru/ ai/ thread2544121.html
Доброго времени суток. Использую рекуррентную нейронную сеть для разделения двух классов, возникла проблема в обучении. Во время обучения, не понятно когда производить остановку. Даже если loss 0.3 (переобучения не должно быть), после остановки обучения наблюдается странный эффект. Сеть начинает бросать, то в одну то в другую сторону, т.е. подавая данные класса 1 или 2, сеть активирует всегда...
Искусственный интеллект Хочу узнать, что по чём, по созданию программы имитации голоса любого человека Я в программировании не разбираюсь от слова вообще Но знаю, что обычно вся толковая инфа находится на тематических форумах Вот мне интересно, сколько по цене будет создать такое вот детище https://www.youtube.com/watch?v=WyU-gJ2NTGc&feature=emb_title Чтобы можно было загружать в неё кучу всякой инфы в виде любого чужого голоса и на выходе получать имитацию, которая будет озвучивать текст.... https://www.cyberforum.ru/ ai/ thread2542814.html
Искусственный интеллект Хочу закодить ES + RL
хочу закодить ES + RL точнее уже закодил но столкнулся с двумя проблемами 1.Не знаю как закодить нормальное распределение 2.Не знаю как уменшить сигму в нормальном распределении в течении обучения нейронки
Искусственный интеллект Нейронная сеть, которая распознает цвет https://www.cyberforum.ru/ ai/ thread2541561.html
Добрый день! Только начал изучать нейронные сети и попытался попробовать на практике, при помощи Python создал обучающую выборку, мне необходимо распознавать 6 цветов (красный, синий, зеленый, оранжевый, желтый и белый). Для каждого из этих цветов сделал по 10000+ примеров, при тренировки использую 1000 случайных примеров для каждого цвета. В качестве архитектуры взял сеть ГугЛенет, уменьшив...
11 / 9 / 3
Регистрация: 16.06.2019
Сообщений: 57
0

Простая нейросеть XOR - Искусственный интеллект - Ответ 14139598

30.12.2019, 17:39. Показов 3978. Ответов 12
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток! Недавно начал затрагивать тему нейронных сетей и попробовал реализовать сетку, которая бы решала задачу исключающего или. Что-то думал, решал, составлял, в итоге захардкодил и закостылил ниже представленный листинг, который, к сожалению, не робит (. Может, кто-то поможет подскажет?
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
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
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
#include <iostream>
#include <ctime>
#include <cmath>
#include <vector>
 
class cXOR
{
public:
    cXOR()
    {
        /* Начальное рандомное заполнение весов между слоями */
        srand(time(NULL));
        for(short i = 0; i < inputCount; ++i)
            for(short j = 0; j < hiddenCount; ++j)
            {
                weightsInputHidden[i][j] =
                        static_cast<double>(((rand() % 100) / 100.0) - 0.5);
            }
        for(short i = 0; i < hiddenCount; ++i)
            for(short j = 0; j < outputCount; ++j)
            {
                weightsHiddenOutput[i][j] =
                        static_cast<double>(((rand() % 100) / 100.0) - 0.5);
            }
    }
 
    short query(short x1, short x2)
    {
        /* Входные сигналы * вес */
        double inputSignIH[hiddenCount];
        /* Заполнение входных сигналов */
        for(short i = 0; i < hiddenCount; ++i)
        {
            inputSignIH[i] = x1 * weightsInputHidden[0][i] +
                    x2 * weightsInputHidden[1][i];
        }
        /* Выходные сигналы скрытого слоя */
        double outputSignIH[hiddenCount];
        for(short i = 0; i < hiddenCount; ++i)
        {
            /* Пропускаем результат произведения через функцию активации */
            outputSignIH[i] = sigma(inputSignIH[i]);
        }
 
        /* Входные сигналы в выходной слой */
        double inputSignHO[hiddenCount];
        /* Умножаем на веса */
        for(short i = 0; i < outputCount; ++i)
        {
            inputSignHO[i] = outputSignIH[0] * weightsHiddenOutput[0][i] +
                    outputSignIH[1] * weightsHiddenOutput[1][i];
        }
        /* Если после активации >= 0.5 возвращаем 1
         * иначе 0 */
        if(sigma(inputSignHO[0]) >= 0.5)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    }
 
    /* Тренировка нейросети
     * 1 - ошибка
     * 0 - успех */
    bool train(unsigned int size, std::vector<int> x1, std::vector<int> x2,
            std::vector<int> answer, double learningrate)
    {
        if((size != x1.size()) || (size != x2.size()))
        {
            return 1;
        }
        else
        {
            /* Прогнать 999999 раз */
            for(long count = 0; count < 999999; ++count)
            /* Повторить столько раз, сколько различных
             * комплектов значений передано */
            for(size_t i = 0; i < size; ++i)
            {
                /* Если опрос неуспешен, то учим */
                if((query(x1[i], x2[i]) != answer[i]))
                {
                    /* Входные сигналы * вес */
                    double inputSignIH[hiddenCount];
                    /* Заполнение входных сигналов */
                    for(short inp = 0; inp < hiddenCount; ++inp)
                    {
                        inputSignIH[inp] = x1[inp] * weightsInputHidden[0][inp] +
                                x2[inp] * weightsInputHidden[1][inp];
                    }
                    /* Выходные сигналы скрытого слоя */
                    double outputSignIH[hiddenCount];
                    for(short outh = 0; outh < hiddenCount; ++outh)
                    {
                        /* Пропускаем результат произведения через функцию активации */
                        outputSignIH[outh] = sigma(inputSignIH[outh]);
                    }
 
                    /* Входные сигналы в выходной слой */
                    double inputSignHO[hiddenCount];
                    /* Умножаем на веса */
                    for(short inpo = 0; inpo < outputCount; ++inpo)
                    {
                        inputSignHO[inpo] = outputSignIH[0] * weightsHiddenOutput[0][inpo] +
                                outputSignIH[1] * weightsHiddenOutput[1][inpo];
                    }
 
                    ////////////////////////////////////////////////////////////////////
 
                    /* Настройка весов м/ду скрытым и выходными слоями */
                    for(int ho = 0; ho < hiddenCount; ++ho)
                    {
                        weightsHiddenOutput[ho][0] += -1 * -learningrate * sigma(inputSignHO[ho]) *
                                (1 - sigma(inputSignHO[ho])) * weightsHiddenOutput[ho][0];
                    }
                    /* Настройка весов м/ду входным и скрытым слоями */
                    for(int ho = 0; ho < hiddenCount; ++ho)
                        for(int io = 0; io < inputCount; ++io)
                        {
                            int temp = 0;
                            io == 0 ? temp = x1[io] : temp = x2[io];
                            weightsInputHidden[ho][io] += -1 * -learningrate * sigma(temp)
                                        * (1 - sigma(temp) * weightsInputHidden[ho][io]);
                        }
                }
                /* Иначе перейти к следующему комплекту для тренировки */
                else
                {
                    continue;
                }
            }
            return 0;
        }
    }
 
    /* Вывести на экран значения весов */
    void print()
    {
        std::cout << "IH:\n";
        for(int i = 0; i < inputCount; ++i)
        {
            for(int j = 0; j < hiddenCount; ++j)
            {
                std::cout << weightsInputHidden[i][j] << " ";
            }
            std::cout << std::endl;
        }
        std::cout << std::endl << "HO:\n";
        for(int i = 0; i < hiddenCount; ++i)
        {
            for(int j = 0; j < outputCount; ++j)
            {
                std::cout << weightsHiddenOutput[i][j] << " ";
            }
            std::cout << std::endl;
        }
    }
 
private:
    /* Количество нейронов  в каждом слое */
    const short inputCount = 2;
    const short hiddenCount = 2;
    const short outputCount = 1;
    /* Массивы, хранящие веса */
    double weightsInputHidden[2][2];
    double weightsHiddenOutput[2][1];
    /* Сигмоидная функция активации */
    double sigma(double x)
    {
        return 1 / (1 + pow(M_E, -x));
    }
};
 
 
 
 
int main()
{
    cXOR obj;
 
    std::cout << "Before train :\n"
            << "1 - 1 = " << obj.query(1, 1) << '\n'
            << "1 - 0 = " << obj.query(1, 0) << '\n'
            << "0 - 1 = " << obj.query(0, 1) << '\n'
            << "0 - 0 = " << obj.query(1, 1) << '\n';
    std::cout << "\n Weights:\n";
    obj.print();
 
    std::vector<int> x1 = {1, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1};
    std::vector<int> x2 = {0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0};
    std::vector<int> ans = {1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1};
 
    std::cout << "Train...\n";
 
    for(int i = 0; i < 100; ++i)
    obj.train(x1.size(), x1, x2, ans, 0.3) == 0 ?
                (std::cout << "Sucsess train #" << i + 1 << "!\n") :
                (std::cout << "Error train\n");
 
    std::cout << "After train :\n"
            << "1 - 1 = " << obj.query(1, 1) << '\n'
            << "1 - 0 = " << obj.query(1, 0) << '\n'
            << "0 - 1 = " << obj.query(0, 1) << '\n'
            << "0 - 0 = " << obj.query(1, 1) << '\n';
    std::cout << "\n Weights:\n";
    obj.print();
    return 0;
}


Вернуться к обсуждению:
Простая нейросеть XOR Искусственный интеллект
0
Заказать работу у эксперта
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.12.2019, 17:39
Готовые ответы и решения:

Простая нейросеть
Доброго времени суток! Передо мной стоит задача создать простую нейросеть. Вот начальный код: ...

Простая нейросеть
Привет всем! Есть задача: Научить нейросеть ставить диагноз. 1 диагноз - 1 сеть. Сеть 3 слоя:...

Простая нейросеть для новичков
Здравствуйте уважаемые программисты Python. Я - новичок. Напишите мне, пожалуйста простую...

Нужна простая функция шифровки и фича дешифровки XOR
У кого есть дайте, но чтобы было очень просто сразу вставить не думая. Неохота как-то вникать в...

12
30.12.2019, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2019, 17:39
Помогаю со студенческими работами здесь

Исключающее ИЛИ (XOR). Нужен пример операции побайтного XOR
Может кто-нибудь привести пример операции побайтного XOR?что-то вроде: есть данные,считанные из...

Простая авторизация на php и mysql, очень простая!
В базе данных таблица с двумя строками: id, user, password. На странице есть два поля для ввода...

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

Нейросеть
using System; using System.IO; using System.Runtime.InteropServices; namespace...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru