티스토리 뷰

Study/AI

[RL] Make It Happen

생각많은 소심남 2019. 2. 14. 00:30

<본 포스트는 UC Berkeley 교수인 Benjamin Recht 의 블로그에 올라온 글을 번역한 것입니다. 원본>


 만약 최신 해킹과 관련된 뉴스를 읽어보았다면, Deep Reinforcement Learning(심층 강화학습)으로 모든 문제를 풀 수 있을거라고 생각할 것이다. Deep RL을 통해서 바둑에서는 인간을 뛰어넘는 성능을 보여주기도 하고, Atari 게임을 깨기도 하며, 복잡한 로봇 시스템을 조종할 수도 있고, 딥러닝 시스템의 계수들을 자동적으로 튜닝해주기도 하며, network stack 속의 Queue를 관리하기도 하고, 심지어는 데이터 센터의 에너지 효율성을 증대시켜주기도 한다. 정말로 기적과 같은 기술이지 않은가? 하지만 나는 이렇게 성과가 언론에 의해서 대담하게 뿌려지는 것에 대해 의구심을 가지고 있고, 더더욱이나 다른 연구자들이 이런 성과에 대한 재현에 궁금함을 표할 때 의구심을 더 많이 가진다. 나는 몇가지 포스트를 통해 강화학습 상에서 어떤 것들이 진정 흥미가 있고, 진실된 것인지 또는 어떤 것들은 허구에 불과한 것인지에 대해서 언급해보고자 한다. 또한 이번 기회를 통해, 머신러닝상에서 중요하면서, 해결되지 않는 문제들은 강화학습을 통해 풀수 있다는 것에 대해서 강화학습을 연구하는 대부분의 사람들과 논의할 기회를 가지고자 한다.

 강화학습은 보통 머신러닝 수업에서 흔하게 다뤄지지 않는 것에 대해서 고민이 필요한 부분이 존재하기 때문에 사람들이 어려움을 겪는다. 우선, 이를 하기 위해서는 시간에 따라서 진화하는 통계적 모델에 대해 고민할 필요가 있고, 부분적으로 상호 연관이 있는 dependency들에 대한 본질을 이해해야 한다. 두번째로 Statistical learning 문제 상에서의 피드백에 대해서 이해할 필요가 있다. 그리고 이게 결국 이런 평가가 참 어렵게 느껴지게 하는 요소이기도 하다. 피드백이 있다는 것은 결국 관찰한 값에 대한 분포가 매번 action을 취할때마다 변화한다는 것이며, 강화학습 시스템은 결국 이런 action에 대해서 적응해야 한다. 앞에서 소개한 두가지 이유가 모두 복잡한 문제이며, 이 문제들에 대해서 논의를 해보려고 한다. 사실 나는 크게 상관없어 보이는 부분에서 강화학습을 소개할때 위의 두가지 요소들을 사용한다. 이번 포스트에서는 강화학습을 predictive analytics(예측 분석)의 형태로 표현할 것이고, 다음 포스트에선 Optimal Control의 형태로 표현할 것이다. 이런 표현들이 우리한테는 익숙한 머신러닝과 강화학습이 어떻게 다른지 명확히 알려줄 것이다.

예측 분석으로써의 강화학습

Chris Wiggins는 내가 정의하려고 했던 ML의 분류에 대해서 명확하게 설명했다.

 머신러닝에는 크게 3가지 분류가 있는데, 크게 unsupervised(비지도적), supervised(지도적), 그리고 강화학습이 그것이다. 그리고 크게 semi-supervised learning과 active learning이라고 표현되는 위의 3개 핵심 요소 중 하나와 연관되어 있는 머신러닝이 있지만, 나는 위의 3가지가 현재 머신러닝 상에서 진행되고 있는 연구를 커버할 수 있는 것이라고 생각한다.


 각 요소별로 어떤 부분이 차이가 있을까? 위 세가지 케이스 모두 행에는 데이터들이 담겨 있고, 열은 데이터의 특징(혹은 특성)을 담고 있는 표로 이뤄진 데이터들을 다룬다.

 Unsupervised Learning에서는, 목표가 데이터를 요약(summary)하는 것이다. 각 열에는 x에 대한 특징들이 담겨져 있고, 여기서 목표는 z라고 표현하는 특징들을 간단하게 생성하는데 여기에는 x에 대한 명확한 정보를 요약한 것이 담겨져 있다. z내의 특징들은 각 클러스터나 시각화를 위해서 데이터가 2차원상으로 표현될 때 할당될 수 있다.

 Supervised learning에서는, 데이터 중 한 열이 특별하다. 이 열에 담긴 데이터는 나머지 특징들을 활용해서 예측하기를 원하는 특징이 된다. 여기서 우리가 취해야 할 목표는 x로부터 y를 예측하는 것인데, 다시 말하자면 y를 정확하게 예측하는데 새로운 데이터를 사용하는 것과 같다. 아마 이 방식은 우리한테는 가장 익숙한 머신러닝 기법일 것이고, Classification(분류)와 Regression(회귀) 등이 포함될 것이다.

 Reinforcement learning에서는 두개의 열이 있는데, 바로 a와 r이다. 목표는 x를 분석해서 r를 크게 할 수 있는 a를 선택하는 것이다. 게임 상에서 decision making을 한다던가 웹상에서 부적절한 계약을 극대화 시킬 수 있는 것과 같이 이 방식을 적용할 수 있는 문제들은 수도 없이 많다.

 Data Science를 좀더 넓게 살펴보면, 위에서 언급한 분석적 기법들이 모두 포함되어 있다. 실제로 대다수의 머신러닝은 데이터 분석학의 범주안에 포함되어 있는데, 아래와 같은 Gartner의 인포그래픽에서 차용해온 차트를 활용해서 난이도와 가치의 측면상에 놓고 볼수 있다.


 Descriptive analytics(기술 분석)은 데이터를 조금더 이해하기 쉽도록 데이터를 요약하는 것을 말한다. Unsupervised learning이 Descriptive analytics의 한 형태이다. Predictive analytics(예측 분석)은 현재 데이터로부터 결과를 평가하는 것을 목적으로 하고 있다. Supervised learning이 predictive analytics의 한 종류이다. 마지막으로 prescriptive analytics(본질 분석)은 결과를 확실하기 위해서 취할 행동을 지정해주는 것인데, 앞에서 언급한 RL이 여기에 포함된다.

 위 차트를 살펴보면 가치에 대한 평가는 머신러닝 상에서 우리가 알고있는 지식들과 딱 맞닿고 있는 것처럼 보인다. (예 : 1, 2, 3, 4) 하지만 기존에 알고있던 지식들은 잘못되었고, 그걸 고치는 것이 중요하다. Gartner나 블로그에 따르면, unsupervised learning이 앞에서 소개한 3가지 중 가장 쉬운 머신러닝 문제일텐데, 그 이유는 문제를 푸는데 있어 투자할 것들이 매우 적기 때문이다. 단순히 해야 할 일들이 뭔가를 요약하는 것이라면, 그게 잘못될 일이 없다. GAN을 활용해서 화장실이 제대로 렌더링이 되었는지의 여부는 실생활에 크게 영향이 없다. Descriptive analytics나 unsupervised learning은 심미성에 조금더 치우쳐져 있고, 뭔가 정확한 타겟에서는 멀어져 있다. Predictive analytics나 supervised learning이 새로운 데이터를 다룰 때 정확성을 측정하기에 조금더 도전적이라 할 수 있다.

 사실 가장 큰 가치를 줄 수 있는 분석 기법중에서 가장 도전적인 것이 Prescriptive analytics이다. 가치 축은 명확한 편이다. Prescriptive analysis나 강화학습은 특정 행동을 취했을 때 가치있는 return으로 직접적으로 나타나는 방식의 관계 정립을 요구한다. Prescriptive analysis는 불확실하고 진화하는 환경에 대한 데이터를 가지고, 예측을 활용하며, 예측을 통해 world에 영향을 준다. 특정 시스템에선 좋은 액션을 취하는데 있어 수많은 reward들이 있지만, 서로간의 관계로 인해 도출되는 복잡한 피드백은 이론적으로는 연구하기가 어렵고, 이로 인해 발생한 실패는 결국 극단적인 실패로 나타날 수 있다. 실제 컴퓨팅 시스템에서는, 자율주행 시스템이나 Facebook에서 활용되고 있는 평범한 관계 형성 시스템 들이 프레젠테이션 등에서 간단하게 데이터를 뿌려주는 것보다는 훨씬 더 많은 이윤을 고려하면서 활발하게 동작하고 있다. 

 실제로 이게 바로 지난 몇년동안 RL을 이해하는데 심취했던 이유이기도 하다. RL은 머신러닝에서 서로간의 반응을 개념화시켜주는 유용한 프레임워크를 제공한다. 지금도 가끔 막히는 부분도 있지만 우리가 만든 머신러닝 시스템에 대해서 책임감을 가지고, 해당 시스템을 실제 세상에 내놓았을 때 어떤 일이 일어날지 이해해야 한다. 이윤이 더 높지 않을 수도 있지만 RL에 대해서 조금만 더 이해를 한다면 일반적으로 조금더 안전한 머신러닝 시스템을 만드는데 도움이 될거라 생각한다. 2부에서는 Optimal control의 측면에서 강화학습을 다뤄보고자 한다.

댓글