Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

알파고 해부하기 1부

알파고를 해부해봅시다
(4국 알파고 멘붕의 101수에 대한 인공지능 연구자 입장에서의 간단한 생각 포함)
* 이메일 주소 오류수정했어요

알파고 해부하기 1부

  1. 1. 알파고 해부하기 1부 이동헌 donghun2014@gmail.com
  2. 2. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 2. 바둑인들을 위한 알파고 3/13/2016 알파고 해부하기 1부 © 이동헌 2
  3. 3. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 • 관심있으신 분 누구든지 • 알파고의 기본원리와 정체를 쉽게 설명 2. 바둑인들을 위한 알파고 3/13/2016 알파고 해부하기 1부 © 이동헌 3
  4. 4. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 • 관심있으신 분 누구든지 • 알파고의 기본원리와 정체를 쉽게 설명 2. 바둑인들을 위한 알파고 • 알파고를 바둑으로 상대할 분들에게 • 알파고의 바둑 자체를 알고 싶은 분들에게 • 알파고의 구조와 바둑 원리를 수식 없이 최대한 자세히 설명 3/13/2016 알파고 해부하기 1부 © 이동헌 4
  5. 5. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 2. 바둑인들을 위한 알파고 • 많은 피드백 감사드립니다! 그 중… • 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요? • 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요? • 이거 “썰”인거같은데? 전문가이신가요? 3/13/2016 알파고 해부하기 1부 © 이동헌 5
  6. 6. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 2. 바둑인들을 위한 알파고 • 많은 피드백 감사드립니다! 그 중… • 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요? • 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요? • 이거 “썰”인거같은데? 전문가이신가요? • 간단히 해명부터 하겠습니다 3/13/2016 알파고 해부하기 1부 © 이동헌 6
  7. 7. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 2. 바둑인들을 위한 알파고 • 많은 피드백 감사드립니다! 그 중… • 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요? • 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요? • 이거 “썰”인거같은데? 전문가이신가요? • 간단히 해명부터 하겠습니다  • 쉽게 • 하지만, 최대한 정확하게 • 알파고에 대한 지식을 함께하기 위해… • 기존 두 개의 “쉬운” 알파고 게시물을 쓸 때 저는 다음과 같은 태도로 임했습니다 1. 알파고 원리에 대한 가장 신뢰성있는 원자료 (구글 알파고 팀이 2016년 출판한 네이쳐 논문 – 아래 참조)를 주 근거자료로, Mastering the game of Go with deep neural networks and tree search [바로가기] 2. 다른 근거자료는 위 주 근거자료의 내용과 논리상충되지 않을 경우에만 내용참고하며, 3. 제가 최선을 다해 읽어본 뒤 정확하게 이해했다고 생각되는 내용만 골라서, 4. 능력껏 최대한 쉽게 풀어쓴 후, 5. “틀리다고 반박할 명확한 근거는 없다” 라고 스스로 납득하는 것을 공유한다 3/13/2016 알파고 해부하기 1부 © 이동헌 7
  8. 8. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 2. 바둑인들을 위한 알파고 • 많은 피드백 감사드립니다! 그 중… • 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요? • 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요? • 이거 “썰”인거같은데? 전문가이신가요? • 간단히 해명부터 하겠습니다  • 그리고 간단히 제 소개를 드립니다 • 쉽게 • 하지만, 최대한 정확하게 • 알파고에 대한 지식을 함께하기 위해… • 기존 두 개의 “쉬운” 알파고 게시물을 쓸 때 저는 다음과 같은 태도로 임했습니다 1. 알파고 원리에 대한 가장 신뢰성있는 원자료 (구글 알파고 팀이 2016년 출판한 네이쳐 논문 – 아래 참조)를 주 근거자료로, Mastering the game of Go with deep neural networks and tree search [바로가기] 2. 다른 근거자료는 위 주 근거자료의 내용과 논리상충되지 않을 경우에만 내용참고하며, 3. 제가 최선을 다해 읽어본 뒤 정확하게 이해했다고 생각되는 내용만 골라서, 4. 능력껏 최대한 쉽게 풀어쓴 후, 5. “틀리다고 반박할 명확한 근거는 없다” 라고 스스로 납득하는 것을 공유한다 3/13/2016 알파고 해부하기 1부 © 이동헌 8
  9. 9. 시작하면서 • 간단히 제 소개를 드립니다 • 프린스턴 복학 예정이며, 연구관심분야는 불확실한 복잡계의 최적 결정방법입니다 • 원래는 고등학교때부터 생물학 공부를 많이 해 왔습니다만, • 2007년부터 인공지능, 머신러닝, 강화학습을 연구해왔습니다 2012-2015 삼성전자 메모리사업부 SW개발팀 병역특례 근무 2009-2012 프린스턴대 Computer Science 박사 (휴학) 2007-2009 카네기멜론대 Computational Biology 석사 (졸업) 2003-2007 콜럼비아대 생화학과 학사 (졸업) 3/13/2016 알파고 해부하기 1부 © 이동헌 9
  10. 10. 시작하면서 • 간단히 제 소개를 드립니다 • 프린스턴 복학 예정이며, 연구관심분야는 불확실한 복잡계의 최적 결정방법입니다 • 원래는 고등학교때부터 생물학 공부를 많이 해 왔습니다만, • 2007년부터 인공지능, 머신러닝, 강화학습을 연구해왔습니다 • 최선을 다해 알파고를 해부해보겠습니다 2012-2015 삼성전자 메모리사업부 SW개발팀 병역특례 근무 2009-2012 프린스턴대 Computer Science 박사 (휴학) 2007-2009 카네기멜론대 Computational Biology 석사 (졸업) 2003-2007 콜럼비아대 생화학과 학사 (졸업) 3/13/2016 알파고 해부하기 1부 © 이동헌 10
  11. 11. 시작하면서 • “알파고 해부하기”는 • 알파고를 정말 제대로 알고 싶은 분들에게 • 정확성을 최우선가치로 설명하려 합니다 • 이전 게시물에서는 이해의 편의를 위해 디테일을 생략하고 뭉뚱그렸지만, • 여기선 이해편의와 정확성 둘 중 하나만 골라야 된다면 정확하게 할겁니다 • 이해편의도 최대한 함께하겠습니다 3/13/2016 알파고 해부하기 1부 © 이동헌 11
  12. 12. 시작하면서 • “알파고 해부하기”는 • 알파고를 정말 제대로 알고 싶은 분들에게 • 정확성을 최우선가치로 설명하려 합니다 • 이전 게시물에서는 이해의 편의를 위해 디테일을 생략하고 뭉뚱그렸지만, • 여기선 이해편의와 정확성 둘 중 하나만 골라야 된다면 정확하게 할겁니다 • 이해편의도 최대한 함께하겠습니다 • “알파고 해부하기”의 목표 • 알파고의 내부구조를 정확하게 설명 • 알파고의 착수과정 정체와 착수특성을 정확하게 설명 • 알파고의 (기존 바둑 프로그램 대비)혁신점을 정확하게 설명 3/13/2016 알파고 해부하기 1부 © 이동헌 12
  13. 13. 당부말씀 • 정확성을 최우선가치로 씁니다 • 정확하지 않은 내용을 찾으시면 꼭! 피드백 부탁드립니다 • donghun2014@gmail.com • 내용의 한 부분만 뚝 잘라서 인용하시면 위험합니다 • 정확한 내용들이 보통 그렇듯이, 부분을 잘라내면 뜻이 달라질 수 있어요 3/13/2016 알파고 해부하기 1부 © 이동헌 13
  14. 14. 목차 • 알파고의 구조 • 알파고 소프트웨어의 구성 • 알파고 S/W의 대국시 동작법 • 알파고 S/W의 대국 전 트레이닝법 • 알파고 S/W의 혁신점 • 알파고의 혁신점 3/13/2016 알파고 해부하기 1부 © 이동헌 14
  15. 15. 목차 • 알파고의 구조 • 알파고 소프트웨어의 구성 • 알파고 S/W의 대국시 동작법 • 알파고 S/W의 대국 전 트레이닝법 • 알파고 S/W의 혁신점 • 알파고의 혁신점 3/13/2016 알파고 해부하기 1부 © 이동헌 15
  16. 16. 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 구글 데이터센터 자료사진 3/13/2016 알파고 해부하기 1부 © 이동헌 16
  17. 17. 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 구글 데이터센터 자료사진 소프트웨어 하드웨어 네트워크네트워크 3/13/2016 알파고 해부하기 1부 © 이동헌 17
  18. 18. 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 구글 데이터센터 자료사진 소프트웨어 하드웨어 네트워크네트워크 3/13/2016 알파고 해부하기 1부 © 이동헌 18
  19. 19. 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 구글 데이터센터 자료사진 네트워크네트워크 3/13/2016 알파고 해부하기 1부 © 이동헌 19
  20. 20. 알파고의 구조: 네트워크 • 네트워크는 알파고와는 별 상관 없습니다 • 바로 넘어가려고 합니다만.. • 네트워크 없이는 이번 대국장소가 한국이 아니었겠지요 • 기여하신 수많은 분들.. 존경합니다! • 인터넷 • 네트워크를 통한 신호 라우팅 • 태평양을 건너오는 라인을 만들고 유지하시는 분들 • 그 외의 모든 “네트워크”구축, 유지, 보수에 도움을 주시는 분들 3/13/2016 알파고 해부하기 1부 © 이동헌 20
  21. 21. 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 구글 데이터센터 자료사진 하드웨어 3/13/2016 알파고 해부하기 1부 © 이동헌 21
  22. 22. 알파고의 구조: 하드웨어 • 미국 중서부에 있는 구글 데이터센터 사용 • 스펙 • CPU 1920개, GPU 280개를 썼다고 합니다 • 내용출처: Economist의 구글 딥마인드 창립자 인터뷰 [링크] • 판후이 2단 경기때 (CPU 1202개, GPU 176개)보다 업그레이드 • 내용출처: Nature지 논문 [링크] • 변경점? • 병렬처리능력을 조금 더 키웠으니, 능력이 향상되었을 겁니다 • 특히, 소프트웨어 구성요소 3: Monte-Carlo Tree Search 에 따른 “수읽기” 능력이 더욱. 3/13/2016 알파고 해부하기 1부 © 이동헌 22
  23. 23. 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 구글 데이터센터 자료사진 소프트웨어 3/13/2016 알파고 해부하기 1부 © 이동헌 23
  24. 24. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 3/13/2016 알파고 해부하기 1부 © 이동헌 24
  25. 25. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 • 기술적으로는 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 3/13/2016 알파고 해부하기 1부 © 이동헌 25
  26. 26. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 • 기술적으로는 • DL: Deep Learning 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 DL DL DL DL DL 3/13/2016 알파고 해부하기 1부 © 이동헌 26
  27. 27. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 • 기술적으로는 • DL: Deep Learning • RL: Reinforcement Learning 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 RL DL DL DL DLRL RL RL RL RL DL RL 3/13/2016 알파고 해부하기 1부 © 이동헌 27
  28. 28. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 • 기술적으로는 • DL: Deep Learning • RL: Reinforcement Learning • MCT Monte-Carlo Tree Search 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 RL MCTS DL DL DL DLRL RL RL RL MCTS RL MCTS DL RL 3/13/2016 알파고 해부하기 1부 © 이동헌 28
  29. 29. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 • 기술적으로는 • DL: Deep Learning • RL: Reinforcement Learning • MCT Monte-Carlo Tree Search • 3가지 큰 틀이 있습니다 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 RL MCTS DL DL DL DL DLRL RL RL RL MCTS RL MCTS RL 3/13/2016 알파고 해부하기 1부 © 이동헌 29
  30. 30. 알파고의 구조: 소프트웨어 • 지금부터는… • 모듈을 크게 3종류로 • 주요 알고리즘에 따라서 • Deep Learning부분 • Reinforcement Learning부분 • Monte-Carlo Tree Search부분 • 알고리즘의 이론에 대해서는 필요한 순간 필요최소량만. 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 DL DL DL DLRL RL RL RL MCTS RL MCTS RL 3/13/2016 알파고 해부하기 1부 © 이동헌 30
  31. 31. 목차 • 알파고의 구조 • 알파고 소프트웨어의 구성 • 알파고 S/W의 대국시 동작법 • 알파고 S/W의 대국 전 트레이닝법 • 알파고 S/W의 혁신점 • 알파고의 혁신점 3/13/2016 알파고 해부하기 1부 © 이동헌 31
  32. 32. 알파고 소프트웨어의 구성 • 먼저 살펴볼 것은알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 DL DL DL DLRL RL RL RL MCTS RL MCTS RL 3/13/2016 알파고 해부하기 1부 © 이동헌 32
  33. 33. 알파고 소프트웨어의 구성 • 먼저 살펴볼 것은 • 바둑판 상황인식 • Deep Learning 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 DL DL DLRL RL RL RL MCTS RL MCTS RL 바둑판 현상황 인식 프로그램DL 3/13/2016 알파고 해부하기 1부 © 이동헌 33
  34. 34. 알파고 S/W 구성: Deep Learning • Deep Learning 이야기는 너무너무 많이 다뤄졌습니다 • 인터넷에 이미 많이 있고 책도 논문도 많습니다 • 여기서는 • 최소한의 이론적 배경과 • 어떻게 알파고에 적용해 넣었는지를 보겠습니다 3/13/2016 알파고 해부하기 1부 © 이동헌 34
  35. 35. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 확장 (1991년) [바로가기] 3/13/2016 알파고 해부하기 1부 © 이동헌 35
  36. 36. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 좀 더 일반화된 확장 (1991년) 3/13/2016 알파고 해부하기 1부 © 이동헌 36
  37. 37. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 좀 더 일반화된 확장 (1991년) 특정 조건 만족하는 함수들 (1991년 논문은 이 부분을 확장합니다) 3/13/2016 알파고 해부하기 1부 © 이동헌 37
  38. 38. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 좀 더 일반화된 확장 (1991년) 유한 개를 선형으로 합하면 3/13/2016 알파고 해부하기 1부 © 이동헌 38
  39. 39. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 좀 더 일반화된 확장 (1991년) 어떠한(*) 함수 𝑓(𝑥)이든지 임의의 정확도로 근사 가능하다 (*) n차원 compact 공간에서 연속유계함수인 어떠한 함수든지 3/13/2016 알파고 해부하기 1부 © 이동헌 39
  40. 40. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 좀 더 일반화된 확장 (1991년) 세부 내용은 구성상 생략합니다 원 논문을 읽어주세요 3/13/2016 알파고 해부하기 1부 © 이동헌 40
  41. 41. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 출력단이 연속유계함수의 값들 3/13/2016 알파고 해부하기 1부 © 이동헌 41
  42. 42. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 출력단이 연속유계함수의 값들 3/13/2016 알파고 해부하기 1부 © 이동헌 42
  43. 43. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 3/13/2016 알파고 해부하기 1부 © 이동헌 43
  44. 44. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 • 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”) 3/13/2016 알파고 해부하기 1부 © 이동헌 44
  45. 45. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 • 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”) • 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념) 3/13/2016 알파고 해부하기 1부 © 이동헌 45
  46. 46. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 • 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”) • 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념) • 이 출력단 부분이 무엇이 되는지 간단히 살펴보면 3/13/2016 알파고 해부하기 1부 © 이동헌 46
  47. 47. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 • 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”) • 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념) • 이 출력단 부분이 무엇이 되는지 간단히 살펴보면 • 하나는 바둑판의 “가능한 착수들 중 다음 수가 될 확률값” • 또 다른 하나는 바둑판의 “승리로 이어질 확률값” 3/13/2016 알파고 해부하기 1부 © 이동헌 47
  48. 48. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 • 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”) • 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념) • 이 출력단 부분이 무엇이 되는지 간단히 살펴보면 • 하나는 바둑판의 “가능한 착수들 중 다음 수가 될 확률값” • 또 다른 하나는 바둑판의 “승리로 이어질 확률값” • “유계”는 당연, “연속”부분은 컴퓨터 한계상 어차피 “조밀”한 실수 표현불가 (언더플로우) 3/13/2016 알파고 해부하기 1부 © 이동헌 48
  49. 49. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 진행상 수학적으로 살짝 건너뛴 부분 • 컴퓨터 S/W 입장에서 필요한 정도만 설명했습니다 • 수학적으로 관심있는 분들은 직접 채워서 이해하실 수학적 지식이 있을것이고 • 이해 안가시는 분들은 그냥 넘어가주세요 (굳이 필요하지 않습니다) 3/13/2016 알파고 해부하기 1부 © 이동헌 49
  50. 50. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 진행상 수학적으로 살짝 건너뛴 부분 • 컴퓨터 S/W 입장에서 필요한 정도만 설명했습니다 • 수학적으로 관심있는 분들은 직접 채워서 이해하실 수학적 지식이 있을것이고 • 이해 안가시는 분들은 그냥 넘어가주세요 (굳이 필요하지 않습니다) • 그러면 이제 바둑판을 컴퓨터용 입력값으로 매핑해봅시다 3/13/2016 알파고 해부하기 1부 © 이동헌 50
  51. 51. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 3/13/2016 알파고 해부하기 1부 © 이동헌 51
  52. 52. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 3/13/2016 알파고 해부하기 1부 © 이동헌 52
  53. 53. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 • 그래서 위의 상황을 • “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인) • “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인) • “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인) • 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다 • (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다) 3/13/2016 알파고 해부하기 1부 © 이동헌 53
  54. 54. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 • 그래서 위의 상황을 • “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인) • “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인) • “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인) • 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다 • (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다) 4국 알파고 “멘붕의 101수” 해석 Boundary condition부분 해결을 위해, 바둑판 행렬 언저리 상하좌우로 2줄씩 추가해서 23x23 행렬화 시키는 부분이 바로 이어져서 나옵니다. 3/13/2016 알파고 해부하기 1부 © 이동헌 54
  55. 55. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 • 그래서 위의 상황을 • “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인) • “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인) • “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인) • 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다 • (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다) 4국 알파고 “멘붕의 101수” 해석 Boundary condition부분 해결을 위해, 바둑판 행렬 언저리 상하좌우로 2줄씩 추가해서 23x23 행렬화 시키는 부분이 바로 이어져서 나옵니다. 이렇게 추가된 가상의 언저리에는 흑백돌이 놓인 대국이 절대 없겠지요? (알파고의 “판세분석의 불완전성” 약점) 3/13/2016 알파고 해부하기 1부 © 이동헌 55
  56. 56. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 • 그래서 위의 상황을 • “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인) • “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인) • “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인) • 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다 • (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다) 4국 알파고 “멘붕의 101수” 해석 Boundary condition부분 해결을 위해, 바둑판 행렬 언저리 상하좌우로 2줄씩 추가해서 23x23 행렬화 시키는 부분이 바로 이어져서 나옵니다. 이렇게 추가된 가상의 언저리에는 흑백돌이 놓인 대국이 절대 없겠지요? (알파고의 “판세분석의 불완전성” 약점) 가상언저리에 돌이 놓인 걸 본 적 없고, 실제로도 가장자리 단으로 연장하는 걸 별로 본 적 없는 알파고 3/13/2016 알파고 해부하기 1부 © 이동헌 56
  57. 57. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 • 그래서 위의 상황을 • “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인) • “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인) • “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인) • 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다 • (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다) 4국 알파고 “멘붕의 101수” 해석 Boundary condition부분 해결을 위해, 바둑판 행렬 언저리 상하좌우로 2줄씩 추가해서 23x23 행렬화 시키는 부분이 바로 이어져서 나옵니다. 이렇게 추가된 가상의 언저리에는 흑백돌이 놓인 대국이 절대 없겠지요? (알파고의 “판세분석의 불완전성” 약점) 가상언저리에 돌이 놓인 걸 본 적 없고, 실제로도 가장자리 단으로 연장하는 걸 별로 본 적 없는 알파고 “가장자리 너머는 돌이 안놓이던데?!!” “돌 안놓이는 방향으로 내밀면 안정적?” 3/13/2016 알파고 해부하기 1부 © 이동헌 57
  58. 58. Time Over • 벌써 월요일 아침입니다 • 화이트데이네요 • 퇴근후 남는시간에 쓰는거라 이제 끊어야 합니다 • 이해 부탁드려요… • 마침 50슬라이드 넘었습니다 (100 슬라이드씩 만들면 읽기 힘드시죠?) • 최대한 노력해서 얼른 이어서 쓰도록 하겠습니다 • 4국 알파고 기권! 이세돌 9단 정말 수고많으셨어요!!! 3/13/2016 알파고 해부하기 1부 © 이동헌 58
  59. 59. Time Over: 진행상황 • 알파고의 구조 • 알파고 소프트웨어의 구성 • 알파고 S/W 구성: Deep Learning 유관 부분 • 바둑판 인식 프로그램 • 알파고 S/W의 대국시 동작법 • 알파고 S/W의 대국 전 트레이닝법 • 알파고 S/W의 혁신점 • 알파고의 혁신점 3/13/2016 알파고 해부하기 1부 © 이동헌 59
  60. 60. 다음 이야기 • 다음 링크를 따라가세요 • 알파고 해부하기 2부 • 알파고 해부하기 3부 • 피드백/오류 제보 이메일이 필요하시면 여기로 보내주세요 • donghun2014@gmail.com 3/13/2016 알파고 해부하기 1부 © 이동헌 60

×