Список форумов neuroproject.ru neuroproject.ru
Форум сайта компании НейроПроект
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Прогнозирование суперпозиции элементраных нелин.динам.систем

 
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети
Предыдущая тема :: Следующая тема  
Автор Сообщение
foraxel
Новый посетитель
Новый посетитель


Зарегистрирован: 30 Окт 2006
Сообщения: 5

СообщениеДобавлено: Пн Окт 30, 2006 4:33 pm    Заголовок сообщения: Прогнозирование суперпозиции элементраных нелин.динам.систем Ответить с цитатой

Есть вот такая задача:
Сформируем некую хаотическую систему
x[0]=rand(1) - нач.условие, выбирается случайно из диапазона 0..1
x[k]=4*x[k-1]*(1 - x[k-1]), для k=1..N, N=10..100 тыс.;
назовем этот ряд r1 = {x[0],..,x[N]};


Возьмем Feedforward NN например с топологией: 10-10-1
т.е. 3 слоя, в первом 10 нейронов, во втором 10 нейронов, в последнем 1 нейрон.
Будем обучать нейросеть на предсказание будущего значения r1 по предудущим двум значениям, на вход сети будем подавать вектор (x[n-2],x[n-1]), на выход x[n].
Легко убедится, что при заданных условиях нейросеть легко раскусит внутренние правила ряд r1 и на CrossValidation покажет хороший результат.


Возьмем теперь ряд r2, который представляет собой сумму двух рядов r1 с разными нач. условиями.
Нейросеть также справится и с этой задачей, но время на обучение потребуется больше.


Возьмем теперь ряд r5, который представляет собой сумму 5 рядов r1 с разными нач. условиями.
Нейросеть не может раскусить правила r5.


Вопрос: как изменить топологию сети или вектор входных данных или метод обучения, чтобы нейросеть была способна раскусить этот "черный ящик", состоящий из суммы 5 элементарнейших систем.


Я без особого успеха попробовал следующее:
- увеличивал кол-во нейронов (хорошо что длину ряда мы задаем здесь сами)
- увеличивал кол-во лагов (размерность входного вектора)
- использовал GANN (весовые коэф-ты подбирались генетическим алгоритмом)
- поробовал различные топологии



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



Привожу код скрипта для матлаба для генерации ряда r5:
Код:

function r = blackbox(N)
K = 5;
x = zeros(K, N);
for k=1:K
x(k, 1) = rand(1);
for i=2:N
x(k, i) = 4*x(k, i-1)*(1-x(k, i-1));
end;
end;
x = (x-0.5)/K;
r = sum(x);
end


Посоветуйте плз, как с помощью NN можно прогнозировать ряд r5 на один шаг вперед.
Спасибо.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
_next_
Участник форума
Участник форума


Зарегистрирован: 11 Май 2006
Сообщения: 45

СообщениеДобавлено: Вт Окт 31, 2006 4:04 pm    Заголовок сообщения: Ответить с цитатой

А вы не пытайтесь прогнозировать значение, с сигналами с наличием определённой стационарности это работает, с более сложными процессами - нет, что вобщем вы сами и подтвердили, остаётся только прогноз направления, по крайней мере с теми инструментами которые вы используете..

Цитата:
Будем обучать нейросеть на предсказание будущего значения r1 по предудущим двум значениям...


Зачем так издеваться над собой и над сетью? Уж если принять например, что ряд - результирующая от множества стационарных синусоид, с определёнными периодами и амплитудами - в "предыдущих двух" значениях об этом инфы просто нет..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
foraxel
Новый посетитель
Новый посетитель


Зарегистрирован: 30 Окт 2006
Сообщения: 5

СообщениеДобавлено: Ср Ноя 01, 2006 11:20 am    Заголовок сообщения: Ответить с цитатой

_next_ писал(а):
А вы не пытайтесь прогнозировать значение, с сигналами с наличием определённой стационарности это работает, с более сложными процессами - нет, что вобщем вы сами и подтвердили, остаётся только прогноз направления, по крайней мере с теми инструментами которые вы используете..

Я пробовал обучать не только по принципу минимизации MSE, но и попробовал максимизировать корреляцию (для генетической NN).

Цитата:

Зачем так издеваться над собой и над сетью? Уж если принять например, что ряд - результирующая от множества стационарных синусоид, с определёнными периодами и амплитудами - в "предыдущих двух" значениях об этом инфы просто нет..


Предыдущие N значений также ясности не внесли. N=2..20
Если бы ряд был результирующая от множества стационарных синусоид, то задача прогнозирования решилась бы просто и без применения нейросетей.
Ряд r5 - пример суммы простых хаот. систем, в 2-х мерном лаговом пространстве проявляется некое подобие аттрактора, хотя не исключено, что фрактальная размерность >2 и для выявления реального аттрактора понадобилось бы лаговое пространство размерностью >3.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Victor G. Tsaregorodtsev
Эксперт
Эксперт


Зарегистрирован: 28 Июн 2005
Сообщения: 114
Откуда: Красноярск

СообщениеДобавлено: Ср Ноя 01, 2006 12:26 pm    Заголовок сообщения: Ответить с цитатой

foraxel

Так посчитайте всяких там Херстов и корреляционную размерность - хоть какие-то оценки свойств ряда будут понятны. Сколько значимых лагов на автокорреляционной и частной автокорреляционной функциях r5 (т.е. стационарен ли этот ряд вообще?)? График изменения выборочной оценки константы Липшица с ростом глубины погружения тоже не помешал бы.

И вообще, что понимается под невозможностью прогноза r5? какие среднеквадратичные ошибки обучения и обобщения достигаются?
_________________
www.neuropro.ru - нейросети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
foraxel
Новый посетитель
Новый посетитель


Зарегистрирован: 30 Окт 2006
Сообщения: 5

СообщениеДобавлено: Ср Ноя 01, 2006 5:24 pm    Заголовок сообщения: Ответить с цитатой

Victor G. Tsaregorodtsev писал(а):
foraxel

Так посчитайте всяких там Херстов и корреляционную размерность - хоть какие-то оценки свойств ряда будут понятны. Сколько значимых лагов на автокорреляционной и частной автокорреляционной функциях r5 (т.е. стационарен ли этот ряд вообще?)? График изменения выборочной оценки константы Липшица с ростом глубины погружения тоже не помешал бы.

И вообще, что понимается под невозможностью прогноза r5? какие среднеквадратичные ошибки обучения и обобщения достигаются?

Я попытался оценить фрактальную размерность через вычисление корреляционного инетграла и построения зависимости FractalDimension vs EmbeddedDimension, но качественно не удалось оценить размерность, сначала видно "насыщение", потом отклонение вверх от насыщения, использовал 100 тыс. отсчетов. (возможно что этого не достаточно) Умные люди подсказали также, что возможно имеется мультфрактальность.
r5 - стационарен, нормирован к диапазону [-0.5 0.5], Херст = 0.5, значимой корреляции соседних лагов нет, как и для r1 (это же пример хаотической системки).

"График изменения выборочной оценки константы Липшица с ростом глубины погружения" - к сожалению пока не понимаю о чем здесь речь, но при обучении сети глубина погружения увеличивалась до 20 лагов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Victor G. Tsaregorodtsev
Эксперт
Эксперт


Зарегистрирован: 28 Июн 2005
Сообщения: 114
Откуда: Красноярск

СообщениеДобавлено: Чт Ноя 02, 2006 12:49 pm    Заголовок сообщения: Ответить с цитатой

100 тыров отсчетов - достаточно и даже скорее всего запредельно.

Липшиц: перебором всех сочетаний пар примеров находим максимум отношения нормы разности выходных векторов (в Вашем случае - скаляров прогнозируемых величин) к норме разности входных векторов (лаговых векторов). Показывает, фактически, насколько различаются значения требуемых прогнозов в близких точках фазового пространства (именно при близости в фазовом пространстве, а не во времени - поэтому и перебираются не соседние пары точек вдоль оси времени, а все возможные пары). И с ростом глубины погружения в какой-то момент может уйти это требование противоречащих прогнозов в близких точках. А при заданном числе лагов если смотреть не на максимум, а на некоторый набор (несколько десятков или сотня) самых максимальных значений, то видно, насколько вообще часто требование к выдаче "противоречащих" прогнозов. Ну и явные противоречия в выборке при таких расчетах поймаются - когда входные вектора у пары примерв одинаковы, а требуются разные прогнозы. Т.е. хоть и долго считать для больших выборок (время расчетов квадратично по числу примеров), но получается более детальная и полезная информация, чем при расчете всяких разных ляпуновских показателей и оценках горизонта прогноза.

Сорри за сумбурность - тут крыша у меня не просто летает, а прямо фигуры высшего пилотажа выписывает

Честно говоря, мне самому непонятно, почему нейросетка не может обучиться на r5 - с ростом размера сети она хоть что запомнит, попробуйте хоть до двух-трех-пяти десятков нейронов в скрытом слое размер сетки увеличить. Все мои предположения - теряется вообще вся динамика, процесс становится полностью шумоподобным и наблюдаемые визуально аттракторы - это просто химера.
_________________
www.neuropro.ru - нейросети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
foraxel
Новый посетитель
Новый посетитель


Зарегистрирован: 30 Окт 2006
Сообщения: 5

СообщениеДобавлено: Чт Ноя 02, 2006 3:55 pm    Заголовок сообщения: Ответить с цитатой

Victor G. Tsaregorodtsev писал(а):

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

Да, конечно, если увеличивать кол-во нейронов, он начинает запоминать, но на CrossValidation показывает что и MSE - большое и корреляция между симулируемым и обучающим значением - на незначимом уровне около 0.

100 тыс. использовалось при попытке вычисления фрактальной размерности (разве это много для этой задачи? сколько отсчетов необходимо, чтобы разглядеть например фрактальную размерность = 8 ? )

1-5 тыс. отсчетов использовалось для обучения и тестирования "раздутой" сети. Собственно потому и переобучается.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Victor G. Tsaregorodtsev
Эксперт
Эксперт


Зарегистрирован: 28 Июн 2005
Сообщения: 114
Откуда: Красноярск

СообщениеДобавлено: Пт Ноя 03, 2006 9:38 am    Заголовок сообщения: Ответить с цитатой

Что-то я действительно торможу не по-детски. Херст=0.5 - это формально "чистый" коричневый шум, и я бы все-таки не стал считать его стационарным процессом (если глядеть на отрезки в 200-500 точек, то скорее всего будет относительно часто наблюдаться нестационарность среднего еще более мелких отрезков).

Попробуйте в качестве пробы обучить-спрогнозировать ряд первых разностей - если будет существенно лучше, то всё-таки значит исходному ряду r5 мешает именно низкочастотная часть спектра (нестационарность). А порождение рядов r6, r7 и так может привести к еще большему почернению спектра и превращению этих рядов в ряды случайных блужданий (Херст будет расти выше 0.5). Как, кстати, меняется Херст от r1 к r5?
_________________
www.neuropro.ru - нейросети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
_next_
Участник форума
Участник форума


Зарегистрирован: 11 Май 2006
Сообщения: 45

СообщениеДобавлено: Пт Ноя 03, 2006 10:18 am    Заголовок сообщения: Ответить с цитатой

foraxel писал(а):
Да, конечно, если увеличивать кол-во нейронов, он начинает запоминать, но на CrossValidation показывает что и MSE - большое и корреляция между симулируемым и обучающим значением - на незначимом уровне около 0.


А может быть всё дело в используемом алгоритме обучения?
Например из Осовского:

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

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


Мне кажется что любой ряд теоретически возможно "просчитать", т.е. он имеет повторяющиеся значения, если только это не последовательность постоянных приращений от 0 до бесконечности, имхо..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Victor G. Tsaregorodtsev
Эксперт
Эксперт


Зарегистрирован: 28 Июн 2005
Сообщения: 114
Откуда: Красноярск

СообщениеДобавлено: Пт Ноя 03, 2006 10:41 am    Заголовок сообщения: Ответить с цитатой

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

В первом посте foraxel сказал, что делалась и попытка использования ГА - не помогло.
_________________
www.neuropro.ru - нейросети, анализ данных, прогнозирование
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
foraxel
Новый посетитель
Новый посетитель


Зарегистрирован: 30 Окт 2006
Сообщения: 5

СообщениеДобавлено: Пт Ноя 03, 2006 11:06 am    Заголовок сообщения: Ответить с цитатой

Victor G. Tsaregorodtsev писал(а):
Что-то я действительно торможу не по-детски. Херст=0.5 - это формально "чистый" коричневый шум, и я бы все-таки не стал считать его стационарным процессом (если глядеть на отрезки в 200-500 точек, то скорее всего будет относительно часто наблюдаться нестационарность среднего еще более мелких отрезков).

Попробуйте в качестве пробы обучить-спрогнозировать ряд первых разностей - если будет существенно лучше, то всё-таки значит исходному ряду r5 мешает именно низкочастотная часть спектра (нестационарность).


На самом деле я просто забыл упомянуть что Херст около 0,5 именно для (!) кумулятивной суммы (!) ряда, а сам ряд и представляет собой некие приращения. Как раз их я и прогнозирую - приращения. Т.е. r5 - имеет равномерный спектр, остутсвие автокорреляции, собственно как и r2.
Херст для кумулятивных сумм как для ряда r2 так и для ряда r5, колеблется в пределах 0.48..0.51 для 10 тыс. отсчетов.

Основные отличие r5 от r2:
- r5 иммет распределение ближе к гаусовскому (т.к. сумма почти наверное независимых рядов), r2 имет распределение ближе к распределению синусоиды (т.е. рост вероятности по краям).
- изображения рядов в 2-х мерном лаговом пространстве для r5 и r2 отличаются
- фрактальная размерность для r5 очевидно отличается от r2, и вероятно в большую сторону
- r2 - прогнозирется легко, r3 - удовлетворительно-отвратно , r4, r5 - не удается прогнозировать (т.е. возможно и можно, но время необходимое на обучение, сложность сети, длина необходимой обучающей выборки увеличивается видимо как-то экспоненциально)


Последний раз редактировалось: foraxel (Пт Ноя 03, 2006 11:26 am), всего редактировалось 2 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
_next_
Участник форума
Участник форума


Зарегистрирован: 11 Май 2006
Сообщения: 45

СообщениеДобавлено: Пт Ноя 03, 2006 11:15 am    Заголовок сообщения: Ответить с цитатой

Тогда незнаю, значит простого погружения в лаговое пространство недостаточно для описания ряда такой сложности, есть же много методов мат.описания, та же скорость изменения например, или каждый 10 отсчёт, чтобы выявить скрытую динамику.. Да и опять же прогнозировать значение, имхо, Сизифов труд..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов neuroproject.ru -> Нейронные сети Часовой пояс: GMT + 4
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Rambler's Top100 Rambler's Top100