Название: К проблеме предсказания событий Отправлено: m_ax от Октябрь 17, 2019, 17:12 Приветствую)
Задача формулируется следующим образом: У нас есть функция, которая на каждом шаге возвращает только одно из двух значений: либо 0 либо 1. Мы не знаем как она устроена внутри, но предполагаем, что какая то корреляция относительно её значений существует. Более того, у нас есть достаточно большой массив её значений в прошлом. Что даёт возможность "обучить" алгоритм находить эти корреляции (какие-нибудь свойственные для неё закономерности). И так, мы хотим, взяв N её последних значений, предсказать какие следующие n значений она выдаст. Т.е. всего может быть 2^n различных последовательностей и для каждой хотелось бы сопоставить свою вероятность. Есть идеи как это лучше сделать? Я заранее ответа не знаю :) (есть только абстрактные, почти философские соображения :)) Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 17, 2019, 18:51 Можно попробовать обучить нейросеть.
Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 17, 2019, 19:13 Можно попробовать обучить нейросеть. Да, здесь нейросетью попахивает)Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 17, 2019, 19:17 Но закономерности должны быть иначе пустая трата времени.
Название: Re: К проблеме предсказания событий Отправлено: Igors от Октябрь 18, 2019, 06:09 Был похожий случай. Есть пр-во заполненное какой-то ф-цией, но очень "жиденько". Ну и при трассировке луча "львиная доля" расчетов уходит на "пустоты" как вода в песок. А от самой ф-ции тоже добиться ничего не удается. Ну я перешел к параметру "плотность", для него построил гистограмму и вычислял минимальный шаг по лучу на основании текущей плотности. Какой-то эффект был - но это все что я помню спустя много лет :)
Название: Re: К проблеме предсказания событий Отправлено: ssoft от Октябрь 18, 2019, 08:41 Если нет никаких предположений о виде функции, то можно грубо оценить вероятность возвращения функцией 0 или 1 по её статистическим значениям.
Например, как отношения P0=N0/N и P1=N1/N. Тогда вероятности получения последовательности n следующих значений получится как P=P0n0P1n1, где n0 и n1 - ожидаемое количество получения 0 и 1. То есть нет необходимости оценивать все 2n вариантов, так как, например, 00110 01010 01100 10001 и т.п. равновероятны. Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 18, 2019, 10:53 Цитировать Но закономерности должны быть иначе пустая трата времени. Да, разумеется) Но даже случай с белым шумом мы в принципе можем распознать. Т.е. мы запускаем ботов: первая группа использует "обученный" алгоритм и предсказывает поведение функции на основе его прогнозов, и контрольный бот, который просто кидает монетку. В случае с белым шумом все боты окажутся неразличимы статистически.Цитировать Если нет никаких предположений о виде функции, то можно грубо оценить вероятность возвращения функцией 0 или 1 по её статистическим значениям. Идея понятна, но это слишком грубое приближение для которого, например функции вида: Например, как отношения P0=N0/N и P1=N1/N. Тогда вероятности получения последовательности n следующих значений получится как P=P0n0P1n1, где n0 и n1 - ожидаемое количество получения 0 и 1. 1) 10101010101010... 2) 1111000011110000... 3) белый шум ... будут неразличимы( Т.е. такая оценка не запоминает важных закономерностей.. Название: Re: К проблеме предсказания событий Отправлено: ssoft от Октябрь 18, 2019, 11:18 Идея понятна, но это слишком грубое приближение для которого, например функции вида: 1) 10101010101010... 2) 1111000011110000... 3) белый шум ... будут неразличимы( Т.е. такая оценка не запоминает важных закономерностей.. Возьмите тогда более сложные комбинации битов, вместо 0 и 1. Два бита - 00 01 10 11 Три бита - 000 001 ... ... Восемь бит ... Посчитайте статистику встречаемости таких комбинаций в последовательности. Можно графики построить даже и попытаться приблизить к какому-нибудь разложению Фурье. Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 18, 2019, 11:33 Цитировать Возьмите тогда более сложные комбинации битов, вместо 0 и 1. Да, это уже лучше) Однако это опять даст мне только наиболее часто встречающиеся последовательности, но информация о том, какая последовательность в среднем встречается после другой будет потеряна( Т.е. я хочу следующее: я беру N предыдущих значений функции (скажем N = 10) (которые мне известны) и на основе "нейросети" получить наиболее вероятную группу последующих n значений (скажем, n = 3). Размер обучающей выборки у нас значительно больший >> N, n. Два бита - 00 01 10 11 Три бита - 000 001 ... ... Восемь бит ... Посчитайте статистику встречаемости таких комбинаций в последовательности. Я, по возможности, вечером постараюсь свои соображения на этот счёт привети.. Но они пока такие, сырые ещё.. Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 18, 2019, 11:57 Если закономерности есть, то нейросеть будет работать.
Пусть есть исходные данные - последовательность от 0..M Параметры сети: Вход - N значений Выход - 2 значения (0 или 1) Обучение: Выбираем случайное значение X в последовательности (N+1)..M - правильный ответ. N значений до X подаем на вход. В зависимости от X устанавливаем значение выхода (если X=0 - то выход 1/0, если X=1 - то выход 0/1) Крутим это в цикле пока не переберем все значения в исходной последовательности (точнее M-N значений) Меняем эпоху и крутим еще всю выборку. Так несколько эпох. Получение результата: На вход N значений - на выходе вероятности 0 или 1. Можно попробовать использовать 1 выход - и смотреть к чему ближе будет результат, к 0 или 1. Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 18, 2019, 12:12 Цитировать Если закономерности есть, то нейросеть будет работать. Ну с этим я не спорю)Цитировать Параметры сети: А почему выход только 2 значения? Я бы хотел на несколько шагов вперёд смотреть (в разумных пределах, конечно).. Т.е. 2^n выходов..Вход - N значений Выход - 2 значения (0 или 1) Прогноз на один шаг вперёд - один слой? Или как? Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 18, 2019, 12:24 А почему выход только 2 значения? Вероятность выпадения для значения 0 и для значения 1. :)Можно попробовать обойтись одним и смотреть к чему оно ближе к 0 или 1. Я бы хотел на несколько шагов вперёд смотреть (в разумных пределах, конечно).. Я думал вы хотите по текущей последовательности предсказать следующее значение.Если хотите несколько, то и выходов нужно несколько. :) Название: Re: К проблеме предсказания событий Отправлено: ViTech от Октябрь 18, 2019, 13:11 Я бы ради интереса вместо 0 поставил -1 и посмотрел на график "нарастающей суммы" (на каждом шаге (X) прибавляем текущее значение к предыдущей сумме (Y)). Может нейронная сеть хомо сапиенс там сразу какую-нибудь закономерность распознает :). Вдруг там синусоида вообще :).
Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 18, 2019, 18:31 Цитировать Я бы ради интереса вместо 0 поставил -1 и посмотрел на график "нарастающей суммы" Ну качественно замена 0 на -1 ничего не изменит, главное, что функция возвращает только два значения..Цитировать Может нейронная сеть хомо сапиенс там сразу какую-нибудь закономерность распознает :) Нееет, хомо сапиенс отпадает, поскольку подвержен различным когнитивным ошибкам (я уж не говорю про его склонность ко всякому роду мракобесия :))И потом, сегодня зависимость одна, завтра другая.. нафиг-нафиг :) Цитировать Если хотите несколько, то и выходов нужно несколько. :) В принципе да, можно сделать и два выхода. А потом, на основе этого смоделировать стат. ансамбль на n шагов вперёд. Поэтому разумно остановиться пока на таком варианте: Мы знаем N предыдущих значений: нужно получить вероятность для 1 и 0 на следующем шаге. Мои мысли по архитектуре такой "сети" (для наглядности, пусть N=4): 1) Сеть формируется при обучении. 2) Сеть состоит из списка групп. Каждая группа представляет из себя некий объект у которого есть два счётчика: один указывает на число исходов 1, а ругой на исходов 0. Группа создаётся и инициируется последовательностью из N значений и в последующем может определять входит ли другая последовательность из N в данную (в качестве критерия логично использовать Manhetten lenght) Например, мы говорим, что последовательность a и b принадлежат одной группе если их manhetten lenght <= m (пусть m = 2). Пример обучения такой сети. Обучающая последовательность: 111001101101110... Вначале список групп пуст, мы стартуем с нулевой позиции. Создаём первую группу в списке и инициализируем её последовательностью 1110. При этом счётчик исхода_0 = 1. Перемещаемся на шаг вперёд, теперь наша последовательность = 1100, а исход 1. Смотрим, входит ли такая последовательность в уже существующую группу? Входит: 1110 - 1100 = 1 < 2. В результате у нас по прежнему одна группа в сиске, но оба счётчика равны 1. И так далее.. После обучения, мы скармливаем сети последовательность x, для которой хотим предсказать вероятности для 1 и 0. Ищем в списке к какой группе принадлежит последовательность x и смотрим на значения счётчиков: наиболее вероятный исход будет соответствовать наибольшему значению счётчика. Вот вся логика :) Осталось реализовать и проверить :) Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 18, 2019, 19:30 m_ax, ну это не совсем та нейросеть, в традиционном ее представлении. :)
Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 18, 2019, 19:32 Цитировать m_ax, ну это не совсем та нейросеть, в традиционном ее представлении. :) Поэтому и в кавычках :)Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 18, 2019, 19:35 Поэтому и в кавычках :) А почему не взят традиционную, так сказать? :)Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 18, 2019, 19:37 Поэтому и в кавычках :) А почему не взят традиционную, так сказать? :)Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 18, 2019, 20:04 Цитировать Можно) Интересно было бы сравнить) https://github.com/tiny-dnn (https://github.com/tiny-dnn) вроде, не плохая?) Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 18, 2019, 20:04 Можно) Интересно было бы сравнить) А можете выложить последовательность?Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 18, 2019, 20:05 https://github.com/tiny-dnn (https://github.com/tiny-dnn) вроде, не плохая?) Эту не видал, сейчас заценю.Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 18, 2019, 20:06 Можно) Интересно было бы сравнить) А можете выложить последовательность?Название: Re: К проблеме предсказания событий Отправлено: Azazello от Октябрь 18, 2019, 22:21 Мои мысли по архитектуре такой "сети" (для наглядности, пусть N=4).............. Осталось реализовать и проверить :) Это не сработает. Ничего из вышеперечисленного. Нейросеть, Гм. Если уж так пошло, советовал бы вам использовать дерево решений, а не нейроны. Там хотя-бы видно куда двигаешься, а нейросеть даже создатели не знают как она работает. Ну то лирика. Обучение на исторических данных - полный провал. Тем более по одному критерию. Должны быть десятки "других критериев", чтобы это хоть как то давало предсказание лучше 60%. В вашем случае, я бы советовал просто использовать статистический анализ, а на него уже вешать дерево решений. Пример: 1 секунда: решений 40/60 2 секунды: решений 30/70 Это исторические данные. Т.е. мы цепляем какие-то факторы, которые нам неизвестны, на временной интервал. И при построении вашей нейросети (или дерева решений), вам столько нужно будет по***, настраивая коэффициенты и выбор интервалов, что ищите другие условия, которые влияют на "предсказания выбора". В принципе, с такими условиями, ваша "нейросеть" просто превратится в обычную RC цепочку, или в апериодическое звено, если вам так удобно. Название: Re: К проблеме предсказания событий Отправлено: Igors от Октябрь 19, 2019, 10:38 ...пусть N=4 Уже сделано немало произвольных (чисто "вкусовых") допущений, боюсь что рез-т будет зависеть от них "dramatically"... ...если их manhetten lenght <= m (пусть m = 2). После обучения, мы скармливаем сети последовательность x, для которой хотим предсказать вероятности для 1 и 0. Ищем в списке к какой группе принадлежит последовательность x и смотрим на значения счётчиков: наиболее вероятный исход будет соответствовать наибольшему значению счётчика. Ну а почему бы и не реализовать это "в лоб" на ассоциативном контейнере? Может это внесет новые мысли, "свежую струю". Ожидаемый рез-т - ну да, что-то будет "не белый шум", но точность предсказания невелика. И будет сильная зависимость от тестовых данных.Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 19, 2019, 11:03 Реализовал) Результаты сильно порадовали. Всё распознаётся с высокой точностью)
Код
И вот, собственно, результаты тестов: В первой колонке наблюдаемое значение, во второй вероятность того, что будет 1, в третьем, вероятность выпадения 0. (Впечатляет 8)) Код
Проект приаттачен, можно поиграться) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 19, 2019, 17:19 Можно) Интересно было бы сравнить) А можете выложить последовательность?Прикрепляю для сравнения реальные данные. На них сеть просто идеально отработала) Код
Файлик с данными в аттаче) Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 19, 2019, 21:12 Поигрался с tiny_dnn, на тестовой последовательности (sin(i) + cos(4*i) >= 0) вот такой результат:
Код: Generate source... Завтра попробую данные из файла. Нужно будет поиграться с размером запроса. Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 19, 2019, 21:22 Нужно будет поиграться с размером запроса. Увеличил запрос с 10 до 20 значений и сразу 100% точность.Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 19, 2019, 21:28 Цитировать Поигрался с tiny_dnn, на тестовой последовательности (sin(i) + cos(4*i) >= 0) вот такой результат: Спасибо) Такое ощущение, что хуже..На самом деле есть реальная функция, зашумлённая на мелком масштабе, а на больших масштабах уже можно увидеть некоторые корреляции. Я блурю этуфункцию, беру производную (числено) и перевожу в бинарный вид: всё что больше 0 = 1, а всё что меньше = 0. В прикреплённом файле функция слишком сильно разблурена и корреляции проявляются на большом масштабе >> period. Таким образом, последние результаты, приведённые мной не показательны ( Сижу разбираюсь ещё..) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 19, 2019, 21:35 Нужно будет поиграться с размером запроса. Увеличил запрос с 10 до 20 значений и сразу 100% точность.Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 19, 2019, 21:37 Круто) У меня 95% совпадений максимум получается) Но обучение практически мгновенно) А я устал ждать, Кроватный ноутбук не очень быстр. :)Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 20, 2019, 09:23 У меня 95% совпадений максимум получается) Сейчас увеличил длину последовательности для обучения до 2000 значений, проверяю на следующих 500 значениях, размер запроса 30 значений.Количество ошибок 7 из 500 (1.4%) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 09:59 Цитировать Сейчас увеличил длину последовательности для обучения до 2000 значений, проверяю на следующих 500 значениях, размер запроса 30 значений. А вы не могли бы исходники выложить? Хочу посмотреть сколько по времени она у меня обучаться будет.. :)Количество ошибок 7 из 500 (1.4%) Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 20, 2019, 10:03 А вы не могли бы исходники выложить? Хочу посмотреть сколько по времени она у меня обучаться будет.. :) Код
Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 20, 2019, 10:14 Хочу посмотреть сколько по времени она у меня обучаться будет.. :) Количество эпох можно значительно уменьшить, без потери точности.Сейчас уменьшил их до 100, точность осталась та же. Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 20, 2019, 10:36 Начал играться со структурой сети: сделал 32 входа - первый скрытый слой на 32 нейрона - второй скрытый слой на 16 нейронов - 2 выхода.
Точность: Error = 3/500 0.6% Это при 100 эпохах. Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 12:38 Хе, хе :) Если усложнить функцию, добавив ещё одну быструю гармонику:
Код то обе сети сравниваются, при прочих равных параметрах (IN_SIZE = period = 30) А вот по времени :) Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 20, 2019, 13:12 Вы про время обучения?
Ну для задачи предсказания я бы его не учитывал. :) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 13:19 Вы про время обучения? Ну это да)Ну для задачи предсказания я бы его не учитывал. :) Вобщем резюме такое: нейросети рулят :) Как сказал Педро Домингос: "Люди беспокоятся, что компьютеры станут слишком умными и захватят мир, но реальная проблема в том, что они слишком глупы и уже его захватили". :) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 13:43 Мне вот ещё интересно, как прокомментируют результаты этих двух тестов, два наших Главных уважаемых эксперта? :)
Название: Re: К проблеме предсказания событий Отправлено: ViTech от Октябрь 20, 2019, 14:58 Мне вот ещё интересно, как прокомментируют результаты этих двух тестов, два наших Главных уважаемых эксперта? :) А это кто такие и почему их всего два? Остальные, значит, !(главные && уважаемые && эксперты)? Обидно будет :). Код не смотрел. Нейросеть - это, конечно, хорошо. Но с разбодяженой синусоидой разве анализ Фурье не справится? С нейросетью не получается ли из пушки по воробьям стрелять? И, главный вопрос: когда ждать обвала фондовых рынков? :) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 15:14 Цитировать А это кто такие и почему их всего два? Остальные, значит, !(главные && уважаемые && эксперты)? Обидно будет :) Ну почему же) У нас все участники форума весьма уважаемые и эксперты в своих областях) Просто есть двое из лорца, которые более главнее) Да, мир не справедлив, примите это как данность) Цитировать Код не смотрел. Нейросеть - это, конечно, хорошо. Но с разбодяженой синусоидой разве анализ Фурье не справится? С нейросетью не получается ли из пушки по воробьям стрелять? Справился бы) А вот с фондовыми рынками едва ли) Цитировать И, главный вопрос: когда ждать обвала фондовых рынков? :) А чего ждать) Обучаете нейросеть, и рушите биржу за биржей) Профит: Вы на солидной яхте, попивая виски, похлопываете по попе молоденьких моделей)Только если что, вы потом про нас с Old'ом не забудьте, ладно ;) (Я про финансовый вопрос, а не про "по попе" :)) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 19:22 Цитировать И, главный вопрос: когда ждать обвала фондовых рынков? :) Кстатии, а почему бы и не проверить всё это дело на динамике стоимости акций или аблигаций или ещё чего на фондовом рынке? :)Правда, нужен открытый доступ (на большом промежуток времени) к данным по этой самой динамике.. И потом, там функция не бинарная..( Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 20, 2019, 19:27 Кстатии, а почему бы и не проверить всё это дело на динамике стоимости акций или аблигаций или ещё чего на фондовом рынке? :) Нейронки там уже давно и успешно используют. Насколько я слышал. :)Правда, нужен открытый доступ (на большом промежуток времени) к данным по этой самой динамике.. У них там есть определенный набор фигур, типа после роста с тремя горбами начинается затяжной спад, и т.д. Раньше их рассматривали трейдеры на графиках и делали прогнозы, а сейчас нейросетки. Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 20, 2019, 19:29 И потом, там функция не бинарная..( Ну и что, можно учить сеть на "начнется спад", "будет все ровно" и "бурный рост". :)Мы ей данные за месяц - она нам прогноз на неделю. :) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 19:31 Кстатии, а почему бы и не проверить всё это дело на динамике стоимости акций или аблигаций или ещё чего на фондовом рынке? :) Нейронки там уже давно и успешно используют. Насколько я слышал. :)Правда, нужен открытый доступ (на большом промежуток времени) к данным по этой самой динамике.. У них там есть определенный набор фигур, типа после роста с тремя горбами начинается затяжной спад, и т.д. Раньше их рассматривали трейдеры на графиках и делали прогнозы, а сейчас нейросетки. Ну вот, обрадовали) А у меня уж тут планы.. Кредит на яхту взял :( Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 19:34 И потом, там функция не бинарная..( Ну и что, можно учить сеть на "начнется спад", "будет все ровно" и "бурный рост". :)Мы ей данные за месяц - она нам прогноз на неделю. :) А сколько по времени она обучаться будет, если функция непрерывная? И если динамика быстрая: дни, часы.. Классические нейронки также справляются? Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 20, 2019, 19:47 А сколько по времени она обучаться будет, если функция непрерывная? И если динамика быстрая: дни, часы.. Классические нейронки также справляются? Ну так сеть можно доучивать по мере поступления данных.А скорость обучение можно повысить задействовав GPU. У меня это дало ускорение в десятки раз по сравнению с вычислением на i8. А есть специализированные процессоры... И в биржевых торгах, наверное, сеть натаскивают на определенный набор фигур, им не нужно на непрерывный поток тренировать. Еще раз наверное. :) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 20:08 Цитировать А скорость обучение можно повысить задействовав GPU. Эта возможность, как я понимаю, уже под капотом конкретной библиотеки? Просто время обучения - это сейчас узкое горло нейросетей, над решением которого очень интенсивно бъются) Кстатии, градиентный спуск.. Наш minsearch не страдает теми детскими болезнями) И устойчив по отношению к сваливанию в локальный минимум) Всё опубликовать его не можем..( У меня голова другим забита, а мой коллега диссер пишет.. ему тоже не до этого( Цитировать У меня это дало ускорение в десятки раз по сравнению с вычислением на i8. А здесь мы видели ускорение порядка 10^4-10^5 на обычном CPU :) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 20:19 Цитировать А здесь мы видели ускорение порядка 10^4-10^5 на обычном CPU :) Но согласен, здесь задача очень частная просто..Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 20, 2019, 20:26 Эта возможность, как я понимаю, уже под капотом конкретной библиотеки? Я сильно не упирался пока, но у меня не получилось с наскока запустить ее с OpenCL. А может это у меня на ноуте с двумя видюхами она не запустила CUDA на второй nvidia.Завтра на работе попробую на рабочем десктопе. Я до этого игрался с библиотекой skynet. Вот с ней эффект виден невооруженным глазом, но у skynet есть свои косяки, она не может/поломано сохранение модели сети из GPU. Чинить тоже нет ни времени, ни желания. :( Наш minsearch не страдает теми детскими болезнями) Здесь больше задача классификации, когда мы показываем сети разные графики, а она говорит что это такое.Ваш minsearch умеет классифицировать? Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 20:40 Цитировать Ваш minsearch умеет классифицировать? Он умеет искать глобальный минимум функции многих переменных, причём, если он его нащупал, то он экспоненциально быстро к нему сходится.. И ещё он может "выкорабкиваться" из локальных минимумов.. И ещё он хорошо параллелится :)Другой вопрос, можно ли проблему классификации связать к проблеме минимизации.. Это мне вот так, с наскока, не очевидно.. Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 20, 2019, 20:49 Другой вопрос, можно ли проблему классификации связать к проблеме минимизации.. Это мне вот так, с наскока, не очевидно.. Тоже затрудняюсь ответить.Посмотрел несколько трейдерских фигур, по мне так нейронку можно на них натренировать, а она будет говорить вероятность смены тренда. https://tradexperts.ru/tehnicheskij-analiz-foreks/figury/figury-razvorota-i-prodolzheniya Внизу есть перечень основных фигур. Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 20, 2019, 21:55 Цитировать Посмотрел несколько трейдерских фигур, по мне так нейронку можно на них натренировать, а она будет говорить вероятность смены тренда. Спасибо за ссылку, почитал. У меня сложилось несколько скептическое, и я бы даже сказал, неоднозначное чувство к корректности их оценки, поэтому от комментариев воздержусь, а выскажу свои соображения.Я заметил, что есть две, на мой взгляд, наиболее важные закономерности в этой истории, а именно: можно выделить два масштаба корреляций - первый, это мелкомасштабный, сильно зашумлённый, практически не отличимый от белого шума. И амплитуда такого шума мала (по сравнению с общим трендом). Второе - это то, что практически в большинстве случаев, на больших масштабах можно выделить линейный тренд: либо ниспадающий, либо наоборот, ну или, почти, никакой :) А мы знаем, что производная от линейной функции - это константа. А это означает, что если избавиться от мелких флуктуаций, например, разблурив кривую, и взять от неё производную :), то график становится более наглядным и удобным для дальнейшего анализа) Т.е. он после этой операции будет колебаться вокруг некоторого среднего (которое соответствует наклону тренда), флуктуируя с амплитудой, порядка среднеквадратичного отклонения (точнее корню от неё). Самое интересное, как распределенны пики (минимумы и максимумы) такой кривой. Сразу скажу, что, на основе опыта прошедших дней, могу сказать, что нейросети легко распознают исходный тренд (т.е. его наклон)). Так вот, гораздо конструктивнее (на мой взгляд) анализировать и натравливать нейросеть на производную сглаженной функции) А саму исходную функцию легко восстановить, простым интегрированием) Если что, можно замутить совместное исследоание по реальным данным по этому вопросу) Взломаем, так сказать, систему) Мне это интересно, чисто, с академической точки зрения) Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 21, 2019, 07:48 Спасибо за ссылку, почитал. У меня сложилось несколько скептическое, и я бы даже сказал, неоднозначное чувство к корректности их оценки, поэтому от комментариев воздержусь, а выскажу свои соображения. По мне, так это вообще все высосано из пальца. :)Если что, можно замутить совместное исследоание по реальным данным по этому вопросу) Взломаем, так сказать, систему) Мне это интересно, чисто, с академической точки зрения) Интересное предложение, но мне эта тема интересна в первую очередь для классификации физических сигналов.Тут флуктуации появляются из-за среды распространения сигнала, внешних факторов, аппаратуры съёма и т.д. На тестовых сигналах (с генерированных вручную) я сеть проверил, вроде результаты не плохие, но на реальных данных сеть пока не тестировалась. Только плотно заняться этой темой у меня получиться не раньше нового года, сейчас загрузка большая на других проектах. :( Название: Re: К проблеме предсказания событий Отправлено: ViTech от Октябрь 21, 2019, 11:15 Спасибо за ссылку, почитал. У меня сложилось несколько скептическое, и я бы даже сказал, неоднозначное чувство к корректности их оценки, поэтому от комментариев воздержусь, а выскажу свои соображения. По мне, так это вообще все высосано из пальца. :)Если бы всё было так просто, как на тех картинках (и не только), все давно бы уже на яхтах плавали :). Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 21, 2019, 11:45 Если бы всё было так просто, как на тех картинках (и не только), все давно бы уже на яхтах плавали :). Так я про это и говорю. Принимать решение по фигурам на графике это что-то из области магии. :)Название: Re: К проблеме предсказания событий Отправлено: ViTech от Октябрь 21, 2019, 11:57 Так я про это и говорю. Принимать решение по фигурам на графике это что-то из области магии. :) Я ж и поддерживаю :). В тех магических техниках не хватает слова "вероятно". Причём подозреваю, вероятность будет колебаться в районе 0.5, как и в любой другой точке графика :). Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 21, 2019, 12:15 Я ж и поддерживаю :). В тех магических техниках не хватает слова "вероятно". Причём подозреваю, вероятность будет колебаться в районе 0.5, как и в любой другой точке графика :). Обычная вероятность встретить динозавра - 50%, можно встретить, можно не встретить. :)Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 22, 2019, 22:44 Спасибо за ссылку, почитал. У меня сложилось несколько скептическое, и я бы даже сказал, неоднозначное чувство к корректности их оценки, поэтому от комментариев воздержусь, а выскажу свои соображения. По мне, так это вообще все высосано из пальца. :)Если что, можно замутить совместное исследоание по реальным данным по этому вопросу) Взломаем, так сказать, систему) Мне это интересно, чисто, с академической точки зрения) Интересное предложение, но мне эта тема интересна в первую очередь для классификации физических сигналов.Тут флуктуации появляются из-за среды распространения сигнала, внешних факторов, аппаратуры съёма и т.д. На тестовых сигналах (с генерированных вручную) я сеть проверил, вроде результаты не плохие, но на реальных данных сеть пока не тестировалась. Только плотно заняться этой темой у меня получиться не раньше нового года, сейчас загрузка большая на других проектах. :( Пример: У вас есть множество еденичных векторов в D-мерном пространстве.. D>>1. Нужно оптимально, по определённому критерию, выделить N групп, включающих в себя все исчерпывающие классы таких векторов.. Сколько таких групп в среднем будет? Можно ли это как то аналитически вывести? Я не знаю) Но есть идеи, как это можно с помощью computer science реализовать) Название: Re: К проблеме предсказания событий Отправлено: Old от Октябрь 23, 2019, 07:56 А сколько в вашей задаче класифицирующих параметров? Мне интересно определять форму кривой.Входные данные это одномерный массив амплитуд во времени. Программа минимум: получить класс кривой. Например: прямая, синусоида, треугольный сигнал, прямоугольный сигнал. Амплитуда у всех кривых изменяется от -1 до +1, а вот периодов за это время может быть разное число. Я по быстрому сделал пример, сеть прямую от синусоиды отличает легко, на реальных сигналах проверить не получается в связи с нехваткой времени. :) Возможно, придется обучать сеть по кривым с разными амплитудами, что бы сеть сама справлялась с флуктуациями реального сигнала. Следующий шаг, это попробовать определять крутизну фронтов, например треугольник с крутым передним фронтом, ровнобедренный треугольник, треугольник с крутым задним фронтом. Может разделить классы по крутизне фронтов. В программе минимум: вход 1024 значения амплитуды - выход 4 класса (прямая, синусоида, треугольник, прямоугольник). В следующем шаге: вход тот же - выходов ?? классов (прямая, синусоида крутая, синусоида равнобедренная, синусоида пологая, треугольник крутой, ... ). :) Вот как-то так я обдумываю. :) Название: Re: К проблеме предсказания событий Отправлено: m_ax от Октябрь 27, 2019, 16:55 Усовершенствовал алгоритм и перевёл всё на bitset. Всё стало просто летать)
На вход подаётся bitset<IN_SIZE>, на выходе bitset<OUT_SIZE> Провёл сравнительные тесты на зашумлённых данных: Код где x - случайная величина на интервале [0, pi/2]. Результаты для tiny_dnn и vanda (на боьшой выборке N = 480 испытаний): Код Примерно 87% правильных ответов. Статистически результаты у обоих вариантов практически не отличимы, а вот время обучения отличается на 6 порядков :) Это круто :) |