- 2019년 5월 14일 오후 12:30
- 조회수: 10527
REFERENCES
INFORMATION
- 2019년 5월 24일
- 오후 12시 30분 ~
- 고려대학교 신공학관 218호

TOPIC
OVERVIEW
발표자 후기

금일 세미나는 'Actor-Critic Algorithms'라는 주제로 진행했다. 프로젝트를 진행하게 되면서 강화학습의 알고리즘에 대한 공부를 위해 찾아본 논문이었다. 발표의 내용은 강화학습에 Deep Learning이 더해진 Deep Q-Network의 시작으로 Deep Q-Network의 단점을 보완하기 위한 알고리즘인 A3C 알고리즘 순으로 진행하였다. A3C 알고리즘의 선행 개념인 Policy Gradient 알고리즘에서 대표적인 알고리즘인 REINFORCE와 Deep Q-Network와 REINFORCE의 조합으로 만들어진 Actor-Critic 기법에 대해서 설명하며 각각의 알고리즘에서 발생하는 Bias와 Variance의 문제에 대해 설명하였다. 각각의 알고리즘은 Temporal Difference Learning과 Monte Carlo Method 방식을 이용하여 학습을 진행하게 되는데 Actor-Critic 기법은 Bias와 Variance를 줄이기 위해 N-Step Boostrapping 방식을 이용하여 학습을 진행하게 된다. A3C는 이러한 Actor-Critic 기법을 사용하면서 Asynchronous(비동기적) 학습 방식과 Adavantage를 이용하여 학습을 진행하게 된다. 결과적으로 비동기적 학습 방식을 이용하여 Deep Q-Network 알고리즘 보다 빠른 학습속도와 높은 성능 보이는 장점이 있었다.
이번 세미나 주제에 대해 발표를 진행하면서 많은 사람들을 이해시키는데에 있어서 자료가 부족했다고 생각한다. 또한 Bias와 Variance에 대한 설명 부분에서도 Concept 부분 만이 아닌 강화학습에서는 어떻게 발생이 되는지 자세히 설명을 못한 부분이 아쉬웠다. 다음 세미나를 위해서는 자료에 대해 좀 더 이해하기 쉽고 자세한 내용이 들어가도록 준비해야겠다는 생각을 했다. 끝까지 발표를 들어준 분들에게 감사의 말을 전한다.
청취자 후기

오늘 전체세미나는 ‘Actor-critic algorithms’라는 주제로 영재가 진행하였다. 강화학습의 전반적인 개요와 함께 Deep Q-netowork(DQN), Policy gradient, Actor critic method, A3C 기법을 단계적으로 설명해주었다. 연구실에서도 활발히 수행하고 있는 GAME AI - 스타크래프트에 적용되는 문제상황을 바탕으로 자세한 알고리즘까지 설명해주었고, 발표자의 노력을 엿볼수 있었다. 개인적으로 본 세미나로부터 느낀 점은 다음과 같다. 우리가 확보한 데이터를 바탕으로 강화학습 모델을 만들어 보고 싶다. 이산형 설명변수(X)가 에이전트(agent)가 활동(action)을 취한 이력으로 보고, 보상(reward) 는 반응변수(Y)가 되는 것이다. 예를 들어, 공정별 설비시퀀스 데이터를 적용할 수 있을 것으로 생각한다. 로트(lot)를 공정 단계에 따라 설비를 할당하는데 그 할당을 수행하는 모델에 강화학습을 이용하면 좋을 것 같다. 공장이 Environment, 설비 할당을 Action, 품질을 Reward로 보는 것이다. 품질을 고려한 설비할당이 이루어 지는 점을 강화학습으로 문제를 풀고자 하는 것으로 Data driven reinforcement learning 분야로 확장 지어 연구해 볼 계획이다.

금일 세미나는 영재가 강화학습 Actor Critic Algorithms를 주제로 세미나를 진행해주었다. 세미나에서 다룰 논문인 Google Deepmind의 Asynchronous Methods for Deep RL을 설명하기 위해 먼저 DQN, Policy Gradient, Actor-Critic Method를에 대하여 리뷰해주었다. DQN은 Deep Learning을 이용한 강화학습의 한 방법으로 특정 State에서 가장 Reward을 많이 받을 수 있는 Action에 대응하는 Q를 출력해주게끔 학습하는 방법이다. 대표적인 Policy gradient algorithm으로는 REINFORCE가 있는데, 이는 State 0~T 시점에서 얻을 수 있는 Reward의 합의 기댓값을 최대가 되도록 학습하는 알고리즘이다. Actor-critic은 REINFORCE와 DQN의 장점을 결합한 강화학습 알고리즘으로, State에서 최적의 Action을 선택할 수 있도록 학습하는 Policy Network와 선택된 Action을 평가하는 Value Network로 구성된다. A3C는 다수의 Actor-Critic(Multi Agent)을 사용하여 Global Network를 학습시키는 알고리즘으로 스타크래프트와 같은 수많은 Action이 존재하는 게임의 강화학습에 적합하다.
오늘 세미나에서 다룬 내용이 굉장히 많음에도 불구하고 하나하나 자세하게 설명해주려고 했던 발표자의 노력이 잘 드러났다고 생각한다. 개인적으로 강화학습에 대해서 공부를 해본적이 없음에도 불구하고 강화학습의 기본적인 내용을 이해할 수 있을 정도로 잘 설명해주었다. 연구실에서 개별적으로나 프로젝트로 강화학습을 연구하고 있는 연구원들이 있는데 이번 세미나를 통해 어떠한 연구를 하고 있는지 조금이나마 알 수 있어 좋았고, 추후에 내가 관심이 있는 text mining, generative model 등에서 강화학습을 적용한 연구를 해보면 좋겠다는 생각이 들었다. 좋은 발표를 해준 영재에게 고맙다는 말을 전한다.

오늘 세미나는 'Actor-Critic Algorithms'라는 주제로 영재오빠가 진행하였다. 2주전에 진행된 One DMQA 홈커밍에서 다룬 DQN에이어 강화학습의 대표적인 알고리즘 Policy Gradient, Actor-Critic Method, A3C까지 다루는 시간을 가졌다. DQN은 강화학습과 딥러닝 방법론을 접목시키며, experience replay를 사용하여 데이터 효율성을 확보할 수 있었음에도 많은 메모리를 요구하고, 학습속도가 느리며 불안정하다는 한계점이 있었다. 이러한 문제를 보완한 대표 알고리즘인 Policy Gradient는 간단히는 정책 함수를 gradient descent를 이용하여 직접적으로 학습하는 방식으로 진행한다. DQN의 경우, low variance하고, 비연속적 action인 반면 REINFORCE의 경우, low bias하고, 연속적 action이라는 특징이 있으며 이후 제안된 Actor-Critic알고리즘은 앞서 소개한 DQN과 Policy Gradient의 대표 알고리즘 REINFORCE의 장점을 조합하여 제안되었다. 따라서 Actor-Critic 알고리즘은 bias와 variance의 trade-off를 적절히 반영하게 되고 이를 고려하여 학습을 하게 된다. 최종적으로 오늘 소개한 A3C는 이런 Actor-Critic 알고리즘을 병렬적으로 처리하며, advantage라는 새로운 개념을 제안하여 보다 안정적이고 빠르게 좋은 결과 값을 도출한다. 금일 진행한 세미나는 내가 자주 접하지 못한 강화 학습의 주요 핵심 알고리즘을 점진적으로 소개하는 시간으로 매우 의미 있는 시간이었다. 첫 세미나 발표를 준비하는 과정에서 여러 논문을 수용하고, 이를 녹여내기 위해 고민해준 영재오빠에게 나 또한 배울 점이 많았다고 생각한다. 오늘을 계기로 진행하는 연구 및 프로젝트에도 활발히 강화학습 접근을 시도해야겠다고 생각한다.

금일은 'Actor Critic'을 주제로 한 세미나가 진행 되었다. 최근 강화학습에 대한 공부를 시작해보려는 입장이기 때문에 기대가 되었다. DQN에 대한 요약을 중심으로 Policy Gradient, Actor-Critic Method 순으로 발표가 진행되었고, 최종적으로는 DQN이 가지는 단점을 극복한 A3C에 대한 내용도 소개 되었다. DQN은 딥러닝을 활용한 강화학습으로 상태(state)를 입력으로 여러 개의 Q값을 도출해 가장 큰 Q값에 대응하는 행동(Action)을 선택하게 된다. 하지만 DQN은 많은 메모리를 사용하게 되어 학습이 느리고 불안정하다는 단점을 지니고 있다. 특히 스타크래프트2 같이 경우의 수가 많은 경우에는 더 학습시키기 어렵다. A3C는 이러한 단점을 해결하고자 제안된 알고리즘으로 Replay Memory를 사용하지 않아 속도가 빠르고 다양한 Agent의 독립적인 경험을 활용하여 학습을 진행하게 된다는 장점을 지닌다. 이러한 A3C 알고리즘은 스타크래프트2와 같이 경우의 수가 많은 게임에서도 학습이 잘 된다고 한다.
서두에 언급한 것처럼 최근 강화학습에 대한 공부를 시작해보려는 입장에서 기초가 될 만한 지식을 들을 수 있었던 것이 좋았다. Q-learning에 대한 기본적인 내용과 강화학습 알고리즘에서 학습시 필요한 기본적인 것들에 대해 들을 수 있었다. 이번 세미나를 들으면서 내용에 대해서 실제 사례를 들어 설명해줬으면 좋았을 것 같다는 생각을 했다. 강화학습의 경우 나처럼 이제 막 관심을 가지고 입문하는 사람들이 많이 있기 때문에 개념 자체가 어려울 수도 있기 때문이다. 세미나 준비를 위해 많은 공부를 하고 많은 정보를 청취자들에게 제공해 준 영재에게 감사함을 표한다.

강화학습은 모델이 1) 상황을 이해하고 이해한 상황에 기초하여 2) 적절한 액션을 취하는 학습의 형태를 띈다. 그러나 개별적으로 자세히 보면 상황을 이해하는 부분을 어떤식으로 구축해야하는지 또한, 적절한 액션을 정의하고 액션에 대한 평가를 하는 부분까지 세부적으로 조절해야 하는 부분이 많이 존재한다. 상황을 이해하기 위해 다양한 탐험을 수행하기 때문에 학습 시간이 오래걸리고 하나의 에피소드가 여러개의 sequential한 step으로 구성되기 때문에 각 step간의 상관관계가 높은 단점이 있었다.
본 세미나에서 다룬 A3C는 기존의 1개의 agent로 탐색을 진행하는 것을 다수의 agent를 통해 학습이 수행하기 때문에 동일 시간 대비하여 더 넓은 범위를 탐색함으로써 모델의 학습을 더 빠르게 진행할 수 있다. 또한 1개의 모델로써 상황을 이해하고 액션을 취하는 기존의 방법들과 달리 상황을 이해하는 모듈과 취한 액션에 대해 평가를 수행하는 모듈을 분리 함으로써 좀더 효율적으로 학습을 진행할 수 있다는 장점이 있다.
개인적으로는 구현을 하는 측면에서는 어려운 부분이 있으나 실제 현실문제에 적용측면에서 봤을때,시간적 측면과 성능적 측면에서 본 세미나에서 다룬 A3C가 가장 적합한 형태의 모델이 아닐까 하는 생각을 해볼 수 있는 세미나 였다

금일 세미나는 A3C 논문과 강화 학습의 전반적인 내용과 관련한 리뷰를 진행 했다. 내가 생각하는 강화 학습은 인간이 지식을 습득하는 과정과 매우 유사하다고 생각한다. 예를 들어, 사람이 암기 과목을 공부하는 방법을 알아갈 때,. 여러가지 방법을 사용 한다. 우선 책을 여러 본다거나, 책에 밑줄을 치며 여러 번 본다거나, 필기노트를 만든다거나 하는 방법 순으로 진행해보면서, 자기 자신에게 가장 알맞은 방법을 선택해 암기 과목의 성적을 잘 받을 것이다. 강화 학습 역시, 자신의 원하는 것을 얻기 위해 여러가지 방법을 시도해보고 그 중 가장 쉬운 방법으로 보상을 얻을 것이다. 컴퓨터가 이러한 방식으로 학습할 수 있도록 하는 알고리즘이 강화학습이라는 생각이 든다. 강화 학습 알고리즘 중, A3C에 관해 집중적으로 설명해주었는데, 기존의 DQN알고리즘과 Reinforce 알고리즘의 장점들만 뽑아서 만든 알고리즘이라는 생각이 든다. Multi-Core CPU를 사용해서 thread당 하나의 에이전트를 할당해 자신과 비슷한 복제품들이 학습한 결과를 모아서 하나로 통합하는 과정을 거치는 것으로 이해했다. 여기서 학습속도도 기존 알고리즘보다 빠르고 성능도 더 좋았다.
세미나 내용 발표가 끝난 후, GPU로 왜 강화학습을 어려울까와 관해, 형록이형과 영준이형의 토의가 있었다. GPU가 연산이 빠르고 한번에 처리하는 양도 많은데 왜 사용하지 않는가?에 대한 형록이형의 질문에 GPU로 연산해야할 Task를 보내고 받는 과정에서, 병목이 생길수도 있고, 실제 게임을 할수 있도록 해주는 CPU에 연산자가 붙어있을 수록 상황에 대한 에이전트의 인식을 빠르게 처리할수 있다는 영준이형의 대답이 인상적이었다. 요즘 나오는 알고리즘들을 제대로 이해하기 위해서는 컴퓨터 자체에 관해서도 많이 알고 있어야 함을 다시 느끼게 하는 토의였다. 욱수형의 홈커밍데이 발표 마지막 처럼 1년에 3일이라도 컴퓨터 자체에 관해 공부하는 시간을 가져야 함을 느꼈다. 기본적인 알고리즘과 이를 구현하는것에 많은 시간을 투자하고 있지만, 작년에 진행했던 교수님과의 캡스톤디자인에서 고민해봤던 강화학습을 놓치지 않게 해주는 유익한 세미나였다.

금일 세미나는 actor-critic algorithms라는 주제로 진행되었다. 세미나에서는 deep Q network (DQN), policy gradient, actor-critic method와 asynchronous advantage actor-critic (A3C)에 대한 내용을 다뤘다. A3C는 다수의 agent를 병렬적으로 actor-critic을 사용하여 학습하는 방식으로, 일반적인 actor-critic에 비해 학습 속도가 빠르며 높은 성능을 나타내는 것으로 알려져 있다. Deep reinforcement learning을 통해 복잡한 state space와 action set을 갖고 있는 현실 문제를 풀고자 할 때, 단일 agent를 사용하여 학습을 시도하는 모델에 비해 그 장점이 특히 더 부각될 수 있을 것 같다.

이번 세미나에서는 Asynchronous Advantage Actor-Critic(A3C) 논문을 리뷰하는 시간을 가졌다. 강화학습이란 환경과 상호작용을 하며 목표를 달성하는 에이전트를 다루는 학습 방법이다. 즉 미래에 받을 보상의 합을 최대로 하는(결과가 가장 좋게 될 수 있는) 현 상태에서 할 수 있는 액션을 찾는 것이라고 볼 수 있다. Q-learning 은 행동 가치 함수에 기반을 둔 것으로 현 상태에서 할 수 있는 행동중 가장 좋은 행동을 찾는 방식으로 학습된다. Deep Q-Network 는 상태와 행동을 입력으로 하여 보상을 출력하게 하는 딥러닝을 이용한 강화학습이다. 순차 데이터의 상관관계를 고려하기 위하여 replay memory 를 사용하게 되어 메모리 사용이 많고, 학습 속도도 느리며 학습 또한 불안정한 단점이 있다. 이를 개선하기 위한 방법으로 A3C 가 제안되었다. 다수의 Actor-critic을 비동기적 업데이트를 이용하여 global network 에 저장하는 방식으로 학습이 진행된다. 각 Actor-critic 이 독립적으로 학습하고 결과를 global 저장 하기 때문에 메모리 사용이 적고 학습 속도 또한 빨라지게 되는 장점이 있다. 금일 세미나를 통하여 강화학습에서 이용되는 A3C 알고리즘에 대해 알 수 있어서 좋았고, global network 를 일반 딥러닝에도 적용하면 어떨까 하는 생각을 해보았다. 어려운 내용이었지만 핵심을 잘 이해할 수 있었던 좋은 세미나였다.

오늘은 강화학습 Actor-Critic Algorithms에 대한 세미나가 이루어졌다. 강화학습 Reinforcement Learning, RL)은 환경과 상호작용하며 목표를 달성하는 에이전트를 다루는 학습방법이다. 상호작용은 다음과 같이 이루어지는대 에이전트가 현재 상태[S(t)]에 맞는 행동[A(t)]을 하면 환경이 새로운 상태[S(t+1)]로 변화하며 그에 따른 보상[R(t+1)]을 에이전트가 받게 된다. 상태와 행동에 따른 미래에 가치를 table 형식으로 정리하면 Q-table이라 불린다. 하지만 table 형태로 저장하지않고 상태와 행동이 입력되면 이에 따른 가치를 출력하는 neural network를 사용하면 Deep Q-Network (DQN)이라 불린다. DQN 모델은 순차적인 상태 데이터 간의 높은 상관관계가 있고, 지도학습과 다르게 target y가 정해져 있지 않기 때문에 불안정한 학습이 진행된다는 문제가 생기게 된다. 이와 같은 문제를 DQN 모델은 experience replay와 fixed Q-target은 해결한다. 하지만 여전히 action과 state가 많은 복잡한 환경에서는 학습이 어렵다는 단점이 있다. A3C 알고리즘은 이를 해결하는 알고리즘으로 이 모델은 Actor-Critic 모델을 기반으로 Advantage함수로 목적식을 대체하고 multi-core CPU를 사용하면서 비동기식 (Asynchronous) 업데이트를 진행한다. 따라서 Asynchronous Advantage Actor-Critic이기 때문에 A3C라고 불린다. 그동안 강화학습에 대한 공부를 시도할 때마다 익숙하지 않았기 때문에 어려움이 컸다. 이 모든 것을 이해하려 애쓰고 열심히 준비하는 모습을 보여준 오늘의 발표자에게 큰 박수를 치고 싶다. 다른 사람들에게 쉽게 전달할 수 있는 주제를 선택하면서 쉽게 갈 수 있었지만 피하지 않고 도전한 모습이 멋져보였다.

오늘의 세미나는 “Actor-Critic Algorithns”라는 주제를 가지고 이영재님이 발표해 주셨다. 말로만 들어보던 강화학습에 대하여 개념부터 상세히 설명을 잘해준 세미나 였다. 강화학습은 여러가지 주어진 상황에 대하여 시뮬레이션을 반복하여 그 가운데 가장 효율적인 방안을 선택할 수 있게 하는 모델로 스타크래프트와 같이 여러가지의 선택지에서 최적의 선택을 해야 하는 상황에서 강력한 성능을 발휘할 수 있다. 미래를 예측하는 강력한 모델이지만 계산량이 많아 CPU의 성능에 크게 의존하는 경향이 있는데, A3C 방법은 CPU 안의 Core별 Thread를 각각 상황을 탐색하는 Agent로 할당하고 병렬계산하여 CPU의 Burden을 최소화하여 더 강력한 성능을 발휘할 수 있게 해주는 컨셉이었다. 강화학습뿐만 아닌, 컴퓨터 안의 Algorithm도 배울 수 있는 좋은 세미나였다. 어려운 주제를 설명해주기위해 많이 노력한 이영재님께 감사드린다.

금일 “Asynchronous Advantage Actor-Critic(A3C)” 라는 주제를 가지고 세미나를 진행 하였다. 금일 강화학습에 대해 환경과 상호작용을 하며 목표를 달성하는(미래에 받을 보상의 합을 최대로 하는 현 상태에서 할 수 있는 액션을 행하는 것) 라고 한다. 상태가치와 행동가치를 설명 해 주었는데 기존의 Deep Q network 에서 약점인 수많은 상태의 액션에서 문제가 되는 것을 DQN 알고리즘과 강화학습의 알고리즘을 이용하여 더욱 좋게 만든 알고리즘이라 보인다. Multi-core cpu 를 사용하여 thread 당 하나의 카피한 에이전트를 할당해서 자신과 같은 복제품들을 각각 학습시키고 그 결과들을 모아서 하나의 통합하는 방식으로 학습한다. Cpu를 이용하여 속도도 빠르고 메모리 사용도 적게 사용되었다. 기존과 달리 GPU로 연산해야할 Task를 보내고 받는 과정에서, 병목이 생길수도 있고, 실제 게임을 동작 하도록 해주는 CPU에서 GPU 가 해야 할 일을 더 빨리 처리 함 으로써 속도가 매우 빠른 것이 큰 장점으로 보였다.
금일 세미나를 통하여 강화학습에서 이용되는 A3C 알고리즘에 대해 알 수 있었다. 나중에 강화학습 모델을 사용하게 되었을 때 여러가지 면에서(시간적,성능적 측면) 에서 A3C를 사용하게 되지 않을까 라는 생각을 하게 되었다. 어려운 세미나 내용을 잘 설명해 주어서 조금이나마 강화학습에 대해 이해가 되는 세미나 였다.

금일 세미나는 Actor-Critic Algorithm이라는 강화학습 주제로 진행되었다. Deep Q-network (DQN), policy gradient, actor critic method를 순차적으로 설명해주었는데, 마지막에 설명한 asynchronous advantage actor-critic (A3C)에 대한 내용의 기반이 되었다. A3C 알고리즘은 다수의 agent를 통해 병렬적으로 학습을 하기 때문에 모델의 학습 속도가 기존보다 빠르며, 성능 개선도 있다. 또한 agent를 학습하는 것과 실제로 실행하는 파트가 나뉘어져 있기 때문에 실제 문제 상황을 이해하고 action을 취하는데에 용이하다고 한다. 최근 관심있는 연구에서도 강화학습을 사용하여 최적 sampling을 하는데, A3C를 활용하면 어떨까 하는 생각이 들었다.

금일 세미나는 'Actor-Critic Algorithms'라는 주제로 진행되었다. Actor-Critic을 알기 전에 먼저 Reinforcement Learning이라는 개념을 알아야 했는데 이 방법은 주어진 환경에 상호작용을 하면서 원하고자하는 바를 얻기위해 에이전트를 학습시키는 방법이다. 이러한 방법을 통하여 미래에 받을 보상의 합이 최대가 되게 만든는 것이다. 에이전트들은 특정한 환경(상태)에서 자신이 취할수 있는 가장 이득이 되는 행동을 하게 되는 방법이 Q -Learning이다. 여기에서도 단점이 존재하는데 많은 메모리를 잡아먹고 학습속도도 느리고 불안정하다. 이러한 문제를 해결하기위해 A3C라는 알고리즘이 나오게 되었다. A3C는 REINFORCE와 DQN의 장점을 조합해 놓은 것이고 파라미터를 계속해서 업데이트해준다. 그리고 수많은 상태, 행동이 존재하는 게임 환경에 적합하다. 이번 세미나를 계기로 알고리즘을 아는것도 중요하지만 컴퓨터 자체에 대해서 공부해봐야겠다고 생각이 들었다. 어렵게만 느껴졌던 강화학습에 대해서 쉽게 설명해준 영재형에게 감사하다는 말을 전하고 싶다.

Actor-Critic 알고리즘은 행동(action)을 결정하는 Actor와 그 행동의 가치(value)를 추정하는 Critic으로 구성된다. 오늘 세미나의 메인 주제인 A3C는 Actor-Critic 알고리즘을 비동기적으로 학습하여 학습의 분산을 줄이고 빠른 수렴을 이끌어낸다는 점에서 의의가 있다. DQN부터 시작하여 많은 내용을 다룬 세미나였는데, 내용끼리의 연결이 조금 매끄럽지 못했던 점이 아쉽다.

Model-Free RL은 크게 Value-based와 Policy-based로 방식으로 나뉜다. 첫 번째로, Value-based는 value function이 explicit하게 명시하며, policy(e.g ε-greedy)를 따로 지정해줘야 한다. 반면, Policy-based는 Q/Value function이 따로 있지 않고 직접적으로 policy를 학습해낸다. 두 번째, Value-based 방식은 Q function이 학습되기 어려운 복잡한 문제에서는 학습되기 어려운 단점이 있는 반면, Policy-based는 직접적으로 정책 공간을 학습하기 때문에 더 빠른 수렴(학습)을 하는 경향이 있다. 하지만, 이는 반대로 말하자면 Policy-based 방식은 local-opitma에 빠질 확률이 높다는 뜻이다. 세 번째, Policy-based 방식은 애초에 policy-network가 모델의 확률분포를 나타내기 때문에 continuous한 action-space에 큰 어려움 없이 적용될 수 있는 반면, value-based는 discrete한 공간에 적용이 가능하기 때문에 continuous한 action-space를 갖는 문제에 적용 시 discretization 비용이 크게 든다. 네 번째, Policy-based 방식 같은 경우에 E(R_t)에 대해 gradient update를 할 때 Monte Carlo method을 이용해 하나의 episode 전체가 필요하므로 variance가 TD 방식을 이용하는 value-based 방식보다 크다. 이렇게 각 방식이 갖는 장단점을 보완하기 위해 최근에 Hybrid RL 알고리즘이 나오는 흐름에서 이번 시간에는 A3C(Asynchronous Advantage Actor-Critic) method가 메인으로 영재 형의 도움으로 소개되었다. 이름에서도 알 수 있듯이 A3C는 agent 여러 개를 통해서 Asynchronous 하게 experience(episode)를 얻고 하나의 global network를 update함으로써 policy gradient 방식이 갖는 큰 variance를 줄였다. 부가적으로 설명하자면, 사실 원래 논문의 의의는 “Asynchronous”한 method를 4가지 RL(1-step Q-learning, n-step Q-learning, 1-step SARSA, A2C)에 적용하는 것이고, 실험결과 이 중 마지막 method인 A3C(=Asynchronous+A2C)가 성능이 제일 잘 나와서 A3C라는 이름을 가진 RL 알고리즘이 나온 것이다. Actor는 Policy Network로 Action을 선택하며, Critic은 Value Network로 선택된 Action을 평가하는 역할 분담을 함으로써 앞선 두 방식의 hybrid 형식을 취한다고 볼 수 있다. 추가적으로, Gradient Update 시 Temporal Difference값을 Q값의 차로 구하지 않고, Advantage(=Q(s,a)-V(s))를 사용함으로써 variance는 줄이면서 bias값은 유지하여 안정성을 높인다. 긴 내용인데 끝까지 청중들의 이해를 위해 침착하게 잘 설명해준 영재 형에게 감사하다고 전하고 싶다.

이번 세미나는 강화학습에서 자주 사용되는 A3C에 대한 내용이었다. 우선 A3C는 actor-critic 알고리즘 기반이다. Actor-critic 알고리즘이란 말 그대로 actor가 상황(state)를 보고 행동(action)을 하고 critic이 상황(state)과 actor의 행동(action)을 보고 평가하며 점점 더 좋은 행동을 하게 학습되는 알고리즘이다. DQN의 경우 critic을 nueralnet을 이용하여 구성하였고 Temporal difference learning을 통하여 t시점과 t+1시점의 state에서의 평가를 이용하여 학습을 진행한다. 또한 replay buffer라는 개념을 사용하여 과거의 상태, 행동, 보상을 기억한 후 이것을 바탕으로 학습을 진행한다. 하지만 연속된 상황에서는 action space가 너무 많아져 actor 학습에 어려움이 있다. 매우 커진 action space에서도 잘 학습이 되도록 하기 위해 actor도 neuralnet으로 구성하여 학습시키는 policy gradient 방법이 생겨났고 그 중 대표되는 reinforce 방법은 monte carlo 방법을 이용하여 policy를 학습시켰다. A3C는 이러한 장점들을 조합하여 학습시키는 방법을 선택하였고 또한 다수의 actor-critic 셋을 훈련하여 global network에 업데이트 하는 방식으로 더 다양한 환경에서 잘 적응할 수 있도록 하였다. Actor-critic algorithm은 Generative adversarial networks와 유사한 구조를 갖고 있다. 두 개의 네트워크가 상호작용을 거치며 학습하기 때문이다. 이러한 구조를 잘 이용한다면 강화학습을 다른 문제에도 잘 적용할 수 있을 것 같다.