DeepLearning/Basic

[ML/DL] 딥러닝에서의 Cascade

yooj_lee 2021. 12. 12. 15:36
300x250

머신러닝 혹은 딥러닝(Computer Vision) 분야 관련 논문을 읽다보면 Cascade라는 말이 종종 나오는데, 정확히 짚고 넘어갈 필요가 있어 보여 정리한다.


Definition of Cascade

a process whereby something, typically information or knowledge, is suceessively passed on.

여기서 주목할 점은 successive하다는 점이다. 이걸 ML 관점에서 본다면 정보가 successive하게 전달이 된다는 것이므로, layer 간의 위계적인 정보 전달 혹은 boosting machine에서의 additional learning 등을 생각해볼 수 있을 것이다. (병렬적이 아니라 직렬적인 것에 가깝다고 생각해보자. 여러 개가 동시에라는 simulataneity의 느낌이 아니라, sequence의 느낌)

위키피디아의 정의를 확인해보자. (https://en.wikipedia.org/wiki/Cascading_classifiers)

Cascading is a particular case of ensemble learning based on the concatenation of several classifiers, using all information collected from the output from a given classifier as additional information for the next classifier in the cascade.

Cascading이란 여러 개의 classifier를 concat하는 방식의 앙상블 학습의 한 종류이다. 이때 어떤 방식을 활용하는가 하면 이전 단계 classifier의 결과값에서 얻은 모든 정보를 종속적으로 다음 단계의 classifier의 추가 정보로 활용하는 것이다. Adaboost 알고리즘이 전형적인 cascaded classifier라고 할 수 있다.


Example

정의만으로는 와닿기 어려울 수 있다. 예시를 살펴보자.

1. Adaptive Boosting (AdaBoost)

adaboost
(ref: https://www.sciencedirect.com/topics/engineering/adaboost)

위의 이미지는 AdaBoost의 구조이다. 이전 단계의 classifier에서 많이 틀린 데이터의 가중치를 키워서 어려운 데이터가 다음 단계에서 많이 샘플링되도록 하고, 이를 많이 학습하게 되는 구조이다. 즉, 여러 개의 classifier 내에서 연속적으로 샘플링 가중치의 정보가 공유가 되는 것이다. (다만 그 방향이 종속적, 일방향적이라는 것)
Gradient Boosting 도 다르지 않다. 다만 어떤 손실함수를 쓰느냐의 문제이다.

2. Cascade R-CNN

cascadernn
(ref: https://arxiv.org/pdf/1712.00726v1.pdf)

cacade r-cnn은 proposal의 정확도가 향상될 수록 전체 detector의 성능 또한 높아짐을 주장하며, 낮은 IoU에서 학습된 detector의 proposal을 이용해서 매 단계 학습을 점진적으로 해나가는 프로세스를 제안한다. 이 경우도 역시 낮은 IoU에서 학습된 detector의 output 값을 활용해서 다음 단계의 detector 학습에 반영을 하는 구조로 cascading을 활용했음을 알 수 있다.


마무리

간단하게 cascade의 concept을 정리해보았다. 개인적으로 느낀 점은 recurrent하게 정의가 된다고 생각했다 (물론 펼치면 sequential하지만..) 다만 여기에서 중요한 점은, multi-stage가 sequential하게 정의되고 이전 단계의 output이 다음 단계에 반영이 된다는 점이다. 크게 보면 neural net architecture 자체가 cascade 의 구조라고 볼 수 있을 듯하다.

위의 내용에 오류나 discussion의 여지가 있다면 댓글 부탁드립니다!!

300x250