이 영역을 누르면 첫 페이지로 이동
butter_shower 블로그의 첫 페이지로 이동

butter_shower

페이지 맨 위로 올라가기

butter_shower

강화학습이란? 심층 강화학습에 대한 정의와 종류

  • 2024.01.05 18:56
  • 머신러닝 꿈나무
글 작성자: _rian

강화학습이란?

  • 순차적인 의사결정 문제를 해결하는 방법.
  • 실제 세계의 많은 문제는 순차적 의사 결정 문제로 표현될 수 있다.
  • 강화학습 문제는 에이전트와 환경으로 구성되는 하나의 시스템으로 표현될 수 있는데ㅡ 환경은 시스템의 상태를 나타내는 정보를 만들어낸다. 이걸 상태(state)라고 부른다.

  • 핵심 개념
    • 상태 : 시스템의 상태를 나타내는 정보
    • 행동 : 에이전트가 상태를 관측하고 그로부터 얻은 정보를 활용하여 행동을 선택함으로써 환경과 상호작용함
    • 보상 : 에이전트의 행동을 통해 다음 상태에 대한 보상값이 에이전트에게 주어짐.
    • 정책 : 에이전트의 행동 생성 함수를 정책이라고 한다. 정책은 상태로부터 행동을 도출하는 함수를 의미함.
    • 목적 : 에이전트가 받는 보상의 총합. 좋은 행동을 선택함으로써 목적을 최대로 달성하는 것이 목표.
  • 보상함수 $R(s_t, a_t, s_{t+1})$ 은 $(s_t, a_t, s_{t+1})$ 이라는 전이에 대해 하나의 스칼라 값을 할당하는데, 이 값은 양수, 음수, 0 모두 가능하다.
  • 상태공간, 행동공간, 보상함수는 환경에 따라 정의되고, 이를 모아서 $(s, a, r)$ 이라는 튜플로 정의되는데 이 튜플이 강화학습 시스템을 나타내는 기본적인 단위

강화학습에서 학습하는 함수

강화학습에서 학습하는 3개의 주요 함수

  1. 상태로부터 행동을 도출하는 정책 $\pi : a \sim \pi(s)$
  2. 이득의 기댓값 $E_\gamma[R(\tau)]$ 를 추정하기 위해 필요한 가치 함수 $V^\pi(s)$ 또는 $Q^\pi(s, a)$
  3. 환경 모델 $P(s’ | s, a)$

정책은 확률론적으로 알 수 있다. 즉, 동일한 상태에 대해서 확률적으로 다양한 행동을 도출할 수 있다. 이 경우 주어진 상태 $s$에 대해서 행동 $a$가 도출될 확률을 $\pi(a|s)$ 로 나타낼 수 있다. 정채긍로부터 추출된 행동을 $a \sim \pi(s)$ 라고 표현한다.


심층 강화학습이란?

Deep NN을 함수의 근사 기법으로 사용하는 방식

  • 정책 기반 (policy-based) 방식
    • 정책 $\pi$ 를 학습. 에이전트의 목적을 최대로 만드는 궤적을 생성함.
    • 정책함수 $\pi$ 는 상태 $s$ 를 입력받아 행동 $a \sim \pi(s)$ 를 도출함
    • 매우 일반적인 최적화 방법으로, 에이전트가 가장 신경쓰는 목적함수 $J(r)$을 직접 최적화함
    • 단점 : 정책의 분산이 크고 훈련 과정이 표본 비효율적임.
  • 가치 기반 (value-based) 방식
    • 에이전트 상태 $s$에서 항상 $Q^\pi(s,a)$의 추정값을 가장 크게 만드는 행동 $a$를 선택하는 방법
    • DQN, Double DQN 등이 많이 쓰이고 있는 효과적인 알고리즘.
    • 일반적으로 정책 기반 알고리즘보다 표본 효율적 (sample-efficient) 다.
  • 모델 기반 (model-based) 방식
    • 환경의 전이역학(transition dynamics)에 대한 모델을 학습하거나 이리 알려진 모델을 학습함
    • 에이전트는 추정을 통해 환경 모델로부터 궤적의 예측값을 계산함.
    • ex. 몬테카를로 트리 탐색

 

강화학습을 위한 심층학습

  • 심층 신경망은 복잡한 비선형 함수를 근사하는데에 탁월한 능력을 가지고 있음. 
  • 2015년 딥마인드가 아타리 게임에서 인간 수준의 성능을 달성한 이후 강화학습 분야에서 개발된 모든 중요한 방법들은 NN을 이용하여 함수를 근사하고 있다.
  • 신경망의 출력을 평가하는 손실 함수가 주어지면 신경망의 파라미터값을 변경하여 손실 함수가 최소가 되도록 하면서 성능을 향상시킬 수 있다. 이때 전역 최솟값 (global minimum)을 찾는 과정에서 손실함수가 가장 빠르게 감소하는 방향으로 파라미터를 변경하기 때문에 이러한 방법을 경사하강법(gradient descent)이라고 부른다. 

 

강화학습과 지도학습

  • 강화학습과 지도학습의 주된 차이점은 강화학습 문제에서는 모델의 모든 입력에 대해 "정확한" 답이 주어지지 않는 반면 지도학습에서는 모든 예제에 대해 정답 또는 최적의 답이 존재함.

활성 정책과 비활성 정책 알고리즘

  • 활성 정책 (on-policy) 알고리즘
    • 알고리즘이 정책에 대해 학습하는 경우.
    • 정책에 대해 학습한다는 것은 훈련 과정에서 현재의 정책 $\pi$ 로부터 생성된 데이터만을 이용할 수 있다는 뜻.
    • 여러 정책 $\pi_1, \pi_2, \pi_3, …$ 에 대해 훈련이 반복될 때, 훈련이 진행되는 바로 그 순간의 정책만을 이용하여 훈련 데이터를 생성한다는 것을 의미함.
    • 따라서 훈련이 끝난 후에는 데이터가 더이상 쓸모없어지므로 데이터는 폐기되어야함.
    • 표본 비효율적이며 더 많은 데이터를 필요로함.
  • 비활성 정책 (off-policy) 알고리즘
    • 수집된 모든 데이터는 훈련을 위해 재사용 될 수 있다.
    • 표본 효율적이지만 이 경우 데이터를 저장하기 위한 메모리가 더 많이 필요할 수 있음.

'머신러닝 꿈나무' 카테고리의 다른 글

[혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 3주차  (1) 2024.01.21
[혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 2주차  (1) 2024.01.14
[혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 1주차  (0) 2024.01.05
[Python 데이터 분석 3대장] Numpy 라이브러리  (0) 2020.08.04
데이터의 성능을 높이는 방법  (0) 2020.08.02

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 3주차

    [혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 3주차

    2024.01.21
  • [혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 2주차

    [혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 2주차

    2024.01.14
  • [혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 1주차

    [혼공머신] 혼자 공부하는 머신러닝 & 딥러닝 1주차

    2024.01.05
  • [Python 데이터 분석 3대장] Numpy 라이브러리

    [Python 데이터 분석 3대장] Numpy 라이브러리

    2020.08.04
다른 글 더 둘러보기

정보

butter_shower 블로그의 첫 페이지로 이동

butter_shower

  • butter_shower의 첫 페이지로 이동

검색

메뉴

  • All Categories
  • About Me
  • Guest Book

카테고리

  • 전체보기 (223)
    • 💫 주인장 이야기 (17)
    • 🌱 와글와글뻘글 (27)
    • IT Trends (11)
    • 주인장 일상 (0)
    • 📒 내 마음대로 독서 서평 (12)
    • 머신러닝 꿈나무 (30)
      • 기본 개념 (6)
      • Hands-on! (5)
      • Paper Review (5)
      • 캐린이의 Kaggle (1)
    • 알고리즘 Algorithm (33)
      • PS (8)
    • Computer Engineering (75)
      • Python (8)
      • Cloud Computing (9)
      • C (9)
      • C++ (0)
      • Java (6)
      • Django 장고 (4)
      • 임베디드 시스템 (10)
      • 병렬 처리(Parallel Processing) (9)
      • 데이터 통신 Data communication (4)
      • 유닉스 시스템 (Unix System) (3)
      • GitHub (1)
      • 마이크로 프로세서 (micro processor) (1)
      • 데이터 마이닝 (1)
    • Error Note 🚨 (3)
    • 영어 공부 (6)
      • Live Academy (6)
    • HOBBY (2)
      • Film Log (2)

최근 글

정보

_rian의 butter_shower

butter_shower

_rian

나의 외부 링크

  • Github
  • Facebook
  • Instagram
  • LinkedIn
  • Twitter

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © _rian. Designed by Fraccino.

티스토리툴바