:강화 학습은 마치 자전거를 타듯 시행착오를 겪으며 보상을 최대화하는 의사결정 전략을 학습하는 것이라 이야기 했었음, 그럼 이런 의사결정은 어떻게 학습할 수 있는 것일까?
:강화학습에서는 에피소드가 끝나게 됬을 떄, 에이전트가 지나왔던 상태에서 했던 행동에 대한 정보를 기록하게 됨. 그리고 그 정보를 이용하여 그 다음 에피소드에 대한 의사결정을 하게 됨. 그리고 또 에피소드가 끝나면 이 에피소드를 통해 얻게 된 정보로 기록을 업데이트하며 이러한 과정을 반복하게 됨.
:그렇다면 어떠한 정보를 기록하게 됬을 때 좋은 의사결정을 내릴 수 있을까?
:에이전트는 더 나은 의사결정을 하기 위해 현재스텝에서 받았던 보상으로부터 에피소드가 끝날 때 까지 받았던 정보들을 더한 것을 정보로 이용하게 됨.

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

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

:그래서 가끔은 에이전트에게 무작위로 움직이게 설정하여 여러경로를 시도해보라는 '탐험'이라는 개념이 추가되게 됨.
:탐험과 대립되는 개념은 '이용'이라는 개념으로 에이전트가 찾아놓은 길로 하여 계속해서 선택하고 움직이게 되는 것을 의미함.
강화학습의 주요 목적은 에이전트가 많은 보상을 받기 위해 최적의 정책을 학습하는 것.
그리고 에이전트가 최적의 정책을 찾기 위해서는 여러 상황에서 다양한 행동을 하며 많은 경험을 해보는 것이 필수이다.
에이전트가 위아래왼쪽오른쪽의 행동을 취할 수 있다고 가정.
처음에는 에이전트가 어느 방향으로 이동했을 때 얼마만큼의 보상을 받는 지 모른다.
근데 이때 에이전트가 한번 아래쪽으로 이동하여 +1의 보상을 받게 됨
에이전트는 이와 같은 상황에서 다른 방향으로 이동하면 어떠한 보상을 받는지 알지는 못하지만, 아래로 이동하면 +1의 보상을 받는다는 것을 학습했기 때문에 다시 이와 같은 상황이 된다면, 에이전트는 아래로 이동하게 될 것임
이선택은 좋은 선택이 아님
아래를 제외하고 움직였을때 더 많은 보상을 얻을 수 있기 때문
즉, 에이전트가 이러한 상황에 놓이게 되었다면 위아래오른쪽왼쪽을 모두 가봐야 어느 방향으로 이동하는 것이 가장 좋은지 알 수 있게 되며, 에이전트는 다양한 경험을 통한 학습을 거쳐 가장 최적의 정책을 학습할 수 있게 된다.
이렇게 다양한 경험을 할 수 있도록 에이전트의 행동을 결정하는 기법을 탐험이라고 함.
탐험의 기본적인 방법 중 하나는 무작위 탐색 방법이다.
간단하게 에이전트가 취할 수 있는 행동 중 하나를 임의로 선택하는 단순한 기법으로. 에이전트가 좀 더 다양한 경험을 할 수 있도록 유도하는 것. 하지만 에이전트가 너무 다양한 경험만을 추구하는 것도 그리 좋은 방향은 아니다.
예를 들어 엄청나게 다양한 상태와 행동이 존재하는 환경에서 에이전트가 모든 경험을 다 해보려면 너무 많은 시간이 필요하게 됨
그래서 어느정도는 에이전트가 학습한 대로 행동하는 것도 필요하게 됨
이렇게 학습한 결과에 따라 에이전트의 행동을 결정하는 기법을 활용이라고 함.
활용의 기본적인 방법의 하나는 탐용적 방법이다.
탐욕적 방법은 주어진 시점에서 에이전트가 가장 큰 보상을 줄 것이라고 기대하는 행동만을 선택하는 것인데, 예를 들면 상하좌우 네 방향의 값을 알고 있을 때 가장 큰 값을 가지는 행동만을 선택하는 것.
단 한 번의 행동에 대해 최대의 보상을 원한다면 활용이 바람직 하지만 장기적으로 보상의 총합을 키우기 위해서는 탐험이 좋은 방법일 수 있다.
앞의 상황을 이어서 생각해보면 탐욕적 행동의 가치는 확실히 알고 있고, 비탐욕적 행동 또한 그만한 가치가 있을 것 같지만 , 이러한 판단이 상당히 불확실한 경우가 다수 존재한다.
"과연 이길로 가게되면 내가 알고 있는 길보다 더 높은 보상을 얻게 될까?"
불확실하다는건 비 탐욕적 행동 가운데 적어도 하나는 탐욕적 보다 더 좋을 것 같지만 정확히 어떤 행동이 그러한지는 모르는 경우를 의미함
그래서 미래에 남아있는 많은 단계에 대해 행동을 선택해야 한다면 비 탐욕적 행동을 탐험하여 어떠한 것이 탐욕적 행동보다 좋은 것인지를 찾아내는 것이 더 좋다.
그리고 탐험을 하는 동안 단기적으로는 보상이 적을지라도 탐험을 통해 더 좋은 행동을 찾아내고 그것을 많이 활용함으로써 장기적으로 더 큰 보상을 누릴 수 있게 됨.
하나의 행동을 선택할 때, 활용과 탐험을 동시에 할 수 없기 때문에
이것은 종종 활용과 탐험의 딜레마 혹은 갈등으로 불리게 됨
어떠한 특정 경우에 활용을 하는 것이 좋을 지 탐험을 하는것이 좋은지는 정밀한 가치 추정 값과 불확실성, 앞으로 남아있는 단계의 개수에 따라 복잡한 방법으로 결정된다.
그래서 그와 관련된 문제를 풀기 위한 특별한 수학적 과정에 있어서 활용과 탐험 사이의 균형을 잠을 수 있게 해주는 정교한 방법들이 다수 존재한다.
하지만 이러한 방법들 대부분은 사전지식에 대한 가정을 기반으로 수립되는데,
문제는 이러한 가정이 강화학습문제 전반에 있어서, 그리고 강화학습을 적용하는데 있어서 성립하지 않는다는 점이다.
혹여 성립한다고 해도 정말 그런지 검증할 방법 또한 존재하지 않는다.
그럼 활용과 탐험 사이의 균형을 맞추는 정교한 방법은 어떻게 풀어나가야 할까?
이 문제에 대한 정답은 명확하게 정해져 있지 않다.
어떻게든 탐험과 활용 사이의 균형을 맞춰, 적절히 분배하는 것이 중요하다 할 수 있다.
그리고 이러한 활용과 탐험의 적절한 분배에 대한 필요성은 강화학습에서만 나타나는 독특한 어려움이라 이야기되고 있다.
이러한 강화학습만의 독특한 어려움을 해결하기 위해 선구자들은 다양한 시각으로 문제를 풀기 시작했는데,
그 중 행동가치방법에 대하여 얘기해 봄.
행동가치 방법은 말 뜻 그대로, 행동 가치를 추정하고 추정 값으로부터 행동을 선택하도록 결정하는 방법이다.
어떤 행동이 갖는 가치의 참값은 행동이 선택될 때의 평균 보상이며, 참값을 추정하는 방법은 실제로 받은 보상의 산술평균을 계산하는 것.
이 기호는 조건 서술어라 하며, 조건 서술어가 참이면 1, 거짓이면 0의값을 갖는 확률변수를 나타냄
만약 식의 분모가 0이어서 계산을 할 수 없을 때는 0과 같은 어떠한 기본값으로 정의하고 , 또 만약 분모가 무한으로 커지게 된다면 큰 수의 법칙에 따라 행동의 실제 가치로 접근하게 된다.
물론 이것은 행동을 추정하는 하나의 방법일 뿐이며, 이 방법이 반드시 최선의 방법인 것도 아니다.
가장 간단한 행동 선택 규칙은 추정 가치가 최대인 행동 중 하나를 선택하는 것.
다시 말해, 앞서 정의한 탐욕적 행동 중 하나를 선택하는 것.
이러한 탐욕적 행동 선택 방법은 저 식으로 표현할 수 있음.
여기서 이 표현은 바로 이어지는 수식의 값이 최대가 되도록 하는 행동 a를 나타냄
탐욕적 행동을 선택하는 과정에서는 즉각적인 보상을 최대화하기 위해 현재의 지식을 사용하는 것이 항상 포함된다.
더 좋은 결과를 낼 수 있을지도 모른다는 일말의 가능성을 확인하기 위해 누가 봐도 열등한 행동으로 표본을 구성하는 일은 탐욕적 행동 선택에서 결코 일어나지 않는다.
그럼 이러한 탐욕적 행동을 대체할 만한 한가지 단순한 대안은, 대부부의 시간동안에는 탐욕적 선택을 수행하고, 아주 가끔 즉, 상대적 빈도수를 작은 값으로 유지하면서 탐욕적 선택 대신 모든 행동을 대상으로 무작위 선택을 하는 것.
이때 모든 행동이 선택될 확률은 균등하며, 행동 선택은 행동 가치 추정과는 무관하게 이뤄진다.
이러한 규칙을 이용한 방법을 "입실론 탐욕적 방법"이라고 한다.
실제로 이 방법의 효용성은 미지수이다.