Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/35: Рейтинг темы: голосов - 35, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 40
1

Нейросеть Хопфилда

15.10.2013, 11:10. Показов 6420. Ответов 5
Метки нет (Все метки)

Всем привет, не знаю в какую тему писать, поэтому сюда. Ищу доступную информацию по реализации сети Хопфилда, нашел вот такую статейку для полных кретинов Нейронная сеть Хопфилда. Часть 1, не могу понять, почему "Испорченный" вектор, который распознаем - одномерный? Объясните пожалуйста!

Если что, C# практически не знаю, только С/С++, может быть там какие-то особенности языка, и вектор совсем не одномерный?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2013, 11:10
Ответы с готовыми решениями:

Применение нейронных сетей Хопфилда и Хемминга для решения задач коммивояжера
Всех приветствую! Дали тему курсовой, Применение нейронных сетей Хопфилда и Хемминга для решения...

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

Не обучается нейросеть
Пытаюсь написать многослойный перцептрон для решения задачи XOR. Структура простейшая 2 нейрона...

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

5
605 / 580 / 157
Регистрация: 29.06.2010
Сообщений: 1,611
15.10.2013, 12:53 2
я вообще не смог понять что там назвали испорченным вектором, упоминание о нём в тексте статьи отсуствуют, за исключением случая уже непосредственного его использования. Так что что под ним подразумевать - большой вопрос.
0
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 40
15.10.2013, 13:38  [ТС] 3
Цитата Сообщение от Spectral-Owl Посмотреть сообщение
я вообще не смог понять что там назвали испорченным вектором, упоминание о нём в тексте статьи отсуствуют, за исключением случая уже непосредственного его использования. Так что что под ним подразумевать - большой вопрос.
Так вот же
Для того что бы получить результат от сети необходимо матрицу W умножить на «испорченный вектор» Я не буду показывать это на картинке т.к надеюсь что и так все понятно. Вот код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 public void Recognize(int[] vector, int[] resultVector)
        {
            //resultVector - будет хранить результат, его же можно посылать в этот метод в цикле
            for (int i = 0; i < y_matrix; i++)
            {
                for (int j = 0; j < x_matrix; j++)
                {
                    resultVector[i] += W[i, j] * vector[j];
                }
 
            }
 
            for (int i = 0; i < x_matrix; i++)
            {
                resultVector[i] = sigma(resultVector[i]);
            }
        }
        int sigma(int i)
        {
            //Это функция знака, обязательно >=
            if (i >= 0) { return 1; }
            else { return -1; }
        }
Судя по этому коду, образ, который нужно распознать представлен как одномерный вектор.

Добавлено через 4 минуты
Блин не сразу распарсил, видимо статья не дописана, увы.

Может кто нибудь может "на пальцах" объяснить алгоритм обучения и распознавания простейших образов?
0
1073 / 983 / 146
Регистрация: 19.02.2010
Сообщений: 3,022
20.10.2013, 22:17 4
Matrasa, для Хопфилда эталонные образы (если это картинки - т.е. матрицы пикселов) надо тоже представлять в виде одномерных векторов (для расчёта матрицы W). Вернее, эти эталонные векторы в том коде (мне лень его полностью смотреть) могут быть сложены в другую матрицу (где развёрнутые в строку эталоны образуют строки эталонной матрицы).
1
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 40
30.10.2013, 07:06  [ТС] 5
VTsaregorodtsev, Получается что матрица-изображение для обучения размером M x N преобразуем в строку размером M*N? А матрица W будет иметь количество строк равное обучающим векторам и длину этих строк равную M*N?
0
1073 / 983 / 146
Регистрация: 19.02.2010
Сообщений: 3,022
30.10.2013, 21:27 6
Цитата Сообщение от Matrasa Посмотреть сообщение
А матрица W будет иметь количество строк равное обучающим векторам
количество строк равное числу обучающих векторов (картинок).

Да, при распознавании картинок надо будет делать так.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2013, 21:27

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Неправильно обучается нейросеть
Вопрос, наверное, плохой, но уже не знаю что делать. Пишу нейросеть с 2 входными нейронами, одним...

Нейросеть, которая распознает символ
Здравствуйте,формучане. у меня такая задача-нужно сделать нейросеть, которая распознает символ,но...

Нейросеть для окрашивания изображений
Здравствуйте! Есть необходимость перевести (задача написать нейросеть для раскрашивания...

Научить нейросеть переводить двоичные числа в десятиричные
В общем. Задание :научить нейросеть переводить двоичные числа в десятиричные. С чего начинать...


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

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

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