MT4를 위한 빠르고 무료 라이브러리인 신경망 전문가의 기쁨을 위해 - 페이지 15

 
lasso >> :

추가하겠습니다. 또는 터미널 충돌의 경우. 그러나 해결책은 찾은 것 같습니다.

질문이 다릅니다. Vladislav, "중개자" 없이 C++ 코드를 읽는 것 같습니다.

동일한 네트워크 위원회 응답과 가중치의 올바른 초기화에 대한 문제에 대해 언급할 수 있습니까? ( 여기더 많은 로그 를 자세히 읽으십시오. 그러나 여기 에 가중치에 대한 질문이 있습니다.)

코드를 검토했습니다. 랜덤화가 있습니다. 그렇지 않은 것: 표준 C \ C ++에서 준 난수 생성기이기 때문에 각 rand()를 호출하기 전에 커널을 다시 초기화하는 것이 좋습니다(seed - srand(int) - 시작점 이동)

 int rand ( void ) ;
  Return Value 
rand returns a pseudorandom number , as described above . There is no error return .

  Remarks 
The rand function returns a pseudorandom integer in the range 0 to RAND_MAX ( 32767 ) . 
Use the srand function to seed the pseudorandom - number generator before calling rand .

//------------------------------------------------

Sets a random starting point .


void srand (
   unsigned int seed 
) ;
  Parameters 
seed
Seed for random - number generation

  Remarks 
The srand function sets the starting point for generating a series of pseudorandom integers in the current thread . 
To reinitialize the generator , use 1 as the seed argument . Any other value for seed sets the generator to a random 
starting point . rand retrieves the pseudorandom numbers that are generated . 
Calling rand before any call to srand generates the same sequence as calling srand with seed passed as 1 .

  


 
Henry_White писал(а) >>

네. 각 그리드에는 서로 다른 입력이 있지만 이것이 필수적인 것은 아닙니다. 예를 들어 동일한 RSI 및 하나의 그리드와 같은 표준 신호를 사용하여 모든 입력에서 무차별 대입에 대해 여전히 음수 값을 얻을 수 있습니다.

가중치의 초기 초기화는 -1, 1입니다.

프로필 정보 ... 훈련된 네트워크의 결과 파일을 의미합니까?

아니요. 우리는 다른 것에 대해 이야기하고 있습니다. 출구를 물어봤어!? 여기에 입력 하십시오 . 저것들. 우리는 16개의 네트워크로 구성된 위원회를 가지고 있습니다. 우리는 그것들을 임의의 가중치로 초기화하고 각각의 입력에 단일 &input_vector[]를 공급합니다. 결과적으로 동일한 출력을 얻습니다!!! (모든 로그는 링크에 게시됩니다)

그 질문은 무엇입니까!

........

네. 여기에 훈련된 네트워크의 결과 파일을 표시하거나 비누에 대해 .... 가중치 값에 관심이 있습니다. 훈련 없이 초기화 직후에 네트워크 프로파일을 갖는 것이 좋을 것입니다. 확인?

 
lasso >> :

아니요. 우리는 다른 것에 대해 이야기하고 있습니다. 출구를 물어봤어!? 여기에 입력 하십시오 . 저것들. 우리는 16개의 네트워크로 구성된 위원회를 가지고 있습니다. 우리는 그것들을 임의의 가중치로 초기화하고 각각의 입력에 단일 &input_vector[]를 공급합니다. 결과적으로 동일한 출력을 얻습니다!!! (모든 로그는 링크에 게시됩니다)

그 질문은 무엇입니까!

........

네. 여기에 훈련된 네트워크의 결과 파일을 표시하거나 비누에 대해 .... 가중치 값에 관심이 있습니다. 훈련 없이 초기화 직후에 네트워크 프로파일을 갖는 것이 좋을 것입니다. 확인?

우리는 정말로 다른 것에 대해 이야기하고 있습니다)) 귀하의 문제를 이해합니다. 그리고 확인했습니다. 예, 그러한 효과가 있음을 확인했습니다.

지난 글에서 "또 하나의 기이함"이라고 썼는데, 이는 초기 가중치의 무작위화 문제와 단일 입력 벡터로 그리드 위원회 작업의 정체성과 아무 관련이 없음을 의미합니다.

MSE에 따르면 긍정적 수렴과 함께 과도한 학습으로 인해 네트워크는 로컬 최소값이 아니라 절대 최소값을 "찾지" 않고 단순히 다음으로 롤다운합니다. 학습 알고리즘의 문제를 나타내는 범위의 경계 ..

 

그건 그렇고, 초기 가중치의 초기화를 확인했습니다(생성 직후에 적어두었습니다). 모든 것이 작동합니다. 랜덤화가 있습니다.

하지만 프로필에서 발견한 이상한 항목이 있습니다.

layer_sizes=31 31 17 2

그리고 이것은 다음과 같습니다.

ann = f2M_create_standard(4, AnnInputs, AnnInputs, AnnInputs / 2 + 1, 1); AnnInputs=30 사용

어떤 이유로 숨겨진 레이어는 발표된 것보다 하나 더 표시했습니다. 그러나 더 많은 것은 출력 레이어 "2"의 크기와 선언된 "1"이 혼동됩니다!!!

 
Henry_White >> :

그건 그렇고, 초기 가중치의 초기화를 확인했습니다(생성 직후에 적어두었습니다). 모든 것이 작동합니다. 랜덤화가 있습니다.

하지만 프로필에서 발견한 이상한 항목이 있습니다.

layer_sizes=31 31 17 2

그리고 이것은 다음과 같습니다.

ann = f2M_create_standard(4, AnnInputs, AnnInputs, AnnInputs / 2 + 1, 1); AnnInputs=30 사용

어떤 이유로 숨겨진 레이어는 발표된 것보다 하나 더 표시했습니다. 그러나 더 많은 것은 출력 레이어 "2"의 크기와 선언된 "1"이 혼동됩니다!!!

모든 것이 바로 거기에 있습니다. 총 레이어 4: 입력, 2 숨김, 출력. 각 레이어는 바이어스 = 1을 가지며 "사용자" 차원에 참여하지 않습니다. 이것은 FANN 문서에서 가져온 것입니다.


행운을 빕니다.

 
예, 바이어스에 대해 읽었습니다 ... 사실, 그리드 프로필에 표시된다는 사실에 대한 단어를 보지 못했습니다. 당신이 옳을 것이고 이것은 실제로 추가적입니다. 피드백 뉴런. 어쨌든 이것은 논리적으로 레이어의 점진적인 증가를 설명합니다 ... 그리고 그리드가 범위의 경계로 "떠 다니는"에 대한 단서를 이미 찾은 것이 기뻤습니다.)))
 
Henry_White писал(а) >>

그건 그렇고, 초기 가중치의 초기화를 확인했습니다(생성 직후에 적어두었습니다). 모든 것이 작동합니다. 랜덤화가 있습니다.

예, 가중치의 무작위화가 있습니다. 그러나 여전히 나는 반복합니다.

주목. 무작위화는 -1에서 1까지이며 네트워크 프로필에서 가중치 값은 -10.0e--003에서 10.0e-003입니다.

예: (12, -7.35577636217311400000e-003) (13, 7.63970005423449810000e-002)

맞나요?

그래서 네트워크 프로필을 보여달라고 요청했습니다 ....

 
lasso >> :

예, 가중치의 무작위화가 있습니다. 그러나 여전히 나는 반복합니다.

주목. 무작위화는 -1에서 1까지이며 네트워크 프로필에서 가중치 값은 -10.0e--003에서 10.0e-003입니다.

예: (12, -7.35577636217311400000e-003) (13, 7.63970005423449810000e-002)

맞나요?

그래서 네트워크 프로필을 보여달라고 요청했습니다 ....

체크 - 나는 다른 값을 가지고 거의 균등하게 흩어져 있습니다. 다음은 초기화 중 하나입니다.

연결 (Connected_To_Neuron, Weight) = (0, -9.94689941406250000000E-001, -6.88415527343750000000E-001, 6.5136718750000000000000E-001) (3, -8.20678710937500000000E-001) (4, 9.83703613281250000000E-001) (5, 36.849365234375000000E-001) (6, 3.60107421875000000000E-001) (7, 2.90527343750000000000E-001) (8, 7.5463867187500000000000E-001) (9, -7.6031494140625000000000E-001) (10, -7.781372031250000000E-001) ) (11 7.55432128906250000000e-001) (12 -6.61560058593750000000e-001) (13 1.65771484375000000000e-001) (14 5.71044921875000000000e-001) (15 -1.54785156250000000000E-001) (16 - 002 9.851074218755107421875000000000E ) (17, -5.26916503906250000000E-001) (18, 8.58947753906250000000E-001) (20, 7.3144531250000000000000000000E-001) (20, 7.3144531250000000000000E-001) (21, -8.8031005859375000000000E-001) (22, 6.82373046875000000 002)

.................................................................. . .................................................................. .. .................................................................. ... ........................................................................... ...........................

(42 -6.95373535156250000000E-001) (43 -7.01538085937500000000E-001) (44 -7.38952636718750000000E-001) (45, -3.44238281250000000000E-002) (46 -1.99401855468750000000E-001) (47 2.731323232185550000 - 001) (49, 4.53186035156250000000E-001, -4.70947265625000000000E-001, -7.74169921875000000000E-001, -9.54711914062500000000ET-001) (52, 8.09509277343750000000E-001) (53 9.92370605468750000000 e- 001) (54, -4.13391113281250000000E-001, 6.6729736328125000000000E-001) (56, 9.59289550781250000000E-001) (57, 1.09252929687500000000E-001) (58, -3.0255,1269531250000000E-001) (59, - 5.29785625000000000000 E-001) (60, 5.85754394531250000000E-001, 7.99987792968750000000E-001, -1.119999511718750000000E-001, -8.07495117187500000000E-001) (64, -7.08862304687500000000E-001) (65, 8.05236816406250000000E-001) (67, 3.92602539062500000000E-001) (67, 3.61633300781250000000E-001) (68, -2.99011230468750000000E-001) (69, 6.24816894531250000000E-001) (70, -7.15759277343750000000E-001 ) (71 -7.57202148437500000000e-001) (72, -1.31774902343750000000e-001) (73, 5.53894042968750000000e-001) (74, -3.85009765625000000000e-001) (75, -3.33618164062500000000e-001) (76 -9.58740234375000000000 E -001) (77, -3.70544433593750000000e-001) (78, 8.26904296875000000000e-001)


ZY Truth는 라이브러리 자체를 수집했습니다. f2M과 약간 다릅니다. f2M 작가의 이념이 마음에 들어서 비슷한 룩으로 이끌었지만. 오늘 방금 생성기 재초기화를 추가했습니다. 이것이 얼마나 영향을 미치는지 모르겠습니다.


 
VladislavVG писал(а) >>

체크 - 나는 다른 값을 가지고 거의 균등하게 흩어져 있습니다. 다음은 초기화 중 하나입니다.

당신의 가중치는 정확하지만 동일한 입력 벡터를 가진 네트워크 출력의 값은 무엇입니까?

 
lasso >> :

당신의 가중치는 정확하지만 동일한 입력 벡터를 가진 네트워크 출력의 값은 무엇입니까?

테스터가 최적화 작업을 하는 동안 아직 모든 것을 테스트하지는 않았습니다. 방해하고 싶지 않습니다.

dll, mqh 및 전문가를 첨부할 수 있습니다. 원본과 차이점이 있습니다. 작업 형식으로 더 빨리 가져올 수 있습니다.