태그 보관물: Synthetic Gradient

Synthetic Gradient Revisited

지난주에 발표된 ‘Decoupled Neural Interfaces using Synthetic Gradients‘ 페이퍼에 많은 관심이 몰려서 인지 저자인 맥스 제이더버그(Max Jaderberg)가 딥마인드(Deepmind) 블로그에 페이퍼의 내용을 좀 더 자세히 설명하는 을 올렸습니다. 이 글에서 새롭게 추가된 내용은 없습니다만 두개의 멋진(!) 애니메이션을 이용해 가짜 그래디언트(Synthetic Gradient)를 잘 표현해 주고 있습니다.

3-6

출처: 딥마인드 블로그

이 그림에서 한 레이어의 출력이 상위 레이어와 그래디언트 모델(다이아몬드 도형)의 입력으로 전달됩니다. 그래디언트 모델은 즉각적으로 그래디언트를 계산하여 입력을 전달한 레이어의 파라메타를 업데이트 합니다. 그리고 하위 레이어로 역전파 됩니다. 상위 레이어에서 전달된 그래디언트도 상위 레이어의 그래디언트 모델에 의해서 생성된 그래디언트입니다. 이를 타겟 그래디언트라고 부르고 이를 이용해 현재 레이어의 그래디언트 모델을 학습시킵니다. 최종 출력의 그래디언트가 충분히 전달된다면 그래디언트 모델은 꽤 정확한 가짜 그래디언트를 추측할 수 있을 것입니다.

3-10

출처: 딥마인드 블로그

순환 신경망의 그림은 BPTT(Backpropagation Through Time)의 경계를 넘어서 그래디언트를 역전파 시킬 수 있도록 그래디언트 모델을 활용할 수 있다는 점을 표현하고 있습니다. BPTT는 메모리 등 리소스가 제한된 상황에서 늘릴 수 있는 한계가 있기 때문에 그래디언트 모델을 활용하면  BPTT 경계 이전 스텝까지 그래디언트를 역전파 시켜서 모델 파라메타를 업데이트할 수 있는 효과를 만들 수 있습니다.

페이퍼에서도 나와 있듯이 그래디언트 모델에 대해서 특별히 순환 신경망(Recurrent Neural Network)에서의 효용성을 자주 언급하고 있습니다. 피드 포워드(Feed Forward)의 경우 학습 속도에 대해서 언급하지 못했지만 순환 신경망의 경우는 학습 속도도 빨라진 것을 그래프로 제시하기도 했습니다.

아래 팬트리뱅크(Penn TreeBank) 그래프에서 파란 실선이 그래디언트 모델을 사용하여 레이어 사이를 비동기(DNI, Decoupled Neural Interface)화 한 경우입니다. BPTT를 8로 한 DNI 모델이 40으로 한 일반적인 순환 신경망의 경우보다 학습 속도와 결과 모두 좋았다고 합니다.

3-11

출처: 딥마인드 블로그

딥마인드의 이 페이퍼에 대한 좀 더 자세한 내용은 이 포스트를 참고해 주세요.

Decoupled Neural Interfaces using Synthetic Gradients[1608.05343] Summary

지난 주 딥마인드에서 내놓은 이 페이퍼는 이전 포스트에서 잠깐 언급했듯이 뉴럴 네트워크의 레이어간의 데이터 주입과 그래디언트 업데이트를 비동기적으로 처리하는 방식을 제안하고 있습니다. 이전에 이런 방식과 유사한 연구가 있었는지 배경 지식을 구하기는 힘들었지만 분명한 것은 이 페이퍼가 여러 사람에게 큰 관심을 끌고 있다는 점입니다.

뉴럴 네트워크의 한 레이어에서 데이터를 처리할 때 다른 레이어가 작업을 하지 않은 상태를 멈춰(locking)있다고 표현할 수 있습니다. 특히 레이어간의 연산이 다른 디바이스에 할당되어 있는 경우에는 물리적으로도 멈춰있는 형태가 됩니다. 이렇게 멈춰있게 되는 경우는 에러 그래디언트(gradient)를 역전파시킬 때도 마찬가지 입니다. 체인 룰(chain rule)의 특성상 이전 레이어에서 그래디언트가 전달되지 않으면 하위 레이어는 대기 상태에 있습니다. 이런 레이어간의 동기성은 거대한 뉴럴 네트워크의 학습 속도에 영향을 미치므로 레이어간의 데이터 전달을 비동기적으로 처리하는 모델을 제안하고 있습니다.

여기서 제안하는 방법은 한 레이어에서 데이터가 처리된 후 그 다음 레이어를 통과해 마지막 레이어에서 에러가 계산되어 역전파 되기를 기다리지 않고 데이터가 처리되자 마자 가짜 그래디언트(synthetic gradient)를 업데이트 하는 것입니다. 가짜 그래디언트로 레이어의 파라메타(가중치)가 업데이트 되면 다음 미니배치 데이터를 받아 들일 수 있게 됩니다. 가짜 그래디언트는 진짜 그래디언트가 앞 레이어로 부터 전달되면 이 값을 이용하여 보다 좋은 가짜 그래디언트를 만들기 위해 학습합니다. 즉 가짜 그래디언트를 위한 소규모의 뉴럴 네트워크가 레이어 사이 사이에 위치해 있습니다. 아래 그림은 이런 그래디언트의 비동기적인 업데이트 과정을 잘 보여 주고 있습니다.

계속 읽기