Обсуждение статьи "Нейросети — это просто (Часть 13): Пакетная нормализация (Batch Normalization)" - страница 2

 
Dmitry Nazarov #:

Спасибо Алексей, да не выкладывал сюда результаты. 

Проблема оказалась в другом месте.

Процесс сохранения/загрузки работает.

Решение нашлось в строке создания елментов нейроннос сети с использрванием Randomize

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



то же на всяки случая сделал с функцией создания первоначальных весов.


Теперь бэктест выдает один и тот же результат при тестирования обученной сети после загрузки файла обучения.

Входы единтичны посекундно.

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

 

Здравствуйте Дмитрий

Подскажите, пожалуйста, есть ли у Вас пример кода LSTM с версией файла neuronet.mqh из статьи 13?

Я пытался использовать файл fractal_lstm.mq5 из статьи 4, но безуспешно... при обучении возникает ошибка...


спасибо

 
Здравствуйте, эта серия про нейронные сети очень хороша. Поздравляю!

Для меня, как для новичка в NN, это было очень познавательно. Хочу использовать ваши предложения для написания советника. Это должен быть набор конструкций для DNN, чтобы попробовать различные функции и топологии и узнать, какие из них лучше.

Итак, я модифицировал ваш последний пример (MLMH + Convolutional).
Я добавил много различных функций активации (32 функции - гаусс, SeLU, SILU, Softsign, Symmetric Sigmoid,...) и их производные,
Я изменил расчет ошибки/успеха (Buy, Sell, DontBuySell), потому что я думаю, что "Не торговать" не является неопределенным. Так что если NN распознает отсутствие покупки и продажи и это правильно в реальности, то это должно быть вознаграждено в петле обратной связи.

Может быть, у кого-то уже есть решения или кто-то может помочь со следующими вопросами:

Я не могу создать функции, которым нужны веса из всего слоя: Softmax, Maxout, PRelu с выученной альфой.
Также я не могу сделать различные оптимизации (AdaBound, AMSBound, Momentum).
Я думаю о DNN-Builder-EA для тестирования, чтобы найти лучшую топологию сети.

1. как найти количество нейронов и весов на слой?

2. какую топологию вы предлагаете? Я пробовал много вариантов:
A) Несколько слоев нейронов с количеством = 19000, затем убывающее количество в следующих слоях *0.3
B) 1 конволюционный + 12 слоев MLMH с каждым 300 нейронов
C) 29 слоев с каждым 300 нейронов
D) 29 слоев, которые каждый 300 нейронов и нормализация между каждым слоем.
Я получаю прогнозы максимум на 57%, но я думаю, что это может/должно быть лучше.
Должны ли быть слои с возрастающим количеством нейронов, а затем снова убывающим?

3. Как я могу сделать обратный тест? Есть условие, которое должно возвращать false, когда в тестовом режиме - я пытался его отметить, но безуспешно.
Есть много объяснений очень подробно, но я не понимаю некоторые обзоры.

4. Какой слой после какого? Где должны быть слои BatchNorm?

5. Сколько выходных нейронов имеет конволюционный слой или все мультиголовые, как MLMH, когда слои=x, шаг=y, window_out=z? Мне нужно вычислить количество нейронов следующего слоя. Я хочу избежать слишком больших слоев или узких мест.

6. Что насчет LSTM_OCL? Не слишком ли он слаб по отношению к вниманию/MH, MHML?

7. Я хочу реализовать eta для каждого слоя, но у меня не получилось (не хватает знаний о классах - я хороший кодер 3-го поколения).

8. Что нужно изменить, чтобы получить коэффициент ошибок < 0.1. У меня постоянная 0,6+.

9. Что делать со смещенными нейронами в этой существующей компоновке слоев?

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

Может быть, скоро выйдет часть 14 с решениями для всех этих вопросов?

С наилучшими пожеланиями
и большое спасибо заранее.
 

HI. Я получаю эту ошибку

ФУНКЦИЯ-КАНДИДАТ НЕ ЖИЗНЕСПОСОБНА: НЕ ИЗВЕСТНО ПРЕОБРАЗОВАНИЕ ИЗ 'DOUBLE __ATTRIBUTE__((EXT_VECTOR_TYPE92000)' В 'HALF4' ДЛЯ 1-ГО АРГУМЕНТА

2022.11.30 08:52:28.185 Fractal_OCL_AttentionMLMH_b (EURJPY,D1) OpenCL program create failed. Код ошибки=5105

2022.11.30 08:52:28.194 Fractal_OCL_AttentionMLMH_b (EURJPY,D1) Ошибка функции feedForward: 4401
2022.11.30 08:52:28.199 Fractal_OCL_AttentionMLMH_b (EURJPY,D1) invalid pointer access in 'NeuroNet.mqh' (2271,16)

при использовании советника из статьи часть 10 примеры

Пожалуйста, подскажите, что делать?

Спасибо

 
MrRogerioNeri недопустимый доступ куказателю в 'NeuroNet.mqh' (2271,16)

при использовании советника с примерами из части 10 статьи

Пожалуйста, подскажите, что делать?

Спасибо

Здравствуйте, можете ли вы отправить полный журнал?

 

Здравствуйте. Спасибо за помощь

Рожерио

Файлы:
20221201.log  7978 kb
 
MrRogerioNeri #:

Здравствуйте. Спасибо за помощь

Рожерио

Здравствуйте, Роджерио.

1. Вы не создаете модель.

CS      0       08:28:40.162    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) EURUSD_PERIOD_H1_ 20 Fractal_OCL_AttentionMLMH_d.nnw
CS      0       08:28:40.163    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) OnInit - 130 -> Error of read EURUSD_PERIOD_H1_ 20 Fractal_OCL_AttentionMLMH_d.nnw prev Net 5004

2. Ваш графический процессор не поддерживает удвоение. Пожалуйста, загрузите последнюю версию из статьи https://www.mql5.com/ru/articles/11804.

CS      0       08:28:40.192    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) OpenCL: GPU device 'Intel HD Graphics 4400' selected
CS      0       08:28:43.149    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) 1:9:26: error: OpenCL extension 'cl_khr_fp64' is unsupported
CS      0       08:28:43.149    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) 1:55:16: error: no matching function for call to 'dot'
CS      0       08:28:43.149    Fractal_OCL_AttentionMLMH_d (EURUSD,H1) c:/j/workspace/llvm/llvm/tools/clang/lib/cclang\<stdin>:2199:61: note: candidate function not viable: no known conversion from 'double4' to 'float' for 1 st argument
Нейросети — это просто (Часть 34): Полностью параметризированная квантильная функция
Нейросети — это просто (Часть 34): Полностью параметризированная квантильная функция
  • www.mql5.com
Продолжаем изучение алгоритмов распределенного Q-обучения. В предыдущих статьях мы рассмотрели алгоритмы распределенного и квантильного Q-обучения. В первом мы учили вероятности заданных диапазонов значений. Во втором учили диапазоны с заданной вероятностью. И в первом, и во втором алгоритме мы использовали априорные знания одного распределения и учили другое. В данной статье мы рассмотрим алгоритм, позволяющей модели учить оба распределения.
 

Здравствуйте Дмитрий

Вы написали: Вы не создаете модель.

Но как мне создать модель? Я компилирую все шрифты программы и запускаю советник.

Советник создает файл в папке 'files' с расширением nnw. этот файл не является моделью?

Спасибо

 

Здравствуйте, учитель Дмитрий

Теперь ни один из .mqh не компилируется.

Например, когда я пытаюсь скомпилировать vae.mqh, я получаю такую ошибку

'MathRandomNormal' - undeclared identifier VAE.mqh 92 8

Попробую начать с самого начала.

Еще один вопрос: когда вы выкладываете новую версию NeuroNet.mqh, эта версия полностью совместима с другими старыми версиями советника?

Спасибо

rogerio

PS: Даже удалив все файлы и каталоги и начав с новой копии с ЧАСТИ 1 и 2 я больше не могу скомпилировать никакой код.

Например, когда я пытаюсь скомпилировать код в fractal.mq5, я получаю эту ошибку:

cannot convert type'CArrayObj *' to reference of type 'const CArrayObj *' NeuroNet.mqh 437 29

Извините, я действительно хотел понять ваши статьи и код.

PS2: Хорошо, я удалил слово "const" в 'feedForward', 'calcHiddenGradients' и 'sumDOW' и теперь я могу скомпилировать Fractal.mqh и Fractal2.mqh