На радость нейросетевикам, быстрая и бесплатная библиотека для MT4 - страница 15
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дополню. Или в случае краха терминала. Но решение вроде найдено.
Вопрос другой. Владислав вы вроде без "посредников" читаете С++ код.
Не могли бы прокомментировать проблему с одинаковыми ответами коммитета сетей и правильность инициализации значений весов? (подробно озвучены здесь и ещё логи, а здесь вопрос по весам)
Просмотрел коды. Рандомизация есть. Чего нет : поскольку в стандартном С\С++ генератор квази-случайных чисел, то перед каждым вызовом rand(), рекомендуют переинициализировать ядро (seed - srand(int ) - сдвинуть точку отсчета)
Да. На каждую сетку входы разные, хотя это и не принципиально. Можно взять стандартный сигнал, например тот же RSI и одну сетку, и все равно на брутфорсе получите отрицательные значения при любых входах.
Начальная инициализация весов -1, 1.
На счет профайла... Вы имеете ввиду результирующий файл обученной сети?
Нет. Мы говорим о разном. Я спрашивал Вас о выходах !? Пожайлуста, вникните вот здесь. Т.е. имеем комитет из 16-ти сетей, инициализируем рандомными весами, подаем на вход каждой единый &input_vector[], в результате выходы получаю одинаковые!!! (по ссылке все логи выложены)
Вот вопрос то в чём!!!
........
Да. результирующий файл обученной сети покажите здесь, или на мыло .... Интересуют значения весов. Хорошо бы еще профайл сети сразу после инициализации, без обучения. Ок?
Нет. Мы говорим о разном. Я спрашивал Вас о выходах !? Пожайлуста, вникните вот здесь. Т.е. имеем комитет из 16-ти сетей, инициализируем рандомными весами, подаем на вход каждой единый &input_vector[], в результате выходы получаю одинаковые!!! (по ссылке все логи выложены)
Вот вопрос то в чём!!!
........
Да. результирующий файл обученной сети покажите здесь, или на мыло .... Интересуют значения весов. Хорошо бы еще профайл сети сразу после инициализации, без обучения. Ок?
Мы действительно говорим о разных вещах )) Я вашу проблему понял. И проверил. И подтвердил, что да, такой эффект присутствует.
В своем последнем посте я написал "Еще одна странность", что означает что она никак не связана с проблемой рандомизации начальных весов и идентичностью работы комитета сеток с единым входным вектором.
Я говорю что при избыточном обучении (хотя эффект присутствует и при нормальном), при, согласно MSE, положительной сходимости, сеть не "находит" абсолютный минимум, и даже не локальный, а банально скатывается к границе диапазона, что говорит о проблемах в алгоритме обучения..
Кстати, проверил инициализацию начальных весов (записал сразу после создания). Все работает. Рандомизация есть.
Но вот каккую странную запись я нашел в профайле:
layer_sizes=31 31 17 2
И это при:
ann = f2M_create_standard (4, AnnInputs, AnnInputs, AnnInputs / 2 + 1, 1); при AnnInputs=30
скрытых слоев почему-то указано на один больше, чем было объявлено. Но еще больше меня смущает размер выходного слоя "2" при объявленном "1" !!!
Кстати, проверил инициализацию начальных весов (записал сразу после создания). Все работает. Рандомизация есть.
Но вот каккую странную запись я нашел в профайле:
layer_sizes=31 31 17 2
И это при:
ann = f2M_create_standard (4, AnnInputs, AnnInputs, AnnInputs / 2 + 1, 1); при AnnInputs=30
скрытых слоев почему-то указано на один больше, чем было объявлено. Но еще больше меня смущает размер выходного слоя "2" при объявленном "1" !!!
Там все верно. Всего слоев 4 : входной, 2-а скрытых, выходной. В каждом слое есть bias = 1, он в "пользовательской" размерности не участвует. Это из документации по FANN.
Удачи.
Кстати, проверил инициализацию начальных весов (записал сразу после создания). Все работает. Рандомизация есть.
Да рандомизация весов есть. Но всё же повторюсь:
Замечено. Рандомизация от -1 до 1, а в профайле сети значения весов от -10.0е--003 до 10.0e-003
Пример: (12, -7.35577636217311400000e-003) (13, 7.63970005423449810000e-002)
Это правильно?
Поэтому и просил показать Ваши профили сетей....
Да рандомизация весов есть. Но всё же повторюсь:
Замечено. Рандомизация от -1 до 1, а в профайле сети значения весов от -10.0е--003 до 10.0e-003
Пример: (12, -7.35577636217311400000e-003) (13, 7.63970005423449810000e-002)
Это правильно?
Поэтому и просил показать Ваши профили сетей....
Проверил - у меня значения разные и разбросаны почти равномерно. Вот одна из инициализаций :
connections (connected_to_neuron, weight)=(0, -9.94689941406250000000e-001) (1, -6.88415527343750000000e-001) (2, 6.51367187500000000000e-001) (3, -8.20678710937500000000e-001) (4, 9.83703613281250000000e-001) (5, -6.84936523437500000000e-001) (6, 3.60107421875000000000e-001) (7, 2.90527343750000000000e-001) (8, 7.54638671875000000000e-001) (9, -7.60314941406250000000e-001) (10, -7.78137207031250000000e-001) (11, 7.55432128906250000000e-001) (12, -6.61560058593750000000e-001) (13, 1.65771484375000000000e-001) (14, 5.71044921875000000000e-001) (15, -1.54785156250000000000e-001) (16, 9.85107421875000000000e-002) (17, -5.26916503906250000000e-001) (18, 8.58947753906250000000e-001) (19, -5.66528320312500000000e-001) (20, 7.31445312500000000000e-001) (21, -8.80310058593750000000e-001) (22, 6.82373046875000000000e-002)
................................................................................................................................................................................................................................
(42, -6.95373535156250000000e-001) (43, -7.01538085937500000000e-001) (44, -7.38952636718750000000e-001) (45, -3.44238281250000000000e-002) (46, -1.99401855468750000000e-001) (47, 2.73132324218750000000e-001) (48, 4.53186035156250000000e-001) (49, -4.70947265625000000000e-001) (50, -7.74169921875000000000e-001) (51, -9.54711914062500000000e-001) (52, 8.09509277343750000000e-001) (53, 9.92370605468750000000e-001) (54, -4.13391113281250000000e-001) (55, 6.67297363281250000000e-001) (56, 9.59289550781250000000e-001) (57, 1.09252929687500000000e-001) (58, -3.02551269531250000000e-001) (59, -5.29785156250000000000e-001) (60, 5.85754394531250000000e-001) (61, 7.99987792968750000000e-001) (62, -1.11999511718750000000e-001) (63, -8.07495117187500000000e-001) (64, -7.08862304687500000000e-001) (65, 8.05236816406250000000e-001) (66, 2.92602539062500000000e-001) (67, 3.61633300781250000000e-001) (68, -2.99011230468750000000e-001) (69, 6.24816894531250000000e-001) (70, -7.15759277343750000000e-001) (71, -7.57202148437500000000e-001) (72, -1.31774902343750000000e-001) (73, 5.53894042968750000000e-001) (74, -3.85009765625000000000e-001) (75, -3.33618164062500000000e-001) (76, -9.58740234375000000000e-001) (77, -3.70544433593750000000e-001) (78, 8.26904296875000000000e-001)
ЗЫ Правда собирал библиотеку сам. Несколько отличается от f2M. Хотя идеология автора f2M мне понравилась и привел к похожему виду. Сегодня как раз добавил переинициализацию генератора - не знаю насколько это влияет.
Проверил - у меня значения разные и разбросаны почти равномерно. Вот одна из инициализаций :
Веса у Вас более чем корректны, а каковы значения выходов сетей при одинаковом входном векторе?
Веса у Вас более чем корректны, а каковы значения выходов сетей при одинаковом входном векторе?
Еще не все толком оттестировал - пока работает тестер на оптимизации. Не хочу прерывать.
Могу прицепить dll, mqh и эксперта - там есть отличия от оригинальных - возможно быстрее удастся привести к рабочему виду.