신경망에 대한 입력에 공급할 지표 세트를 검색합니다. 논의. 결과 평가 도구. - 페이지 5

 
joo писал(а) >>

왜 보이지 않습니까? 차이점이 보입니다. 검색 범위를 올바르게 선택하면 뉴런이 과포화되지 않습니다. "당신은 요리하는 법을 모릅니다."(c) :)

다른 복잡한 작업의 경우 올바르게 언급한 것처럼 다양한 최적의 도구(스크루드라이버)가 있습니다.

범위의 선택을 희생시키면서 매우 논쟁의 여지가 있는 문제입니다. GA는 ORO보다 훨씬 길고 또 다른 단점입니다.

당신에게서 무게 범위를 선택하는 기술을 배우는 것은 흥미 롭습니다.

작성 >>

다른 복잡한 작업의 경우 올바르게 언급한 것처럼 다양한 최적의 도구(스크루드라이버)가 있습니다.

GA는 NS용이 아닙니다. NS-th에는 훈련(최적화) 방법이 있습니다. 단순히 ORO와 함께 CV를 사용하는 방법이 작동하지 않기 때문입니다.

 
rip >> :

맞습니다. 유전 알고리즘은 가중치를 조정하기 위해 오차 함수를 사용하지 않습니다.

내가 이해하는 한, m5를 기록에 남을 수 있는 최대 이익으로 표시하고 이 마크업을 피트니스 기능으로 사용할 수 있습니다.

그것이 기능이 보이는 것과 같으며, 이를 통해 개인을 평가합니다.

그래서 :)

 public double evaluate ( IChromosome a_subject ) {
         this . NNWeights = new double [ a_subject . size ( ) ] ; //создаем вектор весов для нейросети
         for ( int i = 0 ; i < this . NNWeights . length ; i + + )
         {
            DoubleGene g = ( DoubleGene ) a_subject . getGene ( i ) ;
             this . NNWeights [ i ] = g . doubleValue ( ) ; //заполняем вектор весов для нейросети
         }
        net . SetWeights ( this . NNWeights ) ; //устанавливаем веса нейросети
        Trade trade = new Trade ( ) ;
         for ( int i = 0 ; i < this . csv . CSVInputs . length ; i + + )
         {
            trade . TradeCurrentSignal ( net . ComputeForOneNeuronOutLayer ( this . csv . CSVInputs [ i ] ) , this . csv . CSVPrice [ i ] ) ;
         }
        
       return 1000000 + trade . Profit ; //целевая функция должна быть >0
     }
 
rip >> :

테스트 샘플 오류입니다. 저것들. 훈련 샘플 후 다음 달에 가져갑니다. 알고리즘에 따라 표시하십시오. 훈련된 네트워크에 출력을 제출합니다. 결과를 비교하십시오. 이것은 이러한 오류의 그래프일 뿐이며 흥미롭습니다.


또한 훈련 샘플 오류의 그래프를 얻는 동시에 네트워크가 학습하는 방식(또는 유전자 알고리즘에서 세대가 발전하는 방식)을 평가할 수 있습니다.

훈련할 때 나는 목적함수가 증가할 때까지 또는 내가 지루해질 때까지 가르친다. 간접적으로 재훈련하는 것에 관심이 있습니다. 훈련 샘플은 신경망의 가중치보다 훨씬 큽니다. 추가로 .mq4에 업로드하고(여기에 오류가 있을 수 있습니다... 테스트 중입니다. 테스트했습니다. 모든 것이 올바르게 작동합니다.) MT4 전략 테스터에서 발생한 일을 봅니다.

"결과 비교" - 나는 당신의 아이디어의 이 부분을 이해하지 못합니다... 구체적으로 네트워크를 다시 훈련시키고 그 결과를 이전 기간에 훈련된 네트워크의 결과와 비교하려면? 나는 요점이 보이지 않는다.

 
rip >> :

입력으로 제공한 모든 세트를 비교할 때 결과를 보여주세요 :) 모든 것이 높은 상관관계를 가질 것이라고 생각합니다. 위의 모든 지표는 계산에 동일한 초기 데이터를 사용합니다.

나는 모든 세트를 비교하지 않을 것입니다 .... 200개의 입력 세트를 정렬하기 위해, 실제로는 더 많은 입력 세트가 있습니다. 당신은 뭔가를 놓칠 수 있습니다.

 
iliarr >> :

훈련할 때 나는 목적함수가 증가할 때까지 또는 내가 지루해질 때까지 가르친다. 간접적으로 재훈련하는 것에 관심이 있습니다. 훈련 샘플은 신경망의 가중치보다 훨씬 큽니다. 더 나아가 .mq4에 업로드하고(여기에 오류가 있을 수 있습니다... 테스트 중입니다) MT4 전략 테스터에서 어떤 일이 발생했는지 확인합니다.

"결과 비교" - 나는 당신의 아이디어의 이 부분을 이해하지 못합니다... 구체적으로 네트워크를 다시 훈련시키고 그 결과를 이전 기간에 훈련된 네트워크의 결과와 비교하려면? 나는 요점이 보이지 않는다.


왜 재교육을?! 네트워크를 배우는 샘플이 있습니다. 이제 작업을 시뮬레이션하고 네트워크에 익숙하지 않은 샘플을 제공하고 네트워크에서 얻은 결과를 테스트 샘플에 대해 예상한 결과와 비교합니다.

 
rip >> :

왜 재교육을?! 네트워크를 배우는 샘플이 있습니다. 이제 작업을 시뮬레이션하고 네트워크에 익숙하지 않은 샘플을 제공하고 네트워크에서 얻은 결과를 테스트 샘플에 대해 예상한 결과와 비교합니다.

Forex의 경우, 제공하는 것의 결과가 훈련의 품질이 아니라 훈련된 네트워크의 예측 능력을 결정합니다... 그리고 네트워크의 예측 능력은 훈련의 품질뿐만 아니라 네트워크, 네트워크가 출력하는 방식 및 네트워크에 공급되는 정보. 네트워크에 제출할 내용을 더 잘 이해하기 위해 이 포럼 스레드의 주제를 제기했습니다.

 
iliarr >> :

Forex의 경우, 제공하는 것의 결과가 훈련의 품질이 아니라 훈련된 네트워크의 예측 능력을 결정합니다... 그리고 네트워크의 예측 능력은 훈련의 품질뿐만 아니라 네트워크, 네트워크가 출력하는 방식 및 네트워크에 공급되는 정보. 네트워크에 제출할 내용을 더 잘 이해하기 위해 이 포럼 스레드의 주제를 제기했습니다.

흠...예측력은 어디있나요? 당신에게는 네트워크가 있고, 그 대답에 대한 의도된 해석이 있는 네트워크가 있습니다.

코드를 기반으로 Trade() 클래스는 거래 프로세스를 한 형식 또는 다른 형식으로 시뮬레이션합니다. 포지션 오픈, 홀딩, 클로징.

이를 바탕으로 이 개인이 자신에게 얼마나 적합한지 결정합니다. 저것들. 당신은 처음에 규칙을 정했습니다

출력 해석.

 
iliarr >> :

나는 모든 세트를 비교하지 않을 것입니다 .... 200개의 입력 세트를 정렬하기 위해, 실제로는 더 많은 입력 세트가 있습니다. 당신은 뭔가를 놓칠 수 있습니다.

흠... 샘플 형성 아이디어 훈련: ( 신경망을 사용한 다음 가격 예측기 )


ntr - 훈련 세트

lb - 마지막 막대


// 입력 배열을 데이터로 채웁니다. 이 예에서 not=1
for(i=ntr-1;i>=0;i--)
{
outTarget[i]=(열기[lb+ntr-1-i]/열기[lb+ntr-i]-1.0);
정수 fd2=0;
정수 fd1=1;
for(j=nin-1;j>=0;j--)
{
정수 fd=fd1+fd2; // 피보나치 지연 사용: 1,2,3,5,8,13,21,34,55,89,144...
fd2=fd1;
fd1=fd;
inpTrain[i*nin+j]=열기[lb+ntr-i]/열기[lb+ntr-i+fd]-1.0;
}
}

 
rip >> :

흠... 샘플 형성 아이디어 훈련: ( 신경망을 사용한 다음 가격 예측기 )


ntr - 훈련 세트

lb - 마지막 막대


// 입력 배열을 데이터로 채웁니다. 이 예에서 not=1
for(i=ntr-1;i>=0;i--)
{
outTarget[i]=(열기[lb+ntr-1-i]/열기[lb+ntr-i]-1.0);
정수 fd2=0;
정수 fd1=1;
for(j=nin-1;j>=0;j--)
{
정수 fd=fd1+fd2; // 피보나치 지연 사용: 1,2,3,5,8,13,21,34,55,89,144...
fd2=fd1;
fd1=fd;
inpTrain[i*nin+j]=열기[lb+ntr-i]/열기[lb+ntr-i+fd]-1.0;
}
}

고맙습니다. 내가 볼게요.

 

IlyaA писал(а) >>

대중은 학습 오류 대 시간(에포크 수)의 그래픽 표현을 보고 싶어합니다.

->

iliarr 작성 >>
우리는 아마도 다른 것에 대해 이야기하고 있을 것입니다... 저는 선생님과 함께 훈련하지 않습니다(이 학습 방식에는 학습 오류가 있습니다)... 저는 최대 목적 함수를 위해 훈련하고 가능한 최대값이 얼마인지 모르겠습니다 목적 함수의 값은 입니다.

->

작성 >>

테스트 샘플 오류입니다. 저것들. 훈련 샘플 후 다음 달에 가져갑니다. 알고리즘에 따라 표시하십시오. 훈련된 네트워크에 출력을 제출합니다. 결과를 비교하십시오. 이것은 이러한 오류의 그래프일 뿐이며 흥미롭습니다.

또한 훈련 샘플 오류의 그래프를 얻는 동시에 네트워크가 학습하는 방식(또는 유전자 알고리즘에서 세대가 발전하는 방식)을 평가할 수 있습니다.

그것은 ripIlyaAiliarr 이 감독되지 않은 학습 방법을 사용하고 있다는 것을 절대 이해하지 못할 것 같습니다. 목적 함수가 이익이라면 어떤 종류의 학습 오류에 대해 이야기할 수 있습니까? 아니면 둘 다 히스토리에 대해 네트워크를 교육하고 테스트 히스토리에서 실행하고 이익을 비교한다고 생각합니까? 이익은 다르거나 적거나 많지만 다를 것입니다. 테스트 스토리는 다릅니다. 근사의 품질에 대한 기준은 원래 함수와 결과 함수의 표준 편차인 근사와 혼동하지 마십시오.


statbars 작성 >>

뉴런이 과포화되면 ORO는 실제로 "훈련"을 중단하는 반면 GA는 뉴런을 쉽게 과포화시켜 뉴런의 가중치를 계속해서 증가시킬 수 있습니다.

->

statbars 작성 >>

범위의 선택을 희생시키면서 매우 논쟁의 여지가 있는 문제입니다. GA는 ORO보다 훨씬 길고 또 다른 단점입니다.

->

statbars 작성 >>

GA는 NS용이 아닙니다. NS-th의 경우 훈련(최적화) 방법이 있습니다. 단순히 ORO와 함께 CV를 사용하는 방법이 작동하지 않기 때문입니다.

왜 그렇게 무례한지 이해가 안 가요?

다음은 검색에 나온 몇 가지 링크입니다. 그 반대는 다음과 같습니다.

http://alglib.sources.ru/dataanalysis/neuralnetworks.php

http://network-journal.mpei.ac.ru/cgi-bin/main.pl?l=ru&n=13&pa=10&ar=3

http://masters.donntu.edu.ua/2004/fvti/solomka/library/article2.htm

http://www.neuropro.ru/memo314.shtml


저는 GA가 모든 문제에 대한 유일한 올바른 최적화 솔루션이라고 주장하지도 않았고 주장하지도 않습니다. 다른 어떤 솔루션보다 훨씬 다재다능하며 거의 모든 작업에 더 빠르고 쉽게 적응할 수 있습니다. 또 다른 정당한 질문이 발생합니다. 최적의 솔루션을 찾는 데 필요한 피트니스 함수의 최소 실행 횟수는 얼마입니까? 이것은 최적화 알고리즘 자체의 속도가 아니라 우리가 이야기해야 하는 것입니다. 그리고 여기서 GA는 대부분의 다른 알고리즘에 확률을 줄 것입니다.

관심 있는 사람이 있으면 최적화 알고리즘에 대한 재미있는 테스트 기능을 게시하고 다른 알고리즘의 결과를 게시할 수 있는 별도의 분기를 시작할 수 있습니다. NN에 종사하시는 분들 뿐만 아니라 여러 면에서 최선의 결과를 얻고자 하시는 분들에게 매우 유용할 것으로 생각합니다.

statbars 작성 >>

당신에게서 무게 범위를 선택하는 기술을 배우는 것은 흥미 롭습니다.

Maple 또는 Mathca'에서 저는 활성화 함수가 작동하는 가중치 범위를 봅니다. 어떤 함수의 정의 영역이 [-1; 1]이라면, 예를 들어 그러한 변수의 범위(-100; 100)에서 "로밍"의 요점은 무엇입니까?