본문 바로가기

분류 전체보기147

강화학습 7 <REINFORCE 방식을 개선한 PG 방법인 Actor - Critic> 지지난 공부부터 인공신경망을 적용한 강화학습 기반 MDP 풀이법을 공부하고 있다. 강화학습에 인공신경망을 사용하는 이유는 State 및 dimension이 굉장히 많은 MDP 문제를 해결하기 위해서다. 현실의 문제들이 대부분 state가 굉장히 많기 때문에 (state가 float형으로 표현돼야 하거나, 이미지 상태이거나) 인공신경망을 적용하는 방법을 잘 알아두어야 한다. 인공신경망은 Q함수나 정책을 근사하는 함수로 사용된다. 인공신경망은 에피소드에서 Agent가 환경과 상호작용하며 얻은 데이터로부터 가중치를 학습한다. 이떄 Q함수를 근사하는 방식으론 가장 기본인 Deep SARSA 그리고 Experience Replay 및 Target Network로 성능을 개선한 방식인 DQN이 있었다. 정책을 근사.. 2021. 12. 31.
강화학습6 <Q함수를 인공신경망으로 근사한 DQN> 특정 문제를 완벽히 풀어내는 해답이 생기면 연구는 중단된다. 하지만 문제를 제한적으로 풀어내는 해답이 지속 제시된다면, 개선된 방법이 지속적으로 연구된다. MDP 문제를 푸는 강화학습도 문제의 성격에 따라, 기존 답안 보다 더 좋은 방법들이 지속적으로 연구되어 왔다. MDP 문제 중 환경을 알 때 적용 가능한 Dynamic Programming, 환경을 모를 때 적용 가능한 Monte Carlo, Temporal Difference, SARSA, Q-Learning 등.. 그리고 현실의 많은 문제들이 state를 Table 형태로 표현이 불가능하기 때문에 (너무 많아서), 인공 신경망을 접목하는 방법들이 연구되어 왔다. 이전 글에서는 정책을 인공신경망으로 근사하는 REINFORCE 알고리즘을 정리했다. .. 2021. 12. 29.
강화학습 5 <Policy-based RL의 시작 : REINFORCE> MDP를 푸는 강화학습 방법은 'Value based RL'과 'Policy based RL'로 분류 가능하다. 'Value based RL'에는 바로 이전에 학습한 DeepSARSA, Table 저장 방식을 사용하고 환경을 모를 때 적용 가능한 SARSA, Q-Learning을 포함한다. 그 이유는 Value function(Q function 포함)을 기반으로 행동을 선택하고, 이를 업데이트 하면서 학습하기 때문이다. 금일 정리하는 내용은 'Policy-based RL'이라 지칭한다. 그 이유는 Policy를 학습하고 이를 기반으로 행동하기 때문이다. Policy라는 단어 의미와 이 문장이 잘 연결되지 않는데, 기존의 Value function 학습- 행동 결정 으로 이어지는 과정 전체를 인공신경망으.. 2021. 12. 26.
강화학습 4 <인공신경망을 활용한 강화학습 - Deep SARSA> 지금까지 MDP로 정의된 문제를 푸는 방법 중 고전적 강화학습으로 분류되는 Dynamic Programming - Policy Iteration, Monte Carlo, Temporal Difference, SARSA, Q-learning 등을 배웠다. Dynamic Programming (이하 DP)은 환경의 state의 정보(Reward, Transition probability)를 알 때 Policy Iteration (이하 PI)을 사용해 state 별 상태가치함수, 행동가치 함수를 업데이트하고 정책을 업데이트하여 MDP를 푸는 방법이다. 이후 Monte Carlo (이하 MC), Temporal Difference (이하 TD), SARSA, Q-Learning 등은 환경의 state 정보를 모.. 2021. 12. 24.
C - 매크로와 선행처리기 확실히 코딩 및 컴퓨터 언어는 직접 짜보고 사용하는 것이 가장 좋은 공부법인 것 같다. 프로그램을 개발하지 않고 백준 문제만 풀 때는 책으로 공부한 C언어의 내용들이 오래 기억에 남지도 않고 이해도 잘되지 않았다. 그런데 입사 후 C로 프로그램을 만들면서 C언어 책을 보니, 작성했던 코드들과 책 내용이 연계되면서 이해가 잘 된다. ​ ▶ 선행 처리기 소스코드는 컴파일과 링크를 통해 실행프로그램이 생성된다. 그런데 컴파일 이전에 선행 처리 과정이 존재한다. 선행 처리하는 주체가 선행 처리기이다. 선행 처리는 소스코드에 작성해놓은 선행 처리 명령문이 단순 치환되는 과정이다. 선행 처리 명령문은 #문자로 시작하고, 명령문 마지막에 세미콜론을 작성하지 않는다. ​ ex) #define A 0 ​ 습관적으로 작성.. 2021. 12. 2.
강화학습 3 <환경을 모를때 MDP 풀이, MC, TD, SARSA, Q-Learning> 강화학습은 MDP로 정의된 문제를 푸는 방법이다. 문제를 푸는 방법(알고리즘)에는 여러 종류가 있는데, 문제의 특성에 따라 적용가능한 방법이 달라진다. 가장 중요한 문제의 특성은 환경을 아느냐 (MDP로 정의된 문제의 P와 R을 아느냐) 이다. 환경을 안다면 Dynamic Programming (이하 DP)을 사용한다. DP에는 동기적 DP로 분류되는 정책 반복과 가치 반복이 있다. 전체 state의 가치 함수를 업데이트 하는 동기 DP의 연산량을 줄이기 위해 비동기 DP 방법이 개발되었다. DP방법은 약 3가지 단점이 있는데 각각 state 수 증가에 따른 연산량 증가, state 차원 수 증가에 따른 연산량 증가, 환경을 아는 상황에만 적용 가능하다는 것이다. 현실의 MDP로 정의된 문제들은 모르는 .. 2021. 12. 1.