Нейронная сеть в виде скрипта

 

Дамы и господа !


Я нашел в интернете алгоритм нейронной сети .

Решил проверить .


Сделал скрипт для терминала . Запустил - работает .

Что бы еще раз убедится в верности алгоритма - процесс обучения

сделал наглядным .

Ну , а чтобы работа не пылилась на полке - размещаю на форуме.

Я думаю, код из скрипта вставить в индикатор или советник-дело техники .

Короче, пробуйте, фантазируйте .






Скрипт запускается на любом графике любого таймфрейма .

Файлы:
 

Спасибо!

 

Очень полезная штучка! Спасибо!

 
Что-то логика этого скрипта напоминает простой шифратор 4в2
 
kombat:
Что-то логика этого скрипта напоминает простой шифратор 4в2

штучкка интересная конечно!


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


теперь попробуйте подать ей на входы то что она не видела в процессе обучения!

у у нее едет крыша !




test_pat[0] = 1 ;
test_pat[1] = 1 ;
test_pat[2] = 0 ;
test_pat[3] = 0 ;
test_the_network() ;
Print(MathRound( ol_a[0]), " 1100 ", MathRound(ol_a[1]) ) ;

она отвечает 1 0

хотя по логике должна ответить 1 1

---

правильная сеть именно так и поступит т е ответит 1 1 хотя данные на обучении такие не видела!



попробуйте обучить сеть следующему примеру


ВЫХОД = ВХОД

30.00 = 100.00
27.50 = 87.50
25.00 = 75.00
20.00 = 50.00
15.00 = 25.00
13.75 = 18.75
12.50 = 12.5
11.25 = 6.25
10.00 = 0.00

а затем дайте ей на вход к примеру 62.5 должны получить на выходе 22.50


ДОЛЖНО = ВХОД

22.50 - 62.5

это простой пример масштабирования с которым сети справляются как с орешками без кожуры

 

А как сделать, чтобы он цену прогнозировал?

 
YuraZ:
kombat:
Что-то логика этого скрипта напоминает простой шифратор 4в2

штучкка интересная конечно!


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


теперь попробуйте подать ей на входы то что она не видела в процессе обучения!

у у нее едет крыша !




test_pat[0] = 1 ;
test_pat[1] = 1 ;
test_pat[2] = 0 ;
test_pat[3] = 0 ;
test_the_network() ;
Print(MathRound( ol_a[0]), " 1100 ", MathRound(ol_a[1]) ) ;

она отвечает 1 0

хотя по логике должна ответить 1 1

---

правильная сеть именно так и поступит т е ответит 1 1 хотя данные на обучении такие не видела!



попробуйте обучить сеть следующему примеру


ВЫХОД = ВХОД

30.00 = 100.00
27.50 = 87.50
25.00 = 75.00
20.00 = 50.00
15.00 = 25.00
13.75 = 18.75
12.50 = 12.5
11.25 = 6.25
10.00 = 0.00

а затем дайте ей на вход к примеру 62.5 должны получить на выходе 22.50


ДОЛЖНО = ВХОД

22.50 - 62.5

это простой пример масштабирования с которым сети справляются как с орешками без кожуры



Внутри этого алгоритма нет нормализации . Для корректной работы этого алгоритма нужно

подавать уже нормализованные значения входа и выхода в интервале от 0 до 1 .

 


Другой пример

Файлы:
 
Файлы:
 

1. Сначала надо все нормализовать - и вход, и выход, то есть загнать в диапазон 0 - 1

( или надо переделать код сети под новый диапазон изменения данных )

2. У данной сети 4 входа и 2 выхода .

Какие числа из этих столбцов и на какой вход нужно подавать ?


По алгоритму

сеть каждой четверке Входных значений 1 0 0 0

ставит пару Выходных данных 1 0


Таких наборов данных может быть несколько, например 4 .

И подавать их надо в соответствии с алгоритмом сети

вход _выход


1 0 0 0_ 0 0

1 0 0 1_ 1 0

1 0 1 0_ 0 1

1 0 1 1_ 1 1


или так, если 4 входа и 3 выхода


1 0 0 0_ 1 1 1

1 1 0 0_ 1 0 0

1 0 1 1_ 0 0 1

1 0 1 0_ 0 1 1

1 0 1 0_ 0 0 0

1 1 1 1_ 0 1 0

для этого случая код изменяем









 
kombat:
Что-то логика этого скрипта напоминает простой шифратор 4в2

Если шифратор окажется полезнее, то делать прибыль будем на нем :) !

Просто сети - пока еще модная фишка .

Если есть код шифратора, то давай его сюда ! Поиграемся и с ним .

Причина обращения: