본문 바로가기

인공지능/프로젝트

강화학습을 해보자~!(2)

반응형

자 우리는 흔히 많이 쓰는 강화학습의 DQN(Deep Q network)라는 것을 사용해보려고 한다. 이 프로젝트는 유튜브 팡요랩을 검색하시면 우리가 이 프로젝트를 하면서 보는 참고서라고 생각해주면 편할 것 같다. 여기 강화 학습 같은 경우 흔히 표현을 할 때 줄기와 잎을 많이 표현한다. 왜 잎과 줄기(가지)로 표현하는지 알아 보도록 하자

 

 

다시 한 번 강요해서 말하지만 기본적으로 테트리스로 시작할 것이며 맨 처음은 강화 학습을 공부하고 연구하는 것이기에 유튜브 팡요랩에서 올라온 영상들로 이론 설명과 실제 예제들을 하나 하나씩 할 것이며 이 이론 공부를 다 끝내면 이제 우리 프로젝트를 하나 하나씩 진행 할 것이다. 아마 우리는 맨 처음 스타크래프트2 API를 사용해서 강화학습 AI를 한 번 사용해 볼 것이고

 

아마 대부분의 사람들은 초반 이론 설명만 하면 발암이 걸려서 포기 할 것 같은데 고등학생도 참고 하고 있는데 자신이 고등학생 이상 나이라면 꾹 참고 같이 프로젝트 하기를 바란다.

 

서론이 길었던 것에 사과를 드리고 자 본격적으로 시작해 보자

 

 

먼저 팡요랩에서 설명해주시는 두 분의 직업은 한 분은 엔씨소프트에서 강화학습으로 게임AI를 만드시는 분이고 한 분은 네이버에서 일하시는 분이라고 합니다.

 

개인적으로 생각했을 때 두 분이 설명해 주는 강화 학습은 저자가 봤던 모든 자료 중에서 가장 이해하기 쉽게 설명해주시는 그런 자료이다. 

 

먼저 알파고 논문에 관해서 설명하도록 하겠다.

 

먼저 논문의 URL링크를 주자면

https://www.nature.com/articles/nature16961

불러오는 중입니다...

인데 기본적으로 영어 실력을 많이 필요로 하기에 유튜브 팡요랩을 검색해서 보시는 편이 가장 좋다고 생각한다.

알파고 논문 제목은 Mastering the game of go with deep neural networks and tree search는

보면 tree search라는 것을 보면 강화학습은 나무의 가지와 잎이 연관 되어 있다고 알 수 있다.

 

 

먼저 왜 바둑(go)으로 목적을 삼았을까?

 변수가 많다 만들 수 있는 게임 250의 150승

 즉 넓은 전장에서 다양한 전략을 구성해서 할 수 있는 게임이다.

 바둑 뿐만아니라 체스와,오목 같은 경우도 많았고 강화 학습이 나와서 많은 게임 AI가 많이 바뀌었다.

 

일단 우리는 Monte Carlo Tree Search(MCTS)를 이해하고 오늘 은 마무리 하도록 하겠다.

MCTS는 이세돌과 알파고가 바둑을 둘 때 알파고가 돌린 프로그램이 MCTS이다.

그럼 MCTS가 뭐냐하면 쉽게 생각하면 게임을 어떤 상황에서 끝까지 둬 보는 거라고 설명 할 수 있겠다.

예를 들어 우리가 무한번 볼 수 있다면 우리가 최적의 수가 무엇인지 알 수 있다.

실제로 학문적 표현으로 optimal value fuc은 완전 정보 게임에서는 존재한다는 걸로 증명되어 있어

그 최적의 수를 찾는 방법으로 가장 좋은 방법은 하나씩 둬보는 것인데 그 것이 바로 이 알파고라는 것이다

아까 나무 가지와 잎이 왜 들어가는지 의문이 생겼을 때를 다시 생각하면 지금 내가 무슨 말을 하는지 이해 할 수 있을 것이다.  풀어서 설명하자면 우리는 첨부터 끝까지 다 끝까지 둬 볼 수는 있지만 바둑같은 경우 최대 생각을 할 수 있는 시간이 정해져 있다. 고로 우리는 현재 수에서 시작해서 끝까지 둔다고 생각하면 된다 솔직히 말하자면 250의 150승에 경우에 수가 있어서 현실에서는 불가능하고 MCTS에서는 너비를 줄인다 너비를 줄이는 이유는 19*19로 쓸모 없는 부분을 지운다고 생각하고 이렇게 너비를 줄일 수 있다면 깊이도 줄일 수도 있다. 끝까지 시뮬을 하되 가장 최적의 수로 그 수를 둔다고 생각하면 된다.

반응형
LIST

'인공지능 > 프로젝트' 카테고리의 다른 글

DRL 심층 강화학습 여정  (1) 2023.11.13
강화학습을 해보자~!(1)  (0) 2019.07.15