안녕하세요 콥스랩(COBS LAB)입니다.
오늘 소개해 드릴 논문은 ‘Transfusion: Understanding Transfer Learning for Medical Imaging’입니다.
해당 내용은 유튜브 ‘딥러닝 논문 읽기 모임' 중 ‘ Transformer Interpretability Beyond Attention Visualization'영상 스크립트를 편집한 내용으로, 영상으로도 확인하실 수 있습니다. (영상링크:https://youtu.be/b2izifKXYA8)
Self Supervised learning의 주목적 중 하나인 Pre-training 그리고 Transfer Learning에 대한 인사이트를 키우기 위해서 이 논문을 설명드리겠습니다. Transfer Learning 은 대규모 데이터셋으로 모델을 학습해놓고 학습시킨 가중치를 가져와서 Downstream task 즉, target task의 데이터셋으로 학습하는 것을 말합니다.
Introduction입니다. deep learning 모델 개발 시 ImageNet 데이터셋으로 학습한 pretrained weights를 사용해서 Transfer learning을 수행하는 것이 standard이며 성능 또한 잘 나오고 있습니다. 저자는 ImageNet같이 내추럴한 이미지와 target task의 데이터가 내는 데이터 사이즈, 데이터의 특징, task의 특징 모두 다르다는 것을 언급하면서 Transfer learning의 영향에 대한 이해가 부족하다고 설명합니다.
Representation과 feature를 분석해보니 Transfer learning에서 오는 차이점들은 over-parameterization 때문이라고 합니다. 이 말을 풀어서 설명하면 task에 비해 모델의 사이즈가 너무 커서 over parameterization이 발생하여 모델이 제대로 된 feature를 downstream task의 데이터셋 만으로는 학습하기에 충분하지 않기 때문에 Transfer learning에 의한 차이가 발생한다는 의미입니다. 여기서 충분하지 않다는 말은 데이터양이 될 수도 있고 데이터가 가지는 특징이 될 수도 있습니다.
본 논문의 Contribution입니다.
- ImageNet 학습에 사용되는 모델과 직접 설계한 단순하고 작은 모델을 비교합니다.
- Transfer learning을 한 것과 안 한 것의 Representation을 비교합니다.
- 의미 있는 feature reuse가 발생하는 영역을 부분적으로 pretrained weight를 재사용해보며 분석하고 하이브리드 한 Transfer learning 기법을 제안을 합니다.
- Transfer learning의 feature independent 한 benefit이 있다는 것을 보여줍니다.
본 논문에서는 실험의 Retina 데이터셋과 CheXpert라는 Che x-ray 데이터셋을 사용했습니다. 그 데이터셋 모두 5 class를 가지고 있고 보통 task에 관계없이 ResNet같이 큰 모델들을 사용을 합니다. 본 논문에서는 이런 Standard 한 모델과 직접 설계한 작은 모델을 비교했습니다.
저자는 작은 모델에서의 Transfer learning에 대한 연구가 아직까지 거의 없었다고 합니다. 그리고 Standard 모델의 파라미터들 즉, 출력과 가까운 layer의 파라미터들은 ImageNet 데이터셋의 1000개의 클래스를 분류하기 위해 학습됩니다. 보통 Retina 데이터셋이나 Chex 데이터셋같이 실생활에 있는 데이터셋들의 경우 클래스가 많지 않기 때문에 이런 Standard 모델의 파라미터는 과할 수 있다고 합니다.
이 논문에서 Standard 모델로는 ResNet50과 Inception-v3를 사용했고 small 모델로는 직접 설계한 CBR 모델을 사용했습니다. CBR은 Conv layer , BN 그리고 ReLu로 구성된 하나의 블록이고 이것을 반복해서 CBR 모델을 생성을 합니다. ResNet50과 Inception의 파라미터에 3분의 1 정도를 가지도록 구성된 것이 CBR-LargeT와 CBR-LargeW 가 있고, ResNet에서 파라미터의 20분의 1이 되도록 설계한 것이 CBR-Tiny입니다.
첫 번째 결과입니다.
우선 파란 상자를 보면 CBR 모델들은 모두 Transfer learning과 Random Initialize 간의 차이가 거의 없습니다. Standard 모델에서는 아주 약간의 차이로 Transfer learning이 더 좋습니다.
초록 상자에 파라미터 수가 나와 있는데 CBR-Large T와 Standard 모델의 파라미터 수는 3배 차이가 나지만 성능에서는 큰 차이가 나지 않습니다. 단 0. 몇 퍼센트의 성능이 중요한 경우 그래도 큰 모델을 사용하는 것이 좋아 보이긴 하지만 모델 사이즈를 생각하며 사용 디바이스에 따라서 CBR 모델 선택을 고려해볼 법합니다.
빨간 상자는 ImageNet으로 pretrained 할 때 성능을 나타낸 것인데 Transfer learning이 잘 될지 안 될지에 대한 지표로는 pretext task의 성능 지표를 사용할 수 없다는 것을 보여줍니다.
데이터 수에 대한 실험입니다.
앞선 실험에서는 데이터를 20만 장을 모두 사용했지만 실제 task에서는 데이터가 훨씬 적은 상황이 많기 때문에 5천 장만 사용해서 실험을 했습니다. 실험 결과를 보면 Random Initalize을 한 경우 CBR 모델이 ResNet 50보다 성능이 훨씬 좋습니다. Transfer learning을 했을 때는 CBR 모델에서는 0.3%, 0.1%로 미세한 성능 향상이 있었으나 ResNet의 경우에는 2.4%나 성능이 오릅니다.
이로써 Transfer learning의 효과는 작은 모델보다 큰 모델에서 더 크다는 것을 확인할 수 있고, 큰 모델을 학습시키는데 데이터양이 중요하며 ImageNet에 비해 분류해야 할 클래스가 적거나 데이터가 단순한 경우 작은 모델로도 충분히 좋은 성능을 낼 수 있다는 것을 알 수 있습니다.
실제에서는 Transfer learning을 한 큰 모델을 쓰는 게 가장 좋지만 Transfer learning에 대한 인사이트를 넓히는 데 도움이 됩니다.
지금까지 작은 모델에서 Transfer learning이 유의미한 차이를 보이지 않는다는 것을 보여 줬습니다. 여기서 Transfer learning과 Random Initialize로 학습한 모델에 Representation이 다르다는 것을 보여줍니다. 유사도 측정 매트릭으로는 SVCCA를 사용했습니다. 어떤 두 벡터의 유사도를 Affine transform에 invariant 한 방법으로 측정하는 방법입니다. 이 방법을 사용하면 다른 layer, 심지어 다른 네트워크 간의 feature도 비교를 할 수 있게 됩니다.
SVCCA에 대한 자세한 내용이 궁금하신 분들은 아래 링크에 설명과 예제 코드가 나와 있으니 참고하시기 바랍니다.
왼쪽은 Standard 모델, 오른쪽은 CBR 모델들의 결과 그래프입니다.
유사도는 각 모델의 Top two layer만 사용해서 구했습니다. Top two layer는 출력과 가까운 두 개의 layer를 의미합니다. 파란색은 Random Initialize 한 모델들끼리의 유사도를 구한 것이고, 노란색은 Random Initialize와 Transfer learning을 한 모델과의 유사도를 구한 것입니다. Transfer learning을 했을 때와 안 했을 때 성능 차이가 크게 없음에도 불구하고 Representation 상에서는 Random Initialize와 Transfer learning이 하는 것이 다른 Representation으로 수렴한다는 것을 알 수 있습니다. CBR 모델의 경우에는 Standard에 비해서 랜덤을 하던 Transfer learning을 하던 Representation상에서 큰 차이가 없습니다.
이 실험은 학습 전 초기 가중치와 학습이 끝난 후에 가중치의 유사도를 구한 것입니다. feature reuse는 초기 가중치 즉, Transfer learning의 경우 pre train weight가 얼마나 downstream task에도 유의미한지를 의미합니다.
그래프를 보시면 Standard, CBR 모델 둘 다 초기 layer의 유사도가 높은 것을 볼 수 있습니다. low layer는 학습이 끝나도 초기 가중치가 좋든 나쁘든 high layer에 비해 변화량이 크지 않다는 것을 의미합니다. Large 모델일수록 유사도가 더 큰데, 유사도가 첫 번째 layer에서 보시면은 훨씬 큰 것을 알 수 있습니다. 이것이 Large 모델에서의 Transfer learning의 중요성을 반증한다고 할 수 있습니다.
Retina 데이터셋 학습 전후에 첫 번째 layer에 필터를 시각화한 것입니다. 위에서 언급한 대로 ResNet은 필터에 큰 변화가 없습니다. 이는 over parameterization을 암시합니다. 굳이 모든 필터를 다 학습하지 않아도 충분한 성능을 낼 수 있습니다. 하지만 CBR 모델은 필터가 많이 변한 것을 볼 수 있습니다. 왼쪽 아래 보시면 학습 초기와 학습이 끝난 후에 필터 모습이 많이 다른 것을 확인할 수 있습니다.
필터를 자세히 보겠습니다.
왼쪽에 Random Initialize를 한 경우에는 학습이 끝난 후에도 ResNet은 유의미한 필터를 학습하지 못한 부분들이 많이 보입니다. ResNet의 경우 Transfer learning을 해도 Gabor 필터라고 하는 필터들이 잘 사라지지 않고 잘 남아 있는 반면에 밑에 보시면 CBR small 모델에서는 이런 필터들이 뭉개지고 사라지는 경향이 있습니다. 이런 Gabor 필터라고 하는 것은 텍스처 특징을 뽑는데 좋은 필터입니다. 이전에 Transfer learning의 영향이 Large 모델에서 더 큰 이유입니다.
Transfer learning의 장점은 단순히 좋은 feature를 Transfer 했기 때문이기도 하겠지만 statistical 한 영향도 있다고 설명합니다.그래서 independent 한 benefit을 제공한다고 언급을 하고 있습니다. 해당 그래프는 pre traind 가중치에 평균과 분산만을 가져와서 모델의 가중치를 Random Initialize 한 것입니다. 그래프를 보시면 초록색인데 훨씬 더 빠르게 수렴하는 것을 볼 수 있습니다.
다음은 pretrained weight의 일부만 Transfer learning을 한 것입니다. 처음으로 AUC가 0.91를 초과하는 스텝을 측정했습니다. 오른쪽 그래프를 보시면 초기 layer일수록 Transfer learning에 의한 영향이 훨씬 크고 뒤로 갈수록 점점 영향력이 낮아지는 것을 볼 수 있습니다.
조금 전에 언급한 Gabor 필터와 일부만 Transfer 하는 것을 사용해서 두 가지 새로운 Transfer learning Approach를 제안합니다. 하나는 초기 두 개의 block만 Transfer learning 하고, 뒤 layer들은 채널을 반으로 줄였습니다. Slim이라고 써져 있는 게 처음 두 개만 Transfer 하고 뒷부분은 채널을 반절로 줄이고 다 랜덤 하게 Initialize를 한 것입니다.
왼쪽 표를 보시면 처음으로 AUC 0.91를 추가한 것이 200 step 밖에 차이 나지 않습니다. 여기 보시면 Transfer learning은 8.8 step을 넘었고 Slim 모델은 8208의 0.91을 넘었습니다. 두 번째로는 Synthetic Gabor 필터를 첫 번째 layer 가중치 초기화하여 사용하는 것입니다. 이는 표에 나와 있지는 않지만 첫 번째 layer만 Transfer learning 한 것과 동일한 성능을 보여 준다고 합니다.
결론입니다.
- Transfer learning에 대한 의문들을 연구했고 의료 데이터를 가지고 실험적으로 설명을 하고 있습니다.
- task에 따라 Standard 모델들이 over parameterization이 발생할 수 있다는 것을 보였습니다.
- 실험을 통해 얻은 직관으로 hybrid Transfer approach를 실험했습니다. Transfer learning을 무작정 사용하는 것이 아니고 어느 정도 이해하고 어디에서 유의미한 feature reuse가 발생을 하는지 실험을 통해 확인할 수 있습니다.
댓글