여러분, "알파고, 알파고" 많이 들어보셨죠? 하지만 도대체 알파고가 뭘 하는 놈인지, 왜 그렇게 대단한 건지 명확히 아시는 분들은 많지 않을 겁니다. 이번 포스팅은 알파고에 대한 궁금증을 풀고, "이게 바로 알파고였구나!" 하고 머리를 탕 치실 수 있도록 만들어졌습니다. 위키피디아를 참고하며 쉽게 풀어가 보겠습니다!

"알파고(영어: AlphaGo)는 구글의 딥마인드가 개발한 인공지능 바둑 프로그램" 입니다.
바둑이라는 복잡한 게임에서 인공지능의 잠재력을 증명하며, 기술적 도약을 이룩한 상징적인 프로젝트죠. 알파고는 정식으로 2016년에 이름을 날렸습니다. 당시, 세계적인 바둑 기사 이세돌 9단을 꺾으며 전 세계를 충격에 빠뜨렸습니다.
"알파고는 단순한 기계가 아니라 스스로 배우는 인공지능이다."
"알파고의 학습 속도는 인간 기사와 비교할 수 없을 정도로 빠릅니다. 하루에 수백만 번의 대국을 시뮬레이션할 수 있습니다."
"신의 한 수인가? 알파고의 버그인가??" 인류 역사상 가장 유명한 바둑 이세돌VS알파고4국
: (최현욱 9단 채널) https://www.youtube.com/watch?v=OqWjuZaeAzs&pp=ygUGIzc47IiY
7년만에 알파고 깼다! 제2의 이세돌, 꼼수전략으로 14승1패 달성
: (조연우 2단 채널) https://www.youtube.com/watch?v=k-Wu6pQFMYE

바둑입단 시험 부정행위 적발(2020)
김은지 2단 AI 치팅 징계 (2020)
명예 9단 알파고 기사 (2016)

알파고는 기본적으로 두 가지 주요 신경망과 강화학습(몬테카를로) 알고리즘으로 작동합니다.
"가능한 모든 수의 확률을 예측해, 최적의 수를 선택하는 신경망"
정책 신경망은 현재 바둑판 상태에서 가능한 모든 수를 예측하여 가장 적합한 수를 선택하는 데 사용됩니다.
지도학습(Supervised Learning): 인간 바둑 기사의 기보를 학습하여 초기 정책망 구축.
강화학습(Reinforcement Learning): 자가 대국(Self-Play)을 통해 성능을 강화.
import tensorflow as tf
from tensorflow.keras.layers import Dense, Input
# 간단한 정책 신경망 구조 정의
input_layer = Input(shape=(361,)) # 19x19 바둑판
hidden_layer = Dense(256, activation='relu')(input_layer)
output_layer = Dense(361, activation='softmax')(hidden_layer)
policy_network = tf.keras.Model(inputs=input_layer, outputs=output_layer)
policy_network.compile(optimizer='adam', loss='categorical_crossentropy')
print(policy_network.summary())
[0.01, 0.03, 0.85, ..., 0.02]"현재 상태에서 승리 가능성을 평가하는 신경망"
가치 신경망은 현재 바둑판 상태의 승리 가능성을 평가합니다. 이 정보는 최적의 전략 설계 및 수 선택에 활용됩니다.
import tensorflow as tf
from tensorflow.keras.layers import Dense, Input
# 간단한 가치 신경망 구조 정의
value_input = Input(shape=(361,)) # 바둑판 상태
value_hidden = Dense(128, activation='relu')(value_input)
value_output = Dense(1, activation='sigmoid')(value_hidden)
value_network = tf.keras.Model(inputs=value_input, outputs=value_output)
value_network.compile(optimizer='adam', loss='mean_squared_error')
print(value_network.summary())
"가능한 모든 수를 시뮬레이션해 가장 높은 가치를 가진 수를 선택하는 알고리즘"
몬테카를로 트리 탐색(MCTS)은 정책 신경망과 가치 신경망을 기반으로 가능한 모든 수를 시뮬레이션하여 최적의 수를 선택합니다.
시뮬레이션: 가능한 수를 반복적으로 탐색하여 높은 가치를 가진 수를 선택.
정책 신경망의 역할: 각 수의 확률 분포 제공.
가치 신경망의 역할: 상태의 승리 확률 평가.
import numpy as np
def mcts_simulation(policy, value, state):
probabilities = policy(state) # 각 수의 확률 분포
outcomes = []
for action, prob in enumerate(probabilities):
if prob > 0.01: # 낮은 확률의 수는 제외
new_state = simulate_action(state, action) # 가상의 수를 둠
outcome = value(new_state)
weighted_outcome = prob * outcome
outcomes.append((action, weighted_outcome))
best_action = max(outcomes, key=lambda x: x[1])[0]
return best_action
Action 12 chosen with weighted value 0.85probabilities의 역할:
높은 확률을 가진 수일수록 탐색 과정에서 더 많은 리소스를 할당 ==> 최적의 수를 빠르게 찾는데 사용됨
- 알파고 판: 인간 기보를 지도학습하여 첫 번째 성과를 달성.
- 알파고 리: 가치 네트워크와 강화학습 도입으로 인간 프로를 압도.
- 알파고 마스터: 온라인에서 실전 검증 및 성능 최적화.
- 알파고 제로: 완전 자율 학습으로 인간 데이터를 초월.
- 알파제로: 다양한 게임에서 범용 AI로 확장.
알파고 판 (AlphaGo Fan)
- 176개의 GPU가 사용된 분산 버전
- 2015년 판 후이 2단과 대국에서 승리
- 당시에는 '버전12'로 알려짐
알파고 리 (AlphaGo Lee)
- 48개의 TPU가 사용된 분산 버전
- 2016년 3월 이세돌 9단과 대국에서 승리
대국 당시에는 알파고 판에서 기계학습이 개선된 수준의 '버전18'이라는 정도만 알려졌었다. 하지만 2016년 5월 구글 I/O(개발자회의) 2016 컨퍼런스에서 구글은 자체 개발한 애플리케이션 집적회로(ASIC)인 TPU(Tensor Processing Unit)를 처음 소개하면서 이세돌 9단과 대국한 알파고는 TPU가 사용되었다고 설명했다.
알파고 마스터 (AlphaGo Master)
- 4개의 TPU가 사용된 단일 버전
- 2017년 초 프로 바둑기사와 온라인 대국에서 60연승
- 같은 해 5월 커제 9단과의 대결에서도 승
알파고 제로 (AlphaGo Zero)
- 4개의 TPU가 사용된 단일 버전으로 알파고의 최종 버전
- 2017년 10월 19일 과학 학술지 네이처에 인간 지식 없이 바둑을 마스터하기(Mastering the game of Go without human knowledge)라는 제목의 논문 발표를 통해 소개
알파 제로 (Alpha Zero)
- 하나의 알고리즘으로 바둑, 체스, 쇼기 등의 보드게임에 적용되는 범용 인공지능
- 2018년 12월 7일 자가학습을 통해 체스, 쇼기, 바둑을 마스터할 수 있는 범용 강화학습 알고리즘(A general reinforcement learning algorithm that masters chess, shogi, and Go through self-play)이라는 제목의 논문을 과학 학술지 사이언스에 발표
버전 학습 알고리즘 하드웨어 주요 성과 알파고 판 - 지도학습 (SL): 인간 기보 약 30만 개 학습
- MCTS1,202 CPU, 176 GPU 판 후이 2단과 5전 전승 (2015) 알파고 리 - SL + 강화학습 (RL): 자가 대국
- 가치 네트워크
- MCTS48 TPU 이세돌 9단과 5번기 4승 1패 (2016) 알파고 마스터 - 강화학습 (RL): 자가 대국
- 개선된 MCTS4 TPU "Master"로 60전 전승, 커제 9단 승리 알파고 제로 - 자율 학습: 인간 기보 없이 자가 대국
- 단일 신경망
- MCTS4 TPU 알파고 리를 100전 전승으로 압도 알파제로 - 범용 자율 학습: 바둑, 체스, 쇼기
- 단일 신경망
- MCTS4 TPU 각 게임 최고 AI를 능가, 범용 AI 입증
결론: 알파고의 발전 과정은 지도학습에서 강화학습, 그리고 자율 학습으로 이어지며, 하드웨어도 TPU를 적극 활용하여 연산 효율을 극대화하였습니다.
다음 포스팅에서 더 흥미로운 이야기로 찾아뵙겠습니다.
공감 꾸욱~누르고 갑니다^^ 블로그 부업관심 있으시면 제블로그도 방문해주세요^^ 따수운 하루되세요~~