게임을 이용해 인공지능 연구 이유
- 문제가 잘 풀렸는지 판단하기 쉬움
- 많은 지식이 필요없이, 이기는 위치를 탐색 알고리즘으로 찾으면 됨.
- 단순 탐색 알고리즘으론 힘듬.
최대-최소 탐색 min-max search
- 나는 최대한 유리, 상대도 최대한 유리한 수를 선택한다 판단.
- 각 노드에 가치 부여
- 최대화 : 최대의 가치를 갖는 후계 노드 선택. 현재 노드는 가장 큰 후계노드의 가치를 가짐.
- 최소화 : 상대는 나에게 가장 낮은 가치를 주는 노드 선택할것. 현재 노드는 가장 낮은 후계노드의 가치를 가짐.
- 최대, 최소화를 여러 단계 거쳐 나에게 유리한 수 선택
최대 최소 탐색 트리
- 상대방의 응수를 고려하여 결정하는 경우에 대한 트리
- 내가 A를 선택시 상대는 D 선택, 나는 그나마 다른 노드의 최소에 비해 가장 큰 가치를 갖는 J를 선택 할 수 있음.
몬테 카를로 탐색
- 기존의 게임 트리 탐색 : 경우의 수가 방대한 경우 경험적 지식으로 평가 함수 만들기 어려움.
- 의사 결정 문제에서 활용되는 경험적 탐색 알고리즘
- 탐색 공간 무작위 표본화로 탐색 트리 구성
몬테카를로 트리 탐색 절차
1. 트리는 점증, 비대칭적 방식으로 생성.
2. 매 반복시 루트 노드서 시작하여 적절한 자식 노드를 선택하는 과정을 반복.
3. 리프노드에 도달한 다음 자식 노드를 생성하여 확장.
4. 리프토드 경로 결정 정책은 탐사, 활용을 균형적으로 설계
* 탐사 exploration : 검사하지 않은 영역을 확인
* 활용 exploitation : 유망 영역 확인
5. 시뮬레이션 시행 : 새 노드 가치 평가 위하여 몬테카를로 롤아웃 수행.
* 몬테카를로 롤아웃 : 무작위 방식으로 게임 깥까지 진행.
6. 시뮬레이션 결과 시작 리프노드에서 루프노드까지 통계치 업데이트에 활용
=> 경험적 지식을 반영한 평가 함수를 사용하지는 않음.
7. 제한에 도달할떄 까지 반복. 도달 시 우수한 행동 선택
* 제한 : 시간, 메모리, 반복 횟수 등
몬테카를로 트리 탐색 알고리즘
- 노드 n_i : 게임 특정 상태. 그 노드의 현재 가치 v_i, 노드 방문 횟수 N_i 등 포함.
- 루트 노드 하나인 트리로 탐색 시작하여 4단계 수행
1. 선택 : 선택 전략에 따라 깊이 방향으로 자식 노드 선택 반복.
2. 확장 : 선택된 노드에 추가 행동하여 트리 확장
3. 시뮬레이션 : 확장된 노드에서 게임이 끝날떄까지 게임 진행(롤아웃).
4. 역전파 : 시뮬레이션 결과 시작 노드에서 루트노드까지 선택경로를 따라 업데이트
'인공지능' 카테고리의 다른 글
파이썬머신러닝 - 1. 기초 (0) | 2020.11.23 |
---|---|
패턴인식이론 - 1. 간단 (0) | 2020.11.18 |
인공지능 - 6. 탐색 과정 (0) | 2020.11.11 |
인공지능 - 5. 퍼지이론 (0) | 2020.11.11 |
인공지능 - 4. 논리기반 지식표현 (0) | 2020.11.11 |