퓨샷 러닝: Difference between revisions

From IT Wiki
(새 문서: 분류:인공지능 ;Few-shot Learning 대량의 학습 데이터가 없는 상태에서 소량의 데이터만으로 효과적으로 학습하는데 주안점을 둔 학습 방...)
 
No edit summary
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[분류:인공지능]]
[[분류:인공지능]]
;Few-shot Learning
;Few-shot Learning
대량의 학습 데이터가 없는 상태에서 소량의 데이터만으로 효과적으로 학습하는데 주안점을 둔 학습 방식
대량의 학습 데이터가 없는 상태에서 소량의 데이터만으로 효과적으로 학습하는데 주안점을 둔 학습 방식


== 기존 학습 방법의 문제점 ==
==기존 학습 방법의 문제점==
* 방대한 데이터 필요
 
* 방대한 데이터의 라벨링 작업 필요<ref>지도학습의 경우 데이터가 있더라도 데이터 라벨링에 상당한 시간과 인력이 필요. 자체적으로 수행할 환경이 안 되는 경우 아마존의 메커니컬터크(Mechanical Turk)처럼 유료로 데이터에 주석을 달아주는 서비스를 이용</ref>
*방대한 데이터 필요
* 학습을 위한 대량의 컴퓨팅 리소스 필요
*방대한 데이터의 라벨링 작업 필요<ref>지도학습의 경우 데이터가 있더라도 데이터 라벨링에 상당한 시간과 인력이 필요. 자체적으로 수행할 환경이 안 되는 경우 아마존의 메커니컬터크(Mechanical Turk)처럼 유료로 데이터에 주석을 달아주는 서비스를 이용</ref>
*학습을 위한 대량의 컴퓨팅 리소스 필요
 
==개요==
===데이터셋 구성===
 
*'''서포트 데이터(support data)''': 훈련에 사용
*'''쿼리 데이터(query data)''': 테스트에 사용


== 학습 방법 ==
===러닝 태스크===
=== 데이터셋 구성 ===
* 훈련에 사용하는 서포트 데이터(support data)
* 테스트에 사용하는 쿼리 데이터(query data)


=== 러닝 태스크 ===
;N-way K-shot 문제
;N-way K-shot 문제
* N은 범주의 수
* K는 범주별 서포트 데이터의 수
** K가 많을수록 이 범주에 해당하는 데이터를 예측하는 모델의 성능(추론 정확도) 항샹
** 퓨샷 러닝은 이 K가 매우 작은 상황에서의 모델 학습
;퓨샷 러닝 모델의 성능은 N과 반비례하며 K와는 비례하는 관계


=== 학습 방식 ===
*N은 범주의 수
* 거리 학습 기반 방식
*K는 범주별 서포트 데이터의 수
** Siamese Neural network for one-shot image recognition
**K가 많을수록 이 범주에 해당하는 데이터를 예측하는 모델의 성능(추론 정확도) 항샹
** Matching networks for one-shot learning
*'''퓨샷 러닝은 이 K가 매우 작은 상황에서의 모델 학습'''
** Prototypical networks for few-shot learning
**K가 1인 경우 [[원샷 러닝]]
** Learning to compare : relation network for few-shot learning
**K가 0인 경우 [[제로샷 러닝]]
* 그래프 신경망 방식
* '''예제'''
** Few-shot learning with graph neural networks
** 고양이 사진 하나를 보여주고, 동물들 중에서 고양이를 분류해 내도록 함 = 1-Way 1-Shot
** Transductive propagation network for few-shot learning (TPN)
** 고양이, 호랑이 사진을 하나씩 보여주고, 동물들 중에서 고양이, 호랑이를 분류해 내도록 함 = 2-Way 1-Shot
** 고양이, 호랑이, 사자 사진을 두개씩 보여주고, 동물들 중에서 고양이, 호랑이, 사자를 분류해 내도록 함  = 3-Way, 2-Shot
 
==학습 방안==
{| class="wikitable"
!방안
!설명
|-
|[[전이 학습]]
(파인 튜닝)
|
*기존에 비슷한 부류의 학습모델이 있는 경우 그 학습모델을 이용
*기존 모델에 소량의 학습 데이터를 이용해 망을 미세하게 튜닝
|-
|[[메타 러닝]]
|
*학습에 필요한 변수, [[하이퍼파라미터]]를 자동으로 학습 및 최적화
*전이 학습의 파인 튜닝 과정의 효율을 극대화
|-
|거리 학습
|
*고차원 학습 데이터의 특징을 잘 표현할 수 있는 저차원 공간으로 학습 데이터를 변환
*부류들 간의 유사도 차이를 측정할 수 있는 수단을 이용해 분류
|-
|[[액티브 러닝]]
|
*라벨링된 데이터가 적은 경우 반 자동화된 라벨링
*소수의 학습 데이터로 학습 후 자동 라벨링을 수행, 잘못 라벨링된 데이터만 사람이 정정하며 학습데이터 확보
|-
|생성 모델 활용
|
*소수의 학습 데이터에 [[GAN]]과 같은 생성모델을 사용해 유사 데이터 확보
|}
 
=== [[전이 학습]] ===
'''Few-shot task를 해결하고자 제안됨'''
 
* 사전 학습된 신경망을 이용하며, Test phase에서 Few-shot example들을 이용해 파인 튜닝
* '''한계점'''
** 파인 튜닝 과정에서 여전히 많은 데이터 및 시간이 소모됨
** 너무 작은 수의 Few-shot example에서의 [[과적합 문제]] 발생
 
=== 메타 러닝 ===
 
* Learn to learn
* 학습 방법을 학습함으로써 인간과 유사한 [[메타 인지]]를 표방
* 학습과정에서 접하지 않았던 데이터에 대해 Few-shot example로도 일반화하여 결과 도출
 
==관련 논문==
 
*거리 학습 기반 방식
**Siamese Neural network for one-shot image recognition
**Matching networks for one-shot learning
**Prototypical networks for few-shot learning
**Learning to compare : relation network for few-shot learning
*그래프 신경망 방식
**Few-shot learning with graph neural networks
**Transductive propagation network for few-shot learning (TPN)
 
==같이 보기==
 
*[[메타 러닝]]
*[[원샷 러닝]]
*[[AutoML]]
 
==참고 문헌==


== 같이 보기 ==
*[http://aidev.co.kr/deeplearning/9286 퓨샷 러닝(few-shot learning)과 메타 러닝(meta-learning)]
* [[메타 러닝]]
*[https://www.kakaobrain.com/blog/106?fbclid=IwAR3pYh_Rl0NvqQFFuTWVmPiYREU3R0d15SpDUngmRvJPN-M4q7sjyufF_vA 퓨샷 러닝(few-shot learning) 연구 동향을 소개합니다.]
* [[원샷 러닝]]
*[https://www.sedaily.com/NewsView/1VHPK6NWWG 소량의 데이터로 학습하는 퓨샷러닝]
* [[AutoML]]


== 참고 문헌 ==
==각주==
* [퓨샷 러닝(few-shot learning)과 메타 러닝(meta-learning) http://aidev.co.kr/deeplearning/9286]
<references />
* [퓨샷 러닝(few-shot learning) 연구 동향을 소개합니다. https://www.kakaobrain.com/blog/106?fbclid=IwAR3pYh_Rl0NvqQFFuTWVmPiYREU3R0d15SpDUngmRvJPN-M4q7sjyufF_vA]
* [소량의 데이터로 학습하는 퓨샷러닝 https://www.sedaily.com/NewsView/1VHPK6NWWG]

Latest revision as of 09:04, 7 May 2021


Few-shot Learning

대량의 학습 데이터가 없는 상태에서 소량의 데이터만으로 효과적으로 학습하는데 주안점을 둔 학습 방식

기존 학습 방법의 문제점[edit | edit source]

  • 방대한 데이터 필요
  • 방대한 데이터의 라벨링 작업 필요[1]
  • 학습을 위한 대량의 컴퓨팅 리소스 필요

개요[edit | edit source]

데이터셋 구성[edit | edit source]

  • 서포트 데이터(support data): 훈련에 사용
  • 쿼리 데이터(query data): 테스트에 사용

러닝 태스크[edit | edit source]

N-way K-shot 문제
  • N은 범주의 수
  • K는 범주별 서포트 데이터의 수
    • K가 많을수록 이 범주에 해당하는 데이터를 예측하는 모델의 성능(추론 정확도) 항샹
  • 퓨샷 러닝은 이 K가 매우 작은 상황에서의 모델 학습
  • 예제
    • 고양이 사진 하나를 보여주고, 동물들 중에서 고양이를 분류해 내도록 함 = 1-Way 1-Shot
    • 고양이, 호랑이 사진을 하나씩 보여주고, 동물들 중에서 고양이, 호랑이를 분류해 내도록 함 = 2-Way 1-Shot
    • 고양이, 호랑이, 사자 사진을 두개씩 보여주고, 동물들 중에서 고양이, 호랑이, 사자를 분류해 내도록 함 = 3-Way, 2-Shot

학습 방안[edit | edit source]

방안 설명
전이 학습

(파인 튜닝)

  • 기존에 비슷한 부류의 학습모델이 있는 경우 그 학습모델을 이용
  • 기존 모델에 소량의 학습 데이터를 이용해 망을 미세하게 튜닝
메타 러닝
  • 학습에 필요한 변수, 하이퍼파라미터를 자동으로 학습 및 최적화
  • 전이 학습의 파인 튜닝 과정의 효율을 극대화
거리 학습
  • 고차원 학습 데이터의 특징을 잘 표현할 수 있는 저차원 공간으로 학습 데이터를 변환
  • 부류들 간의 유사도 차이를 측정할 수 있는 수단을 이용해 분류
액티브 러닝
  • 라벨링된 데이터가 적은 경우 반 자동화된 라벨링
  • 소수의 학습 데이터로 학습 후 자동 라벨링을 수행, 잘못 라벨링된 데이터만 사람이 정정하며 학습데이터 확보
생성 모델 활용
  • 소수의 학습 데이터에 GAN과 같은 생성모델을 사용해 유사 데이터 확보

전이 학습[edit | edit source]

Few-shot task를 해결하고자 제안됨

  • 사전 학습된 신경망을 이용하며, Test phase에서 Few-shot example들을 이용해 파인 튜닝
  • 한계점
    • 파인 튜닝 과정에서 여전히 많은 데이터 및 시간이 소모됨
    • 너무 작은 수의 Few-shot example에서의 과적합 문제 발생

메타 러닝[edit | edit source]

  • Learn to learn
  • 학습 방법을 학습함으로써 인간과 유사한 메타 인지를 표방
  • 학습과정에서 접하지 않았던 데이터에 대해 Few-shot example로도 일반화하여 결과 도출

관련 논문[edit | edit source]

  • 거리 학습 기반 방식
    • Siamese Neural network for one-shot image recognition
    • Matching networks for one-shot learning
    • Prototypical networks for few-shot learning
    • Learning to compare : relation network for few-shot learning
  • 그래프 신경망 방식
    • Few-shot learning with graph neural networks
    • Transductive propagation network for few-shot learning (TPN)

같이 보기[edit | edit source]

참고 문헌[edit | edit source]

각주[edit | edit source]

  1. 지도학습의 경우 데이터가 있더라도 데이터 라벨링에 상당한 시간과 인력이 필요. 자체적으로 수행할 환경이 안 되는 경우 아마존의 메커니컬터크(Mechanical Turk)처럼 유료로 데이터에 주석을 달아주는 서비스를 이용