- 에이전트 : 강화학습을 통해 스스로 학습하는 컴퓨터
- 에이전트는 환경에 대해 사전지식이 없는 상태에서 학습
- 에이전트는 자신이 놓인 환경에서 자신의 상태를 인식한 후, 행동
- 환경은 에이전트에게 보상을 주고 다음 상태를 알려줌 -> 어떤 행동이 좋은 행동인지 간접적으로 알려줌
강화학습의 목적 : 에이전트가 환경을 탐색하면서 얻는 보상들의 합을 최대화하는 '최적의 행동양식, 정책'을 학습하는 것
강화학습의 장점
- 환경에 대한 사전지식이 없어도 학습
- 하지만 이는 초반의 느린 학습의 원인이 됨
- ex) 우리가 코딩을 처음 배울때, print('hello world')를 하며 아! 이러면 출력이 되는구나! 이런 것들도 강화학습으로 볼 수 있을 것 같네요
강화학습을 적용할 문제
- 현재 위치에서 행동을 한 번 선택하는 것이 아니라 계속적으로 선택해야 합니다. 이는 다이내믹 프로그래밍에 적용할 수 있고, 진화 알고리즘에도 적용 가능
순차적 행동 결정 문제
- 순차적으로 행동을 결정하는 문제를 '수학적'으로 정의해야 함 => MDP ( Markov Decision Process )
순차적 행동 결정 문제의 구성 요소
1. 상태 ( state )
- 현재 에이전트의 정보 ( 정적인 요소 )
- 에이전트가 움직이는 속도 ( 동적인 요소 )
- 엄밀히 말하면 상태보다는 '관찰'이 정확한 표현
2. 행동 ( action )
- 에이전트가 어떠한 상태에서 취할 수 있는 행동으로 '상','하','좌','우'같은 것들을 의미
- 어떤 행동이 좋은 행동인지 정보가 없는 경우(학습이 되지 않은 상태)엔 무작위로 행동을 취하며 특정한 행동들을 할 확률을 높임
3. 보상 ( reward )
- 에이전트가 학습할 수 있는 유일한 정보
- 보상을 통해 자신의 행동을 평가하고 어떤 행동이 더 좋은지 알 수 있음
4. 정책 ( policy )
- 모든 상태에 대해 에이전트가 어떤 행동을 해야 하는지 정해놓은 것
- 제일 좋은 정책은 최적 정책 ( optimal policy )
강화학습의 예시 : 브레이크아웃
아타리 게임
- 강화학습은 에이전트가 직접 환경과 상호작용하면서 보상을 최대화하도록 정책을 찾는 과정
- 딥마인드의 "Playing Atari with Deep Reinforcement Learing" 논문 Check!
### 1. MDP
- 상태 : 게임 화면
- 연속으로 화면 4개를 받고, 하나의 상태로 에이전트에게 제공 ( 2차원 픽셀 데이터 )
- 행동
- 제자리, 왼쪽, 오른쪽, 발사가 가능하고 브레이크 아웃에서 발사는 게임을 시작할 때 사용
- 한 상태에서 행동을 결정하면 잠깐 동안 행동을 반복 ( 4개의 화면에선 같은 행동을 해야 학습 가능! )
- 보상
- 벽돌이 하나 깨질 때마다, 보상을 (+1)씩 받고 더 위쪽을 깰수록 더 큰 보상
- 아무것도 깨지 않을 때는 보상으로 (0)을 받음
- 공을 놓쳐서 목숨을 잃을 경우엔 보상으로 (-1)을 받음
### 2. 학습
- 게임 화면에서 000이라고 되어 있는 것은 누적된 보상을 의미
- 강화학습을 통해 학습되는 것은 인공신경망
- 행동이 얼마나 좋은지가 행동의 가치가 되고 이것을 큐 함수 ( Q function )라고 함
- 이 문제에서 사용한 인공신경망은 DQN (Deep Q-Network)