DeepMind가 AI에게 비디오게임을 가르친 방법

“Playing Atari with Deep Reinforcement Learning” 논문 해설

Google의 DeepMind는 세계 최고의 AI 연구팀 중 하나입니다. 그들은 2016년에 한국의 챔피언 이세돌을 이기는 AlphaGo 플레이어를 만든 것으로 유명합니다.
AI를 재생하는 Go를 만드는 데 사용된 주요 기술은 Deep Reinforcement Learning 이었습니다.
DeepMind가 처음으로 70년대 브레이크 아웃, 퐁, 스페이스 인베이더와 같은 Atari 게임을 할 수 있는 AI를 제작 한 4년 전으로 돌아가 봅시다. AlphaGo와 DeepMind가 Google에 인수된 것은 이 연구였습니다.

 

오늘 우리는 원래의 연구 논문을 가지고 단락별로 나누기로 했습니다. 이렇게 하면 이제 막 강화학습에 대해 배우기 시작한 사람들에게 좀 더 친숙해질 것입니다.

원 논문
https://drive.google.com/viewerng/viewer…

두사람이 대화식으로 설명을 진행합니다.

 

강화 학습을 사용하여 로봇이 Atari 게임을 스스로 하는 법을 배우게하고 싶습니다. 이 경우 로봇은 CNN을 사용해야 합니다.
로봇이 인간 플레이어와 동일한 방식으로 입력을 얻으므로 로봇이 화면에서 이미지를 직접보고 각 이동 후 보상과 포인트가 변경되기 때문에 이것은 거의 완전한 종단간의 딥러닝입니다.
그리고 로봇은 무엇을 출력할까요? 글쎄, 이상적으로 우리는 로봇이 미래에 가장 많은 보상을 한다고 생각하는 행동을 선택하기를 원합니다. 하지만 액션을 직접 선택하는 대신 18개의 가능한 조이스틱 액션 각각에 “값”을 지정합니다. 그래서 간단히 말하면, 어떤 액션 A의 값 V는 그 액션 A를 수행하면 얻을 수 있는 미래의 보상에 대한 로봇의 기대를 나타냅니다.
본질적으로이 신경망은 가치 함수입니다. 그것은 입력으로 화면 상태와 보상의 변화를 취하고 각각의 가능한 동작과 관련된 다른 값을 출력합니다. 따라서 가장 높은 가치의 액션을 선택하거나 전체 플레이어를 프로그래밍하는 방법에 따라 다른 액션을 선택할 수 있습니다.

 

 

추상적인 설명을 읽으십시오. 그렇다면 이 단락은 자명합니다.

딥러닝 방법은 지도/비지도 학습에서 처럼 강화학습을 통해 쉽게 작동하지 않습니다. 대부분의 DL 응용 프로그램에는 정확한 샘플과 레이블이 포함된 거대한 학습 데이터세트가 포함되어 있습니다. 또는 비지도학습에서 target cost function은 여전히 ​​사용하기에 편리합니다.

그러나 RL은 많은 시간 단계가 미래로 지연될 수 있는 보상을 포함합니다 (예를 들어 체스에서 상대방의 퀸을 노크하는 데 몇가지 움직임이 필요하며 그 각각의 움직임은 최종 이동과 동일한 즉각적인 보상이 있어야 합니다).

또한 보상은 난해합니다. 예를 들어 특정 이동에 대한 포인트가 약간 랜덤하고 쉽게 예측할 수 없는 경우가 있습니다.

또한, DL에서 보통 입력 샘플은 서로 관련이 없다고 가정합니다. 예를 들어, 이미지 인식 네트워크에서, 학습 데이터는 엄청나게 많은 수의 무작위로 조직된 비관련 이미지를 가질 것입니다. 그러나 게임을 하는 법을 배우는 동안, 일반적으로 움직임의 전략은 화면의 현재 상태뿐만 아니라 일부 이전 상태와 움직임에 의존합니다. 상관 관계가 없다고 생각하는 것은 간단하지 않습니다.

우리의 학습 데이터 샘플이 서로 상관되지 않는 것이 왜 중요한가요? 5개의 동물 이미지 샘플을 가지고 있고,이를 “고양이”와 “고양이가 아닌 것”으로 분류하는 방법을 배우고 싶다고 가정 해보십시오. 그러한 이미지 중 하나가 고양이인 경우 다른 이미지가 고양이가 될 가능성에 영향을 미칩니까? 하지만 비디오 게임에서는 화면의 한 프레임이 다음 프레임과 관련이 있습니다. 그리고 또 다음 프레임으로…. 우주선을 파괴하기 위해 레이저 빔이 10 프레임을 필요로한다면, 9번째 프레임이 10번째 프레임과 상관이 있다는 좋은 증거라고 확신합니다. 서로간에 가치있는 정보를 분명히 전달하기 때문에 두개의 프레임을 배우면서 몇 밀리 초 간격으로 완전히 분리된 경험으로 다루기를 원하지는 않습니다.

로봇이 새로운 전략을 학습 할 때 학습 데이터 자체가 바뀌지 않으므로 훈련하기가 더 어려워집니다.

그게 무슨 뜻 이죠? 예를 들어, 당신이 멍청한 체스 플레이어라고 말하십시오. 당신은 첫번째 체스 게임을 할 때 몇 가지 멍청한 전략으로 시작합니다. 즉, 앞으로 계속 나아가고, 처음 기회를 얻을 때 폰을 죽이십시오. 그런 행동을 계속 배우고 졸속하다는 것을 느낄 때, 그 움직임은 당신의 현재처럼 행동합니다.

이제 다른 전략을 시도해보십시오. 자신의 주교 중 한 명을 희생 시켜서 퀸을 구하고 다른 한명의 루크를 구하십시오. 이 새로운 트릭을 학습 세트에 추가 했으므로 이전 전략을 계속 연습한 경우에는 결코 배울 수 없었을 것입니다.

이것은 감독되지 않은 학습에서 실제로 발생하지 않는 비정적 데이터 분포를 갖는 것을 의미합니다.

그럼 이러한 상황에서 신경 네트워크를 어떻게 학습할까요?

 

이 글에서는 위에서 언급한 문제를 어떻게 극복하고 원시 비디오와 이미지 데이터를 직접 사용했는지 보여줍니다. 특정 트릭인 “Experience Replay”는 언급할 가지차 있습니다. 이것은 ‘데이터 상관 관계’와 ‘비정적 데이터 배포’의 문제점을 해결합니다.

우리는 모든 경험을 기록합니다 -  다시 체스 유추를 사용하여, 각각의 경험은 [현재 보드 상태, 내가 시도한 행동, 내가 얻은 보상, 새로운 보드 상태] 와 같이 보입니다  . 그런 다음 훈련하는 동안 우리는 서로 관련이 없는 무작위로 배치된 배치를 선택합니다. 각 배치마다 다른 경험이 다른 전략과 관련될 수 있습니다. 이전 경험과 전략이 모두 뒤죽박죽이 되어 버렸기 때문입니다! 이해가 됩니까?

이로 인해 학습 데이터 샘플이 더 무작위적이고 상관 관계가 없게되며, 새로운 배치마다 이미 임의의 전략 경험으로 가득차 있기 때문에 신경망에 고정되어 있다고 느낍니다.

 

 

이것의 대부분은 자명합니다. 여기에서 핵심은 정확히 동일한 신경 네트워크 아키텍처와 하이퍼 파라미터(학습 속도 등)가 각각의 다른 게임에 사용된다는 것입니다. 스페이스 인베이더를 위한 더 큰 네트워크와 퐁을 위한 더 작은 네트워크를 사용했던 것과는 다릅니다. 우리는 새로운 게임마다 처음부터 네트워크를 훈련 시켰지만 네트워크 디자인 자체는 동일했습니다.

원문
https://medium.freecodecamp.org/explained-simply-how-deepmi…

Tags:

딥마인드

강화학습

알파고

AI

인공지능

DQN

구글

Atari