Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
Next
Download to read offline and view in fullscreen.

0

Share

Download to read offline

Transfer learning usage

Download to read offline

Sogang University Special Guest Class

Related Books

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

Transfer learning usage

  1. 1. Transfer Learning 실무에서 활용하기 Produced By Tae Young Lee
  2. 2. 출처 : https://greenlogic.com.au/blog/what-is-transfer-learning/
  3. 3. 인생에서 문제가 생겼을 때 고려사항
  4. 4. 내가 무엇을 가지고 있느냐? ( Resource )
  5. 5. 내가 가지고 있는 것이 무어냐?
  6. 6. Time Money
  7. 7. Deep Learning Modeling 관점에서 재해석해 보자!
  8. 8. Model Training의 문제
  9. 9. Data 확보의 문제
  10. 10. Training 가능한 데이터는 많지가 않다. 업무 시스템 중심으로 데이터가 보관되어 있다. 업무 시스템에 부하를 주지 않는 데이터 확보 방안 수립 Data Transform이 필요하고 Augmentation이 필수적 무엇을 모델링할 것인지를 선행해서 확인 필요
  11. 11. 많은 학습 시간 소요
  12. 12. 제약적인 Infra Resource Training 시 데이터에 대한 고려 필요 초기에는 Mini Batch의 형태로 학습 성능이 어느정도 보장된다 싶으면 Full Batch로 전환 ModelCheckPoint설정과 Early Stopping을 통한 Best Model추출 중간에 학습이 끊어질 것을 대비하여 중간 중간 결과값 저장 필요 ( Epoch Number Restoring )
  13. 13. Training 할 때 고려사항
  14. 14. 얼마나 많은 돈과 시간을 들여야 하느냐?
  15. 15. Time Money 빠른 Training Time 필요 Why? 모델 검증을 위해서 ( 높은 정확도 , 실 적용 여부 판단) GPU 개선을 위한 다양한 방안 수립
  16. 16. 실전에서는 빠른 해결과 대응을 원한다
  17. 17. 전이학습은 높은 정확도를 비교적 짧은 시간 내에 달성할 수 있기 때문에 컴퓨터 비전 분야에서 유명한 방법론 중 하나 (Rawat & Wang 2017). 전이학습을 이용하면, 이미 학습한 문제와 다른 문제를 풀 때에도, 밑바닥에서부터 모델을 쌓아올리는 대신에 이미 학습되어있는 패턴들을 활용해서 적용시킬 수 있음 이를 샤르트르 식으로 표현하면 거인의 어깨에 서서(standing on the soulder of giants) 학습하는 것 컴퓨터 비전에서 말하는 전이학습은 주로 사전학습 된 모델 (pre-trained model) 을 이용하는 것 사전학습 된 모델이란, 내가 풀고자 하는 문제와 비슷하면서 사이즈가 큰 데이터로 이미 학습이 되어 있는 모델 그런 큰 데이터로 모델을 학습시키는 것은 오랜 시간과 연산량이 필요하므로, 관례적으로는 이미 공개되어있는 모델들을 그저 import해서 사용 출처 : https://jeinalog.tistory.com/13
  18. 18. Pretrained Model사용 시 가장 중요한 포인트
  19. 19. Fine Tunning Scope 정의
  20. 20. 참고 : https://developer.ibm.com/technologies/artificial-intelligence/articles/transfer-learning-for-deep-learning/ Feature transfer
  21. 21. 참고 : https://developer.ibm.com/technologies/artificial-intelligence/articles/transfer-learning-for-deep-learning/ Fine Tunning
  22. 22. 실전에서 활용 시 유의사항
  23. 23. Fine Tunning Transfer Learning Pretrained Model
  24. 24. Data Optimization 데이터 확인 모델 검증 방안 수립 ambiguity uncertainty
  25. 25. Neural Network Architecture 검토
  26. 26. Neural Net Architecture의 "계층적인 특징"을 고려 독립적인 컴포넌트의 이질적 요소 ( 분리 포인트를 찾자 )
  27. 27. 출처 : https://jeinalog.tistory.com/13 이러한 딥러닝 모델의 중요한 성격 중 하나는 바로 "계층적인 특징"을 "스스로" 학습한다는 점 계층적인 특징을 학습한다 는 말의 의미 모델의 첫 번째 층은 "일반적인(general)" 특징을 추출하도록 하는 학습 모델의 마지막 층에 가까워질수록 특정 데이터셋 또는 특정 문제에서만 나타날 수 있는 "구체적인(specific)" 특징을 추출해내도록 하는 고도화된 학습 따라서 앞단에 있는 계층들은 다른 데이터셋의 이미지들을 학습할 때도 재사용 가능 뒷단의 계층들은 새로운 문제를 맞이할 때마다 새로 학습이 필요함
  28. 28. Yosinski et al. (2014) 논문에서는 이러한 딥러닝의 특성에 대해, '만약 첫 번째 계층에서 추출된 특징이 일반적인 특징이고 마지막 층에서 추출된 특징이 구체적인 특징이라면, 네트워크 내의 어딘가에 일반적인 수준에서 구체적인 수준으로 넘어가는 전환점이 분명 존재할 것' 결론적으로, 우리가 살펴본 CNN 모델의 Convolutional base 부분, 그 중에서도 특히 낮은 레벨의 계층(input에 가까운 계층)일수록 일반적인 특징을 추출 그와 반대로 Convolutional base 의 높은 레벨의 계층(output에 가까운 계층)과 Classifier 부분은 보다 구체적이고 특유한 특징들을 추출. 출처 : https://jeinalog.tistory.com/13
  29. 29. 사전 학습된 모델을 이제 나의 프로젝트에 맞게 재정의한다면, 먼저 원래 모델에 있던 classifier를 없애는 것으로 시작합니다. 원래의 classifier는 삭제하고, 내 목적에 맞는 새로운 classifier를 추가합니다. 그 후 마지막으로는 새롭게 만들어진 나의 모델을 다음 세 가지 전략 중 한 가지 방법을 이용해 파인튜닝(fine-tune)을 진행 출처 : https://jeinalog.tistory.com/13
  30. 30. 전략별 특징 ( Fine Tunning Scope 정의)
  31. 31. # 전략 1 : 전체 모델을 새로 학습시키기 이 방법은 사전학습 모델의 구조만 사용하면서, 내 데이터셋에 맞게 전부 새로 학습시키는 방법 모델을 밑바닥에서부터 새로 학습시키는 것이므로, 큰 사이즈의 데이터셋이 필요 (컴퓨팅 연산 능력을 위한 많은 Infra Resource 필요) 출처 : https://jeinalog.tistory.com/13
  32. 32. # 전략 2 : Convolutional base의 일부분은 고정시킨 상태로, 나머지 계층과 classifier를 새로 학습시키기 앞서 언급했듯이, 낮은 레벨의 계층은 일반적인 특징(어떤 문제를 푸느냐에 상관 없이 독립적인 특징)을 추출하고, 높은 레벨의 계층은 구체적이고 특유한 특징(문제에 따라 달라지는 특징)을 추출합니다. 이런 특성을 이용해서, 우리는 신경망의 파라미터 중 어느 정도까지를 재학습시킬지를 정할 수 있음 주로, 만약 데이터셋이 작고 모델의 파라미터가 많다면, 오버피팅이 될 위험이 있으므로 더 많은 계층을 건들지 않고 그대로 둠. 반면에, 데이터셋이 크고 그에 비해 모델이 작아서 파라미터가 적다면, 오버피팅에 대한 걱정을 할 필요가 없으므로 더 많은 계층을 학습시켜서 내 프로젝트에 더 적합한 모델로 발전 출처 : https://jeinalog.tistory.com/13
  33. 33. # 전략 3 : Convloutional base는 고정시키고, classifier만 새로 학습시키기 이 경우는 보다 극단적인 상황일 때 생각할 수 있는 케이스 convolutional base는 건들지 않고 그대로 두면서 특징 추출 메커니즘으로써 활용하고, classifier만 재학습시키는 방법 이 방법은 컴퓨팅 연산 능력이 부족하거나 데이터셋이 너무 작을때, 그리고/또는 풀고자 하는 문제가 사전학습모델이 이미 학습한 데이터셋과 매우 비슷할 때 검토 출처 : https://jeinalog.tistory.com/13
  34. 34. 주의해야 할 점
  35. 35. Model 생성 데이터 도메인 확인
  36. 36. CNN 베이스의 사전학습 모델을 사용할 때에는, 이전에 학습한 내용들을 모두 잊어버릴 위험이 있기 때문에 작은 learning rate를 사용 사전학습 모델이 잘 학습되었다는 가정하에, 작은 learning rate으로 학습을 시킨다면 CNN 모델의 파라미터들을 너무 빠르게, 혹은 너무 많이 왜곡시키지 않고 원래 학습되어있던 지식을 잘 보존하면서 추가로 학습을 해야 함 작은 Learning rate를 사용한다는 것은 Pretrained Model이 잘 학습되었다는 가정하에 성립됨 Pretrained Model을 사용하지 않는 일반적인 Training환경에서 작은 Learning rate는 일단 수렴하는 속도가 너무 느리고, local minimum에 빠질 확률이 증가 출처 : https://jeinalog.tistory.com/13
  37. 37. [참고] Pretrained Model을 사용하지 않는 일반적인 학습의 경우
  38. 38. Learning rate를 설정할 때 주의할 점 1) Learning rate가 너무 클 때, 최적의 값으로 수렴하지 않고, 발산해버리는 경우가 발생 → OverShooting 2) Learning rate가 너무 작을 때, 일단 수렴하는 속도가 너무 느리고, local minimum에 빠질 확률이 증가 Learning rate를 잘 찾는 방법은 따로 없지만, Learning rate를 잘 찾기 위해 도와줄 수 있도록 데이터들을 전처리(preprocessing)하는 과정이 필요 각각의 데이터들의 값이 너무 많이 차이날 경우 Learning rate를 잘 못설정했을 때와 비슷한 현상이 발생 이를 해결하기 위해 feature들을 Scaling 한다. Feature Scaling에는 2가지 방법이 있는데, 1) Normalization - 표본들의 값을 모두 0 ~ 1 사이의 값으로 변환 하는 방법. 2) Standardization - 표본들의 값을 가우시안 분포의 값으로 변환 하는 방법.
  39. 39. Resnet과 VGG16에서 Transfer Learning을 사용하는 이유
  40. 40. Layer 분리가 가능하다
  41. 41. 오픈된 Pretrained Model이 많다
  42. 42. 출처 : https://towardsdatascience.com/deep-learning-using-transfer-learning-python-code-for-resnet50-8acdfb3a2d38
  43. 43. 출처 : https://towardsdatascience.com/deep-learning-using-transfer-learning-python-code-for-resnet50-8acdfb3a2d38
  44. 44. 실전에선 Resnet Architecture만 준용
  45. 45. 모델을 서비스에 맞추어 구현하려면 현실 세계에선 Domain별 Data Dependency 확인 필요
  46. 46. # 전략 1 : 전체 모델을 새로 학습시키기 이 방법은 ResNet의 구조만 사용하면서, 실제 데이터셋에 맞게 전부 새로 학습시키는 방법입니다. 모델을 밑바닥에서부터 새로 학습시키는 것이므로, 큰 사이즈의 데이터셋이 필요합니다. (그리고, 좋은 컴퓨팅 연산 능력도요!) 출처 : https://jeinalog.tistory.com/13
  47. 47. 그래서 Annotation Scope이 중요하다.
  48. 48. 생성된 이미지 분류 모델을 통한 자동 Batch Annotation 수행도 병행한다.
  49. 49. 성능향상을 위해 Joint Training을 통해 다수의 이미지 모델의 결합을 수행한다.
  50. 50. 단계0. 무작위 초기화 입력 이미지 모델 가중치 Forward 예측값 Ground Truth (정답) Backward 단계1. 입력에 대한 예측 단계2. 손실 함수 계산 단계3. 최적화 알고리즘 손실 업데이트 Loss = Cost = Error
  51. 51. 단계2. 손실 함수 계산 ( Softmax 손실 함수 ) Loss = Cost = Error 마지막 출력층은 전 단계에서 추출된 특징 벡터를 N개의 범주로 분류하기 위해 배치된 fully-connected layer와 softmax함수로 구성됨 이후 cross entropy가 softmax함수를 통해 나온 확률 분포와 정답 분포 사이의 오차를 계산 Softmax 확률값을 이용한다는 점에서 이 손실 함수를 Softmax 손실 함수라고 부른다. 분류에 사용되는 활성화 함수 → Softmax함수 : 모든 입력 신호로부터 영향을 받음 Softmax함수 주의점 - 지수 함수로 되어있어 오버플로 (무한대 값 발생) 문제가 생길 수 있음
  52. 52. 1개의 모델에서 n개의 output을 출력한다면 이에 맞춰 n개의 서로 다른 loss를 뽑아 낼 수 있다. 여러개의 Loss들을 어떻게 처리하느냐에 따라 Joint Training과 Alternate Training방식으로 나뉠 수 있다. Joint Training이란 여러 개의 loss들을 하나의 값으로 더해서 최종 Loss로 사용하는 훈련 방식 Neural Net Architecture 마지막 층의 output을 channel단위로 잘라서 서로 다른 역할을 부여한 구조로 사용할 수 있음 각 채널이 서로 다른 역할을 수행하게 하려면 이에 맞게 loss function을 정의해줘야 하기 때문에 Channel단위 (서로 다른 역할) 단위의 Loss Function 부여 필요 핵심은 Total Loss = loss1 + loss2 + loss3 + loss4 + loss5 Joint Training은 여러 개의 Loss들을 더해서 모든 task들을 한번에 학습하는 방식 다수의 이미지 모델의 결합 시에도 활용 가능하다. 위와 같이 Joint Training을 사용하는 이유는 다수의 모델로 하나의 Task처리 시에 최종 모델 평가 및 성능 측정 관련하여 재정의가 필요하다.
  53. 53. Resnet과 Bert의 결합
  54. 54. OCR의 경우 이미지 모델과 언어 모델을 사용한다. 출처 : https://arxiv.org/pdf/1908.05054.pdf
  55. 55. 출처 : https://arxiv.org/pdf/1908.05054.pdf
  56. 56. 출처 : https://arxiv.org/pdf/1908.05054.pdf
  57. 57. Bert 모델을 학습한다는 건 아마추어
  58. 58. Bert Weight Load를 활용하자
  59. 59. Pretrained Bert Model 활용
  60. 60. 출처 : https://www.kaggle.com/hiromoon166/load-bert-fine-tuning-model
  61. 61. https://tfhub.dev/google/bert_multi_cased_L-12_H-768_A-12/1
  62. 62. 현재는 Transfer Learning 시대
  63. 63. Q & A
  64. 64. Thank you

Sogang University Special Guest Class

Views

Total views

84

On Slideshare

0

From embeds

0

Number of embeds

1

Actions

Downloads

4

Shares

0

Comments

0

Likes

0

×