SlideShare a Scribd company logo
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

More Related Content

PPTX
Aula 15 instalação de hardware
PDF
Conexões de rede 1ª aula (1)
PPTX
Arquitetura dos dispositivos móveis
PDF
Sistemas Distribuídos - Computação Paralela - Introdução
PPTX
Backup e restore
PDF
SISTEMA DE DRENAJE AUTOMÁTICO.pdf
PDF
Sistemas Operacionais - Aula 07 (Thread e Processos)
PDF
SI - Arquiteturas
Aula 15 instalação de hardware
Conexões de rede 1ª aula (1)
Arquitetura dos dispositivos móveis
Sistemas Distribuídos - Computação Paralela - Introdução
Backup e restore
SISTEMA DE DRENAJE AUTOMÁTICO.pdf
Sistemas Operacionais - Aula 07 (Thread e Processos)
SI - Arquiteturas

Similar to Transfer learning usage (20)

PDF
Infra as a model service
PPTX
Chapter 11 Practical Methodology
PPTX
Deep learning overview
PDF
Tensorflow for Deep Learning(SK Planet)
PDF
딥러닝 기본 원리의 이해
PDF
파이썬으로 익히는 딥러닝 기본 (18년)
PDF
Deep learning framework 제작
PDF
[신경망기초] 심층신경망개요
PDF
Deep neural networks cnn rnn_ae_some practical techniques
PDF
Lecture 4: Neural Networks I
PPTX
Image net classification with deep convolutional neural networks
PDF
딥러닝을 위한 Tensor flow(skt academy)
PDF
네트워크 경량화 이모저모 @ 2020 DLD
PPTX
인공지능, 기계학습 그리고 딥러닝
PDF
개발자를 위한 공감세미나 tensor-flow
PDF
Create a solution including deep learning models
PDF
100% Serverless big data scale production Deep Learning System
PPTX
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
PDF
From maching learning to deep learning
PPTX
180624 mobile visionnet_baeksucon_jwkang_pub
Infra as a model service
Chapter 11 Practical Methodology
Deep learning overview
Tensorflow for Deep Learning(SK Planet)
딥러닝 기본 원리의 이해
파이썬으로 익히는 딥러닝 기본 (18년)
Deep learning framework 제작
[신경망기초] 심층신경망개요
Deep neural networks cnn rnn_ae_some practical techniques
Lecture 4: Neural Networks I
Image net classification with deep convolutional neural networks
딥러닝을 위한 Tensor flow(skt academy)
네트워크 경량화 이모저모 @ 2020 DLD
인공지능, 기계학습 그리고 딥러닝
개발자를 위한 공감세미나 tensor-flow
Create a solution including deep learning models
100% Serverless big data scale production Deep Learning System
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
From maching learning to deep learning
180624 mobile visionnet_baeksucon_jwkang_pub
Ad

More from Tae Young Lee (20)

PDF
DeepSeek를 통해 본 Trend (Faculty Tae Young Lee)
PDF
Transitioning from the Era of Big Data to LLMs_Deriving Insights
PDF
Facebook Meta's technical direction in Large Language Models (LLMs)
PDF
MultiModal Embedding integrates various data types, like images, text, and au...
PDF
Review of the Paper on Capabilities of Gemini Models in Medicine
PDF
A future that integrates LLMs and LAMs (Symposium)
PDF
LLMs Service that provides what users want to know
PDF
Exploring Deep Learning Acceleration Technology Embedded in LLMs
PDF
LLM 모델 기반 서비스 실전 가이드
PDF
Recommendation System History
PDF
검색엔진에 적용된 ChatGPT
PDF
검색엔진에 적용된 딥러닝 모델 방법론
PDF
PaLM Paper Review
PDF
The Deep Learning Compiler
PDF
History of Vision AI
PDF
Aws architecture
PDF
Enhanced ai platform
PDF
Nvidia architecture
PDF
Ai based on gpu
PDF
Real estate trust solution
DeepSeek를 통해 본 Trend (Faculty Tae Young Lee)
Transitioning from the Era of Big Data to LLMs_Deriving Insights
Facebook Meta's technical direction in Large Language Models (LLMs)
MultiModal Embedding integrates various data types, like images, text, and au...
Review of the Paper on Capabilities of Gemini Models in Medicine
A future that integrates LLMs and LAMs (Symposium)
LLMs Service that provides what users want to know
Exploring Deep Learning Acceleration Technology Embedded in LLMs
LLM 모델 기반 서비스 실전 가이드
Recommendation System History
검색엔진에 적용된 ChatGPT
검색엔진에 적용된 딥러닝 모델 방법론
PaLM Paper Review
The Deep Learning Compiler
History of Vision AI
Aws architecture
Enhanced ai platform
Nvidia architecture
Ai based on gpu
Real estate trust solution
Ad

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