지난 주 딥마인드에서 내놓은 이 페이퍼는 이전 포스트에서 잠깐 언급했듯이 뉴럴 네트워크의 레이어간의 데이터 주입과 그래디언트 업데이트를 비동기적으로 처리하는 방식을 제안하고 있습니다. 이전에 이런 방식과 유사한 연구가 있었는지 배경 지식을 구하기는 힘들었지만 분명한 것은 이 페이퍼가 여러 사람에게 큰 관심을 끌고 있다는 점입니다.
뉴럴 네트워크의 한 레이어에서 데이터를 처리할 때 다른 레이어가 작업을 하지 않은 상태를 멈춰(locking)있다고 표현할 수 있습니다. 특히 레이어간의 연산이 다른 디바이스에 할당되어 있는 경우에는 물리적으로도 멈춰있는 형태가 됩니다. 이렇게 멈춰있게 되는 경우는 에러 그래디언트(gradient)를 역전파시킬 때도 마찬가지 입니다. 체인 룰(chain rule)의 특성상 이전 레이어에서 그래디언트가 전달되지 않으면 하위 레이어는 대기 상태에 있습니다. 이런 레이어간의 동기성은 거대한 뉴럴 네트워크의 학습 속도에 영향을 미치므로 레이어간의 데이터 전달을 비동기적으로 처리하는 모델을 제안하고 있습니다.
여기서 제안하는 방법은 한 레이어에서 데이터가 처리된 후 그 다음 레이어를 통과해 마지막 레이어에서 에러가 계산되어 역전파 되기를 기다리지 않고 데이터가 처리되자 마자 가짜 그래디언트(synthetic gradient)를 업데이트 하는 것입니다. 가짜 그래디언트로 레이어의 파라메타(가중치)가 업데이트 되면 다음 미니배치 데이터를 받아 들일 수 있게 됩니다. 가짜 그래디언트는 진짜 그래디언트가 앞 레이어로 부터 전달되면 이 값을 이용하여 보다 좋은 가짜 그래디언트를 만들기 위해 학습합니다. 즉 가짜 그래디언트를 위한 소규모의 뉴럴 네트워크가 레이어 사이 사이에 위치해 있습니다. 아래 그림은 이런 그래디언트의 비동기적인 업데이트 과정을 잘 보여 주고 있습니다.