ABOUT ME

Today
-
Total
-
  • [Do it! 강화 학습 입문]1장. 강화 학습이란?(1)
    도서 정리/Do it! 강화 학습 입문 2023. 6. 19. 14:53
    본문의 모든 내용과 이미지의 저작권은 이지스퍼블리싱의 Do it! 강화 학습 입문 도서에 있습니다.

    1-1. 강화 학습 멀리서 훑어보기

    1. 머신러닝의 종류

    • 강화 학습은 인공지능의 방법론인 머신러닝의 한 종류
    • 머신러닝은 크게 지도 학습, 비지도 학습, 강화 학습으로 나눌 수 있음

    지도 학습

    • 데이터와 각 데이터의 레이블이 주어진 상태에서 새 데이터에 레이블을 매기는 방법을 학습
    • 문제와 정답을 모델에게 알려 주는 방식으로 진행
    • ex) 평수에 따른 아파트 집값을 예측하는 문제
      • 평수를 데이터, 집값을 레이블로 준비
      • a라는 동네의 16평 아파트는 A원, b라는 동네의 24평 아파트는 B원 이라는 것을 모델에게 알려줌
      • 'z라는 동네의 16평 아파트는 Z원 일 것이다' 라고 예측

    지도 학습 (출처: Do it! 강화 학습 입문 도서)

    비지도 학습

    • 레이블 없이 데이터만 주어진 상태에서 데이터를 분류하거나 밀도를 추정하는 방법을 학습
    • 데이터의 특징을 요약할 때 사용
    • ex) 인터넷 쇼핑몰의 고객을 분류하는 문제
      • 모든 고객의 구매 데이터와 상품 조회 정보를 데이터로 사용
      • 고객을 군집화하고 분류하는 방법을 학습

    비지도 학습 (출처: Do it! 강화 학습 입문 도서)

    강화 학습

    • 지도 학습, 비지도 학습과 달리 강화 학습은 행동에 대한 보상만 주어짐
    • 강화 학습에서 풀어야 하는 문제는 행동-보상의 짝이 아닌, 상태에 대한 최적의 행동을 찾는 것

    강화 학습 (출처: Do it! 강화 학습 입문 도서)

    2. 강화 학습의 출발점

    • 강화 학습은 지도 학습, 비지도 학습과는 다른 계통으로 발전해 온 학문
    • 수학자 리처드 벨먼이 창안한 동적 계획법이 주춧돌이 되었으며 역사가 오래되었음
    • 최근 다시 주목받는 이유는 딥러닝 때문
      • 딥마인드 사의 알파고가 강화 학습과 딥러닝의 조합으로 개발되었음

    3. 인공지능의 발전 가능성

    • 사람은 기계에게 컴퓨팅을 뛰어넘어 그동안 사람만이 할 수 있는 판단, 창작, 의사 결정과 같은 작업을 해주길 기대
    • 이는 현재 그림 그려주는 AI, 작곡 해주는 AI 등으로 어느 정도 실현되었음

    의사 결정을 위한 강화 학습

    • 이에 비해 강화 학습은 의사 결정을 위한 인공지능 방법론이며, 강화 학습을 제대로 구현하려면 사람의 의사 결정이 어떻게 이루어지는지 이해해야 함
    • 사람의 의사 결정 과정은 여러 학문이 연결되어 있지만, 추리자면 '자신의 상태를 알고 주변 상황을 파악하여 목적을 이루기 위해 어떤 행동을 할지 결정하는 것' 으로 정리 가능
      • 즉, 자신의 상태, 주변 환경, 목적 또는 보상을 감안하여 행동을 결정하는 과정
    • 보통 강화 학습은 지도 학습에 비해 우리가 생각하는 일반적인 인공지능을 위한 방법론에 훨씬 가깝지만, 그만큼 논리 및 수학 분야의 지식이 많이 필요

    1-2. 강화 학습 이해하기

    1. 강화 학습의 기본 개념

    • 강화 학습의 개념을 쉽게 말하면, 자신이 존재하는 환경을 무한으로 다시 경험하며 최적의 행동을 찾는 기법
      • 학습의 주체 = 에이전트(Agent)
      • 에이전트가 존재하는 곳 = 환경(Environment)
      • 에이전트의 행동에 대한 대가 = 보상(Reward)
      • 에이전트가 처하는 상황 = 상태(State)
      • 에이전트가 처한 상황에서 취하는 것 = 행동(Action)
      • 하나의 행동 트리를 찾는 과정 = 에피소드(Episode)
      • 강화 학습 = 에이전트가 환경 내에서 에피소드 동안 처한 상태에 맞는 최고 보상을 받을 수 있는 행동을 찾는 것 
    • 에이전트는 수많은 에피소드에서 겪은 상태를 기록하면서 이어 나감
    • 이 과정에서 에이전트는 자신이 처한 상태마다 선택 가능한 행동을 정리

    상태 전이 확률

    • 에이전트가 어떤 상태에서 특정 행동을 취하면 무조건 다음 상태로 바뀌는 것이 아님
    • 이를 '상태 전이 확률(State Transition Probability)' 이라고 하며 다음 수식으로 표현 가능
      • 상태 S1에서 행동 A를 통해 상태 S2로 전이할 확률$$P(S2 | S1, A)$$
      • 상태 S1에서 행동 A를 취했을 때의 보상$$R(S1, A)$$
    • 상태 전이 확률은 어떤 상태에서 어떤 행동을 할 때의 결과를 정의하므로 이 세계의 규칙
    • 강화 학습에서는 이런 확률의 집합을 '시계 모델' 또는 '모델(Model)' 이라고 함

    마르코프 결정 과정(MDP)

    • 상태, 행동, 보상, 모델의 4가지 요소는 의사 결정을 하는데 필요한 체계로 '마르코프 결정 과정' 이라 함
    명칭 개념
    상태(State, S) 에이전트가 환경 내 특정 시점에서 관찰할 수 있는 것을 수치화
    행동(Action, A) 에이전트가 환경에게 전달하는 입력
    보상(Reward, R) 에이전트가 환경으로부터 전달받은 목적을 달성하기 위해 행동을 잘 수행하고 있는지를 피드백하는 신호
    모델(Model, M) 행동에 따른 상태 전이가 일어날 확률을 담은 규칙
    • MDP에서는 에이전트가 이전에 어떤 상태를 거쳐왔는지는 중요하지 않고 오직 현재 상태만이 다음 상태 전이 확률에 영향을 미침
      • 이런 특성을 '마르코프 특성(Markov Property)' 이라 함

    2. 보상 총합 계산

    • MDP 이후의 목표는 현재 상태에서 환경으로부터 얻을 수 있는 장기적 보상의 예측치를 극대화하는 행동을 찾는 것
      • 즉, MDP 상태 내에서 최적의 행동을 찾는 방법
    • 에이전트가 특정 상태에서 얻을 수 있는 미래 보상의 총합을 구할 수 있다고 가정한다면, 이를 최대로 만드는 상태로 가는 행동 경로가 곧 최적 행동

    보상 총합이 무한으로 발산하는 문제

    • 한 에피소드에서 에이전트가 취할 수 있는 일부 상태 경로와 그에 따른 보상이 다음과 같다고 가정
      • 상태 경로 1: $$R1 = R(S1) + R(S2) + R(S3)$$
      • 상태 경로 2: $$R2 = R(S1) + R(S5) + R(S2) + R(S3)$$
      • 상태 경로 3:
        $$R3 = R(S1) + R(S5) + R(S1) +  R(S5) +  R(S1) + R(S5) \cdots $$
    • 이와 같이 상태 경로와 보상 총합을 표현해보면 3번째 에피소드에서 에이전트의 상태 변경 횟수에 제약을 받지 않고 S1S5를 무한히 왕복하는 문제가 발생함을 알 수 있음
      • 이 때, 보상 총합이 무한으로 발산

    보상 총합 무한 발산 해결 - 시간에 따른 할인 개념 도입

    • 시간에 따른 할인(Discount) 개념을 도입하면 문제 해결 가능
    • 시간에 따른 할인은 에이전트가 최대한 가까운 시점에 보상을 얻게 하는 장치
    • 즉, 보상에 할인율을 점차 곱해 더하는 방식으로 보상의 총합을 구하는 것
      • 할인율은 0보다 크고 1보다 작으며, 이를 수식에서 감마($\gamma $)로 표현
    • 이 개념을 도입하면 위의 상태 경로에서의 문제를 해결 가능
      • 상태 경로 1: $$R1 = R(S1) + \gamma R(S2) + \gamma ^2 R(S3)$$
      • 상태 경로 2: $$R2 = R(S1) + \gamma R(S5) + \gamma ^2 R(S2) + \gamma ^3 R(S3)$$
      • 상태 경로 3:
        $$R3 = R(S1) + \gamma R(S5) + \gamma ^2 R(S1) + \gamma ^3 R(S5) + \gamma ^4 R(S1) +\gamma ^5 R(S5) \cdots $$
    • 3번째 에피소드에서도 보상 총합이 무한으로 발산하지 않는 것을 확인 가능
    • 할인율은 현재와 미래의 보상 중 어느 쪽을 더 중요하게 생각할지 결정하는 지표 역할도 함
      • 할인율이 1에 가까우면 미래의 보상을 더 중요하게 평가
      • 할인율이 0에 가까우면 현재의 보상을 더 중요하게 평가
      • 할인율은 보통 0.9 ~ 0.99 사이의 값을 많이 사용

    주어진 상태에서 미래에 얻을 수 있는 보상 총합

    • 한 에피소드에서 얻을 수 있는 보상 총합이 아니라 주어진 상태에서 미래에 얻을 수 있는 보상 총합을 구해야 함
    • 수식으로 표현하면 할인율과 t번째 상태로 다음과 같이 나타낼 수 있으며 이를 이익(Return)이라 함 $$G_t = \sum_{k=0}^\infty \gamma^k R(S_{t+k+1})$$
      • $G_t$는 모든 행동이 일어났다고 가정한 다음 과거로 돌아가며 더한 값
    • 특정 상태에서 갈 수 있는 전체 경로에 대한 평균, 이익의 기댓값을 구하면 그것이 특정 상태에서 미래에 얻을 수 있는 보상의 총합이 됨
    • 이를 수식으로 표현하면 다음과 같으며, 이를 가치 함수(Value Function)라고 함$$V(s) = E[G_t|S_t = s]$$

    보상, 이익, 가치 함수 개념 정리

    명칭 개념
    보상(R) 특정 상태에서 얻을 수 있는 즉각적인 피드백
    이익(G) 한 에피소드의 특정 상태에서 종단 상태까지 받을 수 있는 보상 총합
    가치 함수(V) 특정 상태로부터 기대할 수 있는 보상

    벨만 방정식

    • 벨만 방정식은 다음과 같음 $$V(s) = R(s) + (V(s'))$$
    • 다음 상태의 가치로 현재 상태의 가치를 구함
      • 현재 상태의 가치를 구하려 다음 상태를 계속 추적하므로 결국 종단 상태에 도달
      • 이 방식으로 다음 상태를 따라가면 결국 종단 상태의 가치로 상태를 역추적하며 계산
      • 종단 상태의 가치는 종단 상태의 보상과 같음
      • 이를 코드로 구현하려면 '동적 계획법(Dynamic Programming)' 이라는 알고리즘을 사용

    동적 계획법

    • 다음과 같은 예제가 있을 때, 동적 계획법을 적용해 봄

    강화 학습 예제 (출처: Do it! 강화 학습 입문 도서)

    • 가치를 구하려면 가치의 기대값을 알아야 하므로 가치 함수를 이용해 주어진 상태로부터 가능한 경로를 모두 거치며 보상을 계산해 봐야 함
      • 위 예제에서는 종단 상태에서만 보상이 있기 때문에 다른 상태에서의 보상은 모두 0으로 초기화
      • 종단 상태는 더 이상 상태 전이가 없으니 보상이 곧 가치가 됨
        • 즉, $V(S3) = -1, V(S4) = -1, V(S7) = 1
      • 이제 종단 상태와 인접한 상태인 S2, S6의 가치를 구해야 함
        • 상태 $S2$에서 행동 $a_{2-1}$을 선택
          • $S3$로 전이할 확률: $P(S3|S2, a_{2-1}) = 1$
          • $S3$의 가치: -1
          • 가치의 기대값: 가치 * 전이 확률 * 할인율 = $-1 * 1 * 0.9 = -0.9$
        • 상태 $S2$에서 행동 $a_{2-2}$을 선택
          • $S4$로 전이할 확률: $P(S4|S2, a_{2-2}) = 0.6$
          • $S7$로 전이할 확률: $P(S7|S2, a_{2-2}) = 0.4$
          • $S4$의 가치: -1
          • $S7$의 가치: 1
          • 가치의 기대값: $((-1 * 0.6) + (1 * 0.4)) * 0.9 = -0.18$
    • 위의 설명을 알고리즘으로 표현하면 다음과 같음
    1. 종단 상태를 제외한 모든 상태의 가치 $V(s)$를 0으로 초기화
    2. 반복 카운터 $n$를 0으로 초기화
    3. 반복:
      반복 카운터 $n$을 1 증가
      모든 상태 $s$에 대해 반복:
        상태 $s$에서 취할 수 있는 모든 행동 $a$에 대해 반복:
          $s$에서 $a$를 취할 때의 모든 상태 전이 확률 $P(s'|s,\,a)$를 확인
          $s$에서 $a$를 선택해 도달하는 다음 상태 $s'$의 가치 $V(s')$와 $P(s'|s,\,a)$를 곱함
          도달 가능한 모든 상태 $s'$에 대해 $P(s'|s,\,a)\,\times\,V(s')$를 합산한 기댓값을 구함
        모든 행동 $a$ 중 기댓값이 가장 큰 최적 행동 $a_*$를 확인
        $a_*$의 기댓값에 할인율 $\gamma$를 곱하고, 상태 $s$의 보상 $R(s)$를 더한 값 $V_n(s)$를 구함
      모든 $s$에 대해 $V_n(s)-V_{n-1}(s)$가 0을 만족하면 반복을 종료
    • 할인율을 0.9로 가정하고 예제에 적용
      S1 S2 S3 S4 S5 S6 S7
    V0 0 0 -1 -1 0 0 1
    V1 0 -0.18 -1 -1 0 0.9 1
    V2 0 -0.18 -1 -1 0.81 0.9 1
    V3 0.58 -0.18 -1 -1 0.81 0.9 1
    V4 0.58 -0.18 -1 -1 0.81 0.9 1
    • 이렇게 동적 계획법을 기반으로 가치 함수를 산출하는 방식을 '가치 반복법(Value Iteration)' 이라 함
    • 모든 상태의 가치를 구했으니 이를 바탕으로 행동 선택이 가능
      • 초기 상태 $s_1$에서는 $s_2$ 또는 $s_5$로 전이 가능
        • $s_5$의 가치가 더 크므로 $s_5$로 전이하는 행동인 $a_{1-2}$를 선택
      • $s_5$에서는 $s_2$ 또는 $s_6$으로 전이 가능
        • $s_6$의 가치가 더 크므로 $s_6$으로 전이하는 행동인 $a_{5-2}$를 선택
      • $s_6$에서는 $s_7$로 전이 가능
        • $s_7$로 전이
    • 이렇듯 가치 함수를 모두 구하면 각 상태에 대해 미래 보상을 최대화 하는 최적 행동을 선택 가능
    • 즉, 상태를 입력으로 받아 최적 행동을 출력하는 함수가 만들어진 것
    • 이러한 함수를 정책(Policy)이라고 하며, 이 정책이 바로 강화 학습에서 구하고자 하는 목표
Designed by Tistory.