Советник Better Обсуждение ошибок - страница 2

 
Debugger писал(а) >>

Мда, совсем глухо. Даже обсудить проблемы нескем.

Наверно сложно обсуждать то чего и глаза не видел) Поделки на тему "куба" мне тоже попадались, но там и обсуждать нечего, у меня своих хоть в окно кидай...

 
sergeev >>:


Вы принципы обучения знаете? Это во первых...

А во вторых это не "фигня", а вычисление ошибки для слоя. 

Почитайте азы обучения нейросетей.

Для начала рекомендую Ф. Уоссермен Нейрокомпьютерная техника: Теория и практика

Err[L][N][0]=Out[L][N]*(1-Out[L][N])*(Out[L+1][N]-Out[L][N]);

sergeev >>:


Вы принципы обучения знаете? Это во первых...

А во вторых это не "фигня", а вычисление ошибки для слоя. 

Почитайте азы обучения нейросетей.

Для начала рекомендую Ф. Уоссермен Нейрокомпьютерная техника: Теория и практика


Начнем с того что эта формула ошибочна. Могу сказать то же самое нужно хорошо знать теорию.

 
Figar0 >>:

Наверно сложно обсуждать то чего и глаза не видел) Поделки на тему "куба" мне тоже попадались, но там и обсуждать нечего, у меня своих хоть в окно кидай...


Кстати по поводу того чего в глаза не видел, на предыдущей странице обучающий модуль в атаче.
 
Debugger >>:

Начнем с того что эта формула ошибочна. Могу сказать то же самое нужно хорошо знать теорию.




Зря вы на формулу наезжаете: вот из теории

"

Обратный проход. Подстройка весов выходного слоя. Так как для каждого нейрона выходного слоя задано целевое значение, то подстройка весов легко осуществляется с использованием модифицированного дельта-правила из гл. 2. Внутренние слои называют «скрытыми слоями», для их выходов не имеется целевых значений для сравнения. Поэтому обучение усложняется.

На рис. 3.5 показан процесс обучения для одного веса от нейрона р в скрытом слое j к нейрону q в выходном слое k. Выход нейрона слоя k, вычитаясь из целевого значения (Target), дает сигнал ошибки. Он умножается на производную сжимающей функции [OUT(1 – OUT)], вычисленную для этого нейрона слоя k, давая, таким образом, величину δ.

                                                         δ = OUT(1 – OUT)(Target – OUT)                                                                (3.4)

Затем δ умножается на величину OUT нейрона j, из которого выходит рассматриваемый вес. Это произведение в свою очередь умножается на коэффициент скорости обучения η (обычно от 0,01 до 1,0), и результат прибавляется к весу. Такая же процедура выполняется для каждого веса от нейрона скрытого слоя к нейрону в выходном слое.

"

 
Вывероятно путаете настройку выходного слоя и промежуточных слоёв. Смотрите в код внимательно
 
sergeev >>:
Вывероятно путаете настройку выходного слоя и промежуточных слоёв. Смотрите в код внимательно


Вот именно... Если посмотреть, то в формуле

Err[L][N][0]=Out[L][N]*(1-Out[L][N])*(Out[L+1][N]-Out[L][N]);

вместо Out[L+1][N] должен быть Target!!!

так как в данном случае прогон идет в обратном направлении.

Мелочь, но дьявол кроется в мелочах.

 
sergeev >>:
Вывероятно путаете настройку выходного слоя и промежуточных слоёв. Смотрите в код внимательно


Вот именно... Если посмотреть, то в формуле

Err[L][N][0]=Out[L][N]*(1-Out[L][N])*(Out[L+1][N]-Out[L][N]);

вместо Out[L+1][N] должен быть Target!!!

так как в данном случае прогон идет в обратном направлении.

Мелочь, но дьявол кроется в мелочах.

 
Debugger >>:

Перебирал исходники небезызвестного советника Better

А Better то сам признаёт, что это его советник?

 
HideYourRichess >>:

А Better то сам признаёт, что это его советник?


Я не знаю кто чего признает. Просто использование гибридной сети дает наилучшие результаты из всех.

Это первое.

Второе. Простой алгоритм градиентного спуска не обеспечивает должного режима обучения. 

Сеть даже в режиме фильтра работает плохо. Точнее она в него переключается и все...

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

 
HideYourRichess >>:

А Better то сам признаёт, что это его советник?


Эту штуку я скачал точно на этом форуме. Но где не помню. Просто случайно наткнулся у себя в куче хлама.
Причина обращения: