딥러닝~ 강화학 습게임을 배우는

사람은 태어나 부모나 가족, 사회로부터 지도학습, 강화학습, 비지도학습의 각 부분이 균등하게 적용되는데 간혹 이상한 환경에 놓이게 되면 한 가지 학습법이 특히 많아지는 경우도 있다.

일반적으로 시행착오로 배우고 경험이 누적돼 시행착오를 줄이는 방식으로 진행되지만 경험 누적은 책이나 매체, 대화 등을 통한 간접경험 누적으로 더 빠른 경험 축적을 추구한다.이와 같이 Explore(탐색을 통한 경험 축적)와 Exploit(경험 활용)에 의해 행동이 우아해지고 보수화된다.이것의 기반은 결국 보상으로서 칭찬이나 보수, 도움 같은 것을 위해 정제된 행위로 만들어 간다.

강화학습은 지도학습과 비지도학습의 중간 정도 어딘가에 있는 학습법으로 우리의 학습법과 매우 비슷하다.강화학습은 현재 상태(State)에서 어떤 행동(Action)을 취하는 것이 가장 적합한지를 학습하는 것으로 한마디로 정의하면 시행착오를 배우고 경험을 쌓아 시행착오를 줄인다.

행동을 취할 때마다 외부 환경에서 보상(Reward)이 주어지고 이 보상을 최대화하는 방향으로 학습을 실시한다.

예를 들어 사람(Agent)은 이 세상(Environment)을 사는 매 순간(State)마다 어떠한 결정(Decision)을 하고 행동(Action)을 해야 하는데, 그 행위(Action)는 보상(Reward)을 세상(Environment)으로 받아들임으로써 동물이 먹이를 얻는 방법으로 행동이 바뀌는 경험이 축적된다.

아기의 걸음걸이를 배우는 과정을 예로 들면 아기(agent)는 부모(환경)의 칭찬을 받고 다리를 비틀면서(action) 실수를 줄이는 행위를 누적하고 나중에 걷게 된다.

강화학습(Reinforcement Learning : RL)은 Q-Learning이 유명한데 Q-Learning은 무작위 행동빈도를 낮추면서 세상이 주는 보상에 대한 경험을 쌓고 세계의 다양한 형태에 대응할 수 있는 가장 올바른 행동양식을 찾는 학습방법으로 Q Value는 특정 상태에서 액션을 수행했을 때 기대되는 보상의 종합으로 보상의 최대치를 따른다.

2013년 13월 영국의 딥마인드는 구글에 인수되기 전 강화학습을 이용한 게임이 있는 논문을 발표한다.논문 제목이 playing atari with deeprein for cement learning인 https://www.youtube.com/embed/V1eYniJ0Rnk이 논문 이후 강화학습이 인기를 얻고 많은 기업이 개발에 돌입하지만 딥마인드는 이후 구글에 인수돼 DQN보다 성능이 좋은 A3C를 발표한다.

자세한 내용은 UCBerkeley 강의자료 참조 사양 : http://rail.eecs.berkeley.edu/deeprlcourse/

최근에는 DQN보다 A3C나 Policy Gradient 방식이 인기가 더 높은 것으로 알려져 있다.A3C(Asynchronous Advantage Actor-Critic) 알고리즘은 Replay Memory를 대체하는 복수의 에이전트(Agent)를 비동기식(Asynchronous)으로 동시에 학습시킴으로써 학습 성능을 높인 것이다.

이처럼 CNN을 적용한 DQN은 게임을 너무 잘해 남들보다 앞서기도 하지만 하늘색 DQN은 회색 사람 플레이어보다 우수한 게임이 많다.

특히 breakout 같은 비디오 게임은 사람을 완전히 추월하지만 맨 아래쪽의 Montezuma’s Revenge 게임은 DQN 학습이 0%라는 전혀 학습을 하지 못했다.즉, 이 게임이 다른 게임에 비해 게임 복잡도가 매우 높다는 것으로, A3C에서는 조금 있다.

상황이 이렇다 보니 지금의 상용 게임인 스타크래프트 같은 것을 처리하기 위해서는 연구가 더 필요할 것으로 쉽게 예측된다.현재 AIIDE, CIG, SSCAIT가 세계 3대 스타크래프트 AI 대회로 알려져 있지만, 8명으로 구성된 삼성SDS의 SAIDA 팀이 2018년 11월 AIIDE 스타크래프트 AI 대회에서 우승했다.한국 엔지니어들도 상당한 실력이다. 대단해.

어찌됐든 딥러닝이 게임을 배우는 방식이 사람이 게임을 배우는 방식보다 난이도가 높은데도 사람은 게임설명서를 보지만 딥러닝은 단지 영상만 제공되고 규칙은 시행착오를 겪어 스스로 찾아낸다.

이러한 강화학습이 좋은 점은 무엇보다도 다른 학습에서 요구되는 데이터나 라벨이 적게 요구되고, 기계 스스로 시행착오를 겪으며 학습을 찾아나선다는 것이다.그러다 보니 로봇을 걷게 하거나 자율주행, 자연어 처리, 게임 등에 쓰이는 기술로 자리 잡았다.

이쯤에서 강화학습이 시작되는 간단한 이론부터 살펴보자.

에이전트(예로 사람이나 캐릭터)가 행동하여 보상을 얻으면 행동은 환경의 변화를 낳고, 그러면 에이전트는 다시 새로운 행동을 해야 하는 상황이 반복되는데, 결국 보상을 더 얻기 위한 행동의 결정이 중요해진다.

다음 행동을 선택하는 방법에 관한 규칙을 정책(policy)이라고 하는데 집값이 급등하면 종부세를 올려 집값을 안정시키려는 정책 수립과 같은 정책 개념이다.

이런 상황을 정형화하면 어떤 상태가 있고 행동이 있을 수 있으므로 상태와 행동으로 시간표를 구성할 수 있다.그리고 한 가지 상태에서 다음 상태로 바뀔 경우 보상이라는 과정이 추가되면 된다.다만 다음 상태의 확률은 현재 상태와 현재 행동에 의해서만 영향을 받고 과거의 영향을 배제한 규정을 적용해 완성되면 마르코프 결정 과정이 완성된다.

상태 변화는 확률이 결정되고 상태 변화는 정해진 행동을 해야 하며 이때 누적 보상이 최고가 되는 행동 순서를 스스로 발견해 상태 변화를 지속하는데 확률이 0%가 되면 그 상태 변화의 연결은 끊어진 것이다.

에이전트가 확률적 환경에서는 같은 행동을 해도 같은 보상을 받을 수 있는 상황이 되므로 즉시 보상과 미래 보상의 가치를 달리해 오래도록 잘 작동시켜야 한다.즉 미래 보상의 가중치를 즉시 보상 가중치보다 낮게 잡는 차감된 보상을 구성해 항상 차감된 미래 보상이 최대가 되도록 행동을 선택하는 전략(policy)이 좋은 전략이다.

이렇게 차감된 미래 보상인 Q-함수를 정의해 Q값이 최대의 행동을 선택하는 방식으로 방정식을 만들고, 이를 반복적으로 돌려 Q-함수를 계산할 수 있으면 정책 수립이 된다.현재 상태와 행동으로 구성된 Q-값으로 다음 상태와 행동 Q-값으로 함수를 만들면

위와 같이 벨만 방정식(bellmanequation)이 만들어진다.함수를 보면 즉시 보상과 다음 상태로 얻을 수 있는 미래 최대 보상의 합이 Q 값이 된다.현재상태로추정된큐값=보상+다음상태로추정된큐값

이렇게 구성하고 반복하면 큐함수를 구할 수 있기 때문에 컴퓨터에 적용하면 되지만 환경이 복잡하고 크기가 넓으면 기하급수적으로 계산영역이 넓어져 실사용이 불가능하다.

딥마인드에서는 이러한 문제를 해결하기 위해 Q-Learning을 DQN으로 수정하였는데, 4개가 추가되어 현실 사용이 가능해졌다.1) Q-Learning 알고리즘에 딥러닝 적용 2) CNN 기법 추가 3) 경험 리플레이 추가 4) 목표 네트워크 분리

딥마인드는 이에 살을 붙여서 개선하고, 결국 알파고를 만들어 신약 연구를 하는 단계로 나아가고 있는 테슬라는 자율주행에 이 기법을 이용하고 보스턴인 이나믹스는 로봇에 이 기법을 사용..강화학습이 이처럼 최근 이슈 기술로 떠오르고 있다.

내용이 길어지므로 이쯤에서 마무리하고 실제 코딩은 다음 포스팅으로 연기한다.

아래에 참조 사이트가 있다.https://hackernoon.com/mit-6-s094-deep-learning-for-self-driving-cars-2018-lecture-3-notes-deep-reinforcement-learning-fe9a8592e14a

By스스칸

error: Content is protected !!