"New Neural"은 MetaTrader 5 플랫폼용 신경망 엔진의 오픈 소스 프로젝트입니다. - 페이지 44

 
우크라이나 :

지정된 범위의 PRNG 클래스입니다.

장점 : 초기화가 다른 여러 랜덤을 가질 수 있는 능력,

최대 10개 범위의 균일하게 분포된 값(불행히도 배열은 더 이상 충분하지 않습니다).

10번의 호출에서 Rand()는 표준 rand를 50µs 앞섰습니다(시간 rnd.Rand()=344 시간 rand()=391).

단점 : Srand()는 초기화 시간이 오래 걸리고 표준 범위는 32768(766 µs)이며 1lam은 거의 2분입니다.

10라임 제한은 확인하지 않았지만, 시간이 갈수록 점점 길어지는 것 같아요.


건전한 비판은 받아들입니다.



더?

이러한 기능의 목적은 무엇입니까?

   uint              control(){return(gcnt-1);};// получить значение счётчика при последнем автоматическом запросе Rand

   uint              Rand(uint i){return(res[i]);};// запрос Rand по указанному i (счётчик не изменяется)

또는 작은 사용 예.

만족하지 못하는 기준은 무엇입니까?

 
her.human :

더?

이러한 기능의 목적은 무엇입니까?

   uint              control(){return(gcnt-1);};// получить значение счётчика при последнем автоматическом запросе Rand

   uint              Rand(uint i){return(res[i]);};// запрос Rand по указанному i (счётчик не изменяется)

또는 작은 사용 예.

만족하지 못하는 기준은 무엇입니까?

이러한 함수는 임의 시퀀스의 일부 또는 전체를 단순히 복사하거나 특정 Rand() 호출에서 반환된 값을 가져오는 데 필요할 수 있습니다.

표준은 많은 사람들에게 적합하지 않습니다.

1) 0에서 100까지 균일하게 분포된 시퀀스를 가져와야 하는 경우 표준 시퀀스에서 직접 가져올 수 없습니다(알고리즘을 조각해야 함).

2) 두 개의 시퀀스를 동시에 사용할 수 없으며 srand 초기화로 인해 이전 초기화를 사용할 수 없습니다.

3) 표준 랜드의 범위는 32768 부분으로만 분할할 수 있으며 다른 것은 허용하지 않습니다. 100000으로 나누는 것이 아니라 10의 배수로도 범위를 나눌 수 없습니다. 예를 들어: [-1;1] 범위가 있고 이를 세 번째 숫자까지 단계로 분할해야 하는 경우 범위 2000에 대한 클래스를 초기화한 다음

Rand()/ 1000 .- 1 .

0.001 단계로 [-1;1] 범위에서 PRNG를 얻습니다.

이것을 표준으로 하지 마십시오.

 
누구? 뭐라고요? 작업을 최적화할 수 있는 방법을 말씀해 주시겠습니까?
 
우크라이나 :

이러한 함수는 임의 시퀀스의 일부 또는 전체를 단순히 복사하거나 특정 Rand() 호출에서 반환된 값을 가져오는 데 필요할 수 있습니다.

표준은 많은 사람들에게 적합하지 않습니다.

1) 0에서 100까지 균일하게 분포된 시퀀스를 가져와야 하는 경우 표준 시퀀스에서 직접 가져올 수 없습니다(알고리즘을 조각해야 함).

2) 두 개의 시퀀스를 동시에 사용할 수 없으며 srand 초기화로 인해 이전 초기화를 사용할 수 없습니다.

3) 표준 랜드의 범위는 32768 부분으로만 분할할 수 있으며 다른 것은 허용하지 않습니다. 100000으로 나누는 것이 아니라 10의 배수로도 범위를 나눌 수 없습니다. 예를 들어: [-1;1] 범위가 있고 이를 세 번째 숫자까지 단계로 분할해야 하는 경우 범위 2000에 대한 클래스를 초기화한 다음

0.001 단계로 [-1;1] 범위에서 PRNG를 얻습니다.

이것을 표준으로 하지 마십시오.

1) 동의합니다.

2) 명확하지 않습니까? 어떤 목적으로 이것이 필요할 수 있습니까?

3) 코드를 자세히 살펴보지는 않았지만 1)에 해당하는 것 같습니다.

따라서 이 (위) 두 가지 기능에 대한 질문도 있었습니다.

그런 클래스(함수)는 반드시 필요합니다. 그러나 아무도 추가 브레이크가 필요하지 않습니다.

 

단락 2를 이해하는 데 어려움이 있는 경우 먼저 PRNG가 필요한 이유를 먼저 결정해야 합니다.

그러면 왜 두 개의 상관되지 않은 PRNG 시퀀스가 동시에 있어야 하는지 명확해질 것입니다.

 
우크라이나 :

단락 2를 이해하는 데 어려움이 있는 경우 먼저 PRNG가 필요한 이유를 먼저 결정해야 합니다.

그러면 왜 두 개의 상관되지 않은 PRNG 시퀀스가 동시에 있어야 하는지 명확해질 것입니다.


듣기 이상한 - 상관없는 PRNG 시퀀스.

이 신경망이 무엇을 위한 것인지 알 수 없습니까?

 
her.human :

이 신경망이 무엇을 위한 것인지 알 수 없습니까?

예, 지금은 유행하는 것뿐입니다 ...

우크라이나 :

장점 : 초기화가 다른 여러 랜덤을 가질 수 있는 능력,

저것들. 각 개체는 고유한 순서를 명령합니까?

단점 : Srand()는 초기화 시간이 오래 걸리고 표준 범위는 32768(766 µs)이며 1lam은 거의 2분입니다.

여기가 무섭습니다. 비현실적입니다. 그렇게 해서는 안됩니다.

빛이 조금 있을 때 살펴보겠습니다.
 
her.human :

듣기 이상한 - 상관없는 PRNG 시퀀스.

이 신경망이 무엇을 위한 것인지 알 수 없습니까?

32768 rand를 호출한 후(재초기화하지 않은 경우) 시퀀스가 반복된 다음 it 및 r P sch가 반복됩니다.

따라서 하나의 초기화를 사용하여 시간적으로 병렬인 두 시퀀스를 생성하는 경우 일부 섹션은 서로 상관 관계가 있을 수 있습니다(이것은 필수는 아니지만 그러한 가능성은 남아 있음).

네트워크에는 몬테카를로(Montecarlo) 또는 GA와 같은 다른 알고리즘이 있습니다. 다시 말해서 알고리즘이 있는 각 네트워크에는 초기 가중치가 필요합니다.

 
더엑스퍼트 :

예, 지금은 유행하는 것뿐입니다 ...

1) 즉 각 개체는 고유한 순서를 명령합니까?

2) 여기 너무 무섭고 비현실적입니다. 그렇게 해서는 안됩니다.

빛이 조금 있을 때 살펴보겠습니다.

1 예, 각 객체는 Srand() 동안 시퀀스를 기억한 다음 표준 rand()처럼 원으로 제공합니다.

2 이미 최대한 최적화했는데 더 나빠졌습니다.

간단히 말해서, 더 쉽게 긁어 모으기 위해 내가 코딩한 내용을 설명하겠습니다.

준비 후에 우리는 증가하는 시퀀스(카운터 값)를 임시 배열에 쓰고, 그 값이 결과에 주어지는 즉시 생성기가 범위 범위의 값을 제공합니다(이 인덱스는 temp에서 res로 할당할 때 요청됨). 버퍼, 임시 버퍼에 renge를 넣습니다(제너레이터가 생성할 수 없는 값). 우리는 검사를 통해 res 버퍼에 값을 주고, renge가 temp에 걸리면 이미 그러한 값을 res에 할당한 다음 빠른 정렬 을 수행합니다(모든 renge를 배열) 나머지 변경되지 않은 시퀀스로 범위를 자릅니다. 그런 다음 전체 해상도를 채울 때까지 계속합니다.

 
우크라이나 :

32768 rand를 호출한 후(재초기화하지 않은 경우) 시퀀스가 반복된 다음 it 및 r P sch가 반복됩니다.

따라서 하나의 초기화를 사용하여 시간적으로 병렬인 두 시퀀스를 생성하는 경우 일부 섹션은 서로 상관 관계가 있을 수 있습니다(이것은 필수는 아니지만 그러한 가능성은 남아 있음).

네트워크에는 몬테카를로(Montecarlo) 또는 GA와 같은 다른 알고리즘이 있습니다. 다시 말해서 알고리즘이 있는 각 네트워크에는 초기 가중치가 필요합니다.

이것은 모두 가정입니다. 증거가 없습니다.

나는 GA로 많은 것을 실험했는데, PRNG가 루프(반복)되는 그런 의심이 있었다. 그것은 릴이 아니 었습니다 ... (이것은 나에 관한 것입니다).

결론: PRNG는 어떤 식으로든 GA의 작업에 영향을 미치지 않습니다.

초기화 정보:

에서 0, PRNG 중에서 선택하도록 초기화 할 수 있기를 원합니다.