Reinforcement Learning Introduction
참고 강의 : https://www.youtube.com/playlist?list=PLvbUC2Zh5oJtYXow4jawpZJ2xBel6vGhC
오승상 강화학습 Deep Reinforcement Learning
고려대학교 오승상 교수의 강화학습 Deep Reinforcement Learning 강의 입니다. 딥러닝과 수학 DLmath 팀을 운영하고 있습니다. (자료) https://sites.google.com/view/seungsangoh
www.youtube.com
1. Machine Learning algorithm categories
기계학습은 원하는 출력을 생성하는 규칙을 찾는 학습 알고리즘을 작성하여 데이터와 함께 입력하는 방식이다. 이를 바탕으로 입력값을 출력(or 정답) 값으로 mapping 하는 함수가 학습된다. 기계학습의 분류는 크게 지도 학습, 비지도 학습, 강화 학습으로 나뉜다.
- Supervised Learning
지도 학습은 Label (정답)이 포함된 training data로부터 학습이 진행되며 입력 데이터에 대해 회귀와 분류를 위한 규칙을 찾는다. 이후 test data나 새로운 입력 데이터에 대해 예측을 진행한다.
- Unsupervised Learning
비지도 학습은 Label이 없는 training data로부터 학습을 진행되며, 데이터에 내재된 구조를 파악하는 것을 목적으로 한다. 대표적인 예시로 clustering이 있다. 지도학습에 비해 학습이 어렵다는 특징이 있다.
- Reinforcement Learning
강화학습은 sampled data가 존재하지 않으며, agent가 환경과 상호작용하며 얻게 되는 데이터를 바탕으로 학습이 진행된다. 학습과정에서 agent는 각 state에서 policy를 기반으로 action을 선택하며 그 결과 reward를 얻는다. 결과적으로 총 reward를 최대로 하는 policy를 찾는 것을 목적으로 학습이 진행된다. 정리하자면 policy evaluation과 policy improvement가 반복적으로 적용되는 것이다.
2. RL을 사용하는 이유
노면에서 로봇 걷기 시스템을 학습하려고 하는 경우를 가정한다. 지도학습을 적용한다면, 입력 데이터는 로봇의 현재 관절 상태 (ex. 관절의 각도) 와 현재 노면의 굴곡이고 label(정답값)은 로봇이 넘어지지 않고 제대로 걷기 위한 다음 관절 상태가 될 것이다. 이때 각각의 (현재 관절의 각도, 현재 노면의 상태)-(정답 관절 상태) 쌍을 모델의 입력값으로 넣어야 하는데, 이렇게 되면 가능한 쌍의 개수가 상당히 많아지므로 모든 상태를 고려할 수 있는 데이터를 수집하여 학습을 하는 것이 어렵다. 그러나 강화학습에서는 action을 앞으로 선택할 관절의 상태 state를 현재 노면과 관절의 상태로 설정해주기만 한다면 agent가 스스로 다양한 시도를 통해 적절한 action을 선택할 수 있으므로 학습이 효율적으로 이뤄질 수 있다.
3. Deep Learning
- Machine Learning
머신 러닝은 인간이 직접 데이터 전처리 과정을 수행해야 한다는 특징을 가진다. 이 과정에서 소모되는 시간이 길고 인간이 데이터의 특성을 완벽히 파악하는 것이 어렵기 때문에, 전처리된 데이터가 불완전하거나 특정 특징에 집중된 형태를 가질 수 있다는 단점이 있다. 따라서 단순한 작업에 적합하다.
- Deep Learning
딥러닝은 머신러닝과 다르게 데이터 전처리 과정이 존재하지 않으며 적용 과정에서 계속해서 raw data로부터 특징 추출이 이뤄진다. 따라서 raw data를 그대로 다룰 수 있는 장점을 가진다. 무엇보다 데이터에 대한 domain이 없더라도 데이터를 활용할 수 있다. 딥러닝은 end-to-end 방식으로 학습하며 이 과정에서 backpropagation이 활용된다. 이는 딥러닝의 경우 parameter의 양이 많으므로 효율적인 gradient의 계산을 위해 사용된다.
4. Deep Reinforcement Learning
RL이 대표적으로 활용되는 로보틱스 분야에서는 state space가 지수함수적으로 늘어난다 (curse of dimensionality). 이때 DL을 적용하게 되면, 높은 차원의 데이터로부터 자동으로 낮은 차원의 특징을 추출할 수 있기 때문에 Deep Reinforcement Learning은 효과적인 방식으로 여겨진다. 예를 들어 CNN을 적용하여 이미지를 feature vector로 변환하고 fully connected layer에서 value function을 계산하는 방식으로 DRL을 활용할 수 있다.