Рыночный этикет или правила хорошего тона на минном поле - страница 15

 
Neutron >>:

В формулах можно и самому в литературе посмотреть, которой полно в просторах Инета.

Не будем спешить. И не пытайтись усложнить себе жизнь всякими наворотами, типа "нелинейное обучение" и т.п. это от Лукавого. Красота и надёжность в простоте и гармонии!

Спаси и помилуй...

 
:-)
 
Neutron >>:

Не будем спешить. И не пытайтись усложнить себе жизнь всякими наворотами, типа "нелинейное обучение" и т.п. это от Лукавого. Красота и надёжность в простоте и гармонии!

Ы? Этож классика. Вобщем не буду вам мешать.

 
Neutron >>:

У тебя есть вектор входных сигналов (пусть одномерный) длиной n отсчётов и пусть n+1 отсчёт является проверочным для качества обучения Сети. Суёшь ей на вход этот вектор (n отсчётов), предварительно приравняв все веса случайным значениям в диапазоне +/-1 с равномерным распределением плотности вероятности и смотришь то, что родила на выходе сетка. Пусть, она выдала на-гора +5.1, а твой проверочный n+1 отсчёт (то значение к которому должна стремится обученная сетка на этом обучающем векторе) +1.1 Тогда, ты берёшь разницу между полученным значением и искомым +4 и добавляешь это значение с сохранением его знака к каждому весу выходного нейрона (это, если он без ФА), или находишь значение производной от ФА от этого значения и добавляешь его к весам на входе последнего нейрона (если есть ФА). И т.д.

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

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


2. Вектор входных сигналов длинной n, это, к примеру, массив V[n,3](для сетки с тремя входами) значений RSI на n барах - так, что ли? Тогда n+1 отсчет это та же RSI на n+1 баре. В таком случае я обучаю сетку предсказывать будущее поведение RSI, на основе его предыдущего поведения.

Если так, то с весами все понятно, впоть до момента, где нужно, взять производную от негладкой функции ФА.( Т.е. я пока просто не знаю, как это сделать... может просто взять угловой коэффициент между двумя соседними точками ФА(RSI(i)) ? Ну, ладно это вопрос технический - решится.)

 
paralocus писал(а) >>

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

2. Вектор входных сигналов длинной n, это, к примеру, массив V[n,3](для сетки с тремя входами) значений RSI на n барах - так, что ли? Тогда n+1 отсчет это та же RSI на n+1 баре. В таком случае я обучаю сетку предсказывать будущее поведение RSI, на основе его предыдущего поведения.

Если так, то с весами все понятно, впоть до момента, где нужно, взять производную от негладкой функции ФА.( Т.е. я пока просто не знаю, как это сделать... может просто взять угловой коэффициент между двумя соседними точками ФА(RSI(i)) ? Ну, ладно это вопрос технический - решится.)

Очень хорошо расписано в Ф.Уоссермен.Нейрокомпьютерная техника - Теория и практика

 
Vinin >>:

Очень хорошо расписано в Ф.Уоссермен.Нейрокомпьютерная техника - Теория и практика

Ага, спасибо, нашел такую.

 
paralocus писал(а) >>

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

2. Вектор входных сигналов длинной n, это, к примеру, массив V[n,3](для сетки с тремя входами) значений RSI на n барах - так, что ли? Тогда n+1 отсчет это та же RSI на n+1 баре. В таком случае я обучаю сетку предсказывать будущее поведение RSI, на основе его предыдущего поведения.

Если так, то с весами все понятно, впоть до момента, где нужно, взять производную от негладкой функции ФА.( Т.е. я пока просто не знаю, как это сделать... может просто взять угловой коэффициент между двумя соседними точками ФА(RSI(i)) ? Ну, ладно это вопрос технический - решится.)

1. С приходом нового отсчёта, сетка обучается на новом обучающем векторе и сразу после обучения выдаёт прогноз на 1 шаг вперёд, и т.д. до бесконечности. Т.е. речь идёт о дообучении НС на каждом шаге.

2. Сетка с тремя входами, читает три последних отсчёта вектра длиной n+1+3, а обучается на нём же путём последовательного сдвига на один шаг все n-раз.

С производной проблем нет. Если в качестве ФА используется гиперболический тангенс ФА=th(x), то нет проблем найти от него производную dФА=1-th(x)^2 и коррекция веса на входе этого нейрона будет: dw=delta*(1-th(s)^2), где delta - ошибка между выходом сетки и реальным значением отсчёта, s - выход сетки.

 
Neutron >>:

1. С приходом нового отсчёта, сетка обучается на новом обучающем векторе и сразу после обучения выдаёт прогноз на 1 шаг вперёд, и т.д. до бесконечности. Т.е. речь идёт о дообучении НС на каждом шаге.

2. Сетка с тремя входами, читает три последних отсчёта вектра длиной n+1+3, а обучается на нём же путём последовательного сдвига на один шаг все n-раз.

С производной проблем нет. Если в качестве ФА используется гиперболический тангенс ФА=th(x), то нет проблем найти от него производную dФА=1-th(x)^2 и коррекция веса на входе этого нейрона будет: dw=delta*(1-th(s)^2), где delta - ошибка между выходом сетки и реальным значением отсчёта, s - выход сетки.

Вот оно что! Т.е. переучивать её не потребуется. Супер!

2. Сетка с тремя входами, читает три последних отсчёта вектра длиной n+1+3, а обучается на нём же путём последовательного сдвига на один шаг все n-раз.


Здесь я наверное не так выразился. Не сетка с тремя входами, а нейрон с тремя синапсами, на каждый из которых подается входной сигнал:

1синапс - th(RSI(i))

2синапс - th(RSI(i+dt))

3синапс - th(RSI(i+td*2))

1. Инициализируем веса синапсов случайными величинами(-/+1), благо дело - их всего три.

2. Затем на каждый вход нужно подать n отсчетов входного сигнала, т.е. последовательность входных сигналов на n предыдущих барах.

3. Затем взять выход нейрона на n-ном баре и сравнить его с n+1 значением входного сигнала, разницу(ошибку) с её же знаком прибавить к каждому весу, если выход нейрона без ФА.

Если выход с ФА, то прибавляем к весам ошибку, умноженную на призводную от ФА(на n-ном баре)

4. Смещаемся на один бар вперед(n+1-вый становится n-ным) и повторяем шаги со 2-го по 4-й.


Вопросы:

1. n = k*w*w/d ?

2. Для вычисления значения ошибки всегда вычитается тестовый отсчет из выходного значения сетки?

 

Да!

Потом перейдём к эпохам обучения. Их будет от 10 до 1000 в зависимости целей и средств, и более подробно коснёмся вопроса формирования на выборке длиной n-отсчётов, вектора корекции весов (он, на самом деле коммулятивен в пределах одной эпохи) и имеет длину равную числу синапсов w.

Короче, пока не грузись.

 
Neutron >>:

Да!

Потом перейдём к эпохам обучения. Их будет от 10 до 1000 в зависимости целей и средств, и более подробно коснёмся вопроса формирования на выборке длиной n-отсчётов, вектора корекции весов (он, на самом деле коммулятивен в пределах одной эпохи) и имеет длину равную числу синапсов w.

Короче, пока не грузись.

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

Я вам очень благодарен!