How transferable are features in deep neural networks?
Jason Yosinski, Jeff Clune, Yoshua Bengio, Hod Lipson
(Submitted on 6 Nov 2014)
arXiv:1411.1792
1 Introduction
이미지를 train 할 때 모든 first-layer features가 Gabor filter나 color blob과 비슷했다.
(Gabor filter란 ? 외곽선을 검출하는 필터)
이러한 first-layer의 feature들이 특정한 cost function이나 natural image dataset에 관계없이 발생하는 것을 확인하였다.
우리는 이러한 first-layer features를 general하다고 부른다.
반면에 last layer of a trained network는 선택된 dataset과 task에 굉장히 영향을 받는것을 확인했다.
그러므로 이러한 last-layer features를 specific하다고 부른다.
first-layer features가 general하고 last-layer features가 specific하다면 분명히 네트워크 어디에서인가 general로부터 specific으로의 transition이 존재할 것이다.
이러한 관찰은 몇가지 의문을 제기한다.
-
Can we quantify the degree to which a particular layer is general or specific?
-
Does the transition occur suddenly at a single layer, or is it spread out over several layers?
-
Where does this transition take place: near the first, middle, or last layer of the network?
네트워크 내의 feature들이 general(일반적)이면 우리는 transfer learning에 그 feature들을 이용할 수 있다.
[transfer learning이란?]
base dataset과 task로 base network 를 훈련시키고 훈련을 통해 얻어진 learned features를 다른 target dataset과 task로 훈련된 target network에 transfer 하는 것을 의미한다.
이 과정은 feature들이 general하다면 작동하게 된다. 만약 base task에 specific하다면 작동하지 않게 된다.
만약 target dataset이 base dataset과 비교해 굉장히 작다면 transfer learning은 overfitting없이 거대한 target 네트워크를 훈련시킬 수 있는 강력한 도구가 될 수 있다.
대부분의 transfer learning approach는 base network 를 훈련시키고 first layer부터 n layers를 카피하여 target network에 붙여넣는다.
target network의 나머지 layer들은 랜덤하게 초기화되고 target task를 향해 훈련된다.
이제 복사해온 base network의 layer들을 얼릴지(frozen) 또는 훈련을 시킬지(fine-tune) 선택하면 된다.
-
frozen의 경우, 새로운 task에 대해 훈련을 하는 동안 update를 하지 않는다.
-
fine-tune의 경우, error backpropagation을 통해 update를 한다.
Fine-tune 선택
target dataset의 사이즈와 복사해온 layer들의 parameter수에 따라 결정하면 된다.
만약 target dataset의 크기가 작고 parameter의 수가 많으면 fine-tuning은 overfitting을 초래할 수 있다.
반대로 target dataset의 크기가 크고 parameter수가 적으면 fine-tuning은 overfitting없이 새로운 task에 대해 향상된 성능을 보여준다.
물론 이 때 target dataset의 크기가 매우 크다면 굳이 transfer할 필요는 없지만 말이다... ^^
2 Generality vs. Specificity Measured as Transfer Performance
task A를 위해 학습된 feature들의 degree of generality (일반성의 정도)는 다른 task B에 얼마나 적용될 수 있는지를 정도로 한다.
이러한 정의는 A와 B 사이의 유사성에 의존한다.
해당 논문에서는 ImageNet dataset을 이용하여 task A와 B를 겹치는 부분없이 나누었다.
1000개의 클래스를 각 500개 클래스 씩으로 나누었고 각각 약 645,000개의 example을 가진다.
layer n은 {1, 2, ,,, 7} 사이의 숫자이며 아래 예시에서는 n=3이다.
-
A selffer network B3B: the first 3 layers are copied from baseB and frozen. The five higher layers (4–8) are initialized randomly and trained on dataset B. This network is a control for the next transfer network. (Figure 1, row 3)
-
A transfer network A3B: the first 3 layers are copied from baseA and frozen. The five higher layers (4–8) are initialized randomly and trained toward dataset B. Intuitively, here we copy the first 3 layers from a network trained on dataset A and then learn higher layer features on top of them to classify a new target dataset B. If A3B performs as well as baseB, there is evidence that the third-layer features are general, at least with respect to B. If performance suffers, there is evidence that the third-layer features are specific to A. (Figure 1, row 4)
위의 두가지 네트워크가 사용되는데 여기서 B3B는 B를 위해 학습된 feature들을 다시 B에게 transfer한 경우이고
A3B는 A를 위해 학습된 feature들이 B를 위해 사용되도록 transfer된 경우이다.
만약 A3B가 base B만큼 성능을 낸다면 third-layer features는 적어도 B에 대해서는 general하다는 의미이다.
위의 두가지 네트워크의 transferred layer가 frozen이라면 아래는 fine-tune 버전의 네트워크이다.
-
A selffer network B3B+: just like B3B, but where all layers learn.
-
A transfer network A3B+: just like A3B, but where all layers learn.
위에서 정의한 네트워크들의 overview이다.
4 Results and Discussion
4.1 Similar Datasets: Random A/B splits
데이터를 랜덤하게 반으로 쪼개서 사용한 경우이다. 이 경우에는 dataset간의 유사성이 다소 보인다.
1. base B
하얀색 동그라미 base B는 500개 클래스들의 랜덤한 서브셋을 분류하는 네트워크이다.
top-1 accuracy 는 0.625 or 37.5% error 이다.
이 경우 1000개 클래스를 학습한 네트워크의 top-1 error인 42.5%보다 낮다.
어쩌면 데이터가 적어지면서 overfitting 을 일으킬 수 있을지도 모른다.
2. dark blue BnB
기대한대로 layer 1에서의 성능은 base B의 것과 비슷하다.
즉, layer 1은 어디서든 같은 일(like Gabor feature and color blob)을 학습하기 때문이다.
layer 2까지도 비슷하다.
그러나 layer 3부터는 성능이 떨어지고 특히 layer 4랑 5는 성능 drop이 심히다.
이 drop은 original network 가 fragile co-adapted features를 가지고 있다는 것의 증거이다. 고로 이 feature들은 co-adaptiation으로 upper-layer에 의해 학습될 수 없다는 것을 의미한다.
layer 6과 7서는 다시 성능이 좋아지는 것을 볼 수 있다.
끝인 500way의 softmax output layer 8에 가까워질 수록 다시 학습할 수 있는 양이 줄어들고 적은 수의 layer를 다시 학습하는 것은 Gradient descent가 좋은 solution을 찾기에 충분히 simple하기 때문이다.
3. light blue BnB+
성능이 대략적으로 base case와 비슷하다.
dark blue BnB와 비교해보면 fine-tune을 통해 성능 저하 문제를 예방했다는 것을 알 수 있다.
4. dark red AnB
layer1과 2에서는 feature들이 general하기에 성능에 변화가 없음을 확인할 수 있다.
그러나 뒤의 layer로 갈 수록 성능이 점점 떨어진다.
이 drop은 두가지 영향으로 볼 수 있다.
-
lost co-adaptation
-
specific features
layer 3, 4, 5에서는 첫번째 영향이 크고 그 뒤의 layer는 두번째 영향이 크다.
5. light red AnB+
가장 좋은 성능을 보여준다.
이전에 transfer learned feature를 하는 이유가 적은 target dataset에 대해 overfitting없이 train을 할 수 있기 때문이라 했다. 그러나 여기서 새로운 결과는 target dataset이 크더라도 generalization 성능에 크게 도움이 될 수 있다는 것을 확인했다.
이것은 아주 긴시간의 training time 때문이 아니다. 왜냐하면 BnB+ 또한 같은 시간동안 훈련을 시켰고 이는 AnB+와 같은 성능을 보여주지는 않았기 때문이다.
그리고 매우 놀라운 점은 450k번의 iteration of fine-tuning 후에도 base dataset이 여전히 존재하는 것과 같은 효과를 보였다.
4.2 Dissimilar Datasets: Splitting Man-made and Natural Classes Into Separate Datasets
이번에는 데이터의 유사성을 없앴을 때의 실험이다.
데이터를 사람이 만든 것과 자연적인 것으로 나눴다. 결과적으로 총 551개와 449개로 데이터의 개수는 약간 달랐다.
이들은 base와 target task가 닮지 않을 수록 feature transfer의 효과도 감소할 것이라 예상했다.
흰색 동그라미들은 각각 baseA(man-made class)와 baseB(natural calss)의 정확도이다.
또한 육각형은 BnA, AnB를 의미한다.
위의 줄은 baseB와 AnB를 의미하는데 이 natural 카테고리가 man-made 카테고리보다 더 좋은 성능을 보이고 있다.
그러나 이것은 앞서말한 데이터 개수의 차이에서 비롯된 것이다.
결과적으로는 데이터의 유사성이 적어질수록 feature transfer의 효과도 감소하는 것을 볼 수 있었다.
4.3 Random Weights
랜덤 weight를 이용하여 cnn을 학습시켰을 때 아주 나쁜 성능을 보여주고 있다.
3가지 실험결과를 합한 그래프이다.
명백한 결과는 아래와 같다.
-
frozen features를 사용했을 때 n이 커짐에 따른 transferability gap은 유사한 task(빨간 다이아몬드)일 때보다 유사하지 않은 task(오렌지 육각형)이 더욱 커졌다. layer1에서의 결과와 마지막 layer의 결과 대비, 유사task 에서는 8% 떨어졌는데 비유사task에서는 25%나 떨어졌다.
-
distant task로의 transferring이 random features보다 성능이 좋았다.
5 Conclusions
(conclusion은 요약한 내용이라 그냥 번역기 돌림)
신경 네트워크의 각 층에서 형상의 전달 가능성을 정량화하는 방법을 시연해 보았는데, 이는 형상의 일반성이나 특수성을 나타냅니다. 우리는 전송성이 두 가지 뚜렷한 문제에 의해 부정적인 영향을 받는 방법을 보여주었습니다. 취약한 공동 적응 계층의 중간에 네트워크를 분할하는 것과 관련된 최적화 어려움과 목표 작업에서 성능을 희생하면서 상위 계층 기능의 전문화입니다. 이 두 가지 문제 중 하나가 네트워크 하단의 특징, 중간 또는 상단의 특징에 따라 좌우될 수 있다는 것을 확인했습니다. 또한 특히 상위 계층을 전송할 때 작업 간 거리가 증가함에 따라 전달 가능성 격차가 어떻게 증가하는지 정량화했지만, 이 과정에서 전달되는 기능도 검출되었습니다.
먼 일은 무작위 가중치보다 더 좋습니다. 마지막으로, 이전된 기능을 사용하여 초기화할 경우 새로운 작업을 세밀하게 조정해도 일반화 성능을 향상시킬 수 있으며, 이는 심폐 네트워크 성능을 향상시키는 데 일반적으로 유용한 기술일 수 있습니다.
이로써 How transferable are features in deep neural networks? 논문을 다 읽어보았다. :)
(이미지는 논문의 것을 그대로 사용하여 본인이 직접 작성하였습니다.)