Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
1

Обучение нейронной сети и правильность ее концепции

31.05.2018, 19:48. Просмотров 1040. Ответов 4


Решил создать "реалистичную" самообучающуюся нейронную сеть.

Концепция : создается Х нейронов, которые после рандомно соединяются друг с другом (примерно 5 соединений на нейрон при размере сети в 500 нейронов. Связи хаотичные, в некоторых местах образуются "круги", по которым циркулирует возбуждение (но оно исчезает, т.к. синапсы не могут передавать 100% импульса, обязательно меньше). По правилу Хебба связи ослабляются или наоборот усиливаются, так же есть вероятность того, что нейрон создаст слабую связь с другим нейроном, и если эта связь будет "нужной", то она, опять же, по Хеббу, усилится, иначе исчезнет. Нейроны, которые не имеют хотя бы 1 входа или выхода "умирают". Работает эта вся система по "тикам". 1 тик - отправил импульс следующему нейрону, еще один - следующий нейрон отправил импульс еще дальше.

Все хорошо работает, даже удалось это все распараллелить, даже очень эффективно. Но возник вопрос с обучением. Как его осуществить? Ведь не может столь простая система правил Хебба это сделать.

Добавлено через 3 часа 20 минут
После прочтения нескольких десятков статей кажется, что оптимальное обучение такой нейронной сети - обучение с подкреплением. Даем сети задание, если она выполняет его правильно - поощряем, если неправильно - иначе (подобие "боли", как я прочитал). Но я не понимаю, что из себя представляет поощрение. Что это?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2018, 19:48
Ответы с готовыми решениями:

Обучение нейронной сети encog
Здравствуйте. Скачал нейронную сеть. Пример обучения запускается. Работающий пример объявления...

Обучение нейронной сети
Здравствуйте. Помогите, пожалуйста. Задание в приложении. Написал код: T = '; P = ; Pc =...

Обучение нейронной сети
Столкнулся с проблемой обучения нейронной сети, пытаюсь "научить" сеть функции xor. Структура сети...

обучение нейронной сети
struct SAcson { int l,c; // строка, столбец float x; // заряд }; struct SSinapc { int...

4
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,091
01.06.2018, 07:09 2
Цитата Сообщение от Jesterru Посмотреть сообщение
Но я не понимаю, что из себя представляет поощрение.
Отсутствие наказания)
0
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
01.06.2018, 11:50  [ТС] 3
Usaga, Тогда, что такое наказание? На сколько я понимаю - это изменение определенных весов. Но как можно преобразовать "ошибку" в это самое преобразование?
0
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,091
01.06.2018, 12:01 4
Jesterru, ну, можно заставить капчи разгадывать, по мне так это лютое наказание) А вообще, самое простое - отказ от текущего распределения весов\связей и создания новой.
0
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
01.06.2018, 12:35  [ТС] 5
Usaga,
Цитата Сообщение от Usaga Посмотреть сообщение
А вообще, самое простое - отказ от текущего распределения весов\связей и создания новой.
Согласен, это лучший и 100% способ. Но ведь это полный перебор, значит потребуется гигантские вычислительные мощности.
На сколько я понимаю, обучение с подкреплением - определенное изменение определенных связей.
На википедии написано :
Альфа-системой подкрепления называется система подкрепления, при которой веса всех активных связей c_ij, которые ведут к элементу u_j, изменяются на одинаковую величину r, а веса неактивных связей за это время не изменяются
Если брать даже обычный многослойный персептрон, то получится, что надо изменять практически все веса, т.к. каждый нейрон соединен со всеми нейронами следующего слоя. А в моем случае задача еще сложнее - там есть подобие рекуррентной нейронной сети.

После недели поисков у меня возник вопрос : для сетей такой структуры есть "нормальные" алгоритмы обучения? Или же мое спасение - генетические алгоритмы?

Так же возник вопрос - для чего вообще нужно правило Хебба (Связь между синхронно активирующимися нейронами усиливается)? Ведь, как я понял, оно имеет значение в системах иного типа?

Еще один вопрос - как выражено поощрение в человеческом мозге (Да и в любом мозге хордовых)? Ведь если человеку нравится то, чего он добился, то добиваться этого (например, уметь писать программы) намного легче в будущем.

Добавлено через 5 минут
И еще вопрос - используют ли на практике такие "неупорядоченные и бесстуктурные" нейронные сети? Или на практике выбор идеальной архитектуры - это только подбор количества слоев и нейронов в каждом слое?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2018, 12:35

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

Обучение нейронной сети
Доброго времени суток, ув. форумчане! Даже не знаю, как объяснить. В общем есть, допустим, n...

Обучение многослойной нейронной сети
Начал изучать нейронные сети, и хотел сделать что нибудь по легче. И вот хочу сделать многослойную...

Проблема с весами (обучение нейронной сети)
При обучение(backpropagation) нейронной сети(прямого распространения), заметил: - При увеличении...

Обучение нейронной сети. Как получить график?
Доброго времени суток. В общей сейчас есть так: График зависимости среднеквадратичной погрешности....


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

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

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