• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

Fine tuning 관련하여 질문 드립니다.

22.05.08 03:28 작성 조회수 487

1

안녕하세요! 항상 강의 잘 듣고 있습니다!

다름이 아니라 현재 파일에 포함된 vit.ipynb 파일에서는 train 부분에서 pretrain이 1로 설정되어 있어서 제공된 model.pth을 사용하여 파인 튜닝하게 되는데 해당 모델은 어떤 데이터를 어떤 방식으로 학습시킨 모델인가요?

 

그리고 보통 트랜스포머를 사용할때 아주 큰 데이터셋에 pretrain 시킨 모델을 가져와서 더 작은 데이터셋에 대해 파인 튜닝하여 사용한다고 이해하였습니다. 이 과정에서 image resize, MLP 헤드 부분을 클래스 수에 맞게 교체한다고 작성되어 있는데 여기서 헤드 부분을 교체한다는게 k에 해당하는 MHA의 헤드 수 인가요 아니면 cifar 10의 10개의 num_class인가요? 이외에도 파인튜닝이 더 필요한 부분이 있는지 궁금하고 또 파인튜닝과 관련된 추가적인 자료 알고계신게 있는지 궁금합니다.

 

마지막으로 파인튜닝하여 사용할때 pretrained된 트랜스포머의 구조와 사용하려고 하는 트랜스포머의 구조가 일치해야 하는데, 어떻게 때와 목적에 맞는 pretrained 모델을 구하는지도 알려주실 수 있으실까요? 

 

감사합니다!

답변 1

답변을 작성해보세요.

0

안녕하세요.

 

1. 해당 학습은 학습 중간에 잠깐 쉬고 중간 저장 모델부터 다시 학습을 진행한 것이라 1로 설정되어 있습니다. 초기 모델 파라메터부터 쭉 학습한 것이라고 생각하시면 됩니다:) 

2. 우리 강의에서는 하드웨어적인 부분 때문에 큰데이터 학습이 불가능합니다. 만약 큰 데이터셋으로 학습을 하셨다면 그 모델에 맞게 현재 데이터를 패치 수를 맞추고 이미지 크기를 리사이즈 해주시고 클래스 판별하는 부분을 현재 클래스의 수로 변경해 주시면 됩니다. 추가적으로 사전학습이 된 모델을 사용할 경우 기본적으로 헤드 수나 잠재 벡터 크기 등의 하이퍼 파라메터들은 변경하지 않습니다!

3. 사전학습이 된 모델을 사용할 경우 일반적으로 가장 마지막 층의 노드 수를 클래스 수에 맞춰주고 현재 데이터로 재학습하여 최적화합니다! 또한 사전학습에 사용하는 데이터의 크기와 현재 데이터의 크기가 너무 많이 차이나면 모델의 앞 부분을 변경하여 튜닝하기도 합니다.(예, 커널 사이즈 등). 구체적인 전이 학습 방법은 모델 마다 데이터마다 학습 방법마다 목적마다 다르기 때문에 정해진 답은 없습니다. 따라서 여러 실험을 해보셔야 합니다!

 

감사합니다.