본문 바로가기

기계공학부 시절의 기록/강화학습일기11

로봇 동작학습 참고할 연구들 https://www.youtube.com/watch?v=oS-9mCfKIeY https://www.youtube.com/watch?v=3wHbeq61Wn0&list=WL&index=41 2021. 12. 4.
[Temporal Difference method] Cliff example implementation 1. Intro 제레미 교수님의 Cliff 예제 구현 글 위 링크를 참고하였고 코드작성에 큰 도움을 받을 수 있었다. 위 링크에서처럼 클래스를 활용하여 코드를 작성하면 코드 가독성이 좋을 것 같다. 하지만 나는 아직 객체지향 문법에 익숙치 않아 그냥 몇 함수들을 만들어 구현하였고 이것이 지금은 더 간단하고 효율적으로 보인다. 2. 구현결과 깃허브링크 작성한 코드는 위 링크에 업로드하였다. play횟수는 1만번을 진행하였다. 500번, 1천번에 대해서도 진행하였지만 SARSA의 Optimal Policy가 정확히 원하는 결과로 나오지 않아 그냥 1만번으로 확 늘려 진행하였고 교재와 같은 결과를 얻을 수 있었다. 하지만 교재에서 아래처럼 Sum of rewards during episode를 볼 수 있는데 .. 2021. 11. 24.
[MC BlackJack] 오류 수정 및 결과도출 pi_table. action 초기화가 모두 0인지 확인하고 랜덤으로 바꾸기 왜 pi_table에 playersum이 11이 나오는지 확인하기 그런데 교재를 확인하니 Optimal policy 부분에 playerCardSum이 11부터 시작한다?! policy improvement에서 코드오류발견 - 제대로 improve되지 않는 것 수정 playerSum이 12보다 작을 때도 그대로 state로 전달하는 오류 발견. 12보다 작으면 카드를 한 장 더 뽑았을 때 무조건 21보다 작으므로 hit을 자동으로 하여 12이상의 상황에서 시작해야함. 이를 반영하여 코드 수정. not natural 상황, stack을 했을 때 비기는 상황을 만들어 놓지 않은 것 발견 - 수정 episode 5000000회 진행. .. 2021. 11. 13.
RL 개념 흐름 정리 DP, MC, TD, Sarsa, Q-learning, n-step TD, TD(lamda), Forward, Backward, Eligibility 흐름으로 왜 해당개념이 나왔는지 생각하며 정리. 2021. 11. 11.
[MC BlackJack 결과 시각화] 학습결과 그래프로 나타내기 1. 3D plot 아래 사진과 같이 모든 state(playerCardSum, DealerShowing, usableAce)에 대한 Optimal Value를 나타내려고 하였다. 아직 오류가 있어 playerCardSum이 11인 값도 나타나고 있다. 원래 12 미만의 값은 없어야 한다. 현재 이를 해결하고 있다. 아무튼 아래와 같은 3D plot자체를 만들기 위해서 꽤나 어려움을 겪었다. 아래의 소스코드 맨아래를 참고하였다. 조르디교수님코드 코드를 보면 먼저 x와 y의 범위를 지정한다. 그리고 이를 통해 meshgrid를 만든다. 똑같은 x 배열을 y길이방향으로 쭉 복사한다. 마찬가지로 y배열을 x길이방향으로 쭉 복사한다. 이렇게 만든 각각의 장판을 겹쳐서 보면 2차원상에 (x,y)쌍이 만들어진다. .. 2021. 11. 10.
[MC Blackjack-최종] 코드작성과 결과코드 및 실행영상 ** 코드 GitHub - needs-searcher/RL_Example: This is my RL Example codes This is my RL Example codes. Contribute to needs-searcher/RL_Example development by creating an account on GitHub. github.com ** 실행영상 # 기본적인 몇가지 함수는 gym 코드 참고하였다. # gym을 이용하지 않고 게임진행(episode_generate) 코드를 짜기 위해서 새롭게 코드를 작성하였다. 이에 필요한 딜러턴에서 딜러카드 score계산 함수, 학습에 필요한 pair(s,a) 중복 확인 함수, policy_improvement함수를 만들었다. # 중요하고 어려웠던 점은 .. 2021. 11. 4.
[MC-blackjack]MC에서 Q-table 어떻게 만들어? (2) Dictionary 자료형 지난글 : 에피소드 리스트 생성 지난 글에서 여러 states들을 하나의 튜플로 묶어 저장하고 스텝에 따른 state 시퀀스를 episode list [] 에 append하여 차곡차곡 쌓아 나가는 것을 공부하였다. (에피소드 리스트 생성) [MC-블랙잭] Monte Carlo에서 Q-table 어떻게 만들어? (1) 튜플 참고하기 위한 코드와 글들을 찾으며 공부한 내용을 기록하였다. 클래스를 활용한 코드들도 있고 그렇지 않은 코드들도 있었다. 코드진행을 이해하기 위해서 파이썬에서의 클래스 문법을 공부 needs-searcher.tistory.com Q-table 만들기 [문제점] 가장 중요한 것은 Q-table만들기였는데 아래와 같은 문제점이 있었다. [해결방법 : dictionary 자료형] 즉, 수많.. 2021. 11. 3.
[MC-블랙잭] Monte Carlo에서 Q-table 어떻게 만들어? (1) 튜플 참고하기 위한 코드와 글들을 찾으며 공부한 내용을 기록하였다. 클래스를 활용한 코드들도 있고 그렇지 않은 코드들도 있었다. 코드진행을 이해하기 위해서 파이썬에서의 클래스 문법을 공부하였고 블랙잭게임에서의 state 데이터를 나타내고 처리하기 위해서 튜플을 활용함을 발견하여 튜플에 대해서 공부하였다. 파이썬도 클래스 몬테카를로 방법으로 BlackJack 예제를 풀고 있다. 이전 Gambler's Problem과 같이 간단한 예제는 함수로만 진행했는데 게임룰이 조금 복잡해지고 다른 사람들의 코드들을 보다보니 클래스를 많이 쓰는 것을 볼 수 있었다. 파이썬은 절차형, cpp은 객체형 언어로 알고 있었는데 파이썬에서도 객체를 쓰나보다. '아무튼 워라벨'님의 블로그. 파이썬에서의 클래스 설명 monte carlo.. 2021. 11. 2.
BlackJack Example. Monte Carlo 21.10.23 게임룰 게임룰을 보다 정확히 알기 위해 플레이영상보기 https://www.youtube.com/watch?v=qy-D3-xGmbo 딜러를 포함한 모든 플레이어 2장씩 세팅하고 딜러는 한장만 오픈 이 후 플레이어부터 한명씩 hit, stay의 action을 통해 최종 sum 결정 모든 플레이어가 각자의 최종 sum을 만든 뒤 딜러의 나머지 카드를 오픈하고 딜러에게 정해진 규칙(Policy, 17미만 hit, 17이상 stay)에 따라 최종 sum결정 21에 더 가까운 플레이어가 승리. 과제의 목적 RL을 통해서 주어진 state에서 Optimal한 Policy를 구하는 것이 본 과제의 목적. 각각의 state에서 action마다의 value(Q function)를 구해야한다. MC의 방법.. 2021. 10. 23.
RL homework - MDP #1 Gambler's problem 이해하기 쉬운 코드 결과물은 아래의 깃허브주소에 업로드하였다. GitHub - needs-searcher/RL_Example: This is my RL Example codes This is my RL Example codes. Contribute to needs-searcher/RL_Example development by creating an account on GitHub. github.com 인터넷 상에서 몇 코드들을 보았는데 코딩 초보자로서 이해하기가 힘들었다. 본 글에서는 직접 작성한, 보다 이해하기 쉬운 코드로 RL 교과서의 예제 Gambler's Problem을 해결하였다. 해당 코드는 아래부분 [2차코드]를 보면된다. 참고로, 주피터 노트북이나 파이썬 설치가 되어있지 않더라도 google colab을 이용해.. 2021. 10. 17.
[공부 진행중] Reinforcement Learning 일기 시작 목표 [계획중] 참고자료 - SNU CML LAB 강화학습 기초 강의 : 기초적인 그리고 자세한 설명이 특징 https://www.youtube.com/watch?v=o85AaCB5Nck&list=PLKs7xpqpX1beJ5-EOFDXTVckBQFFyTxUH - POSTECH IAI LAB 강화학습 기초 강의 : 간단한 이론 정리, Jupyter Notebook으로 실습이 가능함. https://www.youtube.com/playlist?list=PLGMtjo8jDX9CjkmQOEUSoY5QMVE-D86pK - Reinforcement Learning An introduction 2nd edition. Richard S. Sutton and Andrew G. Barto 강화학습 바이블. 무료 PDF파일.. 2021. 10. 1.