• [퍼즐 연구] 알파고 해부하기 1~3부2019.06.14 PM 03:56

게시물 주소 FONT글자 작게하기 글자 키우기

나는 알파고를 아는가? NO

나는 Deep Learning을 아는가? NO

나는 Reinforcement Learning을 아는가? NO

나는 Monte-Carlo Tree Search를 아는가? NO


=> 알파고 설명을 보자


---------------------------------------------------------------------


알파고 해부하기 1~3부


https://www.slideshare.net/DonghunLee20/1-59501887

https://www.slideshare.net/DonghunLee20/2-59620244

https://www.slideshare.net/DonghunLee20/3-61454159

 

알파고구조.PNG

 

잘 설명 되어있고 모르는 단어들이 또 쏟아져 나오고 있습니다.

하나씩 공부해야할 것이 스택에 계속 쌓이네요.

- CNN(Convolutional Neural Network)

- Reinforcement learning framework

- MCTS(Monte Carlo Tree Search) 

는 확실히 습득하고 넘어가야 할 부분임.

 

---------------------------------------------------------------------

 

여기서 주목한 것은 네트워크의 각 층을 구성하는 '19x19x48 텐서' 부분이었음.

 

ExtendTable.PNG

 

하나의 착점마다 48칸의 데이터로 구성된 3차원 블럭이라고 볼 수 있는데

그것에 대한 feature가

- "흑돌" 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인)

- "백돌" 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인)

- "빈칸" 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인)

- 그냥 상수 1 ("그 칸 고유의 특성"을 모델링)

- 돌이 있다면, 몇 수 전에 놓였는지 (최소 1, 최대 8) (길이 8의 binary array)

- 연결된 말의 현재 활로가 몇개인지 (최소 1, 최대 8)

- 상대가 돌을 놓는다면 내가 잃을 돌의 수 (최소 1, 최대 8)

- 내가 돌을 놓는다면 그 돌에 연결된 말의 활로가 몇 개가 될지 (최소 1, 최대 8)

- 내가 돌을 놓는다면, 내가 축을 만드는데 성공할지

- 내가 돌을 놓는다면, 내가 축을 탈출하는데 성공할지

- 돌을 놓는것이 바둑의 규칙에 어긋나는지, 내 집을 메꾸는 수가 아닌지

- 내가 흑돌인지 백돌인지 (이건 Value Network (판세분석) 에만 쓰입니다)

였음.

 

---------------------------------------------------------------------

 

퍼즐에 대한 분석을 하면서 텐서의 feature들을 제대로 설정하는게 중요할 것 같음. 그리고, 그걸 세팅해주는 모든 함수들도 짜야함.

 

과연 여기에 추가되어 필요한 정보는 무엇일까?

공부할게 늘었습니다. 그리고, 고민할게 늘었습니다. (철학적인 사고 비슷하게 고민해야할듯 함...)

댓글 : 0 개
친구글 비밀글 댓글 쓰기

user error : Error. B.