Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 499

 
Maxim Dmitrievsky:

А по моему нафиг никому не нужны все эти коды ) кроме каких-то сервисных функций, а так все заняты чем-то своим

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

с уважением.

 


Увидел такую схему перцетрона. Обычно бывает сумматор один, а тут их три. Получается три активизационных нейрона?

В MQL4 сделал так:

   a1 = iAC(Symbol(), 0, 0);
   a2 = iAC(Symbol(), 0, 3);
   a3 = iAC(Symbol(), 0, 7);
   
   perceptron1[0]=w11 * a1 + w21 * a2 + w31 * a3;
   perceptron2[0]=w22 * a2 + w12 * a1 + w32 * a3;
   perceptron3[0]=w33 * a3 + w13 * a1 + w23 * a2;

Интересует правильно ли все? На сколько понял, там каждый из трех входов a1,a2,a3 множится на свой вес в зависимости на какой сумматор попадает.

Потом попробую заменить линейную функцию на активационную сигмоидальную.

Кто чего скажет, как лучше с одним сумматором или с несколькими, просто непонятно есть ли смысл использовать одни и теже входы с разными весами?

И еще хотел спросить, если взять самый минимум, двухслойную сеть, то тогда нужно будет много переменных для оптимизации, не говоря уже о трех, четырех слоях.

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

 
forexman77:

Интересует правильно ли все? На сколько понял, там каждый из трех входов a1,a2,a3 множится на свой вес в зависимости на какой сумматор попадает.

Почти правильно, ещё есть сдвиг (bias) который дополнительно суммируется с результатом

   perceptron1[0]=w11 * a1 + w21 * a2 + w31 * a3 + w01;
   perceptron2[0]=w22 * a2 + w12 * a1 + w32 * a3 + w02;
   perceptron3[0]=w33 * a3 + w13 * a1 + w23 * a2 + w03;

Скорее всего значения y1, y2, y3 используются в внутреннем слое нейронки, и эти значения сами тоже нужно использовать как входные значения для следующего слоя

perceptron4[0] = w14 * perceptron1[0] + w24 * perceptron2[0] + w34 * perceptron3[0] + w04;

Или если Y1,Y2,Y3 это выходые знаечния, то несколько нейронов на выходе используют при классификации - например если самое большое значение среди Y1,Y2,Y3 будет Y1 то результат "класс 1", если самое большое значение будет Y2 то результат "класс 2", если самое большое значение будет Y3 то результат "класс 3". Если нейронка будет использоваться для регрессии вместо классификации то выходной нейрон будет всего один. Если класса всего два то можно обойтись одним выходным нейроном (если результат <0.5 то класс1, если >=0.5 то класс2).

Сигмоиду для активационной функции нейрона добавить очень просто, нужна такая функция - 

double sigmoid(double sum)
{
    if (sum < -15.0)
        return (0.0);
    else if (sum > 15.0)
        return (1.0);
    else
        return (1.0 / (1.0 + MathExp(-sum)));
}

И с ней уже получится полноценная нейронка с внутренним слоем (с тремя перцептронами) и одним выходным перцептроном.

   perceptron1[0] = Sigmoid(w11 * a1 + w21 * a2 + w31 * a3);
   perceptron2[0] = Sigmoid(w22 * a2 + w12 * a1 + w32 * a3);
   perceptron3[0] = Sigmoid(w33 * a3 + w13 * a1 + w23 * a2);
   perceptron4[0] = Sigmoid(w14 * perceptron1[0] + w24 * perceptron2[0] + w34 * perceptron3[0] + w04);

результат = perceptron4[0]

 
forexman77:

Сколько можно по максимуму использовать переменных, чтобы более или менее получились тесты, может есть какой софт для этих целей?

Число весов в нейронке может быть и десятки тысяч, и больше. В mql и в R есть специальные бибилотеки для создания и обучения нейронок, лучше работать через них, а не программировать свою нейронку с нуля.

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

Смотрю не даю тебе ровно дышать.. вздохни и успокойся


Чем дальше, тем ты всё более категоричен  ;))

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


Это положение очень кратко формулируется аксиомой статистики (и всей математики, кстати): МУСОР НА ВХОДЕ - МУСОР НА ВЫХОДЕ.

Человек, которые этого не знает, либо не применяет этого на практике - по-моему относится к дремучим неучам, независимо от того знает он слово персептрон или нет.


Совершенно верно. Поддерживаю.

 
Maxim Dmitrievsky:

да я нечайно слова перепутал, потому что про аппроксимацию читал в этот момент


замечательно ;))))

 
Олег avtomat:

Совершенно верно. Поддерживаю.


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

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

 
Maxim Dmitrievsky:

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

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


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

 
Олег avtomat:

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

Сорри, но вы не доказали свою значимость пока что ни в одном из моих вопросов, по крайней мере я этого не увидел

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

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