Блог им. afecn19 |Мой "значки на танчиках"

Лет 12 назад, когда я впервые ковырял тему нейросетей на фондовой бирже, прочитал как кто то облапошился обучая нейросеть распознавать танчики. Нет, сеть результат показала, но как оказалось на картинке с танчиками был какой то значок, а где танчиков не было, значка не было и нейросеть научилась распознавать не танчики, а наличие отсутствие вот этого значка. Запомнилось мне это наверно, потому что это было единственное, что я тогда понял о нейросетях. 
И вот теперь я поймал свои «значки», когда пытался предсказать динамику, на основе CNN+вейвлетпреобразований. Тут подробней. Нет я не заглядывал в будущее, и не так знак поставил где то. Я не стал нормализовывать цены, ибо считал что для CNN не важно все это, картинки они ведь и в Африке картинки, и вот так выглядит картинка вейвлетпробразования для ВТБ с ее копеечными ценами за акцию и Норникель, с его десятками тысячами рублей за акцию:
Мой "значки на танчиках"

( Читать дальше )

Блог им. afecn19 |CNN+wavelet = blue stocks forecast

После использования вейвлетов для классификации, я конечно сразу попробовал оценить ценность вейвлет для прогнозирования, но тестирование мягко говоря затянулось. Эпох я прогонял много, 600, а одна эпоха это минута. И оставляя нейросеть на ночь я забывал, то одно, то другое. Затем я стал пробовать разные learning rate, датасеты, архитектуры и обнаружилось что тот самый позитивный первоначальный результат (в виде 55% accuracy на валидации и over +75% на тесте) исчез, сеть не могла зацепить ничего, даже на тесте. В пятницу я решил в последний раз прогнать сеть и уже с 50 эпохи сеть начала уверенно обучаться. Обьяснение тому что на том же наборе данных, одна и та же сеть, то обучается, то необучается, у меня одно — каждый раз нейросеть начинает блуждать по гиперплоскости функции ошибки с разных мест, и при одном наборе весов застревает в зоне локальных минимумов, которые чуть-чуть лучше 50%, не в силах перескочить в область более низких минимумов. 
Данные все те же — голубые, отечественные. Тестирую на недельках, прогноз на недельку вперед. 

( Читать дальше )

Блог им. afecn19 |CNN+wavelet

Займемся бессмыслицей. Никакого прогнозирования, просто попробуем методами вейвлет преобразований и CNN ответить на вопрос — есть или нет разница в цикличности при росте фишки и падении? Эллиот чертил 3 волны вверх и 2 вниз. Давайте почертим и мы.
Данные я взял недельные, от понедельника до пятницы, но с разбивкой по 15 минуткам, итого ряд в 175 элементов. Судя по прошлым результатам, мизерная длина, и никакой цикличности там нет. Но...«а вдруг?!». Ну а разбивка недельная, в надежде уловить недельную цикличность, все таки понедельник это «день тяжелый», пятница это «тяпницы», четверг это маленькая пятница. В общем каждый день недели уникален и помню какие то корреляции/антикорреляции даже были, вроде пятница и понедельник шли вразрез, а четверг и пятница шли вместе. Впрочем точно не помню.
Каждому ряду в 175 отчетов я присвоил лейбл (1 рост, 0 падение). Ряд прогнал через вейлет преобразование, получив квадратную картинку. Все это добро загнал в CNN и стал ждать чего нейросеть намутит. В теории, после вейвлет преобразования, на полученной картинке, не должно быть никакого намека на то росла фишка или нет. Следы наличия тренда присутствуют, но какого именно не указывается. Хотя это не точно. А вот точно что должны быть следы цикличности, и если при росте и падении цикличность разная то точность классификации должна быть больше 0,5… Хотя это не точно.  Ну нам жалко чтоли, попробовать? Пуская нейросетка крутит колесико. Крутило колесико нейросеть долго....:

CNN+wavelet



( Читать дальше )

Блог им. afecn19 |CNN и финансовые TimeSeries

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

Сначала определимся какие рисунки подносим CNN. В качестве рисунков мы можем подать:

  1. Сырые ряды: цены, обьемы, индикаторы
  2. Индикаторы. То есть для каждого значения подсчитать набор тех.индикаторов и красиво оформить их в матрицу. Ведь что такое рисунок? Это всего лишь набор пикселей, каждый пиксель это значение какого то техиндикатора, чем он больше тем пиксель темней. Тут есть даже практическая реализация которой я частично и воспользовался. https://github.com/nayash/stock_cnn_blog_pub
  3. Представить сырые временные ряды в другой системе координат. Например GramianAngularField, где как пишут авторы больше информации. Так блин и пишут. Набиваете в гугле GramianAngularField и выпадает куча ссылок, но мне лично больше понравилась работа иранских товарищей https://arxiv.org/pdf/1810.08923.pdf


( Читать дальше )

Блог им. afecn19 |Блеск и нищета нейросети. Part 5.

Продолжу изучение нейросетей. Для тех кто случайно наткнулся на этот пост, но не хочет ковырять предшествующие поясняю.
  Был сгенерирована табличка в 50 тысяч строк и 103 столбцов. Один столбец это даты, еще один — таргет, который мы пытаемся предсказать (событие 1 и событие 0). 101 столбец изображают фичи, из которых 100 случайные величины от 1 до 10, а одна осмысленная (Week) принимает значение от 1 до 5. Для week от 1 до 4 равновероятно событие 1 и 2, для Week = 5 вероятность события 1 = 60%, 2 = 40%.
 «Шо за фигня аффтор?!». Фигня не фигня, а я моделирую свое виденье рынка и своего подхода к поиску рабочих стратегий. Виденье рынка предполагает что рынок рандомно блуждает значительную часть времени (в моему случаи 80% времени), а оставшееся его можно описать несколькими хорошими фичами. Ну как описать? Не на 100%, ну а где то процентов на 60. Сравните с детерминированным подходом ученых столетней давности — «если нам дать все фичи и много много вычислительных мощностей мы вам все посчитаем, с точностью в 100% и для любого мгновения времени!». Понятно что после этого появилось много других идей, нелинейная динамика к примеру, которая именно предполагает принципиальную невозможность прогнозирования, а не потому что нам чего то в данных недодали. Ну и наконец постановка задачи: у нас есть 101 фича, и нам с помощью инструментов ML надо получить такой прогноз события 1, который бы бился с заложенной нами неэффектиностью. И тут не помогут завывания нейросетей-что мы «фичи кривые заложили, на которых совершенно невозможно работать!», что «просто рынок изменился!, не имезнился мы бы огого!». Нам совершенно плевать на accuracy на трейне и даже на тесте. Мы как тот глупый учитель, который может не очень то и соображает зато у которого на клочке  бумажки записан правильный ответ, а напротив него ученик, в очечках, но у которого почему то при всех сплетнях что он в уме может перемножить трехзначные цифры, при сложения 1+1, получается то 5, то 6 то -32. Не, конечно вариант что мальчик в очечках не так уж и не прав возможен, может он считал в невклидовых метриках к примеру, или перемножать он умеет а вот что такое складывание ему просто не сказали.

( Читать дальше )

....все тэги
2010-2020
UPDONW