강화 학습(Reinforcement Learning) 7

강화학습 CartPole 예제 구글 Colab으로 이렇게? 여기서부터?

Frozen Break 에 이은 강화학습(reinforcement learning) 예제는 CartPole 이다. 이는 밸런싱 로봇과 같이 폴대를 넘어뜨리 않도록 하부의 대차를 적절히 움직여야 하는 PID 제어공학적 문제로 알려져 있으나 강화학습에서는 PID 제어와 같은 개념을 사용하는 것이 아니라 Cost 함수를 설정하고 최소화 해 나가는 과정일 것이다. 이 블로그 내용은 인터넷 사이트에 올려둔 구글 Colab 코드 즉 GymRendering.ipynb (https://colab.research.google.com/drive/16gZuQlwxmxR5ZWYLZvBeq3bTdFfb1r_6#scrollTo=6L4YayzR4FYj)를 불러 그대로 실행해 보는 것으로 한다. 게임에서의 Reinforcement ..

강화학습 Stochastic FrozenLake-v3 DQN

텐서플로우 regression 방식으로 학습하는 알고리듬을 검토해 보자. 이 알고리듬은 유튜브 sung kim의 동영상 강좌 lab 7-1:DQN 1(NIPS 2013) (https://www.youtube.com/watch?v=Fbf9YUyDFww )에서 설명하는 코드 내용을 그대로 타이핑하여 작성하였다. 영상 저자에 의하면 이 샘플 코드의 알고리듬은 이세돌과의 바둑대국 알파고로 유명세를 떨쳤던 영국의 인공지능 회사 지금은 이미 구글에 흡수되어버린 Deep Mind 사에서 개발한 알고리듬으로서 국제적으로 유명한 탑클래스 학술지인 Nautre지에 2013년 소개된 논문이라고 한다. 아울러 reinforcemt learning 을 연구하시는 분은 꼭 sung kime 의 구독자가 되셔서 강의 6-1부터 순..

강화학습 Stochastic FrozenLake-v3 Low Pass Filter 방식 알고리듬 적용

※파이선 코딩 초보자를 위한 텐서플로우∙OpenCV 머신 러닝 2차 개정판 발행 http://blog.daum.net/ejleep1/1175 파이선 코딩 초보자를 위한 텐서플로우∙OpenCV 머신 러닝 2차 개정판 (하이퍼링크) 목차 pdf 파일 본서는 이미 2021년 11월 초부터 POD코너에서 주문 구입이 가능합니다. 참고로 책 목차에 따른 내용별 학습을 위한 코드는 이미 대부분 다음(Daum)블로그에 보관되어 있으며 아래에서 클릭하면 해당 blog.daum.net Deterministic에서 Stochastic 으로 조건을 바꿀 경우 다음과 같이 성공률이 아주 저조하게 얻어진다. 이러한 성공률을 높일 수 있도록 Low Pass Filtering 방식과 유사한 알고리듬을 개량해 보자. action 에..

강화학습 Deterministic FrozenLake-v3 예제 게임규칙

헤더 영역에서 gym, numpy, matolotlib, random, register 를 불러 들인디. register 라이브러리는 FrozenLake-v3에 특화하여 NxN 캔버스 구성 및 여러가지 파라메터 설정을 지원하며 이미 GYM 설치 시에 함께 설치된 듯하다. random 은 단순히 최대값을 구하는 argmax 에 random 성을 부여할 수 있도록 별도 함수 rargmax()로 구성하는데 사용된다. 랜덤성이 없을 경우에는 deterministic하게 방향 설정하는대로 정확하게 움직이지만 랜덤성이 주어지면 어느 방향으로 움직일지 모르게 되는 것이다. 이와같이 움직임이 불확실해지는 경우 stochastic이라 한다. 만약 학습이 많이 진행되게 되면 랜덤성을 점차 줄이고 deterministic ..

강화 학습 Frozen Lake-v1 텍스트 출력 게임

Reinforcement Learning 을 스터디해 나가기 위한 첫 단계에 등장하는 Frozen Lake 텍스트 유형 게임을 소개해보자. 인터넷에 많은 자료가 널려 있음에도 불구하고 막상 사용자가 해보면 어딘가에 장해가 있어 성공하지 못하는 경우를 일주일 가량 겪었다. 흔히 부딪치는 이런 류의 문제는 사실 특별한 해결책이 없으나 여러번 시행착오를 하다보면 특히 운이 좋을 경우 그 해답을 발견하곤 한다. 그다지 어려운 코드 작성은 아니지만 적어도 reinforced learning 코드 작성을 위해서는 한번 다루어 보아야 할 코드이다. 특히 이 주제를 처음 다룰 경우에는 is_slippery=False 조건하에서 움직이는 방향을 지정해 줄 경우 확정적으로 그 방향으로 움직인 결과를 얻어낼 수 있어야 게임..

강화 학습 OpenAI GYM 시작 FROZEN LAKE-V1 예제 게임규칙 소개

사용자가 신나게 키보드나 조이스틱으로 입력하는 게임을 생각할지는 모르겠으나 막상 컴퓨터 AI가 게임을 진행하기 위해서는 진정한 의미의 학습 또는 훈련이 가능한 AI 알고리듬이 필요할지도 모르겠다. 도대체 컴퓨터 화면 앞이나 또는 가상세계에서 하게 되는 게임의 진정한 특성은 과연 무엇인가? 수많은 게임들이 있지만 대개는 현재 상태로부터 액션을 계속적으로 가져가 목표 즉 Goal 을 달성하는 것이다. 아래의 Frozen Lake 게임도 에이전트가 호수(Lake) 라는 환경(Environment) 내에서 상하좌우로 안전하게(Safe) 한 스텝씩 움직여서 잘 얼어 있는 얼음(Frozen Lake) 지역을 통과하여 위험한 구멍(Hole)영역에 빠지지 않고 목표(Goal)에 도달하여야 보상(Reward)을 받게된다..

강화학습(Reinforcement Learning) 코드작성을 위한 OpenAI GYM 라이브러리 설치

게임의 지능적 학습을 목표로 하는 강화학습(Reinforcement Learning)은 수많은 인공지능 연구가의 흥미를 끌고 있다. 대표적인 예로서 수년 전 엄청난 흥행을 보여 주었던 영국의 딥마인드사와 이세돌 기사와의 정상급 바둑 대국을 생각할 수 있을 것이다. 이 즈음에 구글에 1조 가량의 거금으로 딥마인드사가 팔리는 과정에서 딥마인드사의 프로그래머가 실리콘벨리를 방문하여 데모로 보여 주었던 RL 게임이 바로 벽돌격파 게임이었다. 벽돌깨기를 비롯한 수많은 게임이 있지만 개인들이 코드를 다루기 쉽지않은데 그 이유는 알고리듬 연구 이전에 게임 그래픽을 컴퓨터 화면에 띄우는 단계에서 99% 실패함으로서 많은 개발자들을 좌절하게 만들고 있는 것이 현실이다. 특히 OpenAI GYM 홈페이지에 언급된 설치 방..