오늘 소개해 드릴 논문은 ‘How transferable are features in deep neural networks?’입니다.
콥스랩(COBS LAB)에서는 주요 논문 및 최신 논문을 지속적으로 소개해드리고 있습니다.
해당 내용은 유투브 ‘딥러닝 논문읽기 모임’ 중 ‘Trasfer learning’ 영상 스크립트를 편집한 내용으로,
영상으로도 확인 하실 수 있습니다. (영상링크: https://youtu.be/JI5kXF_OUkY)
Transfer learning이라는 개념은 이전에 포스팅 한 ‘BERT’라는 논문에서도 등장한 개념입니다. 본 논문을 통해서, Transfer learning의 개념을 자세히 알아보겠습니다.
‘How transferable are features in deep neural networks?’는 transfer lerning에 관한 논문입니다. transfer learning의 정의는 다음과 같습니다. 어떤 task A (이 task를 original task 혹은 base task라고 부르겠습니다)에 대해서 학습된 네트워크가 있을 때, network의 layer의 일부를 가져와서 새로운 task B에 새로운 신경망을 학습을 하는 데 사용하는 기법을 transfer raning이라고 합니다. 참고적으로, 위 이미지에 나와있는 AnB+ 와 같은 기호에 대해서는 뒤에서 자세한 설명을 드리겠습니다.
이 논문의 실험에서 사용되는 network는 input layer를 제외하고 8개의 layer를 가지는 network를 사용합니다. 그리고 이 논문의 주제는 어떤 feature들이 network 내에서 얼마나 general 한 지 혹은 specific 한 지를 정량화하는 방법에 대한 실험 및 결과 분석입니다.
여기서 어떤 feature가 general 하다는 것을 설명하기 위해 위 그림을 살펴보겠습니다. 일반적으로 컴퓨터 비전에서 딥러닝 신경망을 학습할 때, 저층 layer에서 feature를 시각화하는 경우를 예로 들어보겠습니다. 위 그림에서 보이는 것처럼 edge를 detecting 하는 것 같은 feature 그리고 색깔 덩어리들을 detecting 하는 것 같은 feature, 즉 gabor filter와 color blobs, 가 나타나지 않으면 학습이 잘 되지 않았다고 의심할 정도로 저층 layer에서 이러한 feature들을 잘 볼 수 있습니다. 이러한 피처들을 general 하다고 하고, 서로 다른 dataset와 서로 다른 task 들에 대해서 공통적으로 나타나는 feature들이기 때문에, 이러한 feature들을 general 하다고 합니다. 그리고 layer에서 후반부로 갈수록 각 layer는 점점 더 각 네트워크에 맞는 tssk에 대해서 specific 하게 됩니다.
예를 들어서 보면 위 그림과 같습니다. 저층의 layer는 앞에서 본 것처럼, gabor filter와 color blobs가 나타나는데 중반 layer와 후반 layer로 갈수록 task의 specific 한 feature들이 시각화된다는 것을 볼 수 있습니다.
위 문장은, general 한 feature와 specific 한 feature에 대해 말로 된 정의입니다. 앞서 설명한 것과 같은 의미입니다.
다시 실험 이야기로 돌아와서, 본 실험에서는 8개의 layer를 가지는 네트워크에서 각 layer가, 각 feature가 얼마나 general 한지, 그리고 이 general 한 것이 specific 해 지는 정도가 어떤 커브를 그리면서 변하는지에 대해 정량화하는 실험들을 진행합니다.
이러한 실험은 물론 base task A와 target task B에 의존하게 됩니다.
그리고 이 실험에서는 ImageNet dataset을 사용합니다. 그리고 task는 classification입니다. ImageNet dataset을 정확히 500개의 클래스를 갖는 두 dataset으로 랜덤 하게 나눕니다.
그렇게 되면 ImageNet dataset에서 연관된 카테고리들, 즉 연관된 클래스들이 많이 있습니다. 위에 보시는 바와 같이, fire truck과 garbage truck이 다른 카테고리로 1천 개 중에 속해있습니다. 이렇게 연관된 카테고리들이 랜덤하게 나눠지게 되면, dataset A와 dataset B에는, 확률적으로, 거의 절반씩의 카테고리들이 들어가게 됩니다. 따라서, 이 두 dataset은 similar 하다고 볼 수 있습니다.
그 이유는, 위에 설명과 대조적으로, 두 개의 dataset으로 나누는 기준으로 man-made와 natural로 나누는 방법이 있습니다. 운이 좋게도 ImageNet dataset 1000 개의 클래스 중에서 551개는 인위적인 사물들이라고 할 수 있는 man-made 카테고리들이 있고, 449개는 natural 카테고리들이 있습니다. 대략 비율이 비슷해서, 둘로 데이터 셋을 나누어서 이 dataset 두 개가 서로 dissimilar 한 dataset이고 각 dataset을 clasfication 한 테스크는 similar한 테스크라고 볼 수 있습니다.
그리고 후에 있는 실험들을 설명하기에 앞서 용어들을 정의해 보겠습니다. 첫 번째로는 B3B는 B로만 전체 네트워크를 학습한 base 네트워크 B에서 첫 번째 세 개의 layer를 그대로 가져오고, 나머지 5개의 layer를 dataset B로 학습을 하되 처음에 가져왔던 layer의 가중치를 업데이트하지 않고, 가중치를 freeze 하는 네트워크를 B3B라고 합니다. 그리고 selffer network라고 부릅니다. 그리고 이 네트워크의 가운데 숫자 3은 n으로 일반화해서 가지고 오는 layer의 개수가 몇 개냐로 BnB를 정의할 수 있습니다. 다음으로는 transfer network AnB입니다. AnB는 예를 들어 설명 하겠습니다. AnB중 예를 들어 A3B는 A dataset으로만 학습한 전체 network base A에 대해서 첫 번째 3개의 layer를 가지고 와서, 그 layer의 feature를 freeze 하고 뒤 5개의 layer를 target dataset B로 학습한 것을 A3B라 합니다. 용어를 짚고 넘어가면, 가져온 가중치를 업데이트 하지 않는 것을 layer가 frozen 되었다고 하고, 가져온 layer의 가중치도 업데이트하는 것을 fine-tune 한다고 합니다. 위에서 정의한 것들은 모두 layer를 freeze 하는 것이었습니다. 이외에 B3B+, A3B+등, ‘+’ 기호는 가져온 layer도 fine-tune 하는 것을 의미합니다.
그림으로 보면 위와 같습니다. 그림상에서 위 두 개의 네트워크는 각각 dataset A와 dataset B에 대해서 전체 네트워크를 학습한 base A와 base B이고, 각 layer의 색깔로 그 layer를 어떤 dataset으로 학습하였는지 구분할 수 있습니다. 밑에 네트워크 두 개 중 B3B는 base B에서 3개의 레이어를 가지고 오고, layer를 프리즈 하고, 뒤에 다시 B로 학습한 것입니다. 그리고 B3B+는 freeze 하지 않은 것 입니다. 그래서 그림상에서 자물쇠 표시가 잠긴 것은 freeze 한 것, 풀린 것은 fine-tuning 한 것으로 볼 수 있습니다. 그리고 밑에는 trasfer 네트워크 A3B, A3B+ 를 나타냅니다. 마찬가지로 자물쇠가 잠긴 것은 freeze한 것, 풀린 것은 fine-tuning한 것입니다.
위 그림은 base A와 base B를 보여주는 그림입니다.
앞으로 base B, 즉 target task B의 accuracy를 기준으로, 다른 네트워크들 AnB, AnB+, BnB, BnB+ 들의 accuracy를 그래프를 표현할 것이고, 여기서 x축 n는 몇 개의 레이어를 가지고 왔느냐를 나타냅니다.
먼저 base A가 있다고 해보겠습니다. base A는 base task A에 대해서 학습한 네트워크입니다.
A network에서 앞에 layer를 그대로 가지고 옵니다. 그런 다음에 이 layer를 freeze 하고, 전체 network를 image B에 대해서 학습을 시킵니다. 그러면 transfer AnB가 됩니다. 위 그림에서, 색깔로 각 layer가 어떤 데이터로 학습되는지 알 수 있습니다. 이 transfer AnB의 accuracy가 n이 커짐에 따라서, base B와 비교했을 때 어떻게 바뀌는지 살펴보겠습니다.
위 그림에서, 각 점들은 케이스들에 대해서 여러 번 학습을 하고, accuracy를 표시한 것이고, 전체적으로 봤을 때 AnB는 n이 커짐에 따라서 accuracy가 줄어드는 것을 알 수 있습니다. 여기서 알 수 있는 것은 transfer lerning을 했지만 n이 커질수록, 그리고 layer가 freeze 되었기 때문에 그리고 점점 후반부 layer로 갈수록 task A에 specific 하기 때문에 accuracy가 떨어진다는 것을 볼 수 있습니다.
이번에는 base B로 시작하는 selffer 네트워크를 살펴보겠습니다. 먼저 base B가 있고, base B에서 저층 layer들을 그대로 가져와서 freeze 한 후에, 뒤 layer들을 똑같이 dataset B로 학습을 합니다. 그러면 selffer BnB가 될 것입니다.
이번에는 그래프가 어떻게 변하는지 살펴보겠습니다. 그래프상에서 파란색을 보시면, n이 커질수록 accuracy가 줄어들었다가 다시 올라가는 걸 볼 수 있습니다. 특히, A의 n=4일 때 그리고 n=5일 때 accuracy가 크게 떨어집니다. 그 이유는 n=4와 n=5 그리고 n=5와 n=6 이 두 인접하는 layer들이 co-adaptation(상호 적응)이 많이 되어서, 중간을 자르고 앞에 layer를 고정하고 뒤 것을 학습시키면 뒤에 것을 아무리 독립적으로 학습을 시킨다고 해도, 앞에 것이 변해주지 않으면 optimization이 잘 되지 않기 때문입니다. 그리고 이렇게 accuracy가 높게 나오지 않는 현상을 co-adaptation이라고 합니다. 특히 n이 4와 5 그리고 5와 6 사이에 co-adaptation이 크다는 것을 확인할 수 있습니다. 그리고 n이 6과 7일 때 다시 accuracy가 올라갑니다. 이 현상을 보면, 떨어지지 않고 올라가기 때문에, co-adaptation이 network의 중간에서 발생하고, 뒤에 있는 6과 7 그리고 7과 8 layer는 co-adaptation이 없다는 것을 알 수 있습니다. 이러한 점을 본 논문에서 특히 강조하는 부분입니다.
다시 정리해보면, 위 그림의 파란색의 퍼포먼스가 떨어지는 이유는 co-adaptation 때문이고, 빨간색 transfer AnB의 퍼포먼스가 떨어지는 이유는 뒤 layer로 갈수록 layer가 A task에 specific 하기 때문입니다.
그리고, fine-tuning까지 더한 AnB와 BnB를 살펴보겠습니다. AnB+가 가장 높고, n이 커질수록 퍼포먼스가 증가합니다. 그 이유는 transfer learning도 했고, 거기에 fine-tuning까지 해서 generalization에 도움이 되었기 때문에 가장 좋은 퍼포먼스를 내고 있다고 볼 수 있습니다. 그리고 신기한 것은 BnB+도 대체적으로 n이 커질수록 모두 base B보다 높은 퍼포먼스를 내고 있습니다. 이를 통해, BnB+도 똑같은 dataset B로만 학습을 한 것이지만, 초기화가 잘 된 layer들을 가지고 와서 학습을 하느냐에 따라서 성능이 개선될 수 있다는 점을 알 수 있습니다.
그리고 AnB의 성능을 구간으로 묶어서 나타낸 것인데, 첫 번째 row가 나타내는 것은, n이 ‘1 – 7’인 네트워크의 성능의 평균, 그것이 얼마나 base B와 selffer BnB+보다 증가되었느냐를 나타내는 것이고, ‘3 – 7’은 5개의 네트워크를 평균 낸 것입니다. ‘5 – 7’은 3개의 네트워크 평균 낸 것입니다. 표의 ‘layers aggregated’가 뒤로 갈수록 더 성능 상승 폭이 큰 걸로 봤을 때, transfer learning을 할 때 fine-tuning까지 하는 경우에, 더 많은 layer를 가지고 올 수록 더 좋은 성능을 낸다는 것을 알 수 있습니다.
지금까지는 similar 한 dataset에 대한 실험이었습니다. 이제 dissimilar 한 dataset에 대한 실험을 살펴보겠습니다.
위 그림에서, 6 각형의 주황색 그래프는 dissimilar dataset의 AnB의 평균 accuracy이고, y축을 보면 마이너스로 표시된 것은, base B와 비교했기 때문에, 성능이 마이너스로 나타나는 것입니다. 위 그림에서 다이아몬드 모양의 빨간색의 그래프는 similar 한 데이터셋으로 전이 학습을 한 AnB의 평균 accuracy의 base B와 비교한 결과입니다. 여기서 볼 수 있듯이 두 tsk가 dissimilar 할수록 n이 커짐에 따라서 performance drop이 크다는 것을 알 수 있습니다. 결국 dissimilar 할수록 transfer learning의 이점이 작다는 것을 알 수 있습니다.
또 한 가지 흥미로운 실험이 있습니다. Jarret이라는 연구자가 2009년에 발표한 논문에서, convolutional 네트워크에서 저층의 layer를 랜덤 하게 초기화하고 학습을 하지 않았을 때, 어느 정도의 성능을 낸다는 것을 관찰을 했습니다. 해당 실험은 좀 더 작은 데이터셋과 좀 더 작은 네트워크에 대한 실험이었습니다. 그런데 오늘 소개해드린 논문의 실험은 아주 큰 dataset인 ImageNet dataset이고, 좀 더 큰 network에 대한 실험을 했을때 저층 layer를 랜덤하게 초기화했을 때 Jarret의 연구 결과만큼 퍼포먼스의 증가는 없었습니다.
n이 커짐에 따라서, 즉 랜덤하게 초기화 한 저층 layer가 많아짐에 따라서, 퍼포먼스가 drop을 합니다. n이 ‘2 – 3’으로 갔을 때, 즉 두 개의 layer만 가져오지 않고 세 개의 layer까지 랜덤 초기화를 했을 때, 급하게 급격하게 accuracy가 drop는 것을 볼 수 있습니다. 여기서 알 수 있는 사실은 저층 레이어 2까지가 general 하다는 사실입니다.
최종 결과를 정리해보겠습니다. 실험에서 layer가 얼마나 general 한 지 specific 한 지를 정량화할 수 있는 수단에 대해서 알아봤습니다. 그리고 transfer learning이 영향을 받는 요소인 co-adaptation이라는 개념을 알 수 있었습니다. 그리고 feature의 specificity를 알 수 있었고, 또 얼마나 두 task가 두 dataset이 차이가 있느냐에 따라서 transferability가 결정된다는 것을 알 수 있었습니다. 그리고 BnB+의 사례로 보듯이 fine-tuning은 언제나 도움이 된다는 것을 알 수 있었습니다.
'이미지 처리 논문' 카테고리의 다른 글
MobileViT: Light-weight, general-purpose, and Mobile-friendly Vision Transformer (2) | 2022.05.16 |
---|---|
Tiny Object Detection! (2) | 2022.05.16 |
Dense vs Sparse - Sparse R-CNN (0) | 2022.05.16 |
Pose Estimation논문! Transfer Learning for Pose Estimation of Illustrated Characters (0) | 2022.05.16 |
이미지 처리 깊게 더 깊게 ResNet (0) | 2022.05.16 |
댓글