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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #21  
Старый 12.04.2011, 22:52
Новичок

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

Сообщение от гocть Посмотреть сообщение
прошу прощения, забыл раньше написать, но там внутри еще добавляют константу: f(x,w) = 1/(1 + exp(-w1 x1 - w2 x2 - w3 x3 - w4)).



итак, допустим у нас 3 входных значения: x1, x2, x3. (их называют первым, входной слоев нейронов)

один скрытый слой с двумя нейронами, выходы которых обозначим за y1, y2, с обычной сигмоидной функцией активации.

и один выходной слой с одним нейроном (одним т.к. предсказываем одну величину) с линейной функцией активации. линейная функция активации предпочтительнее когда у нас задача регрессии, а не классификации.

уравнения:

y1 = 1/(1 + exp(-w11 x1 - w12 x2 - w13 x3 - w14))
y2 = 1/(1 + exp(-w21 x1 - w22 x2 - w23 x3 - w24))
z1 = w31 y1 + w32 y2 + w30

если вам так удобнее, все можно конечно свести и в одну формулу:

f(x, w) = z1 =
w31/(1 + exp(-w11 x1 - w12 x2 - w13 x3 - w14)) +
w32/(1 + exp(-w21 x1 - w22 x2 - w23 x3 - w24)) +
w30

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


значит придется использовать значения из предыдущих дат.


веса инициализируют небольшим случайными числами около нуля.
сигмоида 1/(1 + exp(-wx)) симметрична вокруг нуля, поэтому надо брать не [0, 1] а например [-0.5, 0.5].

в процессе обучения веса могут быть в принципе стать столь угодно большими. это плохо сказывается на обучении (проблема зовется "паралич сети"), с этим стоит бороться.

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

Сделал все как Вы написали в данном ответе. Пока взял туже архитектуру ИНС, т.е 3 нейрона на входном слое: x1,x2,x3; 2 нейрона на скрытом 1-ом слое и 1 выходной слой с одним нейроном. На вход (x1,x2,x3) подал значения тех факторов, от которых зависит выходное значение, а именно x1=252, x2=1716, x3=115. Получил след. функцию:
Z = W31/(1+E^(-W11*X1-W12*X2-W13*X3-W14))+ W32/(1+E^(-W21*X1-W22*X2-W23*X3-W24))+W30
нашел минимум с интервалом поиска [-1,1], равный в точке
(-1;-0,018;0,074;-0,351;0,573; 0,276; -0,017; 0,2; -0,01, 0,045; -0,26, 0,103) со значением -1,95 !!!
Но временной ряд который я предсказываю в данный момент времени равен 254, т.е. мое значение ф-ии в минимальной точке не идет ни в какое сравнение с реальным значением ряда. Подскажите, пожалуйста, где я допустил методологическую ошибку???

Заранее благодарю! С нетерпением жду ответа!

Последний раз редактировалось Sarge, 12.04.2011 в 23:12.
  #22  
Старый 13.04.2011, 01:02
гостъ

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

чё то я не пойму совсем что вы делаете. вы пытаетесь найти минимум по Wij у функции Z = W31/(1+E^(-W11*X1-W12*X2-W13*X3-W14))+ W32/(1+E^(-W21*X1-W22*X2-W23*X3-W24))+W30, при x1=252, x2=1716, x3=115?
  #23  
Старый 13.04.2011, 09:04
Новичок

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

Да, совершенно верно. Ищу на интервале [-1,1]. Получаю, след. точки:
w1 = -1, w2 = -0,018, w3 = 0,074, w4 = -0,351 и т.д. а Z при таких точках равно -1,95 (выходное значение). А значение реального ряда равно 254. Получается огромная ошибка....
  #24  
Старый 13.04.2011, 09:25
гостъ

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

ну так это неправильно, нет никакого обучения по данным.

нужно собрать обучающую выборку, хотя бы несколько десятков-сотен примеров X1[i], X2[i], X3[i] и соответствующих им выходных значений Y[i], и в базовом случае проминизировать функцию \sum_{i=1}^n (Y[i] - Z(X1[i], X2[i], X3[i]; W))^2 по параметрам W в вашей Z.

Цитата:
Ищу на интервале [-1,1].
нет такого ограничения. вы вначале веса W положите случайным числам из этого интервала, а потом делайте шаги градиентного спуска. веса вполне могут выйти за этот диапазон
 


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Новичок в НС Sargez Искусственный интеллект, нейронные сети 3 31.08.2010 03:40
Восстановление вектора входных параметров по выходному в нейронных сетях Geck Искусственный интеллект, нейронные сети 11 07.12.2009 02:34
СРОЧНО: ищу специалиста/программиста нейронных сетей! гость Искусственный интеллект, нейронные сети 0 24.11.2009 16:06