기고글 토론 "MQL 언어를 사용하여 아무것도 없는 상태에서 심층 신경망(Deep Neural Network) 프로그래밍 하기" - 페이지 2

 
Anddy Cabrera # :

안녕 리,

2개의 데모 파일로 기사를 업데이트했습니다. 하나는 MQL5용이고 다른 하나는 MQL4용입니다. DeepNeuralNetwork.mqh는 mql5 및 mql4 모두에 사용할 수 있습니다.


어쨌든, 나는 그것을 사용하는 방법을 보여주기 위해 이 파일을 여기에 첨부합니다.


더 궁금한 점이 있으면 알려주세요.

정말 아주 좋은 기사입니다. 데모를 시도한 결과 yValues[1]만 .5보다 큰 값을 제공할 수 있으며, yValues[0] 및 yValues[2] 값은 최대 .2 또는 .3임을 알았습니다. 최적화에서도 하나의 판매 주문인 하나 이상의 거래가 열리지 않습니다.
 
nail sertoglu # :

공유해주신 코드 감사합니다. 당신의 방식을 이해하려고했습니다.


나는 yValues[0] , yValues[1], yValues[2] 에 대해 약간의 망설임이 있습니다. 왜냐하면 그것들은 변하지 않고 항상 0,33333 하지만 _x 값[1,2,3]이 새 막대로 변경되고 있습니다. 따라서 yValues를 기반으로 거래하는 경우 조건이 _x Values를 기반으로 할 때 TRADE가 발생하는 동안 ANY TRADE를 보지 못했습니다.

내 잘못입니까 아니면 원래 코드의 잘못된 코딩 오류입니까?

다음 함수를 업데이트하여 `void` 대신 `bool`을 반환하면 잘못된 가중치가 주어졌음을 알 수 있습니다.

 bool SetWeights( double &weights[])
     {
       int numWeights=(numInput*numHiddenA)+numHiddenA+(numHiddenA*numHiddenB)+numHiddenB+(numHiddenB*numOutput)+numOutput;
       if ( ArraySize (weights)!=numWeights)
        {
         printf ( "Bad weights length (%i), expected %i" , ArraySize (weights), numWeights);
         return false ;
        }

파일 상단의 가중치도 업데이트해야 합니다(네트워크를 초기화할 때만 업데이트하는 것으로는 충분하지 않습니다.P

 #define SIZEI 25 // input * hidden A
#define SIZEA 25 // hidden A * hidden B
#define SIZEB 15 // hidden B * output
 
안녕 앤디,

이것은 아주 좋은 기사입니다.
몇 가지 질문이 있습니다.
1) Sigmoid와 Tan-h 활성화 리드를 모두 사용하여 다층 뉴런에서 출력을 조합할 수 있습니까?
2) Karlis Balcers가 제안한 대로 파일 상단의 가중치를 업데이트해야 합니까?
 #define SIZEI 20 // (input * hidden A)+hidden A
#define SIZEA 25 // (hidden A * hidden B)+hidden B
#define SIZEB 18 // (hidden B * output)+output
참고: SIZEI는 20, SIZEB는 18이어야 합니다. 맞습니까?
3) 이 기사에서 설명한 대로 심층 신경망 다이어그램을 첨부했는데 맞나요?

많은 감사


EADNN

 
유전 알고리즘 옵티마이저처럼 작동하여 최종 결과가 더 나은 값을 선택합니다.
 
<삭제됨>
 

멋진 애니메이션입니다.

2계층 신경망은 심층 신경망이 아닌 '얕은' 신경망입니다. 심층 신경망에는 숨겨진 레이어가 3개 이상인 네트워크가 포함됩니다. 이러한 신경망 훈련의 특성으로 인해 딥러닝 방법이 개발되었습니다.

MCL에 대한 프로그래밍 예제로서 이 문서가 유용할 것입니다. MLP라는 주제에 익숙해지려면 반드시 필요합니다. 신경망 적용의 예로서 - 완전하지 않고 주제의 현재 상태보다 훨씬 뒤떨어져 있습니다.

하이퍼 파라미터의 최적화가없는 규칙으로 신경망은 만족스러운 품질을 제공하지 않습니다.

이 주제에 대한 준비된 프로그램이 많이 있는데 왜 즉석에서 자전거를 만드는지 이해할 수 없습니다.

 
NS를 이해하는 데 도움이 됩니다.
 

정정합니다. 기사에 딥넷에 대한 정의가 있습니다. 저는 그것을 보지 못했습니다.

유전학을 사용하여 신경망의 가중치를 최적화하는 과정은 말 그대로 "학습"이 아닙니다. 결국 최적화입니다. 학습은 완전히 다른 방법을 사용합니다. 이러한 신경망의 변형된 사용 방식도 실행되고 있으며 꽤 성공적으로 사용되고 있습니다.

신경망의 작동을 이해하려면 오류의 역전파를 통해 신경망이 어떻게 훈련되는지 이해하는 것이 중요합니다. 글쎄, 나는 이미 당신을 괴롭히고 있습니다 :)

행운을 빕니다.

 
기사를 작성해 주신 저자에게 감사드립니다. 신경망과는 거리가 먼 사람으로서 사물의 본질을 파악하는 데 많은 도움이 되었고 주제에 더 친숙해진다는 관점에서 매우 흥미로웠습니다. 다시 한번 감사드립니다!
 

이 네트워크에 오류 역전파를 통합할 수 있는 방법이 있나요?

어떤 이유로 그러한 네트워크가 더 유연하고 더 나은 입력 - 출력을 제공 할 것이라는 의견이 있습니다.....

오류 역전파가 있는 네트워크는 완전히 다른 네트워크가 아닌가요?