Machine Learning

[내용정리]Meta Learning

뚜둔뚜둔 2022. 11. 25. 14:48

Meta Learning - Learning to learn 배우는 방법을 배운다

meta라는 단어는 한 차원 위의 개념적 용어로 대상의 전반적인 특성을 반영한다.

그래서 메타 러닝은 데이터의 패턴을 정해진 프로세스로 학습하는 것이 아니라,

데이터의 특성에 맞춰 모델 네트워크 구조를 변화 시키면서 학습 한다.

 

메타러닝이란?

문제해결 방법론 중 하나 

메타러닝은 적은 데이터로 모델을 훈련하면서 관련 task를 모두 수행 할 수 있다. Task A만 훈련시키면 task B는 추가적인 훈련 없이도 바로 구분해 낼 수 있느 모델이 탄생하는 것이다.

현재 AI 연구자들은 이러한 메타러닝이 AGI를 달성하는데 큰 도움이 될 것으로 보고 있다.

  *AGI : Artificial General Intelligence


Meta-learning: [4:28]

Transfer Learning: 

Task : 학습데이터와 학습 목표(label 등)으로 이루어진, 모델이 학습해야 하는 작업

하이퍼파라미터: 학습률과 같은 수치 설정값 뿐 아니라 모델의 파이프라인 구조 등을 포함하는 설정 값

1. model Evaluation

다른 task에 대해 학습 시켰을때의 학습 결과를 토대로 신규  task에 대한 결과를 예측하고, 하이퍼파라미터를 추천하자

  • task Independent Recommendation
    • 새로운 task 에 정보가 없는 상황에서, 하이퍼파라미터 최적화를 시작하는 강력한 baseline이 되어준다.
    • 가정: 보편적으로 좋은 결과가 보여준 하이퍼파라메터 값이 새로운 task에서도 좋은 결과를 보여 줄 것이다.
  • configuration Space
    • 어떤 하이퍼 파라미터가 더 성능 개선에 중요할까 찾아보는 작업 ( 모든데이터 셋에서 하나씩 바꿔봤을때 성능 변화가 큰것을 중요도를 크게 준다)
  • configuration Transfer
    • 새로운 task와 비슷한 기존 task 결과를 활용하자
    • 기존 테스크에 대한 하이퍼파라메터의 값들이 표로 있어야함

2. Task Properties

 

  • Meta Feature 측정 방법 : Manually Defined Meta Feature -> Learning Meta Feature
  • Meta Feature 활용 방법: warm-starting(초기상태를 조절) / meta Model -> pipeline systhesis(두개를 합친 것 )

 

Task 의 특성을 분석하여 가장 유사한 Task를 찾고 특정 configuration의 신규 task에 대한 성능을 예측하자

  • Meta Feature 예시:
    • simple : feature, classes , 등의 갯수
    • Statistical : 통계적 방법
    • Information-theoretic : 정보론 관련, entropy관련
    • 데이터만 보고 판단할 수 있는 것들임.
    • 부가적으로 meta feature간 조합, 요약, 추출, 차원축소(PCA), 정규화와 같은 처리를 통해 해로운 meta feature를 생산 하기도 함
  • learning meta features
    • meta Feature를 생성하는 모델을 학습 시키자 [6:48]
  • Warm-starting Optimization
    • 기존 task와 유사도를 기반으로 초기 configuration을 결정하자
    • Genetic search : 새로운 task의 meta feature와 유사한 (L1 distance) K개의 기존 task를선정하고, 다시 그 안에서 가장 유사한 task를 뽑거나, 가장 좋은 configuration을 선택
    • model-based optimization : Surrogate model을 구축하여, 새로운 task에 대하여 기존 task의 유사도 랭킹을 예측
    • Collaborative Filtering : 기존의 task의 meata feature를 토대로 신규 task의 configuration을  추천
  • Meta model
    • meta feature 학습을 더욱 강화시켜 configuration 추천까지 수행하자
    • Ranking: 신규 task와 비슷한 task 를 선정할 뿐 아니라, 이를 통해 최적의 confifuration랭킹을 생성
    • Performance Prediction
      • meta feature를 토대로 Performance를 예측 하는 모델 구축
      • Performance 대신 예상 실행 시간을 예측할 수 도 있음
      • Surrogate model을 구축하여 모든 task에 대한 Performance를 예측
  • Pipeline Systhesis
    • Machine learning pipeline (Structure)을 구성할떄 meta feature를 활용하자
    • fixed structure : 오직 하이퍼파라미터만 수정할 수 있는 머신러닝 모델
    • pipeline Recommendation : planning(Beam search) / Evolutionary technique / Reinforcement learning ( nas랑 비슷 )

3. Prior Model

과거에 학습 시킨 모델 자체를 활용하여 새로운 모델 구축에 활용하자

 

 

  • Transfer Learning
    • Source Task tj에 대해 학습시킨 모델을 새로운 Task에 활용하자
    • 굉장히 다양하게 응용 될 수 있는 아이디어로써, 널리 사용되고 있음
    • source task에 대한 pre-training 과정과 target task에 대한 Fine-tuning으로 나뉨
      • 큰 image set에 대하여 pre training 시킨 후, 작은 dataset에 대해 fine-tuning할 경우, source task와 target task가 유사하지 않으면 transfoer learning이 별 효과가 없음
    • meta-learner에게 특정 bias를 주어 transfer learning을 빠르게 수행할 수 있도록 만드는 방안이 있음 ( few-shot learning)
  • Meta-learning in Neural Network
    • 학습에 사용되는 optimizer를 학습시켜, 성능을 개선하자
    • 강화학습을 통해 파라미터별 학습률을 조정하거나 탐색을 수행
    • task에 따라 스스로 학습률을 조정하는 머신러닝으로 학습된 optimizer
    • Neural Architecture Search
      • Reinforcement, Bayesian Optimization등을 활용하여 model 구축까지 수행
  • few-shot Learning
    • meta-learning을 최대한 활용하여, 적은데이터로 학습 시키자
    • k-shot N-way classification : 다양한 class로 분류된 많은 data 내에서, N개의 class당 각 k 개의 데이터만 활용하여 분류 모델을 학습
      • 고전적인 방법: largely based on hand-engineered features
      • Meta-learning
        • matching network : common representation을 학습하여 분류 수행
        • Prototypical network: 각 class에 대한 prototype vector를 학습하여 분류 수행
        • Ravi and Larochelle: meta learner에 의한 weight update
        • model-Agnostic Meta-learning: 여러 task에 대하여 meta-gradient를 학습시킨뒤 fine-tuning을 수행
        • REPTILE: MAML과 비슷하나, K번 반복을 수행한 후 점진적으로 gradient decent 수행
  • Beyond Supervised Learning
    • Supervised Learning 이외의 분야에 meta-learning이 활용 되는 사례
    • meta-RL : Reinforcement Learning의 학습속도를 개선하기 위하여 보상 등을 예측하는 Meta-RL 모델
    • Active Learning : Active Learning의 problem을 표현하고, 보상 등을 예측하는 meta-RL 모델
    • density estimation : 적은 양의 이미지로 부터 concept를 얻어 내기 위한 MAML-based few-shot learner
    • maxtrix factorization: Cold start 문제를 해결하기 위하여 task 정보로 부터 BIAS조절을 수행하는 Meta-learner

 




메타러닝과 퓨샷, Meata learning and few-shot

적은 데이터로 훈련을 하는 것을 퓨 샷 러닝(few-shot learning) 혹은 n-way k-shot learning 이라고 부른다.

이때 n은 클래스의 개수고, k는 각 클래스당 필요한 데이터를 의미한다.

예를 들어 강아지와 고양이를 구분하는 모델을 만들고자 하는데 강아지와 고양이를 사진이 각각 1장씩 있으면 2-way 1-shot learning이 되는 것이고, 각각 5장씩 있다면 2-way 5-shot learning이 되는 것이다.

메타 러닝에서는 데이터셋(dataset)을 서포트 세트(support set)쿼리 세트(query set)으로 나누어 부른다.

둘다 같은 종류의 데이터 셋이지만, 서로 다른 데이터를 가지고 있어야 한다. 우리는 서포트 셋을 이용해 train 하고 쿼리 셋을 이용해 testfmf wlsgodgksek.

rmflrh train을 할 때 gks epoch에서 episode라는 단어를 사용하는데 episode란 n-way k-shot model 일 때 n 개의 class 당 k개의 데이터로 구성된 하나의 데이터 셋을 말한다.

 

메타러닝은 크게 3종류로 나눌 수 있다.

1. Learning the metric space

  • '효율적 거리 측정' 학습이 핵심

2. Learning the initializations

  • '메모리를 이용한 순환 신경망' 이 핵심

3 Learning the optimizer

  • '모델 파라미터 최적화'가 핵심

 

1.learning the metric space

- 두 이미지의 특징을 한 공간에 나타내고 거리를 통해 similarity를 계산 하는 방식이다. 같은 이미지면 거리가 가깝게, 다른 이미지면 거리를 멀게 하는 방식으로 이미지를 classification 한다.

- 거리 기반의 학습을 하는 알고리즘은 siamese networks, prototypcal networks, relation networks 등이 있다.

 - 모델은 주어진 서포트 데이터를 특성 공간(Feature Space)에 나타내서 특징을 뽑아낸다.

- 같은 클래스면 거리를 가깝게 다른 클래스면 멀게 하는 방식으로 데이터를 분류한다.

- 쿼리 데이터를 유클리디안 거리가 가까운 서포트 데이터의 클래스로 예측하는 방식이다.

 

2. Learning the initializations

- 최적의 초기 파라미터 값을 설정하는 것을 배우는 방법이다.

- 모델을 학습하기 위해서는 모델을 구축하고 weight을 초기화 한 다음에 loss를 계산하고 gradient descent를 통해 loss를 최소화 한다. 이 과정에서 weight를 초기화할 때 보통 랜덤하게 값을 넣어 초기화 해주지만 랜덤 값을 사용하지 않고 최적화된 initial weight을 찾아서 이 값을 weight의 초깃값으로 세팅해 준다면 더 빠르게 학습하고 학습 결과도 더 좋은 결과를 얻을 수 있을 것 이다.

- Optimal initial weight을 찾는 알고리즘은 MAML, Reptile, Meta-SGD 등이 있다.

 

3. Learning Optimizer

- optimizer를 학습하도록 만든다. 우리는 neural network를 많은 데이터 셋을 훈련 시키고 gradient descent로 loss를 최소화 하는 방향으로 모델을 최적화 한다.

- 하지만, Few shot learning은 적은 데이터 셋을 사용하기 때문에 이러한 항법이 효과적으로 작동하지 못한다.

따라서 optimizer가 스스로 학습할 수 있도록 한다. vase network 와 meta network 두 가지를 사용해서 base network는 실제로 많은 업무를 train하고 Meta netowrk는 base netowrk를 Optiimize 하도록 역할을 구성한다.

 

Learning to learn gradient descent by gradient descent

learning to learn gradient descent by graduebt descent는 메타 러닝의 알고리즘을 부르는 말이다. 메타러닝의 목표는 'To learn the learning process'이다. 일반적으로 모델을 학습할 때, gradient descent 를 통해 loss를 최적화하는 방향으로 모델을 학스한다.

결과적으로 보통 모델을 optimize하는 것은 Gradient descent를 이용해서 하는데, Gradiebt descent를 사용하는 대신 자동적으로 이러한 Process를 Optimization 하도록 설계한다.

어떻게 이것이 가능할까? Traditional optimizer 인 Grdient descent 대신 그 자리에 RNN(Recurrent Neural Network)를 넣어준다. 그리고 RNN을 Optimization 하기 위햏 ghradient descent를 사용한다. 

 

 

 



 

 

 

 

 

 

참고:
https://bigwaveai.tistory.com/18

https://rhcsky.tistory.com/5

 

https://huidea.tistory.com/252?category=879542 

https://honeyjamtech.tistory.com/57

https://talkingaboutme.tistory.com/entry/DL-Meta-Learning-Learning-to-Learn-Fast

 

 

[논문리뷰]model-Agnostic Meta-LEarning for Fast Adaptation of DeepNetworks : 

https://velog.io/@wjleekr927/Model-Agnostic-Meta-Learning-for-Fast-Adaptation-of-Deep-Networks-1

 

[논문 리뷰] Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks - 1편

Meta learning (메타 러닝)은 무엇인가? 적응력이 뛰어난 빠릿빠릿한 모델을 만드는 것!

velog.io

[논문리뷰] Model-Agnostic Meta-Learning (MAML): 

https://engineering-ladder.tistory.com/95

 

Meta-Learning과 MAML의 개념 정리

이번 글에서는 최근, 그 중요성이 점점 부각되고 있는 Meta-Learning에 대해 정리해보려고 한다. Meta-Learning은 다른 Task를 위해 학습된 AI 모델을 이용해서, 적은 Dataset을 가지는 다른 Task도 잘 수행할

engineering-ladder.tistory.com

 

반응형