강화학습을 위한 커리큘럼
요약
본 기사는 인공지능 학습에서 '커리큘럼(Curriculum)'의 중요성을 강조하며, 복잡한 지식을 체계적으로 분해하여 점진적으로 가르치는 교육적 원리를 머신러닝 모델 훈련에 적용하는 방법을 논합니다. 초기 신경망 훈련부터 강화학습(RL)까지 다양한 분야에서 커리큘럼을 사용하면 학습 속도를 높이고 일반화 성능을 개선할 수 있음이 입증되었습니다. 특히, 작업의 난이도를 점진적으로 증가시키고 쉬운 작업을 혼합하여 잊어버리는 현상(forgetting)을 방지하는 것이 효과적인 전략으로 제시됩니다.
핵심 포인트
- 커리큘럼은 복잡한 지식을 단순에서 어렵게 체계적으로 분해하여 모델이 효율적으로 학습하도록 돕는 핵심 원리입니다.
- 초기 신경망(Elman, 1993)부터 강화학습(RL)에 이르기까지 커리큘럼 적용의 중요성이 입증되었으며, 이는 수렴 속도 개선과 성능 향상으로 이어집니다.
- 효율적인 커리큘럼 설계는 단순히 난이도를 점진적으로 높이는 것 외에도, 쉬운 작업을 섞어주는 '혼합(Mix)' 전략을 통해 모델의 망각 현상을 방지하는 것이 중요합니다.
- 최신 연구에서는 PCG(Procedural Content Generation)를 활용하여 다양한 난이도의 환경을 생성하고, 이를 RL 에이전트의 일반화 능력을 평가하는 벤치마크로 사용합니다.
[2020-02-03 업데이트: "Task-Specific Curriculum" 섹션에서 PCG 를 언급함.
[2020-02-04 업데이트: "curriculum through distillation" 섹션을 추가함.
우리가 3 세 어린이에게 적분이나 미분을 가르치고자 할 때, 이는 불가능한 것처럼 들립니다. 이 어린이는 기본적인 산술조차 모릅니다. 이것이 바로 교육이 중요한 이유입니다. 교육은 복잡한 지식을 체계적으로 분해하는 방법과 개념을 단순에서 어렵게 가르치는 좋은 커리큘럼을 제공합니다. 커리큘럼은 인간对我们에게 어려운 것들을 배우기 쉽게 만들어 줍니다. 하지만 머신러닝 모델에 대해서는 어떻게 될까요? 커리큘럼으로 모델을 더 효율적으로 훈련할 수 있을까요? 학습 속도를 높이기 위한 커리큘럼을 설계할 수 있을까요?
1993 년, 제프리 엘만 (Jeffrey Elman) 은 커리큘럼을 사용하여 신경망을 훈련하는 아이디어를 제안했습니다. 그의 초기 언어 문법 학습에 대한 작업은 이러한 전략의 중요성을 입증했습니다: 제한된 단순 데이터셋으로 시작하여 훈련 샘플의 복잡도를 점진적으로 증가시킵니다. 그렇지 않으면 모델은 전혀 학습할 수 없었습니다.
커리큘럼 없이 훈련하는 것과 비교하면, 커리큘럼을 채택하면 수렴 속도가 빨라질 것으로 기대하며 최종 모델 성능이 개선되거나 개선되지 않을 수도 있습니다. 효율적이고 효과적인 커리큘럼을 설계하는 것은 쉽지 않습니다. 기억해 두세요. 나쁜 커리큘럼은 학습을 방해할 수 있습니다.
다음으로, 대부분의 경우 강화학습에 적용되며 몇 가지 예외는监督学习 (Supervised Learning) 에 적용됩니다. 여러 가지 커리큘럼 학습 범주를 살펴볼 것입니다.
"The importance of starting small" 논문 (Elman 1993) 에서, 특히 시작 문장을 좋아하며 영감을 주고 감동적입니다:
"인간은 다른 종과 비교하여 많은 차원에서 다르지만, 두 가지가 특히 주목할 만합니다. 인간은 학습에 대한 탁월한 능력을 보이며, 인간은 성숙기에 도달하는 데 unusually long time (비정상적으로 긴 시간) 이 걸린다는 점으로 유명합니다. 학습의 적응적 이점은 명확하며, 문화 (culture) 를 통해 학습은 행동의 유전적 기반이 아닌 전파의 기초를 만들어 내어 우리 종의 진화를 가속화할 수 있다는 것이 주장될 수 있습니다."
사실, 학습은 인간들이 가진 가장 강력한 초능력이 아닐까 싶습니다.
Task-Specific Curriculum
Bengio et al. (2009) 는 과거에 커리큘럼 학습에 대한 좋은 개요를 제공했습니다. 이 논문은 수동으로 설계된 task-specific curriculum 을 사용한 토이 실험을 통해 두 가지 아이디어를 제시했습니다:
- 더 깨끗한 예제는 더 빠른 일반화를 제공합니다.
- 점차적으로 더 어려운 예제를 소개하면 온라인 훈련 속도가 빨라집니다.
일부 커리큘럼 전략은 쓸모없거나 심지어 해로울 수 있다는 것이 합리적입니다. 이 분야에서 답해야 할 좋은 질문은: 어떤 커리큘럼 전략이 다른 것보다 더 잘 작동하는 일반적인 원칙이 있을까요? Bengio 2009 논문은 학습이 "흥미로운" 예제에 집중하는 것이 유익할 것이라고 가정했습니다. 즉, 너무 어렵거나 너무 쉬운 예제가 아닙니다.
우리의 단순한 커리큘럼이 점진적으로 증가하는 수준의 복잡성을 가진 샘플로 모델을 훈련하는 경우, 먼저 작업의 난이도를 정량화하는 방법이 필요합니다. 하나의 아이디어는 다른 모델에 대해 최소 손실을 사용하는 것입니다 (이 모델은 다른 작업에서 사전 훈련됨) (Weinshall et al. 2018). 이 방식에서 사전 훈련된 모델의 지식은 새로운 모델로 훈련 샘플의 순위를 제안함으로써 전달될 수 있습니다. Fig. 2 는 curriculum 그룹 (그린색) 의 효과를 보여줍니다. 이는 control (랜덤 오더; 노란색) 과 비교됩니다.
(역순; 빨간색) 그룹.
Zaremba & Sutskever (2014) 은 코드를 실행하지 않고도 수학 연산의 짧은 Python 프로그램의 출력을 예측하는 LSTM 을 훈련하는 데 흥미로운 실험을 수행했습니다. 그들은 커리큘럼이 학습에 필수적임을 발견했습니다. 프로그램의 복잡성은 두 가지 파라미터인 length
∈ [1, a] 와 nesting
∈ [1, b] 로 제어됩니다. 세 가지 전략이 고려됩니다:
- Naive curriculum: 먼저
length
을 증가시켜a
에 도달할 때까지; 그런 다음nesting
을 증가시키고length
을 1 로 리셋합니다. 이 과정을 최대치까지 반복합니다. - Mix curriculum:
length
~ [1, a] 와nesting
~ [1, b] 를 샘플링합니다. - Combined: naive + mix.
그들은 combined 전략이 항상 naive curriculum 을 능가하고 일반적으로 (하지만 항상 아님) mix 전략을 능가한다는 것을 발견했습니다. 이는 훈련 중에 forgetting 을 피하기 위해 쉬운 작업을 섞어들이는 것이 매우 중요하다는 것을 나타냅니다.
Procedural content generation (PCG) 는 다양한 난이도의 비디오 게임을 생성하는 데 널리 사용되는 접근법입니다. PCG 는 알고리즘적 무작위성과 게임 요소 및 그들 간의 상호 의존성을 설계하는 데 인간 전문 지식을 많이 사용합니다. 절차적으로 생성된 레벨은 RL 에이전트가 훈련되지 않은 새로운 레벨에 일반화할 수 있는지 평가하는 벤치마크 환경에 도입되었습니다 (meta-RL!), 예를 들어 GVGAI, OpenAI CoinRun 과 Procgen 벤치마크입니다. GVGAI 를 사용하여 Justesen, et al. (2018) 은 RL 정책이 특정 게임에 쉽게 과적합될 수 있지만 간단한 커리큘럼을 통해 모델 성능과 함께 작업 난이도를 성장시킴으로써 새로운 인간 설계된 레벨로의 일반화 능력을 향상시킬 수 있음을 입증했습니다. CoinRun(Cobbe, et al. 2018) 에서도 유사한 결과가 발견됩니다.
POET(Wang et al, 2019) 은 RL 일반화를 개선하기 위해 진화 알고리즘과 절차적으로 생성된 게임 레벨을 활용하는 또 다른 예제입니다. 이는 제가 meta-RL 포스트에서 자세히 설명했습니다.
위에서 설명한 커리큘럼 학습 접근법을 따르기 위해서는 일반적으로 훈련 과정에서 두 가지 문제를 해결해야 합니다:
- 작업을 난이도별로 정렬할 수 있도록 작업의 난이도를 양적으로 측정하는 지표를 설계합니다.
- 훈련 중에 모델에 증가하는 수준의 난이도를 가진 작업 시퀀스를 제공합니다.
그러나 작업 순서는 반드시 순차적이지 않습니다. 우리의 Rubik's cube 논문 (OpenAI et al, 2019) 에서 우리는 Automatic domain randomization (ADR) 을 의존하여 복잡도가 증가하는 환경 분포를 성장시킴으로써 커리큘럼을 생성했습니다. 각 작업의 난이도 (즉, 일련의 환경에서 Rubik's cube 를 해결하는 것) 는 다양한 환경 파라미터의 랜덤화 범위에 따라 달라집니다. 모든 환경 파라미터가 상관관계가 없음을 가정하더라도 우리의 로봇 손이 작업을 학습할 수 있는 충분한 커리큘럼을 만들었습니다.
Teacher-Guided Curriculum
Automatic Curriculum Learning 의 아이디어는 Graves, et al 2017 이 약간 앞서 제안했습니다. 이는 N-작업 커리큘럼을 N-armed bandit 문제로, 그리고 이 밴치트에서 수익을 최적화하는 적응 정책을 고려합니다.
논문에 고려된 두 가지 학습 신호의 카테고리가 있습니다:
Loss-driven progress: Loss 함수의 변화 (before/after one gradient update). 이 유형의 보상 신호는 학습 속도를 추적하며, 가장 큰 작업 손실 감소가 가장 빠른 학습에 해당하기 때문입니다.
Complex-driven progress: 네트워크 가중치에 대한 posterior 와 prior 분포 간의 KL 발산. 이 유형의 학습 신호는 MDL 원리에 영감을 받았습니다.
ALP_p 분포를 p에 대해 피팅하기 위해 Gaussian mixture model이 훈련됩니다. 임의의 작업을 샘플링할 때 ε-greedy가 사용되며: 일정 확률로 무작위 작업 샘플링; 그렇지 않으면 GMM 모델에서 ALP 점수에 비례하여 샘플링합니다.
Curriculum through Self-Play
Teacher-student 프레임워크와 달리, 두 에이전트는 매우 다른 일을 수행합니다. 교사는 학생에게 실제 작업 내용에 대한 지식이 없도록 작업을 선택하는 것을 학습합니다. 만약 우리가 둘 다 메인 작업에 직접 훈련시키기를 원한다면 어떨까요? 심지어 서로 경쟁하게 만들 수 있을까요?
Sukhbaatar, et al. (2017)는 asymmetric self-play를 통한 자동 커리큘럼 학습을 위한 프레임워크를 제안했습니다. Alice와 Bob이라는 두 에이전트는 다른 목표를 가지고 동일한 작업을 수행합니다: Alice는 Bob에게 동일한 상태를 달성하도록 도전하고, Bob은 가능한 한 빠르게 완료하려고 합니다.
Alice와 Bob을 동일한 환경에서 훈련된 하나의 RL 에이전트의 서로 다른 두 복사본으로 생각해보겠습니다. 각각은 독립적인 파라미터와 손실 객관식을 가집니다. Self-play-driven 훈련은 두 가지 유형의 에피소드로 구성됩니다:
- self-play 에피소드: Alice는 s_0 에서 s_t 로 상태를 변경하고, 그 후 Bob 은 원래 상태 s_0 를 되돌려 내부 보상을 받도록 요청받습니다.
- target task 에피소드: Bob 은 목표 플래그를 방문할 경우 외부 보상을 받습니다.
B 가 A 의 (s_0, s_t) 쌍을 반복해야 하기 때문에, 이 프레임워크는 가역적이거나 리셋 가능한 환경에서만 작동합니다.
Alice 는 Bob 을 그의 편안함 영역 밖으로 밀어내야 하지만 불가능한 작업을 주어서서는 안 됩니다. B 의 보상은 R_B = -γ t_B, A 의 보상은 R_A = γ max(0, t_B - t_A) 로 설정되며, 여기서 t_B 는 B 가 작업을 완료하는 총 시간, t_A 는 Alice 가 STOP 동작을 수행하기까지의 시간, γ 는 외부 작업 보상과 비교 가능한 보상을 조정하기 위한 스칼라 상수입니다. B 가 작업을 실패하면 t_B = t_max - t_A 입니다. 두 정책은 모두 목표 조건화 (goal-conditioned) 입니다. 손실은 다음과 같이 함의합니다:
- B 는 작업을 가능한 한 빨리 완료하고 싶습니다.
- A 는 B 에게 더 많은 시간을 소요하는 작업을 선호합니다.
- B 가 실패할 때 A 는 너무 많은 단계를 취하고 싶지 않습니다.
이 방식에서, Alice 와 Bob 의 상호작용은 점점 도전적인 작업으로 구성된 커리큘럼을 자동으로 구축합니다. 동시에, A 가 B 에게 작업을 제안하기 전에 이미 그 작업을 수행했기 때문에, 작업은 해결 가능함이 보장됩니다.
A 가 작업을 제안하고 B 가 이를 해결하는 패러다임은 Teacher-Student 프레임워크와 유사하게 들립니다. 그러나 asymmetric self-play 에서, 교사를 역할을 하는 Alice 는 Bob 을 위한 도전적인 경우를 찾기 위해 동일한 작업을 수행하며, 명시적으로 B 의 학습 과정을 최적화하지 않습니다.
Automatic Goal Generation
종종 RL 정책은 작업 집합을 수행할 수 있어야 합니다. 목표는 각 훈련 단계에서 현재 정책에게 너무 어렵거나 너무 쉬우지 않도록 신중하게 선택되어야 합니다. 목표 g ∈ G 는 상태 집합 S^g 로 정의될 수 있으며, 에이전트가 그 상태 중 하나에 도착할 때마다 목표가 달성된 것으로 간주됩니다.
Generative Goal Learning (Florensa, et al. 2018) 접근법은 Goal GAN을 사용하여 원하는 목표를 자동으로 생성하는 데 의존합니다. 그들의 실험에서 보상은 매우 희소하며, 목표가 달성되었는지 여부에 대한 이진 플래그만이며 정책은 목표에 조건화됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Lilian Weng Blog의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기