2017년 10월 23일 월요일

강화학습 cs231n

- 강화 학습은 2013년에 등장했고, 인터넷에 한글자료도 많지만 활용률은 아직 인듯.
- 에이전트(게이머), 환경(게임), 보상(점수), 과 Goal(승리), 액션(조종), 상태(게임화면)
- 도립진자와 같은 간단한 문제와 로봇제어 같이 복잡한 문제 예시
- MDP(마르코프 결정 과정)과 마르코프 체인, 마르코프 프로퍼티 이야기
- 동전 던지기와 로또 복권 그리고 게임 은 마르코프 프로세스 인가?
- MDP는 누적 할인 보상을 최대로 갖는 정책을 찾는것.
- 그리드월드에서 최단경로를 찾는 MDP 예시
- 최적 정책을 찾을때 변수들의 랜덤함을 다루기 위해 기대값 개념 도입. 확률과 누적보상과 전이확률의 멱급수
- 현상태의 가치함수와 액션의 가치를 표현하는 큐함수의 도입.
- 정책변수 대신 최적  큐함수를 수치해석적으로 풀기위한 벨만방정식으로의 변형.
- 재귀적인 구조를 가지는 벨만 방정식(동적 계획법)
- 벨만 방정식을 환경을 따르는 상태를 모델링 할수 있을때만 가능하다고 ..
- 벨만 재귀 구조를 신경망으로 반복해 상태가 입력되면 액션을 출력하도록 근사함수를 만드는게 DQN 학습이다.
- DQN에서 학습을 통해 하이퍼파라미터들은 게임상태들에 대한 최적의 전이확률과 보상들을 모델링하게 된다. 
- 스퀘어 로쓰함수와 큐함수 벨만방정식을 통한 그레디언트 업데이트
- 4프레임 게임 화면을 한 상태로 만들어주는 전처리함수 파이, 그리고 아타리게임 DQN의 CNN구조
- 데이타 효율성을 이끌어내는 컴퓨팅에서 중요한 리플레이 메모리의 도입과 경험 리플레이 기법의 도입.
- 전체적인 DQN 의 Pseudo Code 구조 설명.
- DQN은 Police-Free 한 수치적 알고리즘인 반면 Policy Gradient 는 정책을 모델링하는 해석적 방법이다.
- 계란을 쉽게 손으로 쥐는 인간 손의 위대함~
- 정책의 가치함수 J(쎄타)의 도입과 Gradient Ascent
- 강화학습은 Policy Gradient 해석 알고리즘에 Monte Carlo 수치 알고리즘을 합친것이다. 
- 상태 변수대신에 궤적변수 타우의 도입. 상태에 대한 보상 대신 궤적에대한 보상으로 전환.
- 트릭을 써서 몬테카를로 샘플링으로 팔러시 그래디언트를 기대값식으로 근사가 가능함 유도 
- 궤적들에 대한 보상을 배분하는 방법의 어려움 대두:  High Variance 문제.
- 분산을 줄이기 위한 다양한 방법들 등장. 그중 Baseline 방법은 레귤러라이제이션 개념과 유사하다. 
- 분산을 줄이기위한 또 다른 방법,  Happiness = Q(s, a) - V(s)
- 해피니스대신  advantage function을 도입한  Actor-Critic 알고리즘 
- 메모리 먹고 느린 리플레이 메모리를 없애고 경험리플레이를 수많은 에이전트에 나눠서 비동기로 병렬처리하는 A3C 알고리즘... 실시간 학습도 가능하다고.
- 이미지분류도 가능하다는 RAM(리커런트 어텐션 모델) 소개. 인간의 눈동자 움직임 모방. 데이타 효율성을 높였다고
- 디테일한 구조나 고해상도 이미지의 분류 나 옵젝트 디텍션도 가능하다고..  RAM=  RNN+RL+지도학습
- 기존의 어텐션 모델과 리커런트 어텐션 모델의 차이점들 ..
- 다시 알파고 이야기, 알파고= 지도학습과 강화학습의 만남, 알파고= 몬테카를로 트리써치와 딥강화학습(Policy Gradient)의 만남.
- DQN은 복불복, 아타리게임중 35% 정도만 성공, Policy Gradient가 대세, 그러나 궤적 샘플이 많이 필요함.

이상 입니다.

댓글 1개:

  1. 92년도에 이미 등장. 95년도에 오에스/2에 백가몬에 이미 쓰임.

    답글삭제

gpustat command

sudo apt install gpustat watch --color -n0.1 gpustat --color