AlphaGo의 작동 방식
Google DeepMind는 전문 선수의 힘에 필적하는 AlphaGo 용 신경망 AI를 발표했습니다. David Silver 등의 논문은 AlphaGo에 대해 자세히 설명합니다. 그들의 기술은 놀라울 정도로 단순하지만 매우 강력합니다. 이 논문에서 사용 된 기술적 전문 용어에 익숙하지 않은 독자를 위해 시스템 작동 방식을 설명합니다.
딥 러닝
"심화 학습"은 다층 인공 신경망과 이를 훈련시키는 방법을 말합니다. 뉴럴 네트워크 계층은 수의 집합을 입력으로 취하고 비선형 활성화 함수를 통해 가중치를 계산하며 다른 수의 집합을 출력으로 생성하는 숫자의 큰 행렬입니다. 이것은 생물학적 뇌에서 뉴런의 기능을 모방하기 위한 것입니다. 행렬에 올바른 숫자가 있고 이 레이어 중 몇 개가 체인에 함께 연결되면 신경 네트워크 "두뇌"는 패턴 인식이나 사진 레이블 지정과 같은 정확하고 정교한 처리를 수행 할 수 있습니다.
신경망은 수십 년 전에 발명되었으며, 최근까지도 거의 대부분 어렴풋이 나타났습니다. 이는 해당 행렬의 숫자에 대한 적절한 값을 발견하기 위해 광범위한 "훈련"이 필요하기 때문입니다. 좋은 결과를 얻는 데 필요한 최소한의 훈련은 초기 신경망 연구원이 사용할 수 있는 컴퓨터 성능 및 데이터 크기를 초과했습니다. 그러나 지난 몇 년 동안 대규모 리소스에 액세스 할 수있는 팀은 신경 네트워크를 재발견했습니다. 이제는 "빅 데이터" 기술을 사용하여 효과적으로 훈련 할 수 있습니다.
2개의 두뇌
AlphaGo는 두 가지 신경 네트워크 "두뇌"를 사용하여 움직입니다. 이러한 두뇌는 Google 이미지 검색과 같은 이미지 검색 엔진에서 사진을 분류하는 데 사용되는 구조와 거의 동일한 다층 신경 네트워크입니다. 그들은 이미지 분류 네트워크가 이미지를 처리하는 것처럼 Go 보드 위치를 처리하는 2D 필터의 여러 계층적 레이어로 시작합니다. 대략 말하자면, 이 첫 번째 필터는 패턴과 모양을 식별합니다. 이 필터링 후, 완전히 연결된 13 개의 신경망 레이어는 자신이 보는 위치에 대한 판단을 내립니다. 대략적으로 이 계층들은 분류 또는 논리적 추론을 수행합니다.
네트워크는 반복적으로 결과를 확인하고 네트워크 성능을 향상시키기 위해 숫자를 조정하는 수정 사항을 피드백함으로써 훈련을 받습니다. 이 프로세스는 무작위성의 큰 요소를 가지고 있으므로 네트워크가 어떻게 "사고"를 하는 지 정확히 알 수는 없으며 더 많은 훈련을 거친 후에 개선되는 경향이 있습니다.
두뇌 # 1 : The Move Picker(이동 선택기)
이 논문이 감독 학습 (SL) 정책 네트워크라고 말하는 AlphaGo의 첫 번째 신경망 두뇌는 보드 위치를 보고 다음으로 나아가기 위한 최선의 결정을 시도합니다. 실제로, 다음 합법성이 가장 높은 확률을 추정합니다. 이것을 "moving-picking" 두뇌라고 할 수 있습니다.
실버 팀은 KGS에서 강력한 인간 선수가 한 수백만 가지 움직임에 대해 이 두뇌를 훈련 시켰습니다. 그 목표는 강력한 인간 선수의 이동 선택을 복제하는 것입니다. 그것은 분명히 강렬한 인간 선수가 골라 낼 동일한 다음 동작만을 선택하며 게임 승리에 관심이 없습니다. AlphaGo의 이동 선택 도구는 뛰어난 인간과 정확히 일치합니다 (약 57 %). (불일치가 반드시 실수는 아닙니다. 사람이 실수일 수 있습니다).
The Move Picker, 더 강하게
전체 AlphaGo 시스템에는 실제로 기본 이동 피킹 (move-picking) 두 가지 추가 버전이 필요합니다. 하나의 버전인 "강화된 학습 (RL) 정책 네트워크"는 수백만 개의 추가 시뮬레이션 게임을 사용하여 더욱 집중적으로 훈련된 세련된 버전입니다. 이것을 "더 강한" Mover Picker라고 생각하십시오. 단일 인간의 움직임을 모방하기 위해 네트워크를 가르치는 기본 훈련과는 달리, 고급 훈련은 네트워크를 가르치기 위해 시뮬레이트된 각 게임을 끝내고 다음 게임이 이길 가능성이 있는 것으로 가르칩니다. Silver의 팀은 이전 교육 반복에서 이전 버전에 비해 강력한 이동 선택 도구를 사용하여 수백만 건의 훈련 게임을 합성했습니다.
강한 Move Picker는 이미 가장 강한 Go AI이며, 어디서나 이미 강력한 Go 플레이어입니다. 이 이동 선택 도구는 전혀 "읽는" 기능이 없다는 점에 유의해야 합니다. 단일 보드 위치를 면밀히 조사하고 그 위치에 대한 분석을 기반으로 한 움직임을 제공합니다. 미래의 움직임을 시뮬레이션하려고 시도하지 않습니다.
Move Picker, 더 빨리
알파고 팀은 물론 여기서 멈추지 않았습니다. 하지만 읽기가 효과를 발휘하기 위해서는 더 빠른 두뇌의 버전이 필요했습니다. 강력한 버전은 한 번의 동작이 제대로 수행될 수 있을 만큼 빠릅니다. 하지만 읽기 계산은 수천 번의 동작을 확인한 후 결정을 내려야 합니다.
Silver의 팀은 간단한 이동 선택기를 구축하여 "빠른 읽기" 버전을 만들었습니다. 이를 "rollout network"라고 부릅니다. 단순화된 버전은 전체 19×19 보드를 보는 것이 아니라, 상대의 이전 움직임과 고려하고 있는 새로운 움직임 주위에 있는 작은 창만 봅니다. 이런 식으로 이동 픽커의 뇌 일부를 제거하면 강도가 낮아지지만, 더 얇은 버전은 약 1,000배 더 빠르게 계산되므로 판독 계산에 적합합니다.
두뇌 #2: The Position Evaluator(위치 평가자)
알파고의 두 번째 두뇌는 이동 선택기와는 다른 질문에 답합니다. 구체적인 다음 동작을 추측하는 대신, 보드 포지션으로 볼 때 각 선수가 승리할 가능성을 추정합니다. 본 논문에서 "가치 네트워크"라고 부르는 "position evaluator"는 전체적인 위치 판단을 제공하여 이동 선택자를 보완합니다. 이 판단은 근사할 뿐이지만 읽는 속도를 높이는 데 유용합니다. 미래의 잠재적 위치를 "좋은" 혹은 "나쁜"으로 분류함으로써, 알파고는 특정한 변형에 따라 더 깊게 읽을지 여부를 결정할 수 있습니다. position evaluator가 특정 변형이 나쁘게 보인다고 말하는 경우 AI는 해당 행을 따라 더 이상 읽기를 건너뛸 수 있습니다.
position evaluator는 수백만 개의 예제 보드 위치에 대해 훈련을 받습니다. 실버팀은 알파고의 강력한 두 사본 사이 시뮬레이션 게임에서 무작위 샘플을 꼼꼼히 골라 이런 포지션을 만들었습니다. AI 이동 선택기는 position evaluator를 교육하기 위해 충분히 큰 데이터 세트를 구축하는 데 매우 유용했습니다. 이 이동 선택기를 통해 팀은 주어진 보드 위치에서 많은 시뮬레이션을 하여 각 플레이어의 대략적인 우승 가능성을 추측할 수 있었습니다. 아마 이런 종류의 훈련을 할 수 있는 인간 게임 기록이 충분하지 않을 것입니다.
'SW > 인공지능' 카테고리의 다른 글
인공지능 : 응용과 이슈 (3) : AI 응용 사업 분야 (0) | 2019.04.27 |
---|---|
인공지능 : 응용과 이슈 (2) : AI 솔루션 구현, 운영, 적용 방법 (0) | 2019.04.26 |
인공지능 : 핵심기술 (12) : AI 사업의 성공 방법, 요인 (0) | 2019.04.23 |
인공지능 : 핵심기술 (11) : 언어 번역 ( 작동, 방식, 원리 ) (0) | 2019.04.22 |
인공지능 : 핵심기술 (10) : 이미지 인식의 장벽, 한계 (0) | 2019.04.21 |