Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

파이썬으로 나만의 강화학습 환경 만들기

6.115 visualizaciones

Publicado el

인공지능 분야에서 강화학습은 중요한 방법론으로 떠오르고 있습니다. 이 발표에서는 강화학습의 기본 개념과 강화학습 연구용 툴킷인 OpenAI Gym에 대해 소개하고, 파이썬으로 직접 강화학습 환경을 만들고 학습시키는 방법에 대해서 알아보겠습니다.

Publicado en: Software
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

파이썬으로 나만의 강화학습 환경 만들기

  1. 1. 파이썬으로 나만의 강화학습 환경 만들기 파이콘 코리아 2017 김정주 (haje01@gmail.com)
  2. 2. 어떤 내용이에요?
  3. 3. •파이썬 프로그래머의 입장에서 •자신의 목적에 맞는 강화학습 환경을 만들고, •효율적인 학습을 위한 요건들을 살펴봅니다.
  4. 4. ‘이론’ 보다는 ‘개발’의 이야기입니다.
  5. 5. 강화학습 공부 📖 •좋은 리소스가 많이 있음 •김성훈 교수님 YouTube 강의 •Sutton 교수님 책 + David Silver 강의 •이웅원님 책 https://www.gitbook.com/book/dnddnjs/rl/details •각종 블로그 + GitHub내 프로젝트들
  6. 6. “환경”? 🌍
  7. 7. 여기에서는 두 가지 의미
  8. 8. 1. 강화학습의 ‘문제'로서의 환경
  9. 9. 2. 그것을 사용한 ‘문제 풀이 기반’으로서의 환경
  10. 10. 강화학습이란?
  11. 11. 어떤 환경(Environment) 안에서 에이전트(Agent)가
  12. 12. 현재의 상태(State)를 인식하여,
  13. 13. 보상(Reward)을 최대화하는 동작(Action)을 선택하는 방법
  14. 14. 동작 환 경 에이전트 보 상상태 관측
  15. 15. 환경 vs 에이전트 # 환경 에이전트 문제 정의 문제 풀이
  16. 16. OpenAI Gym
  17. 17. 강화학습을 위한 플랫폼의 하나
  18. 18. 설치하기 쉽고 표준적인 방식의 다양한 샘플 환경을 제공
  19. 19. 강화학습 연구에 많이 활용
  20. 20. Gym에서 제공하는 환경 •Classic Control •Algorithmic •Atari •Board games •Box2D •Toy Text •Doom
  21. 21. Doom with Deep RL https://arxiv.org/abs/1609.05521 https://www.youtube.com/watch?v=oo0TraGu6QY
  22. 22. Gym 샘플을 살펴보면… 👀
  23. 23. 강화학습 환경과 에이전트를 어떻게 구성해야할 지 알 수 있음
  24. 24. 꼭 Gym 처럼 해야 하나요?
  25. 25. 강화학습 환경이 꼭 Gym처럼 구성될 필요는 없습니다.
  26. 26. 그러나 본인의 설계 경험이 부족하고,
  27. 27. 자신의 환경을 남과 공유하고 싶다면
  28. 28. Gym 스타일을 참고하는 것이 좋을 것입니다.
  29. 29. Gym 환경 클래스 구현 🚀
  30. 30. gym.Env를 상속받고
  31. 31. _reset
  32. 32. _step
  33. 33. _render
  34. 34. 를 구현한다.
  35. 35. Gym 에이전트의 메소드 🔧 •에이전트는 아래와 같은 환경 메소드를 호출해 학습 •reset •step •render
  36. 36. 환경 에이전트 구현할 것 _reset _step _render 판단 후 동작 상태와 보상 호출할 것 reset step render
  37. 37. 환경 만들기 도전!
  38. 38. 틱택토(TicTacToe) •대전 보드 게임, 두 에이전트 •단순해 보이지만 개념을 잡는데 도움 😅 •Gym 형식을 따라 구현
  39. 39. 참고: 클래식 AI에서 틱택토 👾 Minimax
  40. 40. 예제 코드 설치 📥
  41. 41. git clone https://github.com/haje01/gym-tictactoe.git cd gym-tictactoe/ pip install -e .
  42. 42. 에이전트 예제 🎩
  43. 43. 환경과 함께 에이전트 예제가 제공되면
  44. 44. 환경이 제대로 구현되었는지 검증하고,
  45. 45. 유저가 환경의 동작에 대해 이해하는데 도움
  46. 46. examples/ 폴더 아래 에이전트가 있습니다.
  47. 47. HumanAgent 😎 •사람이 렌더링 결과를 보고 숫자를 입력해 플레이 •문제를 풀기전 환경 파악 •강화학습 에이전트 학습 후 검증에도 사용 1 2 3 4 5 6 7 8 9
  48. 48. BaseAgent 🐙 •간단한 룰 기반 에이전트 •두어서 이기는 곳이 있으면 그곳에 •아니면 랜덤 위치 •최소한의 Baseline 역할 •벤치마킹에 사용
  49. 49. 시연 📺 환경 + HumanAgent & BaseAgent
  50. 50. 환경 설계와 제작
  51. 51. 적절한 상태와 보상의 설계가 강화학습 환경 제작의 핵심
  52. 52. 보상(Reward) 방식 🎁 •‘O’의 승리는 ‘X’의 패배 → 제로섬 게임 •‘O’의 승리 보상: +1 •‘X’의 승리 보상: -1 •게임 진행 및 무승부: 0
  53. 53. ‘O’는 보상을 최대화 하려하고, ‘X’는 보상을 최소화 하려한다.
  54. 54. 상태 표현 방식 •보드의 상태를 마크 코드(‘O’: 1, ‘X’: 2)의 리스트로 •[0, 1, 2, 0, 1, 0, 0, 0, 2]
  55. 55. 그러나
  56. 56. •같은 상태라도 누구 차례인지 따라 가치가 다름 •‘O’의 차례이면 ‘O’의 승리 •‘X’의 차례이면 ‘X’의 승리
  57. 57. •따라서 (보드의 상태 + 차례)로 상태를 구성 •[0, 1, 2, 0, 1, 0, 0, 0, 2], ‘O’
  58. 58. 상태 공간, 동작 공간 🏞
  59. 59. •상태가 표현되는 공간 •틱택토의 상태 공간 → 불연속적(정수),Discrete 공간 객체 이용 •연속적 공간(실수)은 Box 공간 객체 이용
  60. 60. 같은 식으로 동작 공간도 정의
  61. 61. 환경 클래스 코드
  62. 62. # gym-tictactoe/gym_tictactoe/envs.py import gym from gym import spaces class TicTacToeEnv(gym.Env): # gym.Env를 상속 metadata = {'render.modes': [’human’]} # 렌더링 모드 def _step(self, action): ... def _reset(self): ... def _render(self, mode='human', close=False): ...
  63. 63. _reset 함수
  64. 64. def _reset(self): # 환경 초기화 self.board = [0] * 9 self.mark = ‘O’ self.done = False return self._get_obs() def _get_obs(self): # 관측한 상태 (보드의 상태 + 다음 차례 마크) 반환 return tuple(self.board), self.mark
  65. 65. _step 함수
  66. 66. def _step(self, action): # 주어진 동작을 위치로 마크를 배치 loc = action reward = NO_REWARD self.board[loc] = tocode(self.mark) # 승/패가 결정되면 마크에 맞는 리워드를 반환 status = check_game_status(self.board) if status >= 0: self.done = True if status in [1, 2]: reward = O_REWARD if self.mark == 'O' else X_REWARD # 다음 플레이어로 교체 self.mark = next_mark(self.mark) # 새 상태, 리워드, 에피소드 종료 여부 반환 return self._get_obs(), reward, self.done, None
  67. 67. _render 함수
  68. 68. def _render(self, mode='human', close=False): # human 모드에서만 보드를 표시 if mode == 'human': self._show_board() def _show_board(self): # 보드 그리기 for j in range(0, 9, 3): # 마크 코드를 문자로 0 -> ‘ ‘, 1 -> ‘O’, 2 -> ’X’ print(‘|’.join([tomark(self.board[i]) for i in range(j, j+3)])) if j < 6: printprint('-----')
  69. 69. 학습 구현
  70. 70. TD Agent 🤖 •제대로 동작하는 강화학습 에이전트 예제 •강화학습 알고리즘 중 간략화된 TD(시간차) 학습 방법 사용
  71. 71. •Model-Based vs Model-Free •On-Policy vs Off-Policy •Monte Carlo vs Temporal Difference Learning
  72. 72. 시간차 학습
  73. 73. 다음 기대 가치와 현재 가치의 차이를 학습률(alpha) 만큼 갱신(백업)
  74. 74. V(S) ← V(S) + α [V(S′) − V(S)]
  75. 75. 동작의 선택은 epsilon-greedy 방식
  76. 76. •랜덤값이 epsilon 보다 작으면 임의의 행동 •아니면 가장 가치가 높다고 판단되는 행동
  77. 77. TDAgent 코드
  78. 78. class TDAgent(object): # 상태에 대해 e-greedy정책으로 동작결정 def egreedy_policy(self, state, ava_actions): ... # 임의 동작 def random_action(self, ava_actions): ... # 상태에 대한 탐욕적 동작 def greedy_action(self, state, ava_actions): ... # 상태 가치 업데이트 def backup(self, state, nstate, reward): ...
  79. 79. egreedy_policy 함수
  80. 80. def egreedy_policy(self, state, ava_actions): e = random.random() # 랜덤 값이 epsilon 보다 작으면 if e < self.epsilon: # 임의의 동작 선택 action = self.random_action(ava_actions) else: # 아니면 가치 기준으로 동작 선택 action = self.greedy_action(state, ava_actions) return action
  81. 81. greedy_action 함수
  82. 82. def greedy_action(self, state, ava_actions): ava_values = [] # 모든 가능한 동작에 대해 for action in ava_actions: # 동작 후 상태의 가치를 구함 nstate = self.after_action_state(state, action) nval = self.ask_value(nstate) ava_values.append(nval) c # 그중 ‘O’는 최대 가치, ‘X’는 최소 가치의 동작을 선택 val_arr = np.array(ava_values) if self.mark == 'O': midx = np.argwhere(val_arr == np.max(val_arr)) else: midx = np.argwhere(val_arr == np.min(val_arr)) aidx = np.random.choice(midx.ravel()) action = ava_actions[aidx] return action
  83. 83. backup 함수
  84. 84. def backup(self, state, nstate, reward): # 지금 상태와 다음 상태의 가치를 구함 val = self.ask_value(state) nval = self.ask_value(nstate) diff = nval - val # 두 값의 차이에 학습률을 곱해 갱신 val = val + self.alpha * diff V(S) ← V(S) + α [V(S′) − V(S)]
  85. 85. 학습은 두 TDAgent 간의 자가 대전(Self-Play)로 진행
  86. 86. 시연 📺 TDAgent (learn & play, 결과 데이터)
  87. 87. 꽤 하는 것 같지만…?
  88. 88. 아직 완벽(Unbeatable)하지는 않음.
  89. 89. 그러나 여기까지도 시행착오가 있었습니다.
  90. 90. 문제 1 설계 오류
  91. 91. •학습된 상태의 보상 오류 •상태별 방문 횟수가 편향 •학습된 모델은 Text로 저장하여 확인
  92. 92. 문제 2 부적절한 하이퍼 패러미터
  93. 93. •보상이 잘 반영되지 않음 → 학습률(alpha)이 작음 •들쭉 날쭉한 결과 → 학습률이 큼(Overshooting) •상태 방문 횟수가 편향 → 탐험률(epsilon) 크게
  94. 94. 그리고 무엇보다…
  95. 95. 많은 학습 테스트. X
  96. 96. 무작정 플레이를 ‘많이’ 시킬 것이 아니라
  97. 97. 학습이 ‘되고’ 있는지를 검증해야
  98. 98. 강화학습은 본질적으로 확률적인 (Stochastic) 학습
  99. 99. 학습의 성능은 모델과 하이퍼 패러미터 등에 의해 끊임 없이 출렁이고,
  100. 100. 개발은 구현상 문제와 학습의 성능 사이에서 진흙탕에 빠짐
  101. 101. 코딩에 TDD가 있다면,
  102. 102. 기계학습에는 벤치마킹!
  103. 103. 벤치마킹 ⚖ •수작업 없이 성능을 비교할 수 있는 코드 •BaseAgent를 기준(=Baseline)으로 많은 플레이 후 평가
  104. 104. 지지 않는 에이전트를 위해서는
  105. 105. 최적의 하이퍼 패러미터가 필요!
  106. 106. 하이퍼 패러미터 찾기 🎛 •벤치마크가 있다고 해도 지루한 반복 작업 •컴퓨터에게 시키면?
  107. 107. Grid Search 🔍
  108. 108. 하이퍼 패러미터들의 다양한 조합을,
  109. 109. 동시에 병렬(분산) 워커를 띄워 벤치마킹시키고
  110. 110. 가장 성능이 우수한 조합을 알려준다.
  111. 111. 시연 📺 TDAgent (bench, grid search)
  112. 112. GridSearch로 찾은 Alpha, Epsilon의 평가 (붉은 부분이 최적)
  113. 113. 이렇게 하면
  114. 114. 코드에 변화가 있어도 안심
  115. 115. 마무리 🌇
  116. 116. 정리 5 •잘 설계된 강화학습 환경과 에이전트를 만들자. •적절한 상태 및 보상을 선택하자. •Baseline을 만들어 벤치마킹하고, Grid Search를 활용하자.
  117. 117. 프로그래머에게 AI는?
  118. 118. AI 분야는 이론이 어렵지만, 프로그래밍 실력이 있다면 유리.
  119. 119. 공부하기 좋아하는 프로그래머는 도전해볼 만.
  120. 120. 앞으로의 미래는
  121. 121. 일일이 지시하는 코딩이 아닌,
  122. 122. 컴퓨터가 공부할 수 있는
  123. 123. 환경을 만들어주는 것이 프로그래머의 역할일지도…
  124. 124. 한편, 또다른 도전자…
  125. 125. (선택적) 시연 📺 Racetrack, Billiard
  126. 126. 공부하고, 도전해보면 어떨까요?
  127. 127. 감사합니다.
  128. 128. 참조 링크 •https://ko.wikipedia.org/wiki/강화_학습 •https://gym.openai.com •http://www.incompleteideas.net/sutton/book/the-book-2nd.html •https://en.wikipedia.org/wiki/Game_complexity#Example:_tic-tac- toe_.28noughts_and_crosses.29 •http://neverstopbuilding.com/minimax

×