이미 소장하고 있다면 판매해 보세요.
[Part 1 기초]
CHAPTER 1 딥러닝을 향해 - 머신러닝 기초 1.1 머신러닝이란 무엇인가 __1.1.1 머신러닝은 AI와 어떤 연관성이 있는가 __1.1.2 머신러닝으로 할 수 있는 것과 할 수 없는 것 1.2 사례로 보는 머신러닝 __1.2.1 애플리케이션에서 머신러닝 사용 __1.2.2 지도학습 __1.2.3 비지도학습 __1.2.4 강화학습 1.3 딥러닝 1.4 이 책에서 학습할 내용 1.5 요약 CHAPTER 2 머신러닝 문제로서의 바둑 2.1 왜 게임인가 2.2 간단한 바둑 소개 __2.2.1 바둑판 이해하기 __2.2.2 돌 놓기와 잡기 __2.2.3 경기 종료 및 점수 계산 __2.2.4 패 이해하기 2.3 접바둑 2.4 추가 학습 자료 2.5 머신에 무엇을 가르칠 수 있을까 __2.5.1 포석 두기 __2.5.2 다음 수 찾기 __2.5.3 고려할 수 줄이기 __2.5.4 게임 현황 평가하기 2.6 바둑 AI가 얼마나 강력한지 측정하는 방법 __2.6.1 일반 바둑 등급 __2.6.2 바둑 AI 벤치마킹 2.7 요약 CHAPTER 3 첫 번째 바둑봇 만들기 3.1 파이썬으로 바둑 나타내기 __3.1.1 바둑판 구현하기 __3.1.2 바둑에서 연결 추적하기 : 이음 __3.1.3 바둑판에 돌 놓기와 따내기 3.2 대국 현황 기록과 반칙수 확인 __3.2.1 자충수 __3.2.2 패 3.3 게임 종료 3.4 첫 번째 봇 만들기 : 상상 가능한 최약체 바둑 AI 3.5 조브리스트 해싱을 사용한 대국 속도 향상 3.6 봇과 대국하기 3.7 요약 [Part 2 머신러닝과 게임 AI] CHAPTER 4 트리 탐색을 통한 경기 4.1 게임 분류 4.2 미니맥스 탐색을 사용한 상대 수 예측 4.3 틱택토 풀기 : 미니맥스 예제 4.4 가지치기를 통한 탐색 공간 축소 __4.4.1 위치 평가를 통한 탐색 깊이 축소 __4.4.2 알파-베타 가지치기를 사용해서 탐색 폭 줄이기 4.5 몬테카를로 트리 탐색을 이용한 경기 상태 평가 __4.5.1 파이썬으로 몬테카를로 트리 탐색 구현하기 __4.5.2 탐색할 가지 선택법 __4.5.3 바둑에 몬테카를로 트리 탐색 적용하기 4.6 요약 CHAPTER 5 신경망 시작하기 5.1 간단한 사례 : 손글씨 숫자 분류 __5.1.1 MNIST 숫자 손글씨 데이터셋 __5.1.2 MNIST 데이터 처리 5.2 신경망 기초 __5.2.1 단순한 인공 신경망으로의 로지스틱 회귀 __5.2.2 1차원 이상의 결과를 갖는 신경망 5.3 순방향 신경망 5.4 우리 예측은 얼마나 훌륭한가 : 손실 함수와 최적화 __5.4.1 손실 함수란 무엇인가 __5.4.2 평균제곱오차 __5.4.3 손실 함수에서의 최솟값 찾기 __5.4.4 최솟값을 찾는 경사하강법 __5.4.5 손실 함수에서의 확률적 경사하강법 __5.4.6 신경망에 기울기를 역으로 전파하기 5.5 파이썬을 활용한 단계별 신경망 훈련 __5.5.1 파이썬에서의 신경망층 __5.5.2 신경망에서의 활성화층 __5.5.3 순방향 신경망의 구성 요소로서의 파이썬에서의 밀집층 __5.5.4 파이썬으로 순차 신경망 만들기 __5.5.5 신경망으로 손글씨 숫자 분류하기 5.6 요약 CHAPTER 6 바둑 데이터용 신경망 설계 6.1 신경망용 바둑경기 변환 6.2 트리 탐색 게임을 신경망 훈련 데이터로 만들기 6.3 케라스 딥러닝 라이브러리 사용하기 __6.3.1 케라스 디자인 원리 이해 __6.3.2 케라스 딥러닝 라이브러리 설치 __6.3.3 케라스로 익숙한 첫 번째 문제 실행해보기 __6.3.4 케라스에서 순방향 신경망을 사용한 바둑 수 예측 6.4 합성곱 신경망으로 공간 분석하기 __6.4.1 합성곱 역할에 대한 직관적 이해 __6.4.2 케라스로 합성곱 신경망 만들기 __6.4.3 풀링층을 사용한 공간 감소 6.5 바둑 수 확률 예측하기 __6.5.1 마지막 층에서 소프트맥스 활성화 함수 사용 __6.5.2 분류 문제에서의 교차 엔트로피 손실 6.6 드롭아웃과 정류 선형 유닛을 사용해 더 깊은 신경망 구성 __6.6.1 표준화를 위해 일부 뉴런 제거하기 __6.6.2 ReLU 활성화 함수 6.7 기능 결합을 통해 더 강력한 바둑 수 예측 신경망 만들기 6.8 요약 CHAPTER 7 데이터로부터 학습하기 : 딥러닝 봇 7.1 바둑 대국 기록 가져오기 __7.1.1 SGF 파일 포맷 __7.1.2 KGS에서 바둑 대국 기록을 다운로드해서 재현하기 7.2 딥러닝용 바둑 데이터 준비 __7.2.1 SGF 기록을 사용해서 바둑 대국 재현하기 __7.2.2 바둑 데이터 전처리기 만들기 __7.2.3 데이터를 효율적으로 불러오는 바둑 데이터 생성기 만들기 __7.2.4 바둑 데이터 처리 및 생성기의 병렬 실행 7.3 인간의 대국 기록으로 딥러닝 모델 훈련하기 7.4 더 실질적인 바둑 데이터 변환기 만들기 7.5 적응 경사법을 사용해서 효율적으로 훈련하기 __7.5.1 SGD에서의 붕괴와 모멘텀 __7.5.2 에이다그래드로 신경망 최적화하기 __7.5.3 에이다델타로 적응 경사법 조정하기 7.6 직접 실험하고 성능 평가하기 __7.6.1 모델 구조 및 하이퍼파라미터 검정 지침 __7.6.2 훈련 및 검정 데이터로 성능 지표 평가하기 7.7 요약 CHAPTER 8 맨땅에 봇 배포하기 8.1 심층 신경망으로 수 예측 에이전트 만들기 8.2 바둑봇을 웹 프론트엔드로 제공하기 __8.2.1 바둑봇 예제 처음부터 끝까지 다루기 8.3 클라우드에서 바둑봇 훈련 후 배포하기 8.4 다른 봇과의 대화에 사용할 바둑 텍스트 프로토콜 8.5 로컬에서 다른 봇과 대결하기 __8.5.1 봇이 차례를 넘기거나 기권해야 할 때 __8.5.2 봇과 다른 바둑 프로그램 간 대국 두기 8.6 바둑봇을 온라인 바둑 서버에 배포하기 __8.6.1 온라인 바둑 서버에 봇 등록하기 8.7 요약 CHAPTER 9 체험을 통한 학습 : 강화학습 9.1 강화학습 주기 9.2 경험을 통해 어떻게 달라질까 9.3 학습 가능한 에이전트 만들기 __9.3.1 확률분포에 따른 샘플링 __9.3.2 확률분포 제한 __9.3.3 에이전트 초기화 __9.3.4 물리 장치로부터 에이전트 불러오고 저장하기 __9.3.5 수 선택 구현 9.4 자체 대국 : 컴퓨터 프로그램이 연습하는 방법 __9.4.1 경험 데이터 나타내기 __9.4.2 대국 시뮬레이션 9.5 요약 CHAPTER 10 정책 경사를 사용하는 강화학습 10.1 임의의 경기에서 좋은 결정을 정의하는 방법 10.2 경사하강법을 사용해서 신경망 정책 수정하기 10.3 자체 대국 훈련 팁 __10.3.1 성능 향상 평가하기 __10.3.2 작은 성능 차이 측정하기 __10.3.3 확률적 경사하강(SGD) 최적화기 10.4 요약 CHAPTER 11 가치 기법을 사용하는 강화학습 11.1 Q-학습을 사용한 대국 11.2 케라스로 Q-학습 만들기 __11.2.1 케라스로 입력값이 둘인 신경망 만들기 __11.2.2 케라스로 ε-탐욕 정책 구현하기 __11.2.3 행동-가치 함수 훈련 11.3 요약 CHAPTER 12 행위자-비평가 방식 강화학습 12.1 어느 결정이 중요한지는 어드밴티지가 알려준다 __12.1.1 어드밴티지란 무엇인가 __12.1.2 자체 대국 중에 어드밴티지 구하기 12.2 행위자-비평가 학습용 신경망 설계 12.3 행위자-비평가 에이전트를 사용한 대국 12.4 경험 데이터로 행위자-비평가 에이전트 훈련하기 12.5 요약 [Part 3 전체는 부분의 합보다 크다] CHAPTER 13 알파고 : 모든 AI 기법의 합작품 13.1 알파고의 신경망 훈련 __13.1.1 알파고의 신경망 구조 __13.1.2 알파고 바둑판 변환기 __13.1.3 알파고 스타일의 정책 신경망 훈련하기 13.2 정책 신경망으로 자체 대국 부트스트래핑 13.3 자체 대국 데이터로 가치 신경망 도출하기 13.4 정책 신경망과 가치 신경망을 사용한 탐색 개선 __13.4.1 신경망으로 몬테카를로 롤아웃 개선하기 __13.4.2 결합 가치 함수를 사용한 트리 탐색 __13.4.3 알파고의 탐색 알고리즘 구현 13.5 각자의 알파고를 훈련할 때 실제로 고민해야 할 부분 13.6 요약 CHAPTER 14 알파고 제로 : 강화학습과 트리 탐색의 결합 14.1 트리 탐색용 신경망 만들기 14.2 신경망으로 트리 탐색 안내하기 __14.2.1 트리 따라 내려가기 __14.2.2 트리 확장 __14.2.3 수 선택 14.3 훈련 14.4 디리클레 잡음을 사용한 탐색 향상 14.5 더 깊은 신경망을 만드는 현대적 기법 __14.5.1 배치 정규화 __14.5.2 잔차 신경망 14.6 추가 참고 자료 14.7 정리 14.8 요약 부록 A 수학 기초 부록 B 역전파 알고리즘 부록 C 바둑 프로그램 및 서버 부록 D 아마존 웹서비스를 사용한 봇 훈련 및 배포 부록 E 온라인 바둑 서버에 봇 등록하기 |
Max Pumperla
막스 펌펄라의 다른 상품
권정민의 다른 상품
★ 딥러닝 바둑봇을 만들며 딮러닝을 깊게 이해하자
이 책을 덮을 때쯤 알파고 형태의 바둑 엔진이 어떻게 구현되었는지 이해하게 될 뿐만 아니라 몬테카를로 트리 탐색, 딥러닝, 강화학습 같은 현대 AI 알고리즘의 주요 구성 요소를 매우 실질적으로 이해할 수 있게 될 것이다. 저자는 실제로 돌려볼 수 있는 흥미로운 바둑 예제를 사용해서 이런 기술 주제를 조심스럽게 연결해두었다. 그외에도 지금까지 발명된 세상 모든 게임 중 가장 아름답고 도전적인 바둑의 기초 지식도 배우게 될 것이다. ★ 알파고 동작하는 딥러닝 바둑봇을 만들고 배포하라 실제로 작동하는 파이썬 코드도 제시하고, 개념 설명도 훌륭하다. 책 내용을 익히면 바둑봇 직접 구현할 수 있도록 안내한다. 바둑봇이 작동하는 데 필요한 데이터 포맷, 배포, 클라우드 컴퓨팅 같은 주제도 자세히 다룬다. 온라인 바둑 서버에 봇을 등록하는 방법도 알려준다. 한 마디로 이 책은 현대 인공지능과 머신러닝을 장착한 바둑봇을 만드는 전 과정을 알려준다. ★ 다루는 핵심 내용 1. 스스로 학습하는 게임 AI를 만들고 훈련하기 2. 고전 게임 AI를 딥러닝으로 개선하기 3. 딥러닝에 사용하는 신경망을 구현하기 ★ 장별 요약 [1부 기초] 책의 나머지 부분에서 다루는 주요 개념을 소개한다. _1장 딥러닝을 향해 - 머신러닝 기초, 인공지능, 머신러닝, 딥러닝의 고차원적인 개요를 가볍게 제시한다. 이들이 어떻게 서로 연관되어 있는지, 그리고 이 분야의 기술로 할 수 있는 것과 없는 것을 설명한다. _2장 머신러닝 문제로서의 바둑 바둑의 규칙을 소개하고 컴퓨터에 게임을 가르칠 때 무엇을 해야 하는지 설명한다. _3장 첫 번째 바둑봇 만들기 바둑판을 만들고, 그 위에 바둑돌을 놓고, 풀게임을 하는 부분까지 파이썬으로 구현한다. 이 장을 마치면 가장 단순한 바둑 AI가 실제로 작동하게 만들 수 있다. [2부 머신러닝과 게임 AI] 강력한 바둑 AI를 만들 수 있는 기술적, 이론적 기반을 설명한다. 특히 알파고에서 매우 효과적으로 사용한 트리 탐색, 신경망, 강화학습의 세 가지 기법을 소개한다. _4장 트리 탐색을 통한 경기 경기의 각 차례에서 탐색과 평가를 하는 알고리즘을 전반적으로 설명한다. 단순한 무작위 대입 미니맥스 탐색 방식을 만드는 것부터 시작해서 알파-베타 가지치기, 몬테카를로 탐색 같은 고급 알고리즘까지 만들어본다. _5장 신경망 시작하기 인공 신경망을 실질적으로 소개한다. 손으로 쓴 숫자를 맞추는 신경망을 파이썬으로 처음부터 구현해볼 것이다. _6장 바둑 데이터용 신경망 설계 바둑 데이터가 이미지 데이터와 어떤 유사한 특징을 가지고 있는지 설명하고 수 예측을 위한 합성곱 신경망을 소개한다. 이 장에서는 모델을 만드는 데 유용한 딥러닝 라이브러리인 케라스를 사용한다. _7장 데이터로부터 학습하기 : 딥러닝 봇 앞의 두 장에서 얻은 지식을 사용해서 심층 신경망 바둑봇을 만든다. 아마추어 게임에서 가져온 실제 경기 데이터로 봇을 훈련시키고 이 방법의 한계를 지적한다. _8장 맨땅에 봇 배포하기 봇을 외부에 제공해서 사용자 인터페이스를 통해 사람이 봇과 경기를 할 수 있도록 할 것이다. 이때 봇이 로컬과 바둑 서버 두 곳에서 다른 봇과 어떻게 경기를 하게 만드는지도 배울 것이다. _9장 체험을 통한 학습 : 강화학습 강화학습 기초와 이를 바둑에서 혼자 경기를 하는 데 어떻게 사용할 수 있는지 알아본다. _10장 정책 경사를 사용하는 강화학습 7장의 수 예측을 개선하는 데 필수적인 방법인 정책 경사(policy gradients)를 차근차근 소개한다. _11장 가치 기법을 사용하는 강화학습 4장의 트리 탐색과 결합했을 때 매우 강력해지는 수단인 가치 기법(value method)을 사용해서 바둑판에서의 위치에 값을 매기는 방법을 살펴본다. _12장 행위자-비평가 방식 강화학습 바둑판에서의 위치와 다음 수가 주어졌을 때의 장기적인 가치를 예측함으로써 다음 수를 효과적으로 고를 수 있도록 하는 기법을 소개한다. [3부 전체는 부분의 합보다 크다] 앞서 개발한 모든 구성 요소를 알파고처럼 애플리케이션으로 합치면 그 성능이 최고에 달한다. 알파고와 알파고 제로를 설명한다 _13장 알파고 : 모든 AI 기법의 합작품 기술적 및 수학적으로 이 책의 최고점이라고 할 수 있다. 이 장에서는 처음에는 신경망으로 바둑 데이터를 훈련하고(5~7장) 이를 통해 혼자 경기를 치르게 하고(8~11장) 여기에 똑똑한 트리 탐색 방식(4장)을 결합하여 초인 수준의 바둑봇을 만드는 방법을 논의한다. _14장 알파고 제로 : 강화학습과 트리 탐색의 결합 이 책의 마지막 장으로, 보드게임 AI의 현재 최신 동향을 다룬다. 알파고 제로의 동력인 트리 탐색과 강화학습의 혁신적인 조합을 자세히 살펴볼 것이다. [부록 A 수학 기초] 선형대수학과 미적분학의 기초를 되짚어보고, 파이썬 라이브러리인 NumPy로 몇 가지 선형대수를 나타내는 방법을 보여준다. [부록 B 역전파 알고리즘] 5장에서 사용했던 다수의 신경망에서의 학습 과정을 보다 수학적으로 자세히 설명한다. [부록 C 바둑 프로그램 및 서버] 바둑을 더 알고자 하는 독자를 위한 추가 자료를 제공한다. [부록 D 아마존 웹서비스를 사용한 봇 훈련 및 배포] 봇을 아마존 클라우드 서버에서 동작하게 하기 위한 내용을 안내한다. [부록 E 온라인 바둑 서버에 봇 등록하기] 우리가 만든 봇을 전 세계의 바둑 선수들이 시험해볼 수 있도록 유명한 바둑 서버에 연결하 는 방법을 설명한다. |
“현대 인공지능과 머신러닝을 읽기 쉽고 이해하기 쉽게 소개한다.” - 토레 그레펠 (딥마인드 수석 연구원)
|
“머신러닝을 가르치는 용도로 바둑을 사용하다니! 감동적이고 고무적이다. 적극 추천한다.” - 버크 후프나겔 (도허티 비즈니스 솔루션)
|
“현 시대 가장 흥미로운 기술을 근사하게 소개한다.” - 헬무트 하우실트 (HSEC)
|