티스토리 뷰

 end-to-end 방식이 아닌 파이프라인 시스템을 만들때, 파이프라인의 구성 요소로 적합한 후보군은 어떤 것일까? 어떻게 파이프라인을 디자인하느냐가 전체 시스템의 성능에 크게 영향을 줄 수 있다. 한가지 중요한 고려 사항 중 하나는 각 요소들을 학습시킬 데이터를 쉽게 얻을 수 있느냐 여부이다.

 예를 들어 아래와 같은 자율 주행을 위한 구조를 고려해보자:

위의 구조에서 머신러닝을 활용하여 차와 보행자를 탐지할 수 있다. 더 나아가 이를 위한 데이터를 얻는 것이 그렇게 어렵지 않다. 차와 보행자에 대한 라벨링이 되어 있는 수많은 컴퓨터 비전 처리용 데이터들이 많이 있다. 또한 (Amazon Mechanical Turk와 같은) 크라우드 소싱을 활용해서 더 많은 데이터 집합을 얻을 수 있다. 결국 차 감지기와 보행자 감지기를 학습시키는데 필요한 데이터를 얻는 것은 상대적으로 쉽다.

 이와 반대로 아래와 같은 완전 end-to-end 시스템을 고려해보자:

해당 시스템을 학습시키기 위해서는 (이미지, 회전 방향) 쌍으로 구성된 데이터 군이 많이 필요할 것이다. 해당 데이터를 얻기 위해서 차를 운전하고 그 회전 방향을 기록하는 작업은 시간이 많이 필요하고, 힘이 많이 드는 작업이다. 위의 작업을 위해서는 특별한 장치가 부착된 차가 필요하고, 가능한 시나리오에 따른 운전 기록이 많이 필요하다. 결국 이로 인해서 end-to-end 시스템을 학습시키는 것이 어렵게 된다. 차라리 라벨링된 차와 보행자 이미지를 얻는 것이 훨씬 더 쉽다.

 일반적으로 말해서, 만약 (차 감지기나 보행자 감지기와 같은) 파이프 라인의 "중간 요소"를 학습시키는데 필요한 데이터들이 많이 있다면, 여러 단계로 구성된 파이프라인 구조를 사용하게 될 것이다. 해당 중간 요소를 학습시키는데 있어 해당 데이터를 모두 활용할 수 있기 때문에 그 구조는 다른 구조에 비해서 훨씬 우위를 점할 것이다.

 end-to-end 시스템에 활용할 데이터가 충분히 모이기 전까지는 자율 주행에 필요한 시스템에는 end-to-end 방식이 아닌 접근 방식이 조금더 확실할 거라 믿는다. 왜냐하면 그 구조는 데이터 가용성 측면에서 다른 구조에 비해 더 적합하기 때문이다.

< 해당 포스트는 Andrew Ng의 Machine Learning Yearning 중 chapter 50. Choosing pipeline components: Data availability를 번역한 내용입니다.>

댓글