모두야
Transfer Learning (전이학습) 본문
전이학습 이란 ?
Transfer learning (TL) is a research problem in machine learning (ML) that focuses on storing knowledge gained while solving one problem and applying it to a different but related problem. [wikipedia]
머신러닝(기계학습) 에서 사용되는 방법으로, 이전에 훈련된 지식을 기반으로 비슷한 문제를 해결할 때 적용시킬 수 있다.
- 학습 데이터가 부족할 때, 데이터가 풍부한 상태로 사전학습 된 모델을 이용하여 새로운 데이터 학습에 적용시킨다.
강아지, 고양이 이미지를 분류하는 CNN 모델 을 만들려고 한다. 이때, 좋은 성능의 CNN 분류기를 갖기 위해서는 많은 양의 데이터가 필요하다. 수 많은 강아지, 고양이 이미지들을 모아서 모델을 훈련 시키고, 최적화된 모델의 가중치(weights) 값을 얻게 된다.
강아지,고양이 분류 모델의 최적화된 가중치를 가지고 말, 소를 분류하는 모델 에 활용해볼 수 있을 듯 하다.
CNN 기반 모델의 구조
- Convolutional base : 합성곱층과 풀링층이 여러겹 쌓여있는 부분이다. 이미지로부터 특징을 추출한다. (feature extraction)
: input 낮은 레벨의 계층 (일반적인 특징) , output 높은 레벨의 계층 (구체적이고 특유한 특징)
- Classifier : 완전 연결 계층(fully connectd layer)
: 추출된 특징을 학습해서 이미지를 알맞은 카테고리로 분류한다. (image classification)
Transfer Leaning 과정 - Linear Classifier
이미 대량의 데이터로 학습된 Imagenet 을 이용하여 원하는 작은 양의 데이터 분류에 활용한다.
1) 마지막 층 FC-1000 삭제
: 최종 Feature과 class scores간의 연결을 초기화
: FC-4096까지는 Classifier 하기 위한 특징들을 가지고 있다.
: FC-1000은 1000개의 카테고리로 나눈다. 분류 전 높은 레벨의 최종 Feature 이 있다.
2) 원하는 새로운 데이터에 적용한다.
: 기존 모델의 나머지 layers의 가중치는 고정
: 4가지의 클래스로 분류하고 싶다면 (4096 x 1000)차원의 행렬을 (4096 x 4) 행렬로 바꿔준다.
: 마지막 레이어만 가지고 데이터 학습 시킨다.
여러 분야, 기존 방법 보다 모두 성능이 최고였다.
Alexnet의 학습된 모델의 마지막 단을 지우고, logiscit regression 을 붙이니 성능이 더 좋아졌다.
Fine-Tuning 이란 ?
데이터 양이 많다면 Fine-Tuning 을 이용한다.
: 네트워크의 더 많은 부분을 학습 시킬 수 있다.
- feature extraction
: 먼저 특징만 추출하여 살펴보고, 새로운 데이터에 활용
- learning rate 줄인다.
: 기존 가중치들이 ImageNet으로 이미 학습이 잘 되어있기 때문
- freeze lower
: 이전 레이어 고정
더 많은 부분은 어느 정도 ?
1) 전체 모델을 새로 학습 시키기
: 사전 학습 모델의 구조만 사용한다. 내 데이터셋에 맞게 전부 새로 학습 시키는 방법으로 큰 사이즈의 데이터셋이 필요하다.
2) Convolutional base의 일부분은 고정시킨 상태로, 나머지 계층과 classifier를 새로 학습시키기
: 레벨의 계층에 따라 이미지의 특징 추출이 달라진다. 이를 이용하여 재학습 시킬 적절한 계층의 크기 결정한다.
: 데이터 셋이 작고, 모델의 파라미터가 많다면 오버피팅 되기 쉽다 = 많은 계층 건들지 않기
: 데이터 셋이 크고, 모델의 파라미터가 적다면 오버피팅 걱정 없음 = 많은 계층 학습
3) Convloutional base는 고정시키고, classifier만 새로 학습시키기
: 데이터셋이 너무 작거나 컴퓨터 연산 능력 부족, 사전 학습 모델과 데이터셋이 매우 비슷할때 사용한다.
Fine Tuning을 적용 했을 때, 성능이 더 좋고 발전됨을 볼 수 있다.
어떤 기준으로 선정할 수 있을까?
ImageNet 과 유사한 데이터셋
1) 데이터가 작을 경우
: 기존 모델의 마지막 레이어만 학습하는 Linear Classifier 사용
2) 데이터가 클 경우
: 모델 전체를 Fine-tuning
ImageNet 과 다른 데이터셋
1) 데이터가 작을 경우
: 어렵다
2) 데이터가 클 경우
: 더 많은 레이어를 Fine-tuning
Transfer learning은 표준이 되었다.
사전 학습 된 ImageNet 을 이용하고, 각자의 문제에 맞게 Fine-tuning 한다.
오른쪽 그림의 Image Captioning의 경우 사전 학습된 word2vec 을 이용하여 word vectors를 사용한다.
필수는 아니지만 권장한다.
사전 학습된 데이터를 이용하지 않아도 학습은 가능하다. 3배 정도 느릴 뿐
Pretrain + fine-tuning 을 권장한다. 더 효율적일 수 있다.
하지만 어느정도 데이터양이 많은 경우 굳이 하지 않아도 모델을 만들어 낼 수 있다.
출처
insightcampus.co.kr/insightcommunity/?mod=document&uid=12802
'study > 개념' 카테고리의 다른 글
Self-supervised learning (자기지도학습) (1) | 2024.12.12 |
---|---|
경사 하강법(Gradient Descent) (0) | 2023.02.08 |