- 2018년 10월 8일 오전 11:38
- 조회수: 2361
REFERENCES
INFORMATION
- 2018년 10월 26일
- 오후 1시 30분 ~
- 고려대학교 신공학관 218호

TOPIC
OVERVIEW
발표자 후기

강화학습의 대표적인 방법인 DQN과 policy gradient는 각각 temporal difference(TD) learning과 Monte-Carlo(MC) 기법을 활용하여 학습을 수행한다. 많은 기계학습 알고리즘이 bias-variance tradeoff가 존재하듯이 강화학습 알고리즘에도 마찬가지로 존재한다. TD의 경우에는 bias가 큰 대신 variance가 작고, MC의 경우에는 bias가 작은대신 variance가 큰 특징이 있다. 따라서 최근의 강화학습 알고리즘은 TD와 MC를 합쳐 bias와 variance를 줄이는 actor-critic 기법을 많이 활용한다. 여기서 actor는 실제 action을 수행하는 역할을 담당하고 (policy gradient 개념) critic은 학습시에 actor를 평가하는 역할을(DQN 개념) 담당한다. 이번 세미나에서는 actor-critic 기법의 아이디어와 함께 최근 제안된 A3C, DDPG 등 다양한 알고리즘을 리뷰할 예정이다.
청취자 후기

오늘은 Actor-Critic 방법론과 A3C에 대한 설명을 들을 수 있었다. 우선 이 방법론의 근간이 되는 방법론은 Policy-based method와 Value-based method 방법이다. Actor Critic에서 Actor가 Policy Gradient에 해당이 되고, Critic이 Value Function에 해당된다. 이 두 가지 방법을 혼합해서 좀 더 Robust하게 강화학습을 할 수 있는 방법이 Actor-Critic이다. A3C는 Asynchronous 라는 표현이 더해진 방법인데, 기존의 Actor-Critic을 분산처리해서 학습을 좀 더 효율적으로 한 방법이라고 할 수 있다. 최근에는 Continuous한 Output을 위한 DDPG Algorithm이 널리 사용되고 있다. 기존의 Stochastic Policy에 기반한 방법이 아닌 Deterministic한 Output에 기반한 방법이다. 이러한 방법은 로봇 컨트롤과 같이 Continuous한 control이 필요한 영역들에서 많이 사용되고 있다. 그리고 마지막에 Reinforcement Learning의 Variance에 대한 이야기를 들을 수 있었다. 방법론들이 기본적으로 Variance가 굉장히 크다는 한계점이 있는 것 같고, 이를 극복해 나가는 것이 중요한 연구 방향이 되리라 생각이 된다.

강화학습에 전반적인 내용에 대해 다루는 시간 이었다. 강화학습 알고리즘 자체에 대한 후기 보다는 강화학습이라는 개념자체에 대해 후기를 쓰고자 한다. 강화학습을 진행해본다고 직접 구현도 해보고, 관련 논문을 봤음에도 불구하고 강화학습과 관련한 단어들(off-policy, on-policy 등등)은 아직도 낯설다. 아마 처음 접한 연구원들은 더 낯설게 느껴지지 않았나 생각된다. 강화학습은 모델이 스스로 환경을 인식하고 최적의 결정을 내린다는 점에서 흔히들 말하는 인공지능과 가장 가까운 모델이라 생각한다. 그렇기 때문에 연구적으로도 흥미로운 주제이기도 하다. 그러나 모델이 다양한 상황을 이해하도록 하기 위해 수십만번의 (환경이 복잡할수록 더 많은) 실험이 필요하기 때문에 이를 어떻게 적용할 것인가? 그리고 어떻게 더 빨리, 더 효율적으로 학습을 진행할 수 있을까?에 대한 고민이 많이 필요한 부분이라 생각된다. 또한가지, 현재는 대부분의 강화학습 실험은 제한적인 환경에서만 진행이 되고 있다. 환경을 정의 하기도 어려울 뿐더러 이를 잘 이해할 수 있는 적절한 모델 구조를 디자인 하는 것도 정답이 없기 때문이다. 따라서 이를 실생활에 적용하는데 있어서 어떤 부분에 적용할 수 있을지, 그리고 어떻게 적용 할 수 있을지를 고민을 해보는 것도 필요한 것 같다.

오늘은 영준이형이 ‘Actor-Critic Reinforcement Learning’에 대해서 설명해 주셨다. 어려운 주제였지만 처음부터 차근차근 설명해주어 이해할 수 있었다. 강화학습에서는 Policy가 중요한데, 크게 2개로 Deterministic Policy와 Stochastic Policy다. 이것을 바탕으로 DQN과 Reinforce로 나눠진다. DQN의 경우 Low variance의 장점을 갖지만 Continuous action에는 사용할 수 없다. 반면 Reinforce는 Continuous action에 사용할 수 있지만, High Variance이다. 실제로 원하는 수치에 도달을 했음에도 다시 심하게 정확도가 흔들리는 것을 볼 수 있었다. 이 두가지 방법을 가지고 Actor-Critic Method가 등장하였다. Actor-Critic Method에는 크게 A3C와 DDPG가 있다. A3C는 CPU Thread를 여러 개 사용하여 학습을 한번에 여러 번 할 수 있다는 장점이 있다. DDPG는 Actor와 Critic이 연결되어 있는 간단한 구조를 사용하였다. 이러한 구조 변형으로 좋은 결과를 가져왔지만 여전히 Robust한 Training은 문제가 되고 있다. 앞으로 강화학습에서 Robust Training이 어떻게 발전해 나가는지 매우 흥미로워 보였다.

금일세미나는 강화학습 분야에 최근 대두되는 Actor-Critic 알고리즘의 배경과 몇가지 부류에 대해 소개했다. 가장 기본이 되는건 Policy gradient와 Q learning으로 볼 수 있다. Policy gradient method는 value function을 직접 구하지 않고 최적 action을 직접 구한다. 강화학습 모델의 산출물이 예측값이 아닌 최적화된 액션이므로 불필요한 중간과정을 생략했다 생각하면 편하다. Policy gradient는 상태(s)와 모델(θ)에 따른 최적 action을 평가하는 함수를 학습하는데, 이때 학습 파라미터에 대한 편미분이 가능한 경우 모든 action-space에 대한 값을 구할 수 있어 continuous action-space를 탐색하 수 있다. 반면, Q learning은 행동가치함수(action-value function)를 계산시 action에 따른 다음 step의 보상(r)까지 고려하는데, 이 때문에 action space가 이산화(discretized) 되어 있지 않다면 불가한 단점이 있다. 하지만, 상태를 이산화(binning 작업) 하기 쉽고 상태변이확률 테이블(state transition probability)이 큰 경우 유용하게 활용될 수 있다. 금일 세미나의 주제인 Actor-Critic은 policy gradient와 dqn을 합친 모델이다. 이 중 policy gradient 모델은 Actor 역할(action 학습/실행)을, dqn 모델은 Critic 역할(action 평가)을 수행한다. Actor-Critic은 A3C, DDPG, TRPO 세가지 알고리즘으로 분류되는데, 분류내 다양한 알고리즘으로 파생된다. Actor-Critic의 학습구조는 표준이 없는데, action과 value network를 별도 구성하거나, 하나의 network 상 out layer에 예측값으로 mapping 시킬 수 있다. Actor-Critic의 학습과정과 관련해서 학습효율을 높이기 위해 병렬처리하기 위한 방식을 A3C라고 볼 수 있다. 서로 다른 초기값으로 Actor가 다른 상황을 경험하고 학습하여 효율을 향상시키는 것이 핵심이다. 분산환경에서 병렬처리하기 위한 방식으로 Gorilla 모델도 소개된 바 있지만 통신부의 bottleneck화로 효과적이지 못하다고 한다. 제일 관심을 갖었던 부분은 asynchronous update 과정 자체이다. 병렬처리시 ensemble 효과(bootstrap aggregating)를 높이기 위해서는 bootstrap 수를 충분히 확보하는 것이 좋다. 하지만, 동일 PC내 병렬처리는 thread를 무한히 늘릴 수 없고, core 수 + a 정도가 적당하기 때문에 한정적이다. 이 경우, 각 bootstrap의 탐색공간 또는 학습파라미터의 값을 mutually exclusive하게 설정했을 때 가장 좋은 성능을 얻을 수 있겠지만, 각 actor들이 얼마나 상이한 상황을 경험하고 학습하는지 알 수 없다. 이 부분을 해결한다면 더 효율적인 학습기법을 개발할 수 있지 않을까 생각이 들었다. 전체적인 개념을 잘 정리해주고 친절하게 설명해준 영준이에게 고마운 마음을 전하고 개인연구에 좋은 성과가 있기를 바란다.

오늘 전체세미나는 'Actor-Critic Reinforcement Learning Algorithms'라는 주제로 영준이형이 진행하였다. 먼저 강화학습은 에이전트가 취할 수 있는 상태와 액션, 그로부터 보상을 받아 최적(보상이 최대)의 정책(policy=action의 조합)을 도출하고자 하는 머신러닝 기법이다. 강화학습은 Value based, Policy based로 나눌 수 있는데 각각 학습 방법으로 Q-leatning, Policy Gradient 가 사용된다. Q-learning 기법 중 DQA이 대표적이며 Policy Gradient에서는 REINFORCE라는 알고리즘이 있다. 'Actor-Critic'은 이 DQN과 Policy Gradient를 결합한 개념으로 A3C, DDPG 등 여러 확장모델이 등장하면서 최근 가장 많이 적용되고 있는 기법이다. A3C는 여러 네트워크를 만들어 반영하여 모델을 만드는 것이 앙상블과 유사하다. 이어 A3C와 DDPG의 실험결과를 비교해주었는데 사실 강화학습에서의 성능비교는 매우 어려운 문제라고 한다. 한 예로 random seed마다 같은 구조의 모델 성능이 크게 차이가 난다는 점이 그 이유다. 그리하여 요즘 강건한 성능을 유지하는 강화학습, 효율적 학습 방법 등의 연구 필요성이 대두되고 있다고 한다. 오늘 전반적인 흐름부터 강화 학습이 이루어지는 수식에대해 알수 있는 시간이었다. 개인적으로 강화학습 개념을 공정설비 데이터에 적용해보고 싶다. 환경은 공정경로이며 보상은 품질로 부여하여 BOB 경로(Best Of Best Path) 및 불량설비 시퀀스를 탐색하는 데 적용할 수 있을 것으로 생각한다.

금일 세미나는 Actor Critic Reinforcement Learning Algorithm에 대한 것으로 강화학습의 응용에 대한 이해를 바탕으로 한 세미나였다. 강화학습은 에이전트의 상태와 보상을 기반으로 최대 보상을 받을 수 있는 상태들의 조합을 도출하고자 하는 기법이다. 이를 policy 라고 하는데 오늘은 강화학습 중 Actor-Critic에 대한 개념을 설명하는 자리였다. 크게 thread를 여러 개로 설정하여 동시에 학습시키는 방법과 direct로 연결시켜 학습시키는 방법이 있다. 하지만 성능적으로 stable하지 않은 어려움이 있어 parameter에 따라 값이 크게 변동하는 딥러닝 방법론과 비슷한 단점이 있다는 것을 느꼈다. 동시에, 최근 많은 학회에서 성능으로 다른 알고리즘보다 우수하다는 사실이 증명된 바 있어 robustness에 초점을 맞춘다면 훨씬 강력한 알고리즘이 될 수 있을 것 이라는 생각이 들었다.

금일 세미나는 Actor-Critic 강화학습의 algorithm들에 대한 내용이었다. 강화학습(Reinforcement Learning)은 환경에서 action을 받아 state 와 reward 를 내보내게 된다. 강화학습에서 중요한 개념은 Policy gradient 인데, Policy 에는 Deterministic policy 와 stochastic policy 가 있다. Deterministic 은 state의 분포를 maximize 해주는 action 값 a를 구하는 방법이고 Stochastic policy 는 sampling 을 해서 확률 값을 취하여 나타낸다. Deterministic policy 에는 Q-learning 을 예로 들 수 있는데, Q-learning은 output이 확률이 아닌 Q의 값으로 나오게 된다. Policy gradient는 환경에서 initial state0 를 시작으로 action0 , reward0, state1 으로부터 action1, reward1 ... 이러한 sequence 갖게 된다. 이러한 sequence를 하나의 episode로 볼 수 있다. 이 episode 한 번이 끝나고 update 하는 방식은 강화학습에서 초기에 나온 algorithm 인 reinforce에 해당된다. Reinforce는 continuous action일 때 적용할 수 있는 algorithm으로 output은 Gaussian 분포의 parameter로 나오게 된다. Reinforce 에서 policy gradient algorithm은 learning rate 를 조율하여 좋은 결과를 얻게 된다. DQN은 continuous action일 때 사용할 수 없으며 off-policy 라고 볼 수 있다. DQN은 episode 내에 한 step, 한 step 저장하여 학습하는 방법으로 temporl difference 또는 bootstrapping이라고 한다. Reinforce와 DQN은 장, 단점이 존재하지만 variance의 차이를 중요하게 설명하였다. variance에서 차이를 갖는 이유는 estimation의 차이인데 한 step, 한 step update를 하느냐, 하나의 episode를 끝낸 다음 update를 하느냐 였다. 세미나의 핵심은 위에 설명한 Policy 의 개념과 DQN의 개념이 합쳐진 Actor-Critic algorithm 이었다. Actor는 행동을 하는 의미로 policy로 생각하고, critic 은 판단의 의미로 DQN으로 생각할 수 있게 된다. Actor-Critic method 에서는 score에 상태에 대한 판단의 값을 주게 되고 매 step 마다 estimate을 한 것이다. Actor-Critic method 에는 A3C, DDPG algorithm 이 있으며 A3C는 CPU 의 core의 개수와 동일하게 worker들의 update가 한번에 된다. 이는 worker 한개에서 계속 update 되는 것보다 계산 시간이 빠르다는 장점이 있다. 또한 Policy 와 score가 output으로 내보내져 gradient 을 update 해주는 방법이다. DDPG는 actor network 와 critic network 이 sequence하게 작동하여 value를 나타내는 Q로만 grdient를 update 해준다. Reinforce와는 다르게 하나의 episode를 update하는 것이 아닌 한 step ,한 step update해주는 방식이다. 오늘 세미나를 통해 강화학습이 무엇인지 처음 접하게 되었다. 마지막 동영상을 보면서 강화학습을 통하여 게임 내에 최적으로 action을 취하는 것이 정말 흥미롭고 재미있었다. 강화학습에서의 다양한 algorithm을 이해하는 것이 너무 어려웠지만, 수식으로 잘 정리되어 있어 수식을 통해 천천히 이해를 해보게 되었다. 게임에 적용할 수 있는 강화학습의 다양한 algorithm에 대해 관심을 갖게 되었고 단계 단계 별로 이론 공부를 하여 후에 더 공부해볼 생각이다. 오늘 열심히 세미나를 준비해 주시고 설명해주신 영준이형에게 감사함을 표한다.

금일 세미나는 Actor-Critic Reinforcement Learning이라는 주제로 진행되었다. 2018년도 1학기 캡스톤 디자인 수업을 진행하며 공부한 주제인 강화학습 분야였다. 그 당시, Q-Learning에 관해서만 공부를 했었는데 세미나에서는 Policy Gradient를 주로 설명해주었다. Q-Learning은 actor가 행동을 어떻게 해야하는 지에 관해 조언을 주는 느낌이었는데, Policy는 특정 상황에서 특정 행동을 할 확률을 정해주는 역할을 한다. Policy Gradient방법은 actor의 행동 대해 확률값을 정해주기에, 이를 정규분포를 이용해 해석 할 수 있다. 그래서 연속적인 행동이 발생할 때에 대해서도 적용이 가능하다. 다음으로 Actor-Critic Method에 대해 설명을 해주었다. 이 알고리즘은 Value Function Based RL과 Policy Based RL의 장점을 합친 것이었다. 즉 Policy를 이용해서 (S -> A -> R)의 하나의 단계가 끝나면 업데이트를 진행하고 여러개의 (S -> A -> R)을 진행 후, 즉 한 Episode가 끝난 후 업데이트를 하는 Q-Learning의 방법을 합친 방법이다. 이 방법은 CPU의 여러개의 Thread 중, 일부를 Actor에 배당하고 나머지를 Critic에 배당하여 나누어 학습을 진행하는 것이었다. 이는 Thread가 평행하게 여러 에이전트의 역할을 할 수 있기 때문이다. 또한 CPU와 Memory의 결합부위가 가까워 빠른 속도로 전달 가능하다. 여러대의 컴퓨터를 쓰는것은 통신을 이용하기에 더 느리다. 실험 결과에서도 알 수 있었다. 금일 세미나를 통해서 강화학습이라는 것에 대해 호기심이 다시 생겨났다. 아직 해당 분야에 대해 많은 논문을 보고, 많은 실습을 해본 것은 아니지만, 인간이 무엇인가를 학습하는 방법과 유사하게 컴퓨터가 학습을 해서 일종의 지식을 만들어가는 과정은 매우 흥미로웠다. 약 400번의 반복으로 인간보다 더 게임을 잘하는 상황은 매우 신기하다. 기회가 된다면 스터디를 통해서 해당분야에 대해 심층적인 공부를 해 보고 싶다. 강화학습의 현재 트렌드와 이러한 알고리즘들을 소개해준 영준이형에게 감사를 표한다.

금일은 Actor-Critic Reinforcement Learning Algorithms에 관한 내용을 들었다. 강화 학습과 관련된 내용에 대해서는 처음 듣는 입장이라 기대 되면서도 걱정 되는 세미나 주제였지만, 수식을 기반으로 순차적으로 설명해주시고, 방법론끼리 비교도 해주셔서 어려운 내용임에도 조금은 이해할 수 있는 부분들이 있었다. 이번 세미나에서는 크게 Reinforcement와 DQN의 비교와 Actor-Critic에서 파생 된 A3C, DDPG 방법론에 대한 설명을 들을 수 있었다. Reinforcement와 DQN의 가장 큰 차이는 시나리오를 얼마나 길게 보고 Reward 값을 구할 것인가이다. Reinforcement의 경우 전체 시나리오가 다 끝나고 나서 Reward 값을 구하는 반면 DQN의 경우 각 Step별로 Reward값을 구한다. 그래서 Reinforcement의 경우 Variance가 큰 반면 DQN은 상대적으로 작은 Variance를 갖게 된다. 또한 A3C와 DDPG에 대해서도 실제 구체적인 사례를 통해서 계산하는 과정까지 보여줘서 이해에 도움이 되었다. 이번 세미나를 통해 내게는 아직 미지의 영역인 강화학습에 대한 내용을 들을 수 있다는 그 자체가 의미가 있었다. 특히 State에서 Action을 취하고 그에 따른 reward에 대해서 학습을 한다는 자체가 나에게는 재미 있고 신기한 이야기였다. 아직 강화 학습에 대해서는 아는 바가 많지 않지만 어려운 내용임에도 쉬운 사례를 바탕으로 설명해주신 영준이형에게 감사함을 표하며 앞으로 강화 학습에 관한 내용도 더 관심을 가지고 알아봐야겠다는 생각을 갖게 되는 의미 있는 시간이었다.

오늘은 Actor-Critic Reinforcement learning algorithms에 대한 세미나가 이루어 졌다. 지난 영준오빠의 세미나에서는 RL의 기초 개념부터 최근 유행하는 deep reinforcement learning까지 개념정리의 느낌이었다면 오늘의 세미나는 응용심화의 버전을 듣는 것 같았다. Gradient-based method의 policy gradient에 대한 설명과 그 대표 알고리즘 REINFORCE 그리고 Action-value method의 Q-learning과 그 대표 DQN에 대한 비교 설명이 이루어졌고 그 두개의 장점을 섞은 Actor-Critic Method에 대한 설명도 이루어졌다. Actor-Critic Method의 대표적인 A3C(Asynchronous Advantage Actor-Critic), DDPG(Deep Deterministic Plicy Gradient)에 대한 설명도 이루어졌다. A3C는 DQN이 리플레이 메모리를 사용하여 샘플들 사이의 강한 상관관계를 해결했던 반면 이를 비동기 업데이트로 해결하였다. DDPG는 continuous한 action space를 갖는 문제들에서 우수한 성능을 보인다. 항상 느끼는 것이지만 연구실 선배들의 연구주제가 굉장히 다양하기에 세미나를 통해 넓은 분야에 대해 들을 수 있다는 장점이 있는 것 같다. 세미나로 내용을 전부를 이해할 수는 없겠지만 용어와 단어에 익숙해지고 다음에 이런 부분을 살펴보아야겠다 이런 방향도 얻을 수 있다는 점에서 감사하다. 오늘 세미나에서는 매우 다양한 알고리즘에 대한 설명이 있었다. 이들의 특징과 장단점을 연결해서 설명해주려는 발표자의 노력을 느낄 수 있었다.

오늘은 영준이가 Actor-Critic 강화학습 알고리즘 주제로 세미나를 진행해주었다. RL의 리워드를 Maximize 하는 컨셉부터 Policy Gradient Estimator, 그리고 로봇에 적용되는 Continuous Action의 풀어야할 이슈까지 서두에 설명해주었다. Deterministic Policy와 Stochastic Policy의 설명을 통해 Optimal Policy를 찾고 나서 유지가 잘 안되는 부분에 대한 설명도 인상깊었다. Policy Gradient과 DQN 각각의 추정 방법과 장단점에 대한 설명파트에서 n-step TD 추정을 통해 Bias-variance Tradeoff 시키는 것이 특히 흥미를 이끌었다. 본격적인 Actor : Policy network, Critic : Value network 설명에서 pseudocode를 상세하게 짚으며 예시까지 손수 만들어줘서 이해하는데 큰 도움이 되었다. 나아가 DDPG와 A3C의 연속적인 액션에 대한 성능 비교 설명은 아직 내게는 이해하기 어려웠지만, RL분야를 집중적으로 개인연구하고 있는 영준이의 노력에 큰 박수를 보낸다.