Updates from Июнь, 2010 Toggle Comment Threads | Keyboard Shortcuts

  • admin 02:48 on June 23, 2010 Permalink |
    Tags: matrix decomposition, ssa, ,   

    Векторное SSA прогнозирование 

    Реализовал метод V-SSA.  Протестировал динамику работы со следующими параметрами:

    • длина интервала — 600
    • длина окна — 200
    • точек прогнозирования — 60
    • первых собственных векторов SVD разложения — 15

    Красный график это реальные минутные данные газпрома ммвб от 16.06.2010. Зеленый график до синей галочки это трендовая составляющая разложения реального временного ряда. После синей галочки это предсказание. Т.е. зеленый график знает про красный только до синей линии, а потом угадывает.

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

     
  • admin 03:12 on June 9, 2010 Permalink |
    Tags: Java, pca, , , газпром, ммвб   

    Первые результаты 

    Получены первые результаты сингулярного разложения  SVD и разложения траекторной матрицы методом SSA.  Количество элементов временного ряда 10 000, длина окна 5 000, на графике отображены первые 10 рядов диагонального усреднения без группировки. Для вычислений использовалась библиотека Universal Java Matrix Package. Используемая оперативная память 2.8 Gb. На процессоре 2.10Ghz x3 считалось порядка часа. В качестве исходных данных использовались цены закрытия минутного графика Газпрома за 8.06.10.

    минутный график Газпром ао и первые 10 разложений методом SSA

     
  • admin 11:00 on April 23, 2009 Permalink |
    Tags: Нейронная сеть, Теорема Колмогорова, Тринадцатая проблема Гильберта   

    Нейронная сеть Нейро… 

    Нейронная сеть

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

    Как следует из названия, эта нейросеть состоит из трех слоев, изображенных на рис. 3. Собственно нейроны располагаются во втором (скрытом) и в третьем (выходном) слое. Первый слой только передает входные сигналы ко всем H нейронам второго слоя (здесь H = 4). Каждый нейрон второго слоя имеет n входов, которым приписаны веса wi1, wi2, …, win (для нейрона с номером i). Получив входные сигналы, нейрон суммирует их с соответствующими весами, затем применяет к этой сумме передаточную функцию и пересылает результат на один из входов нейрона третьего слоя. В свою очередь, нейрон выходного слоя суммирует полученные от второго слоя сигналы с некоторыми весами vi. Для определенности будем предполагать, что передаточные функции в скрытом слое являются сигмоидными, а в выходном слое используется функция p(x) = x, т. е. взвешенная сумма выходов второго слоя и будет ответом нейросети. Итак, подавая на входы перцептрона любые числа x1, x2, …, xn, мы получим на выходе значение некоторой функции F(x1, x2, …, xn), которое является ответом (реакцией) нейросети. Очевидно, что ответ нейросети зависит как от входного сигнала, так и от значений ее внутренних параметров — весов нейронов. Выпишем точный вид этой функции:


    Как видно из этого равенства, такой перцептрон реализует только функции определенного вида, а именно суммы значений сигмоидных функций, где в качестве аргументов подставляются линейные комбинации входных сигналов. Например, функцию F(x1, x2) = x1x2 не удается с ходу представить в таком виде. Естествен вопрос: а может ли перцептрон реализовать достаточно сложную функцию? Этот вопрос по сути чисто математический — о представимости одних функций посредством других. Так как задача очень просто сформулирована, неудивительно, что и занимались ею ученые достаточно давно. Удивительно то, что ответ на нее был получен сравнительно недавно — в 1989 г. Формулировке этого ответа посвящены следующие два раздела.

    Тринадцатая проблема Гильберта

    На несколько минут обратимся к самым что ни на есть фундаментальным вопросам математики. В 1900 г. гениальный немецкий математик Давид Гильберт в своем докладе на Международном конгрессе математиков в Париже сформулировал 23 нерешенные задачи, которые он считал наиболее важными в математике того времени. Эти задачи получили название “проблемы Гильберта” и оказали огромное влияние на развитие всей математики XX века. До сих пор не все проблемы Гильберта полностью решены, а многие из них побудили ученых к созданию совершенно новых теорий. Как выяснилось в последние годы, теория нейросетей также связана с одной из этих проблем, а именно с тринадцатой. Тринадцатую проблему Гильберта можно сформулировать так. Верно ли, что существует непрерывная функция от трех переменных, которая не может быть представлена в виде композиции непрерывных функций от двух переменных? Под композицией функций понимается подстановка одной функции в качестве аргумента другой. Например, функция трех переменных F(x, y, z) = xz + yz может быть представлена в виде композиции функций двух переменных F(x, y, z) = S(M(x, z), M(y, z)), где M(x, z) = xz, а S(a, b) = a + b. Тринадцатая проблема Гильберта была решена в 1957 г. тогдашним студентом мехмата МГУ, а ныне академиком Владимиром Игоревичем Арнольдом. Он показал, что любая непрерывная функция трех переменных представляется в виде композиции непрерывных функций двух переменных. Таким образом, гипотеза Гильберта была опровергнута. В том же 1957 г. советский математик Андрей Николаевич Колмогоров доказал гораздо более сильную теорему.

    Теорема Колмогорова:

    Любая непрерывная функция от n переменных F(x1, x2, …, xn) может быть представлена в виде

    где gj и hij — непрерывные функции, причем hij не зависят от функции F. Эта теорема означает, что для реализации функций многих переменных достаточно операций суммирования и композиции функций одной переменной. Удивительно, что в этом представлении лишь функции gj зависят от представляемой функции F, а функции hij универсальны. Заметим, что формула (**) очень похожа на формулу (*). Если перевести эту теорему на язык нейросетей, то она будет звучать так :
    «Если известны функции hij, то любую непрерывную функцию от n переменных можно точно реализовать с помощью простой нейросети на основе трехслойного перцептрона. Для этого достаточно подобрать 2n+1 передаточных функций gj нейронов скрытого слоя».
    Эта нейросеть не будет перцептроном в строгом смысле, так как на входах второго слоя к сигналам необходимо применить функции hij, а не просто умножить их на веса. К сожалению, при всей своей математической красоте, теорема Колмогорова малоприменима на практике. Это связано с тем, что функции hij — негладкие и трудно вычислимые; также неясно, каким образом можно подбирать функции gj для данной функции F. Роль этой теоремы состоит в том, что она показала принципиальную возможность реализации сколь угодно сложных зависимостей с помощью относительно простых автоматов типа нейросетей.

    Аппроксимация нейросетями

    Чтобы получить более значимые для практики результаты в этом направлении, приходится ослабить наши требования. Во-первых, для нас непринципиально найти точное представление данной функции — достаточно иметь приближенное. Во-вторых, мы можем по необходимости увеличивать число нейронов в скрытом слое нейросети, насколько это требуется. Новый вариант теоремы Колмогорова, обладающий этими особенностями, был открыт только в 1989 г., зато одновременно несколькими авторами. Так как все эти работы стали классическими, дадим точные ссылки.

    1. Hornick, Stinchcombe, White. Multilayer Feedforward Networks are Universal Approximators. Neural Networks, 1989, v. 2, № 5.
    2. Cybenko. Approximation by Superpositions of a Sigmoidal Function. Mathematical Control Signals Systems, 1989, 2.
    3. Funahashi. On the Approximate Realization of Continuous Mappings by Neural Networks. Neural Networks, 1989, v. 2, № 3.

    Для определенности сформулируем теорему в том виде, в каком она приведена во второй из названных работ. Пусть F(x1, x2, …, xn) — любая непрерывная функция, определенная на ограниченном множестве, и e > 0 — любое сколь угодно малое число, означающее точность аппроксимации. Через «сигму» мы обозначаем сигмоидную функцию, определенную выше.

    Теорема. Существуют такое число H, набор чисел wij, ui и набор чисел vi, что функция

    приближает данную функцию F(x1, x2, …, xn) с погрешностью не более e на всей области определения.

    Читатель легко заметит, что эта формула полностью совпадает с выражением (*) для функции, реализуемой перцептроном. В терминах теории нейросетей эта теорема формулируется так. Любую непрерывную функцию нескольких переменных можно с любой точностью реализовать с помощью обычного трехслойного перцептрона с достаточным количеством нейронов в скрытом слое.

    источник тут http://www.neuroshell.ru/hilbert.php

     
c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
Reply
e
Edit
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Cancel