Обсуждение статьи "Глубокие нейросети (Часть VII). Ансамбль нейросетей: stacking"

 

Опубликована статья Глубокие нейросети (Часть VII). Ансамбль нейросетей: stacking:

Мы продолжаем строить ансамбли. Теперь к bagging-ансамблю, созданному ранее, добавим обучаемый объединитель — глубокую нейросеть. Одна нейросеть объединяет 7 лучших выходов ансамбля после обрезки. Вторая принимает на вход все 500 выходов ансамбля, обрезает и объединяет их. Нейросети будем строить с помощью пакета keras/TensorFlow из Python. Кратко рассмотрим возможности пакета. Проведем тестирование и сравним качество классификации bagging и stacking ансамблей.

Построим историю обучения:


history_stop_500

Рис. 11. История обучения нейросети DNN500

Чтобы улучшить качество классификации, мы можем модифицировать множество гиперпараметров: способ инициализации нейронов, регуляризацию активации нейронов и их весов и т.д.. Результаты, полученные почти с интуитивными параметрами, обнадеживают качеством, но огорчают потолком. Без оптимизации получить Accuracy больше 0.82 не получилось. Вывод: нужно опимизировать гиперпараметры нейросети. В предыдущих частях мы экспериментировали с байесовской оптимизацией. Думаю, она применима и здесь, но это отдельная и непростая тема.

Автор: Vladimir Perervenko

 

В следующих статьях от вас есть вероятность перехода исключительно на Python? потому что объем предустановленных пакетов и сред скоро начнет расти по экспоненте

про stacking интересно, спасибо :)

 
Maxim Dmitrievsky:

В следующих статьях от вас есть вероятность перехода исключительно на Python? потому что объем предустановленных пакетов и сред скоро начнет расти по экспоненте

про stacking интересно, спасибо :)

И сейчас и в дальнейшем все расчеты в  R но с использованием пакетов(модулей) Python. Благо их великое множество.

 
Vladimir Perervenko:

И сейчас и в дальнейшем все расчеты в  R но с использованием пакетов(модулей) Python. Благо их великое множество.

хорошо, буду пытаться выковыривать значит :)

 
Привет, профессор Владимир
Поскольку KIRS предназначен для людей, а не для машин, это означает, что мы не можем интегрировать их в эксперта
Можете ли вы построить пример модели разнообразия входных данных для моделей с глубокой сеткой KIRAS, таких как анализ настроений в Twitter или текстовый анализ для экономических новостей
Приветствия и мирز ،
 
azzeddine remmal:
Привет, профессор Владимир
Поскольку KIRS предназначен для людей, а не для машин, это означает, что мы не можем интегрировать их в эксперта
Можете ли вы построить пример модели разнообразия входных данных для моделей с глубокой сеткой KIRAS, таких как анализ настроений в Twitter или текстовый анализ для экономических новостей
Приветствия и мирز ،

Приветствую azzeddine,

Keras предназначен для людей в том смысле, что необходимо минимальное количество кода для построения структурно сложных  моделей. Конечно мы можем и должны использовать эти модели в экспертах. Это как раз решенный и отработанный вопрос. Иначе зачем эти упражнения?

Конечно можно построить модели которые будут отслеживать, анализировать настроение в текстовых сообщениях Twitter или в ленте новостей Blomberg. Это отдельное направление которое я не тестировал и честно говоря не очень верю в него. Но в интернете море примеров по этой теме. 

Начинать нужно с простого.

Удачи

 

Здравствуйте Владимир, спасибо за статьи. Сам по профессии программист, в основном .NET, с#. Написал советник на основе ваших статей только для mt5 терминала. Использую Keras c поддержкой GPU, экономит время и нервы для обучения моделей , R и mt5 связал через R.Net(написал библиотечку dll, могу выложить на github). Пробывал также Н2О, работает медленно, GPU поддержка только под линукс, не подошло, я работаю под виндовс. Рад, что вы тоже, перешли на Keras в ваших статьях. Советник показал неплохие результаты для пары EURUSD 15М, выборку данных брал с 2003 по 2017 год(обучение,тестирование), использовал только три предиктора  v.fatl, v.rbci, v.ftlm, больше брал пердикторов, результаты хуже, нейросеть два скрытых слоя dense по 1000 нейронов в каждом(много нейронов не факт что надо, брал и по 10 в каждом скрытом слое, тоже неплохой результат выдавало). Советник почти такой же как у вас, с небольшими модификациями, стоп лост 500, тейк профит 100, открываю не больше 10 позиций, ну и закрываю все прыведущии позиции Buy, если появляются новые позиции Cell,и наоборот, все просто, остальной код как у вас. Ну все этот только для  EURUSD, для других котировок возможно все надо делать по другому.

Вот результат работы советника с 2017 года по наше время:

тест

Поставил советник пока на центовый счет, тестирую 2 недели, пока работает в плюс. Много времени ушло на поиск модели нейросети и тестирование ее, перебора разных вариантов сетей Dense,LSTM, CONV, остановился на простой Dense. Также перебор разных предикторов, ваших DigFiltr + всевозможные индикаторы, ваши предикторы показали лучший результат, без всяких дополнительных индикаторов. Думаю это не предел, можно сделать еще намного лучше советник, cсейчас буду пробывать применять ансамбли из ваших последних 2-статей. Жду с нетерпением ваших следующих публикаций, если хотите, буду также информировать вас о своих успехах.

 
Евгений Чистюхин:

..., R и mt5 связал через R.Net(написал библиотечку dll, могу выложить на github). ...

Это очень интересно. 

Где можно посмотреть?

Ваша библиотека имеет какие-либо преимущества перед этой?

 

Vladimir Perervenko

Нейросети будем строить с помощью пакета keras/TensorFlow из Python

А чем не устраивает в R 

keras: R Interface to 'Keras'

или 

kerasR: R Interface to the Keras Deep Learning Library

CRAN - Package keras
  • cran.r-project.org
About Keras Layers About Keras Models Using Pre-Trained Models Keras Backend Writing Custom Keras Layers Frequently Asked Questions Guide to the Functional API Getting Started with...
 
Евгений Чистюхин:

Здравствуйте Владимир, спасибо за статьи. Сам по профессии программист, в основном .NET, с#. Написал советник на основе ваших статей только для mt5 терминала. Использую Keras c поддержкой GPU, экономит время и нервы для обучения моделей , R и mt5 связал через R.Net(написал библиотечку dll, могу выложить на github). Пробывал также Н2О, работает медленно, GPU поддержка только под линукс, не подошло, я работаю под виндовс. Рад, что вы тоже, перешли на Keras в ваших статьях. Советник показал неплохие результаты для пары EURUSD 15М, выборку данных брал с 2003 по 2017 год(обучение,тестирование), использовал только три предиктора  v.fatl, v.rbci, v.ftlm, больше брал пердикторов, результаты хуже, нейросеть два скрытых слоя dense по 1000 нейронов в каждом(много нейронов не факт что надо, брал и по 10 в каждом скрытом слое, тоже неплохой результат выдавало). Советник почти такой же как у вас, с небольшими модификациями, стоп лост 500, тейк профит 100, открываю не больше 10 позиций, ну и закрываю все прыведущии позиции Buy, если появляются новые позиции Cell,и наоборот, все просто, остальной код как у вас. Ну все этот только для  EURUSD, для других котировок возможно все надо делать по другому.

Вот результат работы советника с 2017 года по наше время:

Поставил советник пока на центовый счет, тестирую 2 недели, пока работает в плюс. Много времени ушло на поиск модели нейросети и тестирование ее, перебора разных вариантов сетей Dense,LSTM, CONV, остановился на простой Dense. Также перебор разных предикторов, ваших DigFiltr + всевозможные индикаторы, ваши предикторы показали лучший результат, без всяких дополнительных индикаторов. Думаю это не предел, можно сделать еще намного лучше советник, cсейчас буду пробывать применять ансамбли из ваших последних 2-статей. Жду с нетерпением ваших следующих публикаций, если хотите, буду также информировать вас о своих успехах.

Добрый день Евгений.

Я рад, что Вам помогают материалы моих статей. Несколько вопросов.

1. Насколько я понял Вы используете keras for R? скрипты пишите на R или на Python? 

2. У Вас не пошла библиотека шлюз которую используем мы? смотреть здесь 

3. Выложите пожалуйста свою версию библиотеки и пример какого нибудь скрипта. Интересно посмотреть, попробовать, сравнить.

4. Конечно мне и думаю многим энтузиастам будет очень интересно следить за Вашими экспериментами.

5. Я давно думаю открыть отдельную ветку RUSERGroop на которой можно было бы обсуждать конкретные вопросы по языку, моделям без флуда. Мечты...

Появление АПИ к Python (reticulate) открывает практически неограниченные возможности для построения систем любой сложности. У меня в ближайших планах обучение с подкреплением в тандеме с нейросетями.

Пишите об успехах, задавайте вопросы.

Удачи

 
СанСаныч Фоменко:

Vladimir Perervenko

Нейросети будем строить с помощью пакета keras/TensorFlow из Python

А чем не устраивает в R 

keras: R Interface to 'Keras'

или 

kerasR: R Interface to the Keras Deep Learning Library

Приветствую СС.

Так его и использую. keras for R. KerasR пробовал, но в связи с тем, что бекенд tensorflow очень быстро развивается( уже версия 1.8) , надежнее все таки использовать пакет, разрабатываемый и поддерживаемый коллективом Rstudio.

Удачи