일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 모두를 위한 딥러닝]
- Interrupt
- 텐서플로우
- GPIO
- LED
- 밑바닥부터 시작하는 딥러닝
- 모두를 위한 딥러닝
- TensorFlow
- function call
- LED 제어
- Router
- RDT
- file descriptors
- 신경망 첫걸음
- Generalized forward
- 디바이스 드라이버
- 신경망
- 딥러닝
- 인터럽트
- 스위치
- 운영체제
- Network layer
- 펌웨어
- Switch
- demultiplexing
- 리눅스
- Linux
- Transport layer
- Class Activation Map
- 3분 딥러닝
- Today
- Total
건조젤리의 저장소
3-1. Dummy Q-learning 본문
김성훈 교수님의 강의내용을 정리한 내용입니다.
출처 : http://hunkim.github.io/ml/
Agent가 a 방향으로 이동하게 되면 현재 상태가 바뀌게 된다. (S1, S2)
그리고 이 행동에 대한 보상을 받게되는데 목표지점에 갔을 경우에만 1점을 얻게된다. (그 외: 0점)
하나의 행동이 아닌 전체적인 결과로 보상을 받기 때문에 Agent가 목표를 찾아가기 어려울 수 있다.
Agent의 움직임을 결정할 때 랜덤하게 결정하는 방법보다 더 나은 방법은 무엇일까?
진행 방향을 선택했을 경우 얻을 수 있는 점수를 알려주는 함수가 있으면?
Q에게 상태와 행동을 입력으로 주게되면 받을 수 있는 보상을 알려준다.
위의 경우, RIGHT방향으로 진행하는 것이 좋은 방법일 것이다. (최대값 선택)
Q가 가진 최대값(max), 최대값일 때의 a(argmax)
매 상태에서 Q가 가질수 있는 최대값의 방향으로 움직인다면 좋은 방법! -> Optimal Policy (pi)
Q가 알려주는 방향으로 진행하면 된다!
그렇다면 Q는 어떻게 학습할까?
먼저 s' 에서 Q가 존재한다고 가정한다.
Q(s,a) 는 r + max Q(s',a')로 표현이 가능하다.
이를 계속 반복하면 학습이 된다고 한다.
s의 위치에서 a 행동을 취하면 r + max Q(s',a') 값을 얻는다.
얻을 수 있는 정보는 위와 같은 연속된 정보이다.
보상의 총 합은?
위와같은 식으로 나타낼 수 있다.
현재 Q값은 현재의 보상값과 그 다음 단계의 최대 Q값의 합이다.
Table을 이용하여 구현해보자.
모든 Q값을 0으로 초기화한다.
흰 지역에서는 0값을 계속 얻게된다.
녹색지역으로 가게되면 1을 보상받게 된다. (업데이트 된다)
그 다음 반복에서 이전 블럭으로 오게 된다면 1이 전파되게 된다.
학습을 통해 1이 업데이트 되었다.
위 그림의 순서를 나타내면 위와 같다.
'공부 기록 > 모두를 위한 딥러닝 (RL)' 카테고리의 다른 글
4-1. Q-learning (0) | 2019.11.19 |
---|---|
3-2. Dummy Q-learning 구현 (0) | 2019.11.18 |
2-2. Playing OpenAI GYM Games (0) | 2019.11.18 |
2-1. Playing OpenAI GYM Games (0) | 2019.11.18 |
1. Reinforcement learning (0) | 2019.11.18 |