Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Кто пробовал?
...........................................................
Комбинирование обратного распространения с обучением Коши
Коррекция весов в комбинированном алгоритме, использующем обратное распространение и обучение Коши, состоит из двух компонент: (1) направленной компоненты, вычисляемой с использованием алгоритма обратного распространения, и (2) случайной компоненты, определяемой распределением Коши.
Эти компоненты вычисляются для каждого веса, и их сумма является величиной, на которую изменяется вес. Как и в алгоритме Коши, после вычисления изменения веса вычисляется целевая функция. Если имеет место улучшение, изменение сохраняется. В противном случае оно сохраняется с вероятностью, определяемой распределением Больцмана.
Коррекция веса вычисляется с использованием представленных ранее уравнений для каждого из алгоритмов:
wmn,k(n+1) = wmn,k(n) + η [aΔwmn,k(n) + (1 – a) δ n,k OUT m,j ] + (1 – η) xс,
где η – коэффициент, управляющий относительными величинами Коши и обратного распространения в компонентах весового шага. Если η приравнивается нулю, система становится полностью машиной Коши. Если η приравнивается единице, система становится машиной обратного распространения.
........................................................
Можно поподробней по квази-ньютоновским и LMA.
LMA = Levenberg–Marquardt algorithm
Quasi-Newton method
Градиентные методы второго порядкаМного писать, вкратце:
алгоритм Ньютона,
xk+1 = xk - sk*H^(-1)(xk)grad f(xk),где
H^(-1)(xk) обратная матрицы Гессе в точке xk,
sk - величина шага,
gradf(xk) - градиент функции в точке xk.
так вот в квазиньютоновском методе вместо H^(-1)(xk) используется матрица H(xk), которая строиться из частных производных второго порядка,
в квазиньютоновском методе вторые производные вычисляются через метод крайних разностей. Соответственно имеем две наиболее часто применяемые
формулы вычислений КР:
Бройдена — Флетчера — Гольдфарба — Шанно (BFGS)
Девидона — Флетчера — Пауэлла (DFP)
LMA:
тоже относится к методам второго порядка, т.е. необходимо вычисление частных производных второго порядка,
xk+1 = xk - sk*H^(-1)(xk)grad f(xk),где
так вот, H^(-1)(xk)вычисляется как H= J^t*J, где J - якобиан
соответственно gradf(xk) = J^t*E, J^t - транспонированный якобиан, E - вектор ошибок сети, то
xk+1 = xk - [J^t*J + mu*I]^(-1)*J^t*E, где mu - скаляр, если mu - 0, имеем метод Ньютона с аппроксимацией гессениана, если mu -> + Inf,
градиентный метод с маленьким шагом.
Вот тут есть еще обсуждения:
Нейро-синтезатор, конструктор+лаборатория
LMA = Levenberg–Marquardt algorithm
Quasi-Newton method
Градиентные методы второго порядкаМного писать, вкратце:
алгоритм Ньютона,
xk+1 = xk - sk*H^(-1)(xk)grad f(xk),где
H^(-1)(xk) обратная матрицы Гессе в точке xk,
sk - величина шага,
gradf(xk) - градиент функции в точке xk.
так вот в квазиньютоновском методе вместо H^(-1)(xk) используется матрица H(xk), которая строиться из частных производных второго порядка,
в квазиньютоновском методе вторые производные вычисляются через метод крайних разностей. Соответственно имеем две наиболее часто применяемые
формулы вычислений КР:
Бройдена — Флетчера — Гольдфарба — Шанно (BFGS)
Девидона — Флетчера — Пауэлла (DFP)
LMA:
тоже относится к методам второго порядка, т.е. необходимо вычисление частных производных второго порядка,
xk+1 = xk - sk*H^(-1)(xk)grad f(xk),где
так вот, H^(-1)(xk)вычисляется как H= J^t*J, где J - якобиан
соответственно gradf(xk) = J^t*E, J^t - транспонированный якобиан, E - вектор ошибок сети, то
xk+1 = xk - [J^t*J + mu*I]^(-1)*J^t*E, где mu - скаляр, если mu - 0, имеем метод Ньютона с аппроксимацией гессениана, если mu -> + Inf,
градиентный метод с маленьким шагом.
Вот тут есть еще обсуждения:
Нейро-синтезатор, конструктор+лаборатория
Спасибо.
Остался вопрос... Где правда?
Верхний левый угол(RProp). Зачем DE/DW=0 при DE/DW(t-1)*DE/DW<0?
Спасибо.
Остался вопрос... Где правда?
Верхний левый угол. Зачем DE/DW=0 при DE/DW(t-1)*DE/DW<0?
отрицательное произведение градиентов говорит о том, что алгоритм "перескочил" нужный экстремум. Поэтому та ячейка памяти, где хранится значение градиента на текущем шаге (заметьте, именно ячейка памяти, а не сам градиент) обнуляется для того, чтобы на следующем сработало третье условие. В этом фишка алгоритма, если Вы читали статью полностью.
отрицательное произведение градиентов говорит о том, что алгоритм "перескочил" нужный экстремум. Поэтому та ячейка памяти, где хранится значение градиента на текущем шаге (заметьте, именно ячейка памяти, а не сам градиент) обнуляется для того, чтобы на следующем сработало третье условие. В этом фишка алгоритма, если Вы читали статью полностью.
Но тогда нужно de/dw(t-1)=0
Но тогда нужно de/dw(t-1)=0
на данном шаге это de/dw(t), на следующем оно станет de/dw(t-1)
на данном шаге это de/dw(t), на следующем оно станет de/dw(t-1)
Спасибо. Может вы подскажите с JRprop q индивидуальна для каждого веса или как?
Я уже запутался одни пишут deltaW=-n*DE/DW другие deltaW=n*DE/DW другие и т.д. и т.п. ......
Спасибо. Может вы подскажите с JRprop q индивидуальна для каждого веса или как?
насколько я понимаю, ку одно для всех
Я уже запутался одни пишут deltaW=-n*DE/DW другие deltaW=n*DE/DW другие и т.д. и т.п. ......
Давайте с самого начала, RProp эвристический алгоритм, он для действия использует анализ знака первой производной от ф-ции ошибки по весу синапса.
Если знак производной положительный не изменился, dEdW(t)*dEdW(t-1) > 0 т.е. минимизация ошибки выполняется, мы движемся в правильно направлении.
Если знак изменился, т.е. dEdW(t)*dEdW(t-1) < 0, мы проскочили минимум (локальный минимум), надо сделать 2 шага назад. Первый чтобы компенсировать минимум который мы проскочили - в вашем примере, DELTAij(t) считается от предыдущего значения дельты и -eta, можно не делать коррекцию Wij(t) на этом шаге, тогда мы вернемся только к предыдущему значению Wij, но так как у вас делается, значит что мы дважды движемся назад, от точки изменения знака производной.
Относительно <deltaW=-n*DE/DW другие deltaW=n*DE/DW>, не имеет значения, вы должны просто понимать, какой шагает делает, в каком направлении и в какой момент времени.
Так как это эвристика, точное соблюдение формул не важно, важен принцип.