Показать сообщение отдельно
  #17  
Старый 14.03.2011, 22:01
гocть

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

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

Цитата:
а как измениться эта функция, если добавиться второй (третий и т.д) слой в ИНС, с 2 нейронами во 2 слою, допустим каждый нейрон 2 слоя связан с каждым нейроном 1 слоя?
итак, допустим у нас 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

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

Цитата:
но что я подам на вход ИНС по факторам x1 и x2, если я их на момент прогноза тоже не знаю?
значит придется использовать значения из предыдущих дат.

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

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

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