일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- video understanding
- MLFlow
- s3
- data discovery
- Hexagonal Architecture
- embodied ai
- bitcoin
- 챗봇
- vision-language navigation
- embodied
- Rust
- GPT
- ChatGPT
- discord
- Spark
- blockchain
- datahub
- 디스코드봇
- 블록체인
- vln
- Golang
- backend
- 디스코드챗봇
- databricks
- frontend
- crwaling
- 디스코드
- airflow
- bricksassistant
- Ai
- Today
- Total
BRICKSTUDY
Imitation Learning에 대해서... 본문
0. 개요
안녕하십니까 브릭스터디 박찬영입니다. 오늘은 Imitation learning에 대해서 알아보려고 합니다. 평소 딥러닝하면, 대부분 supervised learning, self-supervised learning에 대해서는 많이 알고 계실 것 같은데요. 이러한 개념들보다는 조금 생소한 imitation learning에 대해서 간단하게 살펴보도록 하겠습니다.
해당 내용은 https://youtu.be/kGc8jOy5_zY?list=PL_iWQOsE6TfVmKkQHucjPAoRtIJYt8a5A 강의를 참고했습니다.
1. From prediction to control
지금까지 deep learning model은 "learning to predict"라고 생각할 수 있습니다. "prediction"에 집중을 해왔던 것인데요.

ImageNet dataset과 같이 image에서 해당 image의 label을 prediction하는 task 라던지, image에서 object의 label과 위치를 예측하는 object detection task를 생각해볼 수 있을 것입니다.

그러나 우리가 실제로 machine learning system을 real world에 적용하려고 할 때, "prediction" 보다 "decision making"에 더 관심이 갈 수 있습니다. 그리고 이러한 decision making problem은 "control" 부분과 관련이 있습니다. 예를 들어 공장의 자동화 로봇, 자율주행 시스템, 휴머노이드 로봇 등을 생각해볼 수 있습니다.
이런 시스템들은 단순히 prediction만 해서 끝나는게 아니라, 어떠한 일련의 action 과정을 결정해야 하는 경우가 많습니다. 그렇기 때문에, prediction 보다 control 측면으로 문제를 바라보는 시각을 공부하려고 합니다.
What about learning to control?
2. Challenges
"Learning to control"을 생각할 때, 어떤 어려움들이 있을지 기존의 prediction과 비교하면서 생각을 해봅시다. 어떤 문제들이 있을까요?
2.1. Non-i.i.d.
가장 중요한 문제는 prediction task에서는 i.i.d.를 주요 가정으로 가져간다는 점입니다. 여기 파트는 i.i.d.의 개념부터 수식으로 살펴보겠습니다. 먼저 상황 자체를 생각하면, 다음과 같습니다.

다음과 같이 전체 데이터셋 D가 존재하는 것이고 우리가 만들고자 하는 model은 결국 D에 대한 확률분포라고 할 수 있습니다. 이럴 때, i.i.d. 가정이라는 것은 다음과 같습니다.

결과적으로 i.i.d. 가정 하에서 model을 표현하면 다음과 같습니다.

그러면, control 측면에서는 어떤 문제가 있을까요. 상황을 생각해봅시다.

control 측면에서는 이전의 ouput이 다음의 input에 영향을 준다는 것입니다. i.i.d. 가정을 사용할 수 없는 상황이라는 것입니다(non-i.i.d).
i.i.d. 가정은 매우 중요합니다. 왜냐하면, 우리는 i.i.d. 가정 하에서는 단지 전체 데이터셋에서 평균 accuracy가 가장 높은 모델에 초점을 맞추기만 하면 되기 때문입니다.
2.2. Abstract goals

또 다른 하나의 어려운 점은 prediction의 경우에는 "정답지" 역할을 할 수 있는 Ground truth labels이 존재한다는 것입니다. 데이터의 유무를 이야기하는 것이 아니라, prediction할 label이 존재한다는 이야기입니다.
하지만, control 문제로 넘어오면, 목표 자체가 굉장히 추상적일 수 있습니다. 하나의 label을 맞추는 것이 아닌, 추상적인 목표를 달성해야 하는 작업 단위라고 생각할 수 있습니다.
2.3. Prediction vs Control

Prediction 이라고 하더라도, 많은 실제 ML deployment 상황에서 같은 문제(feedback)문제가 발생함.
예를 들어, traffic prediction system에서의 결정이 사람들의 이동 경로를 변경하고, 다시 traffic이 예측과 다른 곳에서 발생할 수 있음.
3. Terminology

4. Imitation Learning

가장 단순한 시나리오의 imitation learning은 이렇습니다. 자율주행 시스템을 생각한다면, 먼저 전문가가 실제 코스에 대해서 운전을 진행한 다음에, 운전 시나리오(이미지-행동)을 모아서 학습 데이터를 만들고, 해당 학습 데이터로 원래 지도학습처럼 학습을 진행하는 과정으로 생각할 수 있습니다. 이를 "behavioral cloning" 이라고 합니다.
과연 이 방법이 잘 작동할까요?
이론적으로는 잘 작동하지 않습니다.

이유는 전문가의 policy를 아주 잘 학습했다고 하더라도, 아주 미세한 오차가 생기기 마련인데, 살짝 빗나간 예측은 다른 state로 이어지고 다른 state는 처음 보는 장면이기 때문에, 더 큰 오류로 이어지기 때문입니다.
그러나 놀랍게도 실제로는 어느정도 작동합니다.
https://youtu.be/NJU9ULQUwng?t=161
그렇다면, 실제로 어떻게 작동되는지를 알기 위해서 먼저 이론적으로 정확히 왜 불가능한지를 살펴봅시다.
4.1. What is the problem?

문제는 observation distribution이 다르다는 것입니다. 전문가의 운전 데이터인 training data의 분포와 학습된 policy를 가지고 t step에서 관측된 data의 분포가 서로 다릅니다. 만약 observation이 i.i.d.라면, 같지만, i.i.d.가 아니기 때문에 서로 분포가 다른 문제를 가지고 있습니다.
해당 문제는 이전의 recurrent neural network에서도 비슷한 맥락이 있었습니다. distributional shift라는 문제입니다. 이는 RNN의 decoding 과정에서 training 시에는 항상 true sequence를 입력으로 받지만, test 시에는 예측값을 입력으로 받기 때문에 생기는 오차를 이야기합니다.

그래서 RNN에 적용했던 solution을 그대로 적용을 해봅시다.

RNN과 달리 control 측면에서는 real-world와 상호작용을 해봐야, 다음 state를 알 수 있기 때문에 imitation learning에서는 어려운 해결책입니다.
그러면 만약에 우리의 policy가 매우매우 정확하다면, 두 분포가 비슷해지지 않을까? 하는 생각으로 가봅시다.

그렇다면, 우리는 왜 expert를 정확하게 따라하지 못하는가?에 대해서는 다음 2가지 이유가 존재합니다.
먼저 하나는 non-markovian behavior이고, 나머지는 multimodal behavior이기 때문입니다.
4.2. Non-Markovian Behavior

이러한 문제를 해결하기 위해서 LSTM이나 RNN의 hidden state를 이용하여, history를 encoding하는 방법을 주로 사용합니다.
4.3. Multimodal behavior

다음과 같은 상황 : 왼쪽으로 가도 괜찮고, 오른쪽으로 가도 괜찮은 상황에서 MSE Loss를 가지고 prediction을 수행한다면, 결국 평균을 취하기 때문에, 가운데로 간다는 것입니다. 이를 해결하기 위해서 여러 개의 gaussian output을 mix하거나, latent variable models, Autoregressive discretization을 사용합니다.

5. 마무리
이번 포스팅에서는 imitation learning에 대해서 간단하게 살펴봤습니다. 그리고 어떤 문제가 있는지, 어떻게 해결하려고 하는지에 대해서 여러 생각해볼 내용들을 남기면서 마치는데, 이후 강화학습 개념으로 까지 확장해서 생각해볼 수 있는 주제입니다. 다음에는 강화학습 관련 내용으로 준비를 해보겠습니다. 감사합니다.
'AI' 카테고리의 다른 글
새해를 여는 Large Action Model (0) | 2025.01.19 |
---|---|
Reinforcement learning(강화학습) 기본 (1) | 2024.12.29 |
Attention, Transformer를 알아보자 (0) | 2024.11.05 |
RNN, Sequence-to-Sequence model (0) | 2024.11.04 |
인공지능 기초 Optimization (0) | 2024.10.26 |