광주인공지능사관학교 pre-course_정리9

손예진·2022년 7월 18일
0
  1. 강화학습 (Reinforcement Learning)
    :강화학습은 지도 학습처럼 정답이 있지도 않고 비지도 학습처럼 데이터만을 기반으로 학습하지도 않음
    :강화학습은 에이전트라는 존재가 환경과 상호작용하며, 이 환경에는 보상이라는 기준이 있어서 다양한 시행착오를 겪어가며 보상을 최대화하는 방향으로 학습을 진행
    :강화학습은 다양한 시행착오를 통해 학습이 가능하며, 비교적 명확한 보상을 설정할 수 있는 문제를 해결하는데 사용되고 있다.
    :강화학습은 빠르게 발전을 거듭해 오면서 지그껏 인공지능으로 해결하기 힘들다고 생각한 많은 문제들을 해결해 왔다.
    :강화학습을 한 문장으로 표현하면 "순차적인 행동들을 알아나가는 방법"이다. 여기서 순차적으로 계속 행동을 결정해야하는 문제를 수학적으로 정의한 것이 유명한 Markov Decision Process (MDP)이다.
  2. MDP
    :MDP는 상태, 행동, 보상함수, 상태 변환 확률, 감가율이라는 구성요소들을 바탕으로 이뤄져 있다
    1. 에이전트: 에이전트는 강화학습에서 의사결정을 하는 역할을 맡고 있음. 예를 들어 게임을 할 때 우리가 조종하는 게임 안의 주인공이라고 생각하면 됨
    2. 환경: 에이전트의 의사결정을 반영하며, 에이전트에게 반영된 정보를 주는 역할을 담당함.
    3. 상태: 에이전트는 상태라는 것을 기반으로 의사결정을 진행하게 됨. 이 상태라는 요소는 의사결정을 하기 위해 사용되는 관측값, 행동, 보상을 가공한 정보라고 할 수 있다.
    4. 행동: 행동은 에이전트가 의사결정을 통해 취할 수 있는 행동을 의미함. 일반적으로 현재 상태에서 취하는 행동을 AtA_t라고 표기함.
    그리고 이 행동에는 이산적인 행동과 연속적인 행동이 있다. 이러한 행동은 환경에 따라 정해지게 됨. 이산적인 행동을 하는 환경은 에이전트에게 주어지느 행동의 선택지가 있으며, 에이전트는 그 중 하나를 선택함. 연속적인 행동을 하는 환경 같은 경우는 선택지마다 특정 값을 수치로 입력하게 되고, 에이전트는 입력된 값만큼 행동하게 됨.
    5. 관측: 환경에서 제공해주는 정보. 이러한 관측은 시각적 관측과 수치적 관측으로 구분됨.
    시각적 관측은 현재 상태의 정보를 이미지로 표현한 것이며, 수치적 관측은 이미지의 형태가 아닌, 수치로만 표현한 것을 의미함.
    6. 보상함수: 에이전트가 특정 상태에서 특정 행동을 했을 때 보상을 받게 되고 에이전트는 이 보상정보를 통해 학습을 진행하게 됨. 일반적으로 현재상태에서 특정행동을 했을 때 얻는 보상의 기댓값을 RsaR^a _s 이렇게 표기함. 현재 상태 s에서 현재 상태의 행동 a를 취해서 얻을 수 있는 보상의 기댓값 Rt+1R_{t+1} 을 의미함.
:강화 학습은 마치 자전거를 타듯 시행착오를 겪으며 보상을 최대화하는 의사결정 전략을 학습하는 것이라 이야기 했었음, 그럼 이런 의사결정은 어떻게 학습할 수 있는 것일까?
:강화학습에서는 에피소드가 끝나게 됬을 떄, 에이전트가 지나왔던 상태에서 했던 행동에 대한 정보를 기록하게 됨. 그리고 그 정보를 이용하여 그 다음 에피소드에 대한 의사결정을 하게 됨. 그리고 또 에피소드가 끝나면 이 에피소드를 통해 얻게 된 정보로 기록을 업데이트하며 이러한 과정을 반복하게 됨. 
:그렇다면 어떠한 정보를 기록하게 됬을 때 좋은 의사결정을 내릴 수 있을까?
:에이전트는 더 나은 의사결정을 하기 위해 현재스텝에서 받았던 보상으로부터 에피소드가 끝날 때 까지 받았던 정보들을 더한 것을 정보로 이용하게 됨.

![](https://velog.velcdn.com/images/dorothy/post/0d79882f-f0a8-4dc8-b0cd-208fa9e324cb/image.png)

:그래서 이 점을 보안하기 위해  $\gamma$ (감가율)이라는 개념이 도입. 감가율을 통상 그리스 문자 중 세번째 감마를 활용하여 표기.
:0부터 1 사이의 값으로 설정, 그리고 1에 가까울 수록 미래의 보상에 더 많은 가중치를 두게 됨

![](https://velog.velcdn.com/images/dorothy/post/dba45c57-93d4-4959-bf7d-b0bf4aa5a76c/image.png)
:이제 감가율이 반영된 보상정보를 기록해 보면 현재스텝부터 받았던 보상부터 에피소드가 끝날 때까지 받았던 보상들에 감가율을 스텝 차이만큼 곱해서 더해주게 됨. 그리고 이 값을 반환값 이라고 부르게 됨. 현재 스텝에서의 반환 값은 일반적으로 G라고 표기하며, 반환값을 수식으로 표현하자면 위와 같다.
:반환 값을 기록할 때는 종료된 상태부터 처음 상태까지 거꾸로 계산하는 게 좀 더 쉬우니, 역으로 계산을 진행.
:환경에서 보상은 목적지에 도달할 때만 얻기 때문에, 각 스텝의 반환 값은 이렇게 되며, 여기서 대문자 T는 에피소드가 종료된 스텝을 의미함. 그리고 이렇게 반환 값을 기록하게 되면, 에이전트는 이제 어느 경로가 효율적인지 판단할 수 있다.

![](https://velog.velcdn.com/images/dorothy/post/57e6d264-43db-4e44-8402-da6bf4d243bb/image.png)
:그래서 가끔은 에이전트에게 무작위로 움직이게 설정하여 여러경로를 시도해보라는 '탐험'이라는 개념이 추가되게 됨.
:탐험과 대립되는 개념은 '이용'이라는 개념으로 에이전트가 찾아놓은 길로 하여 계속해서 선택하고 움직이게 되는 것을 의미함.

강화학습의 주요 목적은 에이전트가 많은 보상을 받기 위해 최적의 정책을 학습하는 것.

그리고 에이전트가 최적의 정책을 찾기 위해서는 여러 상황에서 다양한 행동을 하며 많은 경험을 해보는 것이 필수이다.

에이전트가 위아래왼쪽오른쪽의 행동을 취할 수 있다고 가정.

처음에는 에이전트가 어느 방향으로 이동했을 때 얼마만큼의 보상을 받는 지 모른다.

근데 이때 에이전트가 한번 아래쪽으로 이동하여 +1의 보상을 받게 됨

에이전트는 이와 같은 상황에서 다른 방향으로 이동하면 어떠한 보상을 받는지 알지는 못하지만, 아래로 이동하면 +1의 보상을 받는다는 것을 학습했기 때문에 다시 이와 같은 상황이 된다면, 에이전트는 아래로 이동하게 될 것임

이선택은 좋은 선택이 아님

아래를 제외하고 움직였을때 더 많은 보상을 얻을 수 있기 때문

즉, 에이전트가 이러한 상황에 놓이게 되었다면 위아래오른쪽왼쪽을 모두 가봐야 어느 방향으로 이동하는 것이 가장 좋은지 알 수 있게 되며, 에이전트는 다양한 경험을 통한 학습을 거쳐 가장 최적의 정책을 학습할 수 있게 된다.


이렇게 다양한 경험을 할 수 있도록 에이전트의 행동을 결정하는 기법을 탐험이라고 함.

탐험의 기본적인 방법 중 하나는 무작위 탐색 방법이다.

간단하게 에이전트가 취할 수 있는 행동 중 하나를 임의로 선택하는 단순한 기법으로. 에이전트가 좀 더 다양한 경험을 할 수 있도록 유도하는 것. 하지만 에이전트가 너무 다양한 경험만을 추구하는 것도 그리 좋은 방향은 아니다.

예를 들어 엄청나게 다양한 상태와 행동이 존재하는 환경에서 에이전트가 모든 경험을 다 해보려면 너무 많은 시간이 필요하게 됨

그래서 어느정도는 에이전트가 학습한 대로 행동하는 것도 필요하게 됨

이렇게 학습한 결과에 따라 에이전트의 행동을 결정하는 기법을 활용이라고 함.

활용의 기본적인 방법의 하나는 탐용적 방법이다.

탐욕적 방법은 주어진 시점에서 에이전트가 가장 큰 보상을 줄 것이라고 기대하는 행동만을 선택하는 것인데, 예를 들면 상하좌우 네 방향의 값을 알고 있을 때 가장 큰 값을 가지는 행동만을 선택하는 것.

단 한 번의 행동에 대해 최대의 보상을 원한다면 활용이 바람직 하지만 장기적으로 보상의 총합을 키우기 위해서는 탐험이 좋은 방법일 수 있다.

앞의 상황을 이어서 생각해보면 탐욕적 행동의 가치는 확실히 알고 있고, 비탐욕적 행동 또한 그만한 가치가 있을 것 같지만 , 이러한 판단이 상당히 불확실한 경우가 다수 존재한다.

"과연 이길로 가게되면 내가 알고 있는 길보다 더 높은 보상을 얻게 될까?"

불확실하다는건 비 탐욕적 행동 가운데 적어도 하나는 탐욕적 보다 더 좋을 것 같지만 정확히 어떤 행동이 그러한지는 모르는 경우를 의미함

그래서 미래에 남아있는 많은 단계에 대해 행동을 선택해야 한다면 비 탐욕적 행동을 탐험하여 어떠한 것이 탐욕적 행동보다 좋은 것인지를 찾아내는 것이 더 좋다.

그리고 탐험을 하는 동안 단기적으로는 보상이 적을지라도 탐험을 통해 더 좋은 행동을 찾아내고 그것을 많이 활용함으로써 장기적으로 더 큰 보상을 누릴 수 있게 됨.

하나의 행동을 선택할 때, 활용과 탐험을 동시에 할 수 없기 때문에

이것은 종종 활용과 탐험의 딜레마 혹은 갈등으로 불리게 됨

어떠한 특정 경우에 활용을 하는 것이 좋을 지 탐험을 하는것이 좋은지는 정밀한 가치 추정 값과 불확실성, 앞으로 남아있는 단계의 개수에 따라 복잡한 방법으로 결정된다.

그래서 그와 관련된 문제를 풀기 위한 특별한 수학적 과정에 있어서 활용과 탐험 사이의 균형을 잠을 수 있게 해주는 정교한 방법들이 다수 존재한다.

하지만 이러한 방법들 대부분은 사전지식에 대한 가정을 기반으로 수립되는데,

문제는 이러한 가정이 강화학습문제 전반에 있어서, 그리고 강화학습을 적용하는데 있어서 성립하지 않는다는 점이다.

혹여 성립한다고 해도 정말 그런지 검증할 방법 또한 존재하지 않는다.

그럼 활용과 탐험 사이의 균형을 맞추는 정교한 방법은 어떻게 풀어나가야 할까?

이 문제에 대한 정답은 명확하게 정해져 있지 않다.

어떻게든 탐험과 활용 사이의 균형을 맞춰, 적절히 분배하는 것이 중요하다 할 수 있다.

그리고 이러한 활용과 탐험의 적절한 분배에 대한 필요성은 강화학습에서만 나타나는 독특한 어려움이라 이야기되고 있다.

이러한 강화학습만의 독특한 어려움을 해결하기 위해 선구자들은 다양한 시각으로 문제를 풀기 시작했는데,

그 중 행동가치방법에 대하여 얘기해 봄.

행동가치 방법은 말 뜻 그대로, 행동 가치를 추정하고 추정 값으로부터 행동을 선택하도록 결정하는 방법이다.

어떤 행동이 갖는 가치의 참값은 행동이 선택될 때의 평균 보상이며, 참값을 추정하는 방법은 실제로 받은 보상의 산술평균을 계산하는 것.

이 기호는 조건 서술어라 하며, 조건 서술어가 참이면 1, 거짓이면 0의값을 갖는 확률변수를 나타냄

만약 식의 분모가 0이어서 계산을 할 수 없을 때는 0과 같은 어떠한 기본값으로 정의하고 , 또 만약 분모가 무한으로 커지게 된다면 큰 수의 법칙에 따라 행동의 실제 가치로 접근하게 된다.

물론 이것은 행동을 추정하는 하나의 방법일 뿐이며, 이 방법이 반드시 최선의 방법인 것도 아니다.

가장 간단한 행동 선택 규칙은 추정 가치가 최대인 행동 중 하나를 선택하는 것.

다시 말해, 앞서 정의한 탐욕적 행동 중 하나를 선택하는 것.

이러한 탐욕적 행동 선택 방법은 저 식으로 표현할 수 있음.

여기서 이 표현은 바로 이어지는 수식의 값이 최대가 되도록 하는 행동 a를 나타냄

탐욕적 행동을 선택하는 과정에서는 즉각적인 보상을 최대화하기 위해 현재의 지식을 사용하는 것이 항상 포함된다.

더 좋은 결과를 낼 수 있을지도 모른다는 일말의 가능성을 확인하기 위해 누가 봐도 열등한 행동으로 표본을 구성하는 일은 탐욕적 행동 선택에서 결코 일어나지 않는다.

그럼 이러한 탐욕적 행동을 대체할 만한 한가지 단순한 대안은, 대부부의 시간동안에는 탐욕적 선택을 수행하고, 아주 가끔 즉, 상대적 빈도수를 작은 값으로 유지하면서 탐욕적 선택 대신 모든 행동을 대상으로 무작위 선택을 하는 것.

이때 모든 행동이 선택될 확률은 균등하며, 행동 선택은 행동 가치 추정과는 무관하게 이뤄진다.

이러한 규칙을 이용한 방법을 "입실론 탐욕적 방법"이라고 한다.

실제로 이 방법의 효용성은 미지수이다.

profile
딥러닝 공부중 🦴

0개의 댓글