본문 바로가기

인공지능

AlphaGo의 인공지능 알고리즘 분석 5

4. AlphaGo의 차별성 – 딥러닝

□ AlphaGo의 딥러닝

○ 딥러닝을 활용하여 전문 바둑기사들의 패턴을 학습함

 -바둑 기보를 19x19 픽셀을 갖는 이미지로 입력받아 전문 바둑기사의 다 음 착수를 학습하는 과정

 *이 과정은 바둑 입문자가 기보를 공부하여 바둑기사들의 패턴을 습득하 는 것과 유사함

 *AlphaGo 개발자인 데이비드 실버는 “AlphaGo는 16만개의 기보를 5주만 에 학습했다”라고 밝힘

 -AlphaGo는 딥러닝 기법 중 특히 이미지 처리에 강한 컨볼루션신경망을 기반으로 학습하기 때문에 국지적인 패턴인식에도 강점을 가짐

 *바둑에서 지역적인 대국이 전체적인 형세판단에 매우 중요한 역할을 함 ○ 바둑기사의 착수를 학습한 것은 정책네트워크이고 국지적인 패턴인식을 통한 승산판단은 가치네트워크로 구현

 -정책과 가치네트워크는 MCTS에서 게임 트리를 탐색할 때 적용됨

□ AlphaGo의 정책과 가치네트워크

 ○ 정책 네트워크(Policy Network, ) : 정책 계산을 위한 딥러닝 신경망

 -정책 네트워크에서 사용된 딥러닝 기법은 컨볼루션 신경망(Convolution Neural Network, CNN)으로 19x19 바둑판 상태를 입력하여 바둑판 모든 자리의 다음 수 선택 가능성 확률 분포를 출력 ([그림 9] 참조)

 *컨볼루션 신경망은 페이스북의 얼굴인식 기술인 DeepFace에 적용된 기술 로 입력 이미지를 작은 구역으로 나누어 부분적인 특징을 인식하고 이것 을 결합하여 전체를 인식하는 특징을 가짐

-바둑에서는 국지적인 패턴과 이를 바탕으로 전반적인 형세를 파악하는 것이 중요하므로 컨볼루션 신경망을 활용하는 것이 적절한 선택

○ 정책 네트워크 학습 -지도학습(supervised learning, ) : 프로 바둑기사들의 착수 전략 학습

 *KGS Go Server 프로 6단에서 9단 사이의 실제 대국 16만개 기보로부터 3000만 가지 바둑판 상태를 추출하여 데이터로 사용함

 *이 중 약 2900만 개를 학습에 이용하고, 나머지 100만 가지 바둑판 상태 를 시험에 이용 (정확도 57%). 이것은 사람이 다음 수를 두는 경향을 모 델링 한 것

 *50개의 GPU를 사용하여 학습 (기간 : 3주, 3억4천 번의 학습과정)

 -강화학습(reinforcement learning, ) : 스스로 경기하여 지도학습을 강화함

 *지도학습의 결과로 구해진 정책네트워크는 사람의 착수 선호도를 표현하 지만 이 정책이 반드시 승리로 가는 최적의 선택이라고 볼 수 없음

 *이것을 보완하기 위해 지도학습으로 구현된 정책 네트워크와 자체대결 (self-play)을 통해 결과적으로 승리하는 선택을 “강화”학습함. 약 128 번의 자체대결을 1만 번씩 수행 (총 128만 번)

 *이로부터 도출된 경기결과(reward)를 바탕으로 이기는 방향으로 가도록 네트워크의 가중치를 강화(개선). 강화학습 후의 정책 네트워크로도 기존 바둑 프로그램인 Pachi와 대결하여 85%의 승률

*50개의 GPU를 사용하여 학습 (기간 : 1일)

 ○ 가치 네트워크(Value Network, ) : 바둑의 전체적인 형세를 파악

 -AlphaGo에서는 가치(value)를 계산하기 위해 딥러닝을 이용한 가치 네트 워크(value network) 사용

 *기존 프로그램의 가치함수는 비교적 간단한 선형결합으로 표현했기 때문 에 인공신경망을 활용하여 더 정확한 값을 기대할 수 있음

 -인공신경망의 입력층과 은닉층 구조는 정책네트워크와 유사한 컨볼루션 신경망이지만 출력층은 현재의 가치(형세)를 표현하는 하나의 값(scalar) 이 나오는 구조

 -특정 게임 상태에서의 승률(outcome)을 추정

 *강화학습의 자체대결에서 생성된 3천만 개의 바둑상태로부터 가치 네트 워크를 학습함

 *게임에서 이길 경우의 승률을 1이라고 볼 때, 가치 네트워크의 오차는 약 0.234 수준 (강화학습의 자체대결로 학습된 신경망을 시험(test)한 오차)

 *50개의 GPU를 사용하여 학습 (기간 : 1주)

□ AlphaGo의 계산성능 분석

 ○ AlphaGo는 딥러닝으로 구현된 정책과 가치네트워크를 활용하여 MCTS 탐색 기법을 통해 착수를 결정

 -분산 AlphaGo를 기준으로 착수(decision)는 초읽기 30초 동안 약 10만 번의 수읽기를 통해 결정

 *체스 인공지능 프로그램인 딥블루의 경우 약 2억 번의 수읽기

 -바둑계의 전설적인 인물인 이창호 9단의 경우 100수 정도의 수읽기

 ○ AlphaGo의 MCTS 탐색에서 가장 시간이 많이 소요되는 부분은 가치, 정책 네트워크의 값을 산출하는 과정

 -13층의 컨볼루션 신경망의 값을 산출해내기 위해서는 약 300억 번의 연 산수(30 GFLOP)가 필요함

 -이러한 이유로 AlphaGo의 탐색 쓰레드는 비동기식(asynchronous)으로 진행됨

 ○ AlphaGo의 대국을 분석해 보면 시간이 많이 주어질수록 강한 면모를 보임

 -판후이 2단과의 대결에서 초읽기 30초만 주어진 비공식(informal)경기는 AlphaGo가 3:2로 우세하였으나, 공식(formal)대결에서는 5:0으로 완승

 -이세돌 9단과의 대결은 2시간 제한시간에 60초 초읽기 3회가 주어지므 로, 판후이와의 대결보다는 더 나은 기력을 보일 수 있음

 *대국규정은 구글 DeepMind와 한국기원이 협약한 사항

 -AlphaGo의 시간분배는 주로 중반전에 이루어짐





출처 : 소프트웨어정책연구소