Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::

Форум работает в режиме архива, только для чтения и поиска.
Архив 2004 Архив 2007 Архив 2013

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.11.2010, 04:20
Новичок

Отправить личное сообщение для Morkonwen Посмотреть профиль Найти все сообщения от Morkonwen
 
Регистрация: 24.11.2010
Сообщений: 3

Генетика + Обратное распространение
Понимаю, что вряд ли мне удастся коротко описать архитектуру и задачу, но все-таки попробую. Хочется услышать критику или просто комментарии+ есть пара вопросов. Спасибо!

Делаю программу - мир в котором живут существа. Мир довольно сложный, но для управления существами каждому из них соответствует своя нейросеть. Существа по ходу жизни могут обучатся, опираясь на улучшение или ухудшение собственных показателей. Кроме того, они могут оставлять потомство. При этом сеть ребенка это случайное смешивание сетей родителей.

Теперь самое главное - архитектура:

Это реккурентная сеть с двумя скрытыми слоями(+ вход + выход итого 4 слоя). Входной слой - зрение существа + контекстные нейроны, на которые идут сигналы обратной связи от всех других слоев, кроме входного.

1)Само наличие обратной связи оставляется на совести эволюции. Между двумя нейронами может возникнуть обратная связь, а может не возникнуть - это случайная мутация.

2)Кроме того количество нейронов в скрытых слоях не фиксировано - это тоже мутация, но если нейрон в скрытом слое появился, то он обязательно связан со всеми нейронами следующего слоя и со всеми предидущего.

3)Обратная связь не может идти только к любому из предшевствующих слоев, но не на входные нейроны,

Обратное распространение реализуется этаким упрощенным "разворачиванием сети" по всем правилам рекурентную сеть надо развернуть на максимальную глубину ходов, просчитать все ошибки на всех шагах и ТОЛЬКО ПОТОМ изменить веса. Я же делаю грубее - просчитываю ошибки для ОДНОГО шага по времени, меняю веса, затем вычисляю ошибки для предидущего шага по времени, используя уже модифицированную сеть. Это позволяет не хранить приращения для всех шагов, что экономит и память и время.

Вопросов два первый, конечно, не сделал ли я где то очень тупой ошибки в концепциях.

А второй: После подачи сигнала на входные и контекстные нейроны, они суммируются и производится нелинейное преобразование, что вроде бы для входных слоев обычно не делают. Это праивльно?
  #2  
Старый 24.11.2010, 23:43
гость

 
Сообщений: n/a

по-моему нежизнеспособный бред

с чего бы это оно чему-то стало у вас учиться? где обучающая выборка?

и что вообще за сигналы на входе и выход?
  #3  
Старый 24.11.2010, 23:53
гость

 
Сообщений: n/a

Сообщение от гость Посмотреть сообщение

и что вообще за сигналы на входе и выход?
тогда читайте читайте что такое нейросети, потом и про остальное поговорим
  #4  
Старый 25.11.2010, 00:51
гость

 
Сообщений: n/a

я спрашиваю что ВЫ подаете на вход и хотите получить на выходе
  #5  
Старый 25.11.2010, 15:19
Новичок

Отправить личное сообщение для Morkonwen Посмотреть профиль Найти все сообщения от Morkonwen
 
Регистрация: 24.11.2010
Сообщений: 3

Каждой клетке, окружающей особь соответствует несколько нейронов для каждого из предметов в мире. Например если это другая особь в клетке сверху, подается число на нейрон соответствующий особи в клетке сверху. Это вход.
Выходы - это варианты действий, которые можно совершить. Из мощности каждого сигнала на выходе вычисляется вероятность, с которой то или иное действие будет проделано.

Если показатели особи ухудшились, это значит, что последнее действие неверно и на соответствующий нейрон подается ошибка, приближающая выход к нулю, поэтому в следующий раз вероятность этого действия при тех же условиях будет уже меньше. так что выборка никакая не нужна.
  #6  
Старый 25.11.2010, 22:51
гость

 
Сообщений: n/a

Сообщение от Morkonwen Посмотреть сообщение
Если показатели особи ухудшились,
А как вы это определяет? Что, сразу после действия можно тут же сказать хорошо оно или плохо было?

Обычно же не так - только после какой-то последовательности принятых решений получаешь результат (например, что съели или не съели твою зверушку), и даже не всегда можно сказать точно какое из действий было плохим и свалить на него всю ответственность. Такие задачи изучаются, и называются reinforcement learning.
  #7  
Старый 26.11.2010, 13:35
Новичок

Отправить личное сообщение для Morkonwen Посмотреть профиль Найти все сообщения от Morkonwen
 
Регистрация: 24.11.2010
Сообщений: 3

в принципе, поскольку сеть реккурентная, обучатся она должна учитывая контекст и предыдущие действия, но про то что вы сказали почитаю. спасибо
 


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генетика для составления кроссворда mr.Anderson Искусственный интеллект, нейронные сети 3 10.12.2010 01:52
Обратное распространение - уточнение алгоритма alkinoy Искусственный интеллект, нейронные сети 1 17.09.2010 18:11
обратное преобразование лапласа apost8 Математические алгоритмы 6 05.06.2009 22:20
Обратное z-преобразование ZPablo Реализация, исходники, языки 1 13.01.2009 00:28