본문 바로가기

implement_ml_models/RNN

implement_rnn(delta2)

2022.12.04 - [implement_ml_models] - implement_rnn(delta)

 

implement_rnn(delta)

2022.12.03 - [implement_ml_models] - implement_RNN(hidden_activation) implement_RNN(hidden_activation) 2022.12.03 - [implement_ml_models] - implement_RNN(first_step) implement_RNN(first_step) 순환 신경망 Recurrent Neural Network 의 경우 각 시점

teach-meaning.tistory.com

이전 delta 의 경우 순환 신경망의 맨 마지막 층에 대해서만 delta 값의 계산을 수행했다. 

은닉층 delta 계산에서 추가로 input_delta에 대한 업데이트가 필요하다. 

다음 입력에 대한 가중치는 두 노드의 입력과 출력 사이를 연결하기 때문에 t-1 의 다음 입력에 대한 가중치를 계산하기 위해서는 t 층에서의 delta 값을 통해 계산할 수 있을 것이고, 이를 통해 1 ~ t-1 층의 result_delta, input_delta 를 계산할 수 있을 것이다.

해당 계산을 위한 방법으로 예측 출력과 다음 입력에 대한 가중치를 하나의 행렬로 합쳐 일반화하여 계산한다.

t-1 층의 input_delta 값에서부터 생각해본다.

t-1 층의 은닉노드의 출력의 변화량에 대한 오차 함수의 변화량은 t-1 층의 은닉 노드에서 예측 출력의 계산으로 오차 함수에 대한 변화량과 t 번째 은닉 노드 입력에 대한 오차 함수의 변화량의 합이다.

오차 함수로 오차 제곱합을 사용했을 경우

 
 

활성화 함수로 항등 함수의 사용

 

해당 연산을 통해 t-1 층의 은닉층 출력의 변화량에 대한 오차 함수의 변화량을 측정할 수 있다.

위 식을 delta 표현을 통해 표현해본다.

우선 마지막 t 층에 대한 delta 계산, 활성화 함수로 항등 함수와 오차 함수로 오차 제곱합의 사용,

 
 

해당 델타 값을 통해 시점 t에 대한 입력 가중치 변화량을 계산할 수 있다.

resultW 에 대한 가중치 변화량의 경우 오차 함수의 미분 값의 사용

t-1 층의 노드 입력 변화에 따른 오차 함수의 변화량

 

먼저 우항을 delta 에 관한 식으로 정리

 

좌항의 계산

 

앞서 계산한 delta_t 와 동일한 형태를 보인다.

 

'implement_ml_models > RNN' 카테고리의 다른 글

implement_delta(input_w)  (0) 2022.12.05
implement_rnn(result_w)  (0) 2022.12.05
implement_rnn(delta)  (0) 2022.12.04
implement_RNN(hidden_activation)  (0) 2022.12.03
implement_RNN(first_step)  (0) 2022.12.03