상세정보
미리보기
딥러닝과 바둑
- 저자
- 막스 펌펄라,케빈 퍼거슨 공저/권정민 역
- 출판사
- 한빛미디어
- 출판일
- 2020-06-30
- 등록일
- 2020-10-13
- 파일포맷
- PDF
- 파일크기
- 17MB
- 공급사
- YES24
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
무늬만 바둑봇을 알파고 제로 성능으로 환골탈태시키자2016년 세상을 공포와 충격에 빠트린 알파고는 알파고 제로에 완패를 당해 쓸슬히 퇴역했다. 이런 알파고의 드라마틱한 역정을 지켜본 개발자라면 한 번쯤 인공지능 바둑봇을 만들고 싶다는 막연한 생각을 해봤을 것이다. 고성능 바둑봇을 만드는 방법은 생각만큼 어렵지 않다. 첫째, 파이썬 딥러닝 라이브러리인 케라스를 사용해 훈련 기법과 전략을 적용한다. 둘째, 바둑봇이 스스로 바둑을 익히는 것을 즐겁게 지켜본다. 자세한 방법은 이 책에 있다. 이 책을 탐독해 바둑봇을 만들며 익힌 딥러닝 기술을 널리 활용해보자.
저자소개
인공지능 관련 회사 skymind.ai 데이터 과학자이자 딥러닝 전문 엔지니어다. 딥러닝 플랫폼 aetros.com 공동 창업자기도 하다.
목차
[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 첫 번째 봇 만들기 : 상상 가능한 최약체 바둑 AI3.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 온라인 바둑 서버에 봇 등록하기