메타러닝

메타러닝

  • 머신러닝 문제 해결 흐름도

  1. 훈련용 데이터(입력,레이블) 준비

  2. 모델 설정 (딥러닝 구조 설정)

  3. 훈련용 데이터를 통한 모델 최적화

  4. 운영 입력데이터를 모델에 적용

    매번 새로운 문제를 만날 때마다 새로운 모델 생성 및 학습(최적화)를 반복해야하는 문제점이 발생

    이 방식에서 개선시킬 점이 있을까?

  • 사람과 인공지능의 학습법 비교

사람

    자전거를 타는 지식을 갖고 있으면 오토바이를 타는 지식을 습득하는 것은 어렵지 않다.
    즉, 지식 전이간 별도의 정보 프로세스가 일어나지 않는다

인공지능

인공지능이 자전거를 탈 줄 안다고 가정했을 때, 자전거를 탈 줄 아는 인공지능은 자전거를 타기 위한 학습 파라미터가 존재
자전거를 탈 줄 아는 인공지능이 사람처럼 오토바이를 타야하는 문제를 맞닥뜨리게 된다면 이 자전거를 탈 줄 아는 지식에서
오토바이를 타야하는 문제를 해결하기 위해서 지식 전이간 추가적인 정보 프로세스가 일어나게 된다.

사람은 인공지능보다 문제에 대해서 유연하게 대처할 수 있다.
그것을 가능하게 하는 것은 사람은 메타러닝이 가능하기 때문이다. 즉 학습을 학습할 수 있다.
  • Model Agnostic Meta-learning

세타는 우리가 원래 가지고 있는 사전 지식이고  세타1,세타2,세타3가 우리가 새롭게 맞닥뜨려야할 새롭게 변형된 지식
예를 들어 세타는 둥근 병뚜껑을 열 수 있는 인공지능이라고 했을 때, 세타1은 별모양으로 된 병뚜껑을 열기 위한 지식이고
세타 2는 세모모양으로 된 병뚜껑을 열기 위한 지식이며, 세타3는 네모모양으로 된 병뚜껑을 열기 위한 지식이라고 가정한다.
우리가 원래 가지고 있었던 병뚜껑은 둥근 모양이었는데 별모양, 세모모양, 네모모양 병뚜껑을 열기 위해 새로운 학습을 진행해야한다.
L1,L2,L3은 각각 둥근 병뚜껑으로부터 별모양,세모모양,네모모양 병뚜껑을 열라는 목적함수가 된다.
기존에 갖고 있었던 둥근 병뚜껑을 딸 수 있는 지식으로부터 각각의 모양에 대한 목적함수가 적용이 된다면
세타1, 세타2, 세타3가 각각 문제를 해결할 수 있게끔 기존의 세타가 학습이 된다.
  • 용어정리

k는 새롭게 마주한 문제에서 추출한 데이터 수를 의미한다.
예를 들어 태스크 1에서 별모양 뚜껑을 해결하기 위해 몇차례의 시도를 할 수 있다.
그런 일련의 시도과정을 k(shot)이라고 할 수 있다.
메타러닝이 잘학습되면 학습될수록 문제를 해결하기 위한 k의 개수가 적어진다. 즉 메타러닝의 성능이 좋아진다.
  • 알고리즘 해석

2,3번 과정 inner loop -> 맞닥뜨린 문제를 해석할 수 있는 Task learning

4번 과정 outer loop -> 모든 Task를 업데이트 시키고 전체 상황을 또 한번 update하는 과정
              안쪽에 있는 구문이 먼저 학습을 하고 그 학습한 상황을 바깥쪽 상황에서 또 한번 학습한다.

메타러닝 : 학습(2,3)을 학습(4)한다.

Inner loop : Task training -> 문제를 해결하기 위한 학습
Outer loop : Meta training