지뢰밭에서의 시장예절 또는 예의범절 - 페이지 21

 
grasn писал(а) >>

창작하는 동안에는 예술가처럼 보여야 해요! 그러나 내가 코딩 할 때 ... :o))))

추신 : Seryoga, 특히 MathCAD에서는 실질적으로 단수형이지만 C++/FORTRAN에서는 ... 다를 수 있지만 MathCAD에서는 (이 특정 경우에 대해) 부드럽게 말해서 그렇지 않습니다. 평균을 사용하면 계산이 훨씬 더 빨라지고 예를 들어 corr 을 사용하면 "빠른" 알고리즘이 거북이가 됩니다. o) 어떻게 하는지 모르겠지만 "합계" 연산자의 경우 훨씬 빠른 주기입니다. 그렇지 않은 경우 최신 버전을 설치하십시오.

분명한.

정보 주셔서 감사합니다!

 
Neutron >> :

읽을 때마다이 모든 경제를 훈련하는 것이 바람직하다는 것을 잊지 마십시오. 충분하지 않을 것입니다.

지금은 이해! 나는 모든위원회를 한 힙에 세었습니다 ...

나는 은닉층의 뉴런 수를 늘리지 않을 것이다. 왜, 2와 함께 잘 작동한다면.

괜찮으시다면 바로 ORO로 가겠습니다. 왜냐하면. 이미 2층 그리드가 준비되어 작동 중입니다("랜턴에서" 가중치 포함). 관심이 있는 경우 코드를 게시할 수 있습니다.

 

지금까지 나는 이것을했습니다 :



d = 17;

승 \u003d 17 * 3 + 4 \u003d 55;

P \u003d 4 * 55 * 55 / 17 \u003d 712;

-------------------------------------------------- ----------------------


지금까지 ORO 알고리즘은 다음과 같이 이해되었습니다(출력 레이어의 가중치에 대해서만).

// ----------------------------------------- ЭПОХА ---------------------------------------------------

for(int i = cikl; i > 2; i--)
{
out = OUT(i); // Получаем выход сетки
target = (Close[i]-Close[i+1])/Close[i+1];--------------------// Получаем целевое значение
delta = target - out;-----------------------------------------// Вычитаем выход сетки из целевого значения
pr = th(out);-------------------------------------------------// Вычисляем производную выходного сигнала
pr = 1 - pr*pr;-----------------------------------------------//

for(int n = 0; n < 4; n++)
{
Corr[n] += delta * pr * D2[n];--------------------------------// Вычисляем ошибку для каждого веса и суммируем её за всю эпоху
Norm[n] += Corr[n]*Corr[n];-----------------------------------// Считаем норму вектора коррекций для каждого веса за всю эпоху
}
}
// ------------------------------------- КОНЕЦ ЭПОХИ --------------------------------------------------

// ----------------------------------- КОРРЕКЦИЯ ВЕСОВ ------------------------------------------------

for(i = 0; i < 4; i++)

W2[i] += Corr[i]/MathSqrt(Norm[i]);



모든 것이 작동하는 것 같습니다! 하지만 여전히 잘못된 것이 있습니다. 1000개 이상의 Epoch에서 모든 가중치가 매우 작아졌습니다.

W2[0] = 0.0876 W2[1] = 0.0772 W2[2] = -0.0424 W2[3] = -0.05

내가 무엇을 놓치고 있으며 오류를 입력 가중치에 어떻게 푸시합니까?

 
Prival писал(а) >>

개인 메시지를 보십시오. 여기에 글을 써서 죄송합니다. 그러나 이러한 메시지는 종종 반영되지 않습니다.

세르게이, 보세요.

시발

조금 있다가 답변드리겠습니다.

이제 NS-ki에 대한 입력 데이터를 만지작거리고 있습니다. 아이디어가 떠올랐습니다. 그건 그렇고 훈련 벡터의 길이를 계산할 때 왜 가중치 수를 3으로 곱 했습니까? 내가 이해하는 한 w=17+4가 있어야 하고 그게 다야! 개인 벡터로 위원회의 각 구성원을 교육합니다.

 
Neutron >> :

...그런데 훈련 벡터의 길이를 계산할 때 가중치의 수를 3으로 곱한 이유는 무엇입니까? 내가 이해하는 한 w=17+4가 있어야 하고 그게 다야! 개인 벡터로 위원회의 각 구성원을 교육합니다.

이 경우 입력 벡터는 동일합니다. 그것은 매 회독마다 한 번씩 읽혀지고, 그 다음 위원회의 각 구성원은 자신의 개인적인 "포인트"(가중치)를 통해 그것을 "보고" 판단을 내립니다.

물론 위원별로 따로 읽어도 되지만 결과가 같으면 무슨 소용이 있겠습니까? 입력 벡터는 할당량의 16 증가 + 단일 입력입니다.

아... 알겠습니다! 예, 두 개의 다른 입력을 사용했습니다. 벡터의 증분: Fibo 급수를 따라 dt를 사용하여 증분 - 2,3,5,8... 및 Luke 급수를 따라 다른 하나 - 3,4,7,11... 위원회 그 다음 위원회의 각 구성원은 자신의 벡터를 읽었지만 지금은 ORO를 이해하는 데 집중하기 위해 모든 것을 단순화했습니다. 따라서 이 경우 벡터는 1입니다.

그리고 그 때문에 무게가 그렇게 줄어들 수 있습니다. 두 번째 레이어만 훈련했다고요?

 

음, 결과는 모두 같습니다. w=17+4이고 각 멤버는 동일한 벡터를 갖습니다.

paralocus , 내 생각은 이렇다. 자, 당신은 카트보다 앞서 달리지 않을 것이지만 시드의 경우 MQL의 출력에서 비선형성을 가진 2층 비선형 퍼셉트론을 풀고 긍정적인 결과를 얻을 것입니다. 그런 다음 네트워크 위원회로 이동합니다(필요한 경우).

무슨 말을 합니까?

 
Neutron >> :

음, 결과는 모두 같습니다. w=17+4이고 각 멤버는 동일한 벡터를 갖습니다.

paralocus , 내 생각은 이렇다. 자, 당신은 카트보다 앞서 달리지 않을 것이지만 시드의 경우 MQL의 출력에서 비선형성을 가진 2층 비선형 퍼셉트론을 풀고 긍정적인 결과를 얻을 것입니다. 그런 다음 네트워크 위원회로 이동합니다(필요한 경우).

무슨 말을 합니까?

확인! 저것들. 우리는 모든 위원과 의장을 데려가 제거합니다. "산적 총알"처럼... -:) 지금 바로 해보자!

하나를 제외한 P/S - 첫 번째

 

자, 가자!

1. 마지막 뉴런의 출력에서 오류를 찾습니다: d2out=X[-1]-OUT2, (MQL과 같은 넘버링의 의미에서 이것은 "미래" 카운트입니다).

2. 비선형성을 고려하여 입력으로 다시 계산합니다. d2in=d2out*(1-OUT2^2)

3. 축삭을 따라 첫 번째 계층의 각 뉴런의 출력에 동일한 오류가 발생합니다! 이제 이것은 출력에 대한 오류입니다 - d1out 및 입력으로 재계산하는 절차 (2)를 반복합니다: d1[1]in=d1out*(1-OUT1[1]^2) 및 또한 은닉의 두 번째 뉴런 층.

 
계산된 오차로 가중치가 수정되었거나 아직 수정되지 않았습니까?
 

아니요.

먼저 각 가중치에 대한 미세 수정을 계산합니다. dw=in*din - 델타 규칙 - 입력 신호에 특정 입력으로 감소된 오류를 곱합니다. 그리고 훈련 벡터의 모든 판독값에 걸쳐 각 가중치에 대해 별도의 가산기로 요약합니다. 학습 에포크의 한 반복 내에서 가중치는 조정되지 않습니다. 미세 수정과 그 제곱만 누적됩니다(다른 가산기에서).

PS 위의 게시물에서 오류를 수정했습니다. 도함수는 *(1-OUT2^2)와 같이 찾을 수 있습니다.