트레이딩의 머신러닝: 이론, 모델, 실전 및 알고리즘 트레이딩 - 페이지 412

 
알렉세이 테렌테프 :
내 솔루션은 처음에 OpenNN(C++)을 기반으로 했습니다.
이제 박제 원뿔을 가지고 멋진 Keras(Python) 프로젝트로 전환했습니다.

저는 주로 분류 문제를 예측하기 위해 딥러닝을 합니다.

그래서 우리는 MO의 한 영역에 종사하고 있습니다. Keras는 특히 R로 이식되었기 때문에 좋은 패키지입니다.

나는 무엇에 대한 질문을 이해하지 못했습니까?

행운을 빕니다

 
블라디미르 페레르벤코 :

그래서 우리는 MO의 한 영역에 종사하고 있습니다. Keras는 특히 R로 이식되었기 때문에 좋은 패키지입니다.

나는 무엇에 대한 질문을 이해하지 못했습니까?

행운을 빕니다

네, 어떻게든 토론에 참여하기로 결정했습니다. =)
 
막심 드미트리예프스키 :


이제 이것은 이미 흥미롭습니다 .. 따라서 추가 테스트를 수행해야 할 것입니다. 이전에 생각했던 것처럼 이 RNN에 의미가 없을 수도 있습니다.

유일한 장점은 옵티마이저에서 다른 시스템 매개변수와 동시에 가중치를 선택한다는 것입니다.

나는 이제 그것이 알려진 데이터 범위 내에서 얼마나 잘 계산되는지 알아 내려고 노력하고 있습니다. 예를 들어 구구단.

업데이트.

어드바이저 변경 후 추가 실험을 해보니 일반적인 MLP 3-5-1과 비교하여 다음과 같은 결과를 보였다.

수표에는 다음과 같은 다른 공식이 사용되었습니다.

//double func(double d1,double d2,double d3 ){return d1*d2;} //0-2% 오류, 왜냐하면 곱셈은 공식에 포함됩니다. 2%가 얻어지기 때문에 유전자 최적화 프로그램은 항상 이상적이지 않은 솔루션에서 멈추지 않습니다. 그러나 error = 0인 절대적으로 정확한 솔루션도 있습니다.
//double func(double d1,double d2,double d3 ){return d1*d2*d3;}// error 0-2% 곱셈은 MLP 1%에서 수식에 포함됩니다.
//double func(double d1,double d2,double d3 ){return MathSin (d1);}// 오류 2-6%, MLP 0.1%에서
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3);}// 오류 2%, MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// 오류 3-4%, MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}// 오류 8-4%, MLP 1.5%
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// 오류 8-4%, MLP 1.5%

결과적으로 우리는 일반적인 MLP가 Reshetov의 RNN보다 2-3배 적은 오류를 가지고 있다는 결론을 내릴 수 있습니다. 아마도 이 오류의 일부는 MT5 터미널의 유전자 최적화 프로그램이 이상적인 솔루션에서 멈추지 않는다는 사실에서 발생합니다.
 
도서관 :

나는 이제 그것이 알려진 데이터 범위 내에서 얼마나 잘 계산되는지 알아 내려고 노력하고 있습니다. 예를 들어 곱셈 테이블.

업데이트.

어드바이저 변경 후 추가 실험을 해보니 일반적인 MLP 3-5-1과 비교하여 다음과 같은 결과를 보였다.

수표에는 다음과 같은 다른 공식이 사용되었습니다.

//double func(double d1,double d2,double d3 ){return d1*d2;} //0-2% 오류, 왜냐하면 곱셈은 공식에 포함됩니다. 2%가 얻어지기 때문에 유전자 최적화 프로그램은 항상 이상적이지 않은 솔루션에서 멈추지 않습니다. 그러나 error = 0인 절대적으로 정확한 솔루션도 있습니다.
//double func(double d1,double d2,double d3 ){return d1*d2*d3;}// error 0-2% 곱셈은 MLP 1%에서 수식에 포함됩니다.
//double func(double d1,double d2,double d3 ){return MathSin(d1);}// 오류 2-6%, MLP 0.1%에서
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSin(d3);}// 오류 2%, MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathSin(d2)*MathSqrt(d3);}// 오류 3-4%, MLP 1%
//double func(double d1,double d2,double d3 ){return MathSin(d1)*MathPow(d2,.33)*MathSqrt(d3);}// 오류 8-4%, MLP 1.5%
//double func(double d1,double d2,double d3 ){return MathPow(d1,2)*MathPow(d2,.33)*MathSqrt(d3);}// 오류 8-4%, MLP 1.5%

결과적으로 우리는 일반적인 MLP가 Reshetov의 RNN보다 2-3배 적은 오류를 가지고 있다는 결론을 내릴 수 있습니다. 아마도 이 오류의 일부는 MT5 터미널의 유전자 최적화 프로그램이 이상적인 솔루션에서 멈추지 않는다는 사실에서 발생합니다.

예, 흥미로운 결과입니다. 아마도 철저한 검색이 더 정확할 것입니다.
 
막심 드미트리예프스키 :

예, 흥미로운 결과입니다. 아마도 철저한 검색이 더 정확할 것입니다.
그럴 수도 있지만 몇 주 또는 몇 달 안에 ... 1% 100 8 = 10000000000000000 반복 단계로 8개의 계수가 선택되고 터미널 자체는 그러한 숫자로 유전학으로 전환됩니다.
 
도서관 :
그럴 수도 있지만 몇 주 또는 몇 달 안에 ... 1% 100 8 = 10000000000000000 반복 단계로 8개의 계수가 선택되고 터미널 자체는 그러한 숫자로 유전학으로 전환됩니다.

내가 이해하는 한 alglib에서 MLP를 분류하려면 최소한 2개의 출력이 필요합니다. 어떻게 작업해야 하나요? 아무 도움도, 어디에도 설명이 없습니다 .. 주석)
 
막심 드미트리예프스키 :

내가 이해하는 한 alglib에서 MLP를 분류하려면 최소한 2개의 출력이 필요합니다. 어떻게 작업해야 하나요? 아무 도움도, 어디에도 설명이 없습니다 .. 주석)

예 2, 도움말에서 http://alglib.sources.ru/dataanalysis/neuralnetworks.php

특별한 경우는 선형 출력 레이어와 SOFTMAX 출력 정규화가 있는 신경망입니다. 그것들은 네트워크 출력이 음이 아니어야 하고 합이 1과 엄격하게 같아야 하는 분류 문제에 사용되며, 이를 통해 입력 벡터를 클래스 중 하나에 할당할 확률로 사용할 수 있습니다(제한적인 경우 , 훈련된 네트워크의 출력은 이러한 확률로 수렴됩니다. 이러한 네트워크의 출력 수는 항상 최소 2개입니다 (기본 논리에 따라 제한됨).

선형을 실험하는 동안 아직 다루지 않았습니다.
 
도서관 :

예, 도움말에서 http://alglib.sources.ru/dataanalysis/neuralnetworks.php

특별한 경우는 선형 출력 레이어와 SOFTMAX 출력 정규화가 있는 신경망입니다. 그것들은 네트워크 출력이 음수가 아니어야 하고 그 합이 1과 엄격하게 같아야 하는 분류 문제에 사용되며, 이를 통해 입력 벡터를 클래스 중 하나에 할당할 확률로 사용할 수 있습니다(제한적인 경우 , 훈련된 네트워크의 출력은 이러한 확률로 수렴됩니다. 이러한 네트워크의 출력 수는 항상 최소 2개입니다 (기본 논리에 따라 제한됨).


아, 음, 즉, 특정 결과의 확률을 제출합니다. 예를 들어 0.9를 구매한 다음 0.1을 판매할 확률을 제출합니다. 하나의 배열은 구매 확률, 다른 배열은 판매 확률에 대한 버퍼 역할을 하고 다음으로 채웁니다. 이 값들을 학습한 후 매수와 매도 확률을 따로 버리게 되는데, 제가 제대로 이해하고 있는 걸까요?
 
막심 드미트리예프스키 :

아, 즉, 특정 결과의 확률을 제출합니다. 예를 들어 구매 확률이 0.9이고 판매 확률이 0.1이면 하나의 배열은 구매 확률에 대한 버퍼 역할을 하고 다른 배열은 판매 확률에 대한 버퍼 역할을 합니다. 그리고 그것들을 훈련시킨 후에 확률을 따로 떨어뜨릴 것입니다. 올바르게 이해하고 계십니까?

그리고 내가 읽은 것 - 나도 같은 의견을 가지고있었습니다.

이점이 무엇인지 모르지만.. 1개의 출구가 있는 경우에도 약 0(또는 -1)개의 매수 및 약 1개의 매도 확률을 얻을 수 있습니다. (또는 가르치는 방법에 따라 그 반대의 경우도 마찬가지입니다.)

출구가 3개 이상인 경우 유용할 수 있습니까? 결국, 3 또는 4 작업에 1 출력을 사용하는 것은 어려울 것입니다.

 
도서관 :

그리고 내가 읽은 것 - 나도 같은 의견을 가지고있었습니다.

이점이 무엇인지 모르지만.. 1개의 출구가 있는 경우에도 약 0(또는 -1)개의 매수 및 약 1개의 매도 확률을 얻을 수 있습니다. (또는 가르치는 방법에 따라 그 반대의 경우도 마찬가지입니다.)

출구가 3개 이상인 경우 유용할 수 있습니까? 그러면 3개 또는 4개의 작업에 대해 1개의 출력을 사용하는 것이 어려울 것입니다.


글쎄, 예, 그들은 아마도 2 개 이상의 클래스를 가질 수 있도록 그렇게했을 것입니다 .. 그러면 아마도 더 많은 클러스터링이 될 것이고 k-means와 같은 다른 방법을 사용할 수 있습니다 :)
사유: