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

Contenu connexe

Tendances

Bert3q KorQuAD Finetuning NLP Challenge
Bert3q KorQuAD Finetuning NLP ChallengeBert3q KorQuAD Finetuning NLP Challenge
Bert3q KorQuAD Finetuning NLP ChallengeOverDeep
 
Enliple BERT-Small을 이용한 KorQuAD 모델
Enliple BERT-Small을 이용한 KorQuAD 모델Enliple BERT-Small을 이용한 KorQuAD 모델
Enliple BERT-Small을 이용한 KorQuAD 모델KwangHyeonPark
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)SANG WON PARK
 
Machine learning boosting 20180424
Machine learning boosting 20180424Machine learning boosting 20180424
Machine learning boosting 20180424Changwook Jun
 
(Nlp)fine tuning 대회_참여기
(Nlp)fine tuning 대회_참여기(Nlp)fine tuning 대회_참여기
(Nlp)fine tuning 대회_참여기OverDeep
 
Improving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-TrainingImproving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-Trainingpko89403
 
Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2KyeongUkJang
 
Random Forest Intro [랜덤포레스트 설명]
Random Forest Intro [랜덤포레스트 설명]Random Forest Intro [랜덤포레스트 설명]
Random Forest Intro [랜덤포레스트 설명]Hyunwoo Kim
 
Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리SANG WON PARK
 
Chapter 7 Regularization for deep learning - 2
Chapter 7 Regularization for deep learning - 2Chapter 7 Regularization for deep learning - 2
Chapter 7 Regularization for deep learning - 2KyeongUkJang
 
Sw개발 hw제작설계서 임베부스러기
Sw개발 hw제작설계서 임베부스러기Sw개발 hw제작설계서 임베부스러기
Sw개발 hw제작설계서 임베부스러기21HG020
 
Ml for 정형데이터
Ml for 정형데이터Ml for 정형데이터
Ml for 정형데이터JEEHYUN PAIK
 
[아꿈사] The C++ Programming Language 13장 템플릿
[아꿈사] The C++ Programming Language 13장 템플릿[아꿈사] The C++ Programming Language 13장 템플릿
[아꿈사] The C++ Programming Language 13장 템플릿해강
 
Metric learning 세미나
Metric learning 세미나Metric learning 세미나
Metric learning 세미나ssuser198c901
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical MethodologyKyeongUkJang
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)beom kyun choi
 
Time series classification
Time series classificationTime series classification
Time series classificationSung Kim
 

Tendances (20)

Bert3q KorQuAD Finetuning NLP Challenge
Bert3q KorQuAD Finetuning NLP ChallengeBert3q KorQuAD Finetuning NLP Challenge
Bert3q KorQuAD Finetuning NLP Challenge
 
Enliple BERT-Small을 이용한 KorQuAD 모델
Enliple BERT-Small을 이용한 KorQuAD 모델Enliple BERT-Small을 이용한 KorQuAD 모델
Enliple BERT-Small을 이용한 KorQuAD 모델
 
boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)boosting 기법 이해 (bagging vs boosting)
boosting 기법 이해 (bagging vs boosting)
 
Machine learning boosting 20180424
Machine learning boosting 20180424Machine learning boosting 20180424
Machine learning boosting 20180424
 
(Nlp)fine tuning 대회_참여기
(Nlp)fine tuning 대회_참여기(Nlp)fine tuning 대회_참여기
(Nlp)fine tuning 대회_참여기
 
Improving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-TrainingImproving Language Understanding by Generative Pre-Training
Improving Language Understanding by Generative Pre-Training
 
Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2Chapter 6 Deep feedforward networks - 2
Chapter 6 Deep feedforward networks - 2
 
Ai nlp challenge
Ai nlp challengeAi nlp challenge
Ai nlp challenge
 
Random Forest Intro [랜덤포레스트 설명]
Random Forest Intro [랜덤포레스트 설명]Random Forest Intro [랜덤포레스트 설명]
Random Forest Intro [랜덤포레스트 설명]
 
광고 CTR 예측
광고 CTR 예측광고 CTR 예측
광고 CTR 예측
 
Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리Machine Learning Foundations (a case study approach) 강의 정리
Machine Learning Foundations (a case study approach) 강의 정리
 
Chapter 7 Regularization for deep learning - 2
Chapter 7 Regularization for deep learning - 2Chapter 7 Regularization for deep learning - 2
Chapter 7 Regularization for deep learning - 2
 
Sw개발 hw제작설계서 임베부스러기
Sw개발 hw제작설계서 임베부스러기Sw개발 hw제작설계서 임베부스러기
Sw개발 hw제작설계서 임베부스러기
 
NN and PDF
NN and PDFNN and PDF
NN and PDF
 
Ml for 정형데이터
Ml for 정형데이터Ml for 정형데이터
Ml for 정형데이터
 
[아꿈사] The C++ Programming Language 13장 템플릿
[아꿈사] The C++ Programming Language 13장 템플릿[아꿈사] The C++ Programming Language 13장 템플릿
[아꿈사] The C++ Programming Language 13장 템플릿
 
Metric learning 세미나
Metric learning 세미나Metric learning 세미나
Metric learning 세미나
 
Chapter 11 Practical Methodology
Chapter 11 Practical MethodologyChapter 11 Practical Methodology
Chapter 11 Practical Methodology
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 
Time series classification
Time series classificationTime series classification
Time series classification
 

Similaire à Transfer learning usage

Infra as a model service
Infra as a model serviceInfra as a model service
Infra as a model serviceTae Young Lee
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsseungwoo kim
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)SK(주) C&C - 강병호
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...gohyunwoong
 
머신러닝과 사이킷런의 이해
머신러닝과 사이킷런의 이해머신러닝과 사이킷런의 이해
머신러닝과 사이킷런의 이해철민 권
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다Evion Kim
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPTTae Young Lee
 
Chapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsChapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsKyeongUkJang
 
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)Bong-Ho Lee
 
Enhanced ai platform
Enhanced ai platformEnhanced ai platform
Enhanced ai platformTae Young Lee
 
Image data augmentatiion
Image data augmentatiionImage data augmentatiion
Image data augmentatiionSubin An
 
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsTae Young Lee
 
이펙티브 C++ (7~9)
이펙티브 C++ (7~9)이펙티브 C++ (7~9)
이펙티브 C++ (7~9)익성 조
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용Youngjae Kim
 
한눈에 보는 머신러닝
한눈에 보는 머신러닝한눈에 보는 머신러닝
한눈에 보는 머신러닝주경 이
 

Similaire à Transfer learning usage (20)

Infra as a model service
Infra as a model serviceInfra as a model service
Infra as a model service
 
PaLM Paper Review
PaLM Paper ReviewPaLM Paper Review
PaLM Paper Review
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendations
 
파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)파이썬으로 익히는 딥러닝 기본 (18년)
파이썬으로 익히는 딥러닝 기본 (18년)
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
 
머신러닝과 사이킷런의 이해
머신러닝과 사이킷런의 이해머신러닝과 사이킷런의 이해
머신러닝과 사이킷런의 이해
 
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
링크드인의 Big Data Recommendation Products - 어제의 데이터를 통해 내일을 예측한다
 
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT검색엔진에 적용된 ChatGPT
검색엔진에 적용된 ChatGPT
 
Chapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep modelsChapter 8 - optimization for training deep models
Chapter 8 - optimization for training deep models
 
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
풀잎스쿨 - LIME 발표자료(설명가능한 인공지능 기획!)
 
Understanding MLOps
Understanding MLOpsUnderstanding MLOps
Understanding MLOps
 
Enhanced ai platform
Enhanced ai platformEnhanced ai platform
Enhanced ai platform
 
Image data augmentatiion
Image data augmentatiionImage data augmentatiion
Image data augmentatiion
 
CS294-112 18
CS294-112 18CS294-112 18
CS294-112 18
 
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMsExploring Deep Learning Acceleration Technology Embedded in LLMs
Exploring Deep Learning Acceleration Technology Embedded in LLMs
 
EC 789
EC 789EC 789
EC 789
 
이펙티브 C++ (7~9)
이펙티브 C++ (7~9)이펙티브 C++ (7~9)
이펙티브 C++ (7~9)
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용
 
한눈에 보는 머신러닝
한눈에 보는 머신러닝한눈에 보는 머신러닝
한눈에 보는 머신러닝
 

Plus de Tae Young Lee

LLMs Service that provides what users want to know
LLMs Service that provides what users want to knowLLMs Service that provides what users want to know
LLMs Service that provides what users want to knowTae Young Lee
 
LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드Tae Young Lee
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System HistoryTae Young Lee
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론Tae Young Lee
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning CompilerTae Young Lee
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AITae Young Lee
 
Real estate trust solution
Real estate trust solutionReal estate trust solution
Real estate trust solutionTae Young Lee
 
Deep learning financial product recommendation model
Deep learning financial product recommendation modelDeep learning financial product recommendation model
Deep learning financial product recommendation modelTae Young Lee
 
Deep Learning Through Various Processes
Deep Learning Through Various ProcessesDeep Learning Through Various Processes
Deep Learning Through Various ProcessesTae Young Lee
 
금융분야 취업을 위한 커리어 설계
금융분야 취업을 위한 커리어 설계금융분야 취업을 위한 커리어 설계
금융분야 취업을 위한 커리어 설계Tae Young Lee
 
클라우드를 활용한 딥러닝 활용 사례
클라우드를 활용한 딥러닝 활용 사례클라우드를 활용한 딥러닝 활용 사례
클라우드를 활용한 딥러닝 활용 사례Tae Young Lee
 
금융의 역사를 통해 본 딥러닝의 함정
금융의 역사를 통해 본 딥러닝의 함정금융의 역사를 통해 본 딥러닝의 함정
금융의 역사를 통해 본 딥러닝의 함정Tae Young Lee
 
데이터의 관점으로 바라본 의료 딥러닝
데이터의 관점으로 바라본 의료 딥러닝데이터의 관점으로 바라본 의료 딥러닝
데이터의 관점으로 바라본 의료 딥러닝Tae Young Lee
 
딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)Tae Young Lee
 

Plus de Tae Young Lee (20)

LLMs Service that provides what users want to know
LLMs Service that provides what users want to knowLLMs Service that provides what users want to know
LLMs Service that provides what users want to know
 
LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드LLM 모델 기반 서비스 실전 가이드
LLM 모델 기반 서비스 실전 가이드
 
Recommendation System History
Recommendation System HistoryRecommendation System History
Recommendation System History
 
검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론검색엔진에 적용된 딥러닝 모델 방법론
검색엔진에 적용된 딥러닝 모델 방법론
 
The Deep Learning Compiler
The Deep Learning CompilerThe Deep Learning Compiler
The Deep Learning Compiler
 
History of Vision AI
History of Vision AIHistory of Vision AI
History of Vision AI
 
Aws architecture
Aws architectureAws architecture
Aws architecture
 
Nvidia architecture
Nvidia architectureNvidia architecture
Nvidia architecture
 
Ai based on gpu
Ai based on gpuAi based on gpu
Ai based on gpu
 
Real estate trust solution
Real estate trust solutionReal estate trust solution
Real estate trust solution
 
Bayesian learning
Bayesian learningBayesian learning
Bayesian learning
 
Deep learning financial product recommendation model
Deep learning financial product recommendation modelDeep learning financial product recommendation model
Deep learning financial product recommendation model
 
Deep Learning Through Various Processes
Deep Learning Through Various ProcessesDeep Learning Through Various Processes
Deep Learning Through Various Processes
 
Jenkins in finance
Jenkins in financeJenkins in finance
Jenkins in finance
 
HistoryOfCNN
HistoryOfCNNHistoryOfCNN
HistoryOfCNN
 
금융분야 취업을 위한 커리어 설계
금융분야 취업을 위한 커리어 설계금융분야 취업을 위한 커리어 설계
금융분야 취업을 위한 커리어 설계
 
클라우드를 활용한 딥러닝 활용 사례
클라우드를 활용한 딥러닝 활용 사례클라우드를 활용한 딥러닝 활용 사례
클라우드를 활용한 딥러닝 활용 사례
 
금융의 역사를 통해 본 딥러닝의 함정
금융의 역사를 통해 본 딥러닝의 함정금융의 역사를 통해 본 딥러닝의 함정
금융의 역사를 통해 본 딥러닝의 함정
 
데이터의 관점으로 바라본 의료 딥러닝
데이터의 관점으로 바라본 의료 딥러닝데이터의 관점으로 바라본 의료 딥러닝
데이터의 관점으로 바라본 의료 딥러닝
 
딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)딥러닝을 위한 Tensor flow(skt academy)
딥러닝을 위한 Tensor flow(skt academy)
 

Transfer learning usage

  • 4. 내가 무엇을 가지고 있느냐? ( Resource )
  • 5. 내가 가지고 있는 것이 무어냐?
  • 7. Deep Learning Modeling 관점에서 재해석해 보자!
  • 10. Training 가능한 데이터는 많지가 않다. 업무 시스템 중심으로 데이터가 보관되어 있다. 업무 시스템에 부하를 주지 않는 데이터 확보 방안 수립 Data Transform이 필요하고 Augmentation이 필수적 무엇을 모델링할 것인지를 선행해서 확인 필요
  • 12. 제약적인 Infra Resource Training 시 데이터에 대한 고려 필요 초기에는 Mini Batch의 형태로 학습 성능이 어느정도 보장된다 싶으면 Full Batch로 전환 ModelCheckPoint설정과 Early Stopping을 통한 Best Model추출 중간에 학습이 끊어질 것을 대비하여 중간 중간 결과값 저장 필요 ( Epoch Number Restoring )
  • 13. Training 할 때 고려사항
  • 14. 얼마나 많은 돈과 시간을 들여야 하느냐?
  • 15. Time Money 빠른 Training Time 필요 Why? 모델 검증을 위해서 ( 높은 정확도 , 실 적용 여부 판단) GPU 개선을 위한 다양한 방안 수립
  • 16. 실전에서는 빠른 해결과 대응을 원한다
  • 17. 전이학습은 높은 정확도를 비교적 짧은 시간 내에 달성할 수 있기 때문에 컴퓨터 비전 분야에서 유명한 방법론 중 하나 (Rawat & Wang 2017). 전이학습을 이용하면, 이미 학습한 문제와 다른 문제를 풀 때에도, 밑바닥에서부터 모델을 쌓아올리는 대신에 이미 학습되어있는 패턴들을 활용해서 적용시킬 수 있음 이를 샤르트르 식으로 표현하면 거인의 어깨에 서서(standing on the soulder of giants) 학습하는 것 컴퓨터 비전에서 말하는 전이학습은 주로 사전학습 된 모델 (pre-trained model) 을 이용하는 것 사전학습 된 모델이란, 내가 풀고자 하는 문제와 비슷하면서 사이즈가 큰 데이터로 이미 학습이 되어 있는 모델 그런 큰 데이터로 모델을 학습시키는 것은 오랜 시간과 연산량이 필요하므로, 관례적으로는 이미 공개되어있는 모델들을 그저 import해서 사용 출처 : https://jeinalog.tistory.com/13
  • 18. Pretrained Model사용 시 가장 중요한 포인트
  • 22. 실전에서 활용 시 유의사항
  • 24. Data Optimization 데이터 확인 모델 검증 방안 수립 ambiguity uncertainty
  • 26. Neural Net Architecture의 "계층적인 특징"을 고려 독립적인 컴포넌트의 이질적 요소 ( 분리 포인트를 찾자 )
  • 27. 출처 : https://jeinalog.tistory.com/13 이러한 딥러닝 모델의 중요한 성격 중 하나는 바로 "계층적인 특징"을 "스스로" 학습한다는 점 계층적인 특징을 학습한다 는 말의 의미 모델의 첫 번째 층은 "일반적인(general)" 특징을 추출하도록 하는 학습 모델의 마지막 층에 가까워질수록 특정 데이터셋 또는 특정 문제에서만 나타날 수 있는 "구체적인(specific)" 특징을 추출해내도록 하는 고도화된 학습 따라서 앞단에 있는 계층들은 다른 데이터셋의 이미지들을 학습할 때도 재사용 가능 뒷단의 계층들은 새로운 문제를 맞이할 때마다 새로 학습이 필요함
  • 28. Yosinski et al. (2014) 논문에서는 이러한 딥러닝의 특성에 대해, '만약 첫 번째 계층에서 추출된 특징이 일반적인 특징이고 마지막 층에서 추출된 특징이 구체적인 특징이라면, 네트워크 내의 어딘가에 일반적인 수준에서 구체적인 수준으로 넘어가는 전환점이 분명 존재할 것' 결론적으로, 우리가 살펴본 CNN 모델의 Convolutional base 부분, 그 중에서도 특히 낮은 레벨의 계층(input에 가까운 계층)일수록 일반적인 특징을 추출 그와 반대로 Convolutional base 의 높은 레벨의 계층(output에 가까운 계층)과 Classifier 부분은 보다 구체적이고 특유한 특징들을 추출. 출처 : https://jeinalog.tistory.com/13
  • 29. 사전 학습된 모델을 이제 나의 프로젝트에 맞게 재정의한다면, 먼저 원래 모델에 있던 classifier를 없애는 것으로 시작합니다. 원래의 classifier는 삭제하고, 내 목적에 맞는 새로운 classifier를 추가합니다. 그 후 마지막으로는 새롭게 만들어진 나의 모델을 다음 세 가지 전략 중 한 가지 방법을 이용해 파인튜닝(fine-tune)을 진행 출처 : https://jeinalog.tistory.com/13
  • 30. 전략별 특징 ( Fine Tunning Scope 정의)
  • 31. # 전략 1 : 전체 모델을 새로 학습시키기 이 방법은 사전학습 모델의 구조만 사용하면서, 내 데이터셋에 맞게 전부 새로 학습시키는 방법 모델을 밑바닥에서부터 새로 학습시키는 것이므로, 큰 사이즈의 데이터셋이 필요 (컴퓨팅 연산 능력을 위한 많은 Infra Resource 필요) 출처 : https://jeinalog.tistory.com/13
  • 32. # 전략 2 : Convolutional base의 일부분은 고정시킨 상태로, 나머지 계층과 classifier를 새로 학습시키기 앞서 언급했듯이, 낮은 레벨의 계층은 일반적인 특징(어떤 문제를 푸느냐에 상관 없이 독립적인 특징)을 추출하고, 높은 레벨의 계층은 구체적이고 특유한 특징(문제에 따라 달라지는 특징)을 추출합니다. 이런 특성을 이용해서, 우리는 신경망의 파라미터 중 어느 정도까지를 재학습시킬지를 정할 수 있음 주로, 만약 데이터셋이 작고 모델의 파라미터가 많다면, 오버피팅이 될 위험이 있으므로 더 많은 계층을 건들지 않고 그대로 둠. 반면에, 데이터셋이 크고 그에 비해 모델이 작아서 파라미터가 적다면, 오버피팅에 대한 걱정을 할 필요가 없으므로 더 많은 계층을 학습시켜서 내 프로젝트에 더 적합한 모델로 발전 출처 : https://jeinalog.tistory.com/13
  • 33. # 전략 3 : Convloutional base는 고정시키고, classifier만 새로 학습시키기 이 경우는 보다 극단적인 상황일 때 생각할 수 있는 케이스 convolutional base는 건들지 않고 그대로 두면서 특징 추출 메커니즘으로써 활용하고, classifier만 재학습시키는 방법 이 방법은 컴퓨팅 연산 능력이 부족하거나 데이터셋이 너무 작을때, 그리고/또는 풀고자 하는 문제가 사전학습모델이 이미 학습한 데이터셋과 매우 비슷할 때 검토 출처 : https://jeinalog.tistory.com/13
  • 35. Model 생성 데이터 도메인 확인
  • 36. CNN 베이스의 사전학습 모델을 사용할 때에는, 이전에 학습한 내용들을 모두 잊어버릴 위험이 있기 때문에 작은 learning rate를 사용 사전학습 모델이 잘 학습되었다는 가정하에, 작은 learning rate으로 학습을 시킨다면 CNN 모델의 파라미터들을 너무 빠르게, 혹은 너무 많이 왜곡시키지 않고 원래 학습되어있던 지식을 잘 보존하면서 추가로 학습을 해야 함 작은 Learning rate를 사용한다는 것은 Pretrained Model이 잘 학습되었다는 가정하에 성립됨 Pretrained Model을 사용하지 않는 일반적인 Training환경에서 작은 Learning rate는 일단 수렴하는 속도가 너무 느리고, local minimum에 빠질 확률이 증가 출처 : https://jeinalog.tistory.com/13
  • 37. [참고] Pretrained Model을 사용하지 않는 일반적인 학습의 경우
  • 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 - 표본들의 값을 가우시안 분포의 값으로 변환 하는 방법.
  • 45. 모델을 서비스에 맞추어 구현하려면 현실 세계에선 Domain별 Data Dependency 확인 필요
  • 46. # 전략 1 : 전체 모델을 새로 학습시키기 이 방법은 ResNet의 구조만 사용하면서, 실제 데이터셋에 맞게 전부 새로 학습시키는 방법입니다. 모델을 밑바닥에서부터 새로 학습시키는 것이므로, 큰 사이즈의 데이터셋이 필요합니다. (그리고, 좋은 컴퓨팅 연산 능력도요!) 출처 : https://jeinalog.tistory.com/13
  • 48. 생성된 이미지 분류 모델을 통한 자동 Batch Annotation 수행도 병행한다.
  • 49. 성능향상을 위해 Joint Training을 통해 다수의 이미지 모델의 결합을 수행한다.
  • 50. 단계0. 무작위 초기화 입력 이미지 모델 가중치 Forward 예측값 Ground Truth (정답) Backward 단계1. 입력에 대한 예측 단계2. 손실 함수 계산 단계3. 최적화 알고리즘 손실 업데이트 Loss = Cost = Error
  • 51. 단계2. 손실 함수 계산 ( Softmax 손실 함수 ) Loss = Cost = Error 마지막 출력층은 전 단계에서 추출된 특징 벡터를 N개의 범주로 분류하기 위해 배치된 fully-connected layer와 softmax함수로 구성됨 이후 cross entropy가 softmax함수를 통해 나온 확률 분포와 정답 분포 사이의 오차를 계산 Softmax 확률값을 이용한다는 점에서 이 손실 함수를 Softmax 손실 함수라고 부른다. 분류에 사용되는 활성화 함수 → Softmax함수 : 모든 입력 신호로부터 영향을 받음 Softmax함수 주의점 - 지수 함수로 되어있어 오버플로 (무한대 값 발생) 문제가 생길 수 있음
  • 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처리 시에 최종 모델 평가 및 성능 측정 관련하여 재정의가 필요하다.
  • 54. OCR의 경우 이미지 모델과 언어 모델을 사용한다. 출처 : https://arxiv.org/pdf/1908.05054.pdf
  • 57. Bert 모델을 학습한다는 건 아마추어
  • 58. Bert Weight Load를 활용하자
  • 63. Q & A