기계학습 - 몬테카를로
Shared on June 2, 2026
될 것 같은데 어 시험을 어디서 보는 제공지를 할 테니까 확인 시험 보기 전에 확인하고 와서 시험을 보기를 해요 자 그걸 이제 부장에 있는 내용 중에 9.4절 이 몬테카운 로 방법에 대해서 살펴볼 텐데 요 앞에 강화학습의 기법으로서 이 이제 동적 프로그램이라는 것 다이내믹 프로그램이라는 그런 방식에 대해서 살펴봤었는데 이건 기본적으로 어떤 상태가 있고 또 상태에서 행할 수 있는 액션들이 있다고 했을 때
그것들에 대해서 어떤 상태에서 어떤 액션을 취하면 어떤 상태로 변화해갔고 어떤 보상이 주어지고 이런 것들을 줄 수 있는 MDP라고 하는 것이 있는 경우에 이것을 바탕으로 각 셀에 가면 어떤 보상을 받을 수 있고 예를 들어서 드리드월드에 대해서 생각하면 어떤 상태로 가면 어떤 보상을 받을 수 있고
이런 것들을 쭉 따져가지고 누적 보상이 최대가 되는 쪽으로 이렇게 행동을 할 수 있도록 하는 그런 정책을 찾는 방법에 대해서 살펴봤었죠 그래서 그거는 기본적으로 이런 환경에 대한 모델 에이전트가 이제 학습을 하려고 하는 저희는 그 환경에서 MDP가 존재하는 경우에 쓸 수 있는 방식이었어요 그렇죠? 그래서 기본적으로는 이제 누적의 보상을 최대화하는 그런 것을 이제 목적으로 최대화하려면 각 상태에서 어떤 행동들을 취해야 되는지 그 즉 최적의
방식을 찾아내는 그런 방법으로서 쓸 수 있는 거였는데 근데 만약에 그런 MDP가 환경 모델로서 주어지지 않은 그런 경우라고 한번 생각을 해보죠 어떤 상태로 가면은 어떤 보상을 받고 뭐 이런 것들에 대해서 전혀 알 수 없는 상황이다 그러면 동쪽계획법
보통적 프로그래밍 이 방식으로 할 수가 없겠죠 당연히 어떤 상태로 갔을 때 어떤 거 받는지에 대해서 모르니까 그걸 미리 다 파악해서 계산해보고 그런 것들을 할 수가 없을 거예요 자 그럼 그런 환경에서 강화학습 이런 거를 못하느냐 그건 아니고 이제 그렇게 환경에 대한 모델이 없는 경우에 그러면 그런 각각의 상태에 처했을 때 어떤 재생들을 해야 제일 비록 보상이 좋았죠.
줄 수 있을까 하는 그런 것을 하려고 할 때 이제 그런 모델로서 그런 mdp 뭐 이런 것들이 주어지지 않는다면 이제 실제 시행착오를 겪으면서 실전에 나가서 그 환경에 가가지고 내가 이 상태에 있다가 이 상태로 가보니까 보상이 엄마가 주어지더라 또 저기로 가니까 엄마가 주어지더라 나는 그런 실제의 환경에서의 행동을 통해서 그 데이터들을 추워져 갈 수 있다면은 제공
실제로 얻어진 그런 데이터를 바탕으로 아 이 상태가 어느 정도의 가치가 있는 상태구나 또는 이 상태에서 이런 행동을 했을 때 어느 정도의 가치가 있구나라는 것을 실제 데이터로부터 얻어내는 방식으로 실제 데이터의 샘플이죠 그것으로부터 얻어내는 방식으로 해서 그 MVP가 없는 그런 상황에서도 어느 일을 어떤 상황에서 하는 것이 좋은지를 학습할 수 있는 그런 것이 가능해지는데 그게 몬테카운로 방식을 일치하는 기본적인 시대였어요
그래서 오텍하고 시뮬레이션이라고 하는 건 실제 간단하게나마 실제 환경과 비슷하게 그런 상황에서 실제로 뭔가를 해보는 액션들을 쭉 취함으로 해서 액션로부터 받을 수 있는 데이터들을 확보를 하고 그 데이터를 바탕으로 행동을 하는 것이 좋지를 학습하는 그런 일을 할 수가 있겠다는 거죠. 그래서 MDP가 없는 상황에서는 동적 프로그래밍을 적용하기가 그 방식을 적용할 수가 없는데 그런 상황에서 쓸 수 있는 방식을
방식이 모테카로로 방식이에요. 그럼 MVP가 있을 때 그러면 뭐 쓰느냐? 그건 아니고 MVP가 있었다면 그거를 통해서 어떤 시뮬레이션을 할 수 있고 시뮬레이션을 통해서 얻은 실전의 데이터처럼 시뮬레이션을 통해서 얻은 그 데이터를 바탕으로 또 학습을 할 수가 있다는 거죠. 그래서 없는 상황에서도 가능하고 그 다음에 실제 그것이 주어졌다 하더라도 그거를 이용해서 시뮬레이트된 그런 데이터들을 얻어내는 그런 방식으로 학습을 하는 것이 모테카로로 방식이에요. 그래서 이런
예를 들어서 바둑 같은 것을 두려고 한다고 했을 때 바둑 상황에서 바둑돌들이 놓여진 상태에서 이 술을 두면 보상이 얼마 주어지고 그렇다는 것 그런 것을 MDP 형태로서 바둑에 대해서 갖고 있을 수가 없죠 어느 바둑의 고수도 이 상황 되면 여기가
이길 가능성이 높다. 그거를 폭률의 값으로서 NDP 형태로서 제공을 할 수 있는 그런 사람은 없을 거예요. 그 상태 자체도 있다는 무지막지하게 많고 하니까 그래서 아무튼 그런 경우라면 이제 실제 데이터들, 즉 기보들 여기 전에 사람들이 어떤 상태에서 어떤 수를 도왔는지를 쭉 기록해놓은 그 기보를 바탕으로 거기서부터 이제 나타나는 그 상태들
상대가 얼마큼 가치가 있는 것인지 그 상태에서 어떤 줄을 두는 것이 얼마만큼 가치를 갖는 건지 등등을 그 데이터들로부터 쉽게 얻어낼 수 있겠다 그래서 그런 방식이 몬테카루보 방식인 거죠 그래서 실제로 얻어낸 데이터 샘플들을 프리노치 팝으로 삼는 그런 방식이에요 그래서 보통
이제 저희 그 우리 학회에서도 그 뭐 연구 과업 에피소드 과업 이런 얘기를 했었는데 이러한 에피소드 어떤 상태부터 어떤 행동에서 다음 상태로 가고 보상을 받고 그런 것들을 쭉 해서 어떤 예를 들어서 목표 상태에 도달을 한 그런 그 경로 그걸 이제 에피소드라고 한다라고 했었죠 그래서 예를 들어서 그리드 월드에서 예를 들어서 어떤 상태로부터 시작해서 어떤 세일들을 어떤 순서로 그쳐서 중간에 뭐
어떤 식으로 받아서 1번에 도달했는지 16번에 도달했는지 그런 쭉 스위퀀스들이 이렇게 있을텐데 이런걸 우리가 에피소드라고 부르는거죠. 에스 상태에서 못 보상받고 액션 취하면 그 다음 상태로 갖고 보상하는거 같고 등등 이런 식으로 되겠죠. 그래서 이런 에피소드로부터 이런 상태 보상 액션 이런 것들이 쭉 내어되어 있는 이 경로로부터 실제 샘플들을
학습을 하는데 이거 각각의 상태에 대해서 우리가 같이 함수의 값 계산하고 또 어떤 상태에서 어떤 행동을 했을 때 그 값의 함수의 값 Q를 계산하고 하는 그런 일들을 기본적으로 하는데 계산하기 위해서 각각에 있을 수 있는 상태들 거기서 주어지는 보상 이거를 이런 에피소드로 주어지는 데이터로부터 학습 데이터를 이제 수집을 하는 거죠 소위 학습 데이터 샘플을 수집을 하게 되는데
여기 해야 될 것은 어떤 상태에서 어떤 행동을 취하면 어떤 보상을 받고 등등 이런 것들을 실제 데이터로부터 보상을 받고 행동을 했던 그 데이터로부터 얻어야 되는 그런 방식이니까 그걸 수집을 할 때 예를 들어서 이렇게 10번에 여기에서 S0에 해당하는 C10번 셀에 있는 상태라고 하고 아우세우가 0이라고 하고 거기서 동쪽으로 이동을 해서 또 11번에 도달하고
거기서 또 보상은 얼마 받고 이런 식으로 쭉 이렇게 나열이 된 에피소드가 있다고 했을 때 그러면 이제 어떤 상태 행동, 상태 행동 이런 것들을 쭉 데이터로 수집을 해야 될 텐데 어떤 상태로부터 시작하니까 이런 다른 상태들을 거쳐서 여기에 도달하고 하는 것들을 그런 학습 샘프들을 수집을 해야 될 텐데 그 수집을 하는 방식으로서 First Visit 방식하고 Every Visit 방식으로 이렇게 이제 그
하나의 에피소드로부터 여러 개의 학습 샘프들, 경로들을 얻을 수가 있는데 First Visit 이라고 하는 것은 예를 들어서 여기 10에 있는 상태라는 것은 이 에피소드에서 여기서도 또 나타나죠 그렇죠? 쭉 돌아다니다가 10번을 다시 거쳐서 여기 최종적으로 돌아온 그런 하나의 에피소드인데 이 에피소드가 이렇게 이동을 해서 처음에 시작한 곳과 여기 중간에 다시 돌아와서
이렇게 간 그런 경로들을, 경로를 나타내고 있는 건데 First Visit라는 것은 첫 번째 나타난 이것으로부터 끝까지의 경로만 하나의 샘플로 삼는 그런 방식이고 Every Visit, 모든 방문이라고 하는 것은 이렇게 중복되어서 나타나는 그런 것이 있다면 여기 첫 번째 나타나는 것 전체, 요스 리퀀스도 있고 그 다음에 여기서부터 나타나는 여러 한 시퀀스도 하나의 샘플로서 얻는
로 시작하는 그런 샘플들을 모든 방문 방식, every visit 방식에서는 이런 예를 에피소드의 예라면은 두 개를 넣는 거죠. 예를 들어서 이렇게 주어진다고 했을 때 every visit 모든 나타나는 상태 방문을 다 첫 번째로 시작하게 하는 그런 샘플들을 수집을 해보면 예를 들어서 5호를 시작하는 것, 이것은 지금 여기 중에 이것입니다.
상태로 하나죠. 그래서 그것이 첫 번째 에피소드 중에 첫 번째 나타나는 것인데 그 퍼스트 비즈 로부터 시작하는 끝까지의 그 경로를 한 해 에피소드로부터 샘프를 얻을 수 있고 또 친해서 시작하는 것. 여기 보면 여기 하나 있죠. 여기서 시작해서 이거를 실정으로 해서 이제 끝까지 가는 이 부분의 컨셉을 또 하나의 샘플을 얻을 수 있고 그 다음에 구호에서 시작하는 거 이렇게 보면은
5 5 1 에 순서 뭐 어 뷰의 시컨스 고를 시작으로 하는 첫 번째 나타나고 시작으로 하는 올 수 있죠 그 다음에 10인 경우 나가야 됐듯이 지금 여기도 여기서 시작한 시퀀스도 있고 여기서 시작한 여기서 시작할 수 있어요 그쵸 그 경우에 2개를 얻을 수 있겠다는 거죠 샘플을 하나의 에피소드로부터 10에서 시작해서 여기에 끝까지 가는 전체 다 그것이 전체
이 시퀀스는 전체로 시퀀스가 되는 것이고 샘플이 되는 것이고 또 그중에 서비스에 해당하는 이것을 시작하는 이 시퀀스도 하나의 샘플로서 오는 것이죠 그 다음에 11 같은 경우도 여기 나타났고 여기 나타나기 때문에 이렇게 되는 것 하나 하고 그 다음에 11 여기서부터 시작하는 이것 하나 하고
이렇게 얻을 수 있을 거예요. 그래서 하나만 나타나면 하나씩 거기서부터 시작하는 것을 얻을 수 있고 두 번 나타나면 두 개, 세 번 나타나면 각각의 그걸로부터 시작하는 앞에서 쭉 쌓아주고 그걸로부터 시작하는 끝까지가 안어있는 분들 세 번스를 이렇게 얻을 수 있죠. 그러면 이제 여기에 나타나는 모든 상태에 대해서 그거를 시점으로 하는 그거를 시작 상태로 하는 그런 모든 학습 선품들, 이런 경로들
이동 경로들을 학습 샘플로 얻을 수 있을 거예요. 거기서 시작해서 얼마의 어떤 행동을 했을 때 얼마의 보상을 얻고 이런 것들을 다 데이터로 얻을 수 있는 거죠. 그렇죠? 그래서 에피소드 하나 만들어 가지고 그러면 여기서 뭐 어떤 식으로든 이렇게 쭉 실제로 이동을 해가면서 중간중간에 보상이 뭐가 주어지는지를 쭉 다 데이터로 얻고 그 에피소드를 바탕으로 이제 실제
각각의 상태에서 시작하면 그 가치가 어떻게 되는지 그 샘플을 얻어서 계산을 할 수 있도록 하는 거죠 실제 에피소드에 나타난 데이터를 바탕으로 이 값들을 계산할 수 있도록 하죠 이거는 지금 상태에 대해서만 그 경로 그거를 시작으로 하는 그 경로들을 샘플로 쭉 얻은 거고 그 다음에 이제 상태 행동까지 고려해서 상태에서 취하는 행동에 대해서
그것에 대해서 우리가 가치를 계산하고 싶다면 꼬, 꼬, 데이터도 볼 수가 있겠죠. 그러면 이제 아까 꼬 같은 경우 북, 북, 북, 북으로 가는 것 같지 않아도 없었는데 그거 하나, 상태를 모의 행동, 거기서 북으로 가는 행동을 하는 것 그러면 이 시퀀스 받을 수 있을 거고 그래서 이제 이거에 잠깐 이거 좀 이런 상태하고 행 상태하고
행동에 대한 쌍에 대해서 샘플을 얻을 수도 있을 거예요. 그러면 아까 5, 7, 9 이런 거는 하나씩 밖에 없었는데 10 같은 경우에는 아까 V 여기 10 같은 경우에 샘플이 하나 있었고 뒤에 또 10부터 시작한 것도 하나 있고 그랬죠. 그래서 이 경우는 10에 동을 취한 하나의 샘플이 있었고 10에서 액션을 취한 또 다른 샘플이 있고 그런 거니까 그걸 각각 다르게 해. 여기 다르니까 다르게 이렇게
시퀀스를 얻을 수 있을 거예요. 11도 마찬가지 북으로 가는 액션이 하나 있었고 중간 뒤부분에 여기 11에서 서로 가는 액션이 있었고 그러니까 그런 식으로 얻을 수 있죠. 이 경우 같은 상태라도 행동이 다른 것에 대해서 그 상태라도 물론 얻어야지 그 상에 대해서 Q가
가치압수의 값 대산을 다시 가능해질 테니까 이렇게 적은 거죠. 그걸 바탕으로 이제 V값, Q값, 가치압수의 값을 계산하는 일을 할 수 있겠다. 그렇죠? 그러면 실제 프로그룹 실전을 통해서 얻은 에피소드를 통해서 얻은 데이터를 바탕으로 각각의 상태의 가치의 값을 추정을 하는 거죠. 굉장히 많은 에피소드에 대해서
샘플들을 얻어서 할 수 있다면 각각의 상태에 대한 상태 하나만 가지고 하는 그런 것에 비해서는 한 상태로 시작하는 여러 가지 학습 데이터들이 있다면 좀 더 정확한 그런 B값, Q값을 추정을 할 수가 있게 되는 거죠 얻어낼 수가 있는 거죠 그래서 이런 에피소드, 실제 행동들을 쭉 하는 과정에서 얻은 그런 데이터를 가지고
박스 데이터를 쓸 수도 있고 아니면 뭐 mdp 같은 것이 존재하는 경우라면 그거를 통해서 어떤 에피소드를 쭉 이렇게 생성을 하면서 그거를 바탕으로 이런 샘플들을 또 얻어낼 수도 있는 게 가능해지는 거죠 아무튼 mdp가 있는 경우나 없는 경우 다 사용을 할 수 있는 방식이다 그리고 실제 데이터처럼 시뮬레이션 데이터를 하더라도 시뮬레이션을 통해서 얻어놓은 데이터를 가지고 값을 계산할 수 있도록 b값, q값
이런 것들을 계산할 수 있도록 한다는 거죠 그래서 여기 이렇게 얻어놓은 이런 경로들 행동, 상태 행동, 상태 행동의 쌍에 대해서 얻어놓은 그런 경로 또 상태에 대해서만 얻어놓은 그런 경로들 뭐 이런 것들을 가지고 이거는 뭐 하나, 이거는 이것들 하나 이거는 뭐 10에 대해서는 출발하는 것이 두 개 있으니까 그리고 11에 대해서도 두 개 있고 하니까 이런 식으로 전체 몇 개의 그걸로 시작하는 학습생품들이 얻어졌느냐에 따라서
이것들을 계산을 해 줄 수 있는 거죠. C에 의해서, 즉 C는 실제 경로들을 가지고 있는 것이고 그 경로를 따라가면서 얻은 보상, 누적 보상, 이게 R이죠. R을 전체, 그 어떤 상태에 대해서 시작하는 상태로부터 경로들을 다 따져서 그 경로에 대해서 얻은 누적 보상을 다 전체에서 평균하는 형태로 그 상태의 가치를 계산할 수 있겠다.
그 다음에 이렇게 상태 행동상에 대해서도 가치를 어떤 상태에서 어떤 행동을 했을 때의 가치를 즉 누적 보상을 얻을 수가 있겠다 이건 이제 추정을 하는 값 샘플들로부터 실제로 추정을 하는 그런 값이죠 그래서 이런 식으로 자치함수를 실제 데이터, 훈련지법을 얻은 실제 데이터를 바탕으로 추정을 하는 그런 방식이다
거고 올 이제 알고리 등으로 쓴다면 은 그래서 요 하나의 에피소드 만들어 놓으면 거기서 얻어지는 각각 상태를 시작으로 하는 여러 개의 경로들을 착수 데이터로 얻을 수 있고 그 경로들을 바탕으로 상태에서 시작을 했을 때 누적의 보상의 없만지를 이런 방식으로 이제 추정을 할 수 있겠다는 거죠 그래서 고 방식으로 이렇게 하는 것을 여기에 코드의 형태로 만들어 놨는데요 맨 처음에 예를 들어서 지금 어 상태 행동과 참수 요 큐 값을 계산하는 상태에 행동까지 같이 고려한
그 쌍에 대해서, 참가치를 계산하는 그런 경우, 이런 식으로 하면 된다는 것이고, 그거를 이렇게 에피소드 만들어, 일단 기본적으로는 어떤 정책에 해당하는 것을 받아야지, 그 정책에 따른 에피소드죠. 여기서는 어떤 식으로 가야 된다, 저쪽으로 가야 된다. 현재 어떤 정책이 있다고 했을 때, 정책에 따른 에피소드를 만들 수가 있을 거고, 에피소드 발생기까지 입력으로 받아가지고,
정책에 따라서 해당하는 에피소드를 만들고 해당하는 에피소드에서 이렇게 상대 행동을 가지고 하는 업데이트 하는 것을 생각을 한다면 행동들을 쭉 앞에 것처럼 수집을 하고 그걸 바탕으로 요적보상법원을 계산해서 업데이트하는 방식으로 한다는 거죠. 원칙 조건이 만족될 때까지 실제 데이터를 가지고 이런 식으로 진행을 하는 방식으로 하는 거죠. 이게 정책 평가.
어떤 특정한 정책이 있을 때 그 정책에 기반한 어떤 에피소드를 발생시키고 그거를 바탕으로 각각의 상태의 가치 상태 액션의 가치 이런 것들을 개선하는 방법에 대해서 얘기를 했어요 그러면 이거는 지금 어떤 특정한 정책을 주고 그때의 그 정책에 의해서 정해지는 상태 액션의 가치들을 계속해서 추정을 하는 그런 방식인데 지금 우리가 하려고 하는 것은 최적의 정책을 찾는 것이 문제죠 강화학습이 그렇죠 어떤 상태에서 어떤 행동을 하는 것이 제일 좋은지
그 정책을 학습을 그 중에서 제일 좋은 정책을 학습을 해야 되는 것, 얻어내야 되는 거니까 기본적인 방식이 이런 걸 거예요. 예를 들어서 몬테칼로하고 동적 프로그래밍을 비교를 한다면 몬테칼로 방식은 지금 MDP가 주어졌건 아니건 라는 어떤 에피소드들을 바탕으로 실전의 데이터에 해당하는 요구들을 바탕으로 훈련집합을 구성을 하고
그거를 통해서 V값이나 Q값 이런 것을 업데이트하는 그런 방식으로 가는데 만약에 MPP가 존재한다면 여기서부터 에피소드를 얻어내는 일을 물론 할 수 있을 것 같겠죠. 그런데 여기 동적 프로그래밍, 다이네멕 프로그래밍 방식에서는 MPP가 사실 필요하고 이걸 바탕으로 이걸 얻어내는 순환식, 우리가 앞에서 얘기한 뺨은 방정식과 순환식에 의해서 그거를 얻어내는 그런 방식으로 간다는 거죠.
못백한 후는 그것이 있어도 되고 없어도 되는데 있으면 하여튼 이런 방식으로 얻어내는 그런 방식이다 그래서 mdp 라는 것은 뭐였어요? 이것은 각각 모든 상태에서 어떤 행동을 하면 어떤 상태를 갖고 어떤 보상을 주고 하는 그 모델이 주어지는 것이라고 했고 그래서 모든 그런 상태에 대해서 모든 액션에 대해서 그런 것들이 주어져 있기 때문에 그 값을 바탕으로 V값 찾고 Q값 찾고 하는 그런 일을 해서 그 중에 최적의 값을 찾는 그런 것들을 할 수 있는데
모테칼로 방식 그래서 그거는 모든 상태에 대해서 다 값이 그렇게 계산이 되는 그런 상황인데 여기 모테칼로 방식은 에피소드를 만들어 가지고 여기 보면은 여기에 이런 에피소드를 이렇게 만들어서 거기에 나타나는 상태들을 가지고 지금 일단 이렇게 합리적하고 구성을 하고 하는 방식이라서 사실은 에피소드가 충분히 많이 만들어져서 뭐 존재할 수 있는 모든 상태들 그런 것들이 다 이렇게 실제 데이터로서 나타난다면은
그러면은 뭐 나름대로 모든 상태에 대해서 어떤 모든 상태 액션에 대해서 이런 추정값들을 계산을 할 수가 있겠지만 에피소드가 충분치 않은 경우 예를 들어서 그래서 거기에 나타나는 상태들도 전체에 있을 수 있는 모든 상태를 다 갖고 있지는 않은 그런 경우에 에피소드들이 그런 경우라면 실제 이런 데이터들은 어떤 어떤 상태는 에피소드에 한 번도 나타난 적이 없는 그런 상태라서 그거에 대해서는 예를 들어서 가치를 좀 같이 안 적합해서 계산할 수 없는 경우들이 자신을 생길 수 있죠
일반적으로는 에피소드를 충분히 많이 확보를 함으로 해서 그런 문제를 해결하는데 예를 들어서 바둑 같은 경우에는 지불을 수십만 장 이런 식으로 이용을 해서 실제 나타날 수 있는 아주 많은 상황들 상태들 이런 것들을 다 가치를 계산을 할 수 있도록 하는데 그런데 그 사실은 뭐 그렇다 하더라도 거기에 나타나지 않는 실제 바둑에서 있을 수 있는 모든 바둑판의 상태를
모든 에피소드들이 다 갖고 있을 수는 없기 때문에 더 빠지는 것들이 있을 수 있을 거예요 그러면 이제 빠지는 것들에 대해서도 사실은 계산을 근사하게 할 수 있는 그런 방법들이 사실은 이제 필요하겠죠 그렇죠? 그래서 이제 지금 원체 카브가 되든지 아니면 뭐 뒤에 다른 그 타임 디퍼런스 시간차 방식이 되든지 보통 프로그래밍이 되든지 다 이제 그런 빠지는 것들에 대해서는 사실은 제대로 제가 계산을 할 수 없는 그런 한계들이 존재하는데
뭐 한계들을 이제 예를 들어서 뭐 극복하려면은 뭐 신경만 같은 것들을 이용해서 실제로 훈련에서는 나타나지 않는 그런 인풋에 대해서도 근사하게 값을 출력을 낼 수 있는 그런 기능을 제공할 수 있도록 할 수가 있겠죠 그래서 강화학습에서도 이제 그런 신경목을 사실 쓸 수 있고 그것이 이제 심층 강화학습이라는 것에 그 현대적인 강화학습의 기본적인 아이디어인 것이죠 아무튼 지금 얘기하고 있는 것들은 상태가 뭐 이렇게 많지 않은 그런 상태에서 적용할 수 있는 어떻게 보면
현대 강화학습의 기초 기반이 되는 방식의 강화학습 기법들에 대해서 소개를 하고 있어요 그래서 이 몬테카우오 경우에는 사실은 특정 상태에 대해서만도 가치함수 계산, 다른 상태에 대한 그런 가치함수 값이 다 계산되어 있지 않는다 하더라도 특정 상태에 대해서만 가치함수를 계산하는 것이 사실은 가능한 그런 방식이다 그런 식으로 특정한 상태들 몇 개만에 대해서도 계산을 할 수 있으니까 나타난 상태라면 그렇죠?
그래서 기본적으로 몬테카우로 방식이라는 것이 그렇다는 것을 얘기를 했고 어떤 방식에선 간에 최적의 정책을 탐색을 하고자 하는 거죠. 경악수를 통해서 정책을 얻어내려고 하는 어떤 상태에서 어떤 행동을 하는 것이 제일 좋은 결과를 나타내는지 보상이 제일 많은지 그거에 대해서 그 정책을 얻어내려고 하는 거죠. 그래서 그 과정에서 지금 일단
실제 샘플들을 가지고 샘플들을 가지고 이렇게 학습을 하다 보면 아 이 상태로 가면은 이런 보상을 얻을 수 있겠구나 라는 그런 값들을 이제 그 학습 데이터들로부터 얻게 되는데 그것이 사실은 전체에 있을 수 있는 모든 데이터들 어떤 일부분에 해당하는 에피소드를 가지고 얻은 데이터들이기 때문에 그게 실제로 그 뭐 그 상태가 가지는 정확한 가치를 제대로 추정을 한다
그 나머는 보기 어렵겠죠. 그 샘플들에 의해서만 얻어지는 그런 추정값이니까 그게 원래 진실된 그 상태에 대해 추정값에 해당하는 것이 있다면 그것을 제대로 추정을 하는지에 대해서는 사실은 완전한 자신을 하기는 어렵죠. 그렇죠? 그래서 이 경우도 탐험과 탐사라는 개념이 사실은 필요한데 우리가 앞에 K-bandits problem
여러 개의 슬라프 같은 것들이 있다고 했을 때 그게 하다 보면은 실제로 조금 좋은 리턴을 주는 그런 것을 실제로 아주 제일 정치적으로 다 알 수 있는 제일 옵티만 하는 것은 아닌데 실제로 행하는 과정에서 보니까 어 뭐 이게 좋아 보이네 라고 하는 그런 것들을 그게 제일 좋은 것으로 잘못 인식을 하고
그래서 그거를 계속 나름대로 좋은 리턴을 주니까 이 행동을 많이 해야 되겠다는 방식으로 학습을 하게 되는 그런 경우가 생길 수가 있다고 했는데 그게 이제 탐사라고 했었죠. 그래서 탐사에 지우치게 되면 익스포이티션에 지우치게 되면 그러면 글로벌이 오티말라 그런 것을 놓칠 가능성도 있다. 실제로는 제일 좋은 건 아닌데 조금 좋지 않은 그런 것이 그 순간에는 좋아 보여서 그거를 제일 좋은 것으로 착각을 하는 그런 경우가 있을 수 있겠다는 거죠.
여기 이제 열등한 행동이 발생했다고 되어 있는데 열등한 행동이라는 것은 글로벌이 봤을 때 전체적으로 최적의 개념에서 봤을 때 글로벌이 없지만 하지 않은 그런 것인데 실제 하는 과정에서 실행을 하는 그런 과정에서 보니까 다른 것들에 비해서 그게 좀 좋아 보여서 그것을 계속 지도를 하는 그런 것을 하도록 학습을 하는 그런 경우가 발생할 수 있는 그런 행동 그거를 열등한 행동이라고 했는데 뭐 같은 그런 게 발생했다면 그것만 계속 탐사 방식
가능성이 있다 그래서 그것도 이렇게 실전 데이터들을 가지고 좋아 보이는 그런 행동 추정 값으로 좋아 보이는 행동 고구를 고구만 계속 하도록 할 것이 아니라 실제 탐험에 해당하는 것 그 순간에는 저는 좋아 보이지 않는다 하더라도 실제 고구를 행동과 조금 다르게 했다면 조금 더 글로벌이 봤을 때는 좀 더 좋을 수 있는 그런 것들을
시도를 해 볼 수 있도록 하는 방식으로서 탐험을 하게 하는 그런 방식을 쓸 수 있다는 거겠죠 그래서 강화학습이 기본적으로 쓰는 거는 탐험과 탐사의 조절이에요 실제 경험을 통해서 얻어낸 것이 그것만 가지고 판단하는 것이 실제로 제일 좋은 것은 아닐 수도 있기 때문에 그 경험을 통해서 아직 얻어보지 못한 그런 것을 시도하도록 하는 탐험에 나오는 그것을 어느 정도는 하도록 하는 방식과정에서
그래서 탐사를 하게 되면은 계속 그런 방식으로만 하려고 하는 그래서 그게 조기 으로 실제 이 액션이 제일 탐사를 통해서 얻은 액션이 제일 베스트는 아닌데 실제로 그것을 베스트 착각하고 얻게 되는 최종으로 수렴하게 되는 그런 일들을 피하기 위해서 탐험적인 그런 것, 실제 경험으로서 얻어낸 것들만 바탕으로 봤을 때는 제일 좋아 보이지는 않는 건데도
혹시 그런 상태부터 좋지 않은 상태에서 시작했을 때 가보지 않으면은 더 좋은 것이 있을 수 있다는 것을 모를 수 있으니까 그것들을 가지고 시작을 할 수 있도록 하는 그런 것들을 시도를 할 수가 있겠죠 그래서 그런 탐사에 따른 그런 문제점 탐사만을 구집하는 그런 문제점을 피하는 그런 방식으로서 생각해 볼 수 있는 것들이 그러면은 뭐 시작하는 그것을 렌트 모든 것들을 다 가능하게
모든 상태들을 예를 들어서 다 가능하게 시작하는 것으로 해보자 모든 상태 또 모든 행동의 쌍들이 다 발생하도록 강제를 하는 그런 방식으로 빠짐없이 모든 상태들을 모든 행동들과 쌍들을 다 강제하는 방식 그거를 탐험형 시작 익스플로린 스타트 스타트하는 스테이트로서 그리고 액션으로서
어떤 쌍이든지 다 가능하도록 어떤 쌍이든지 다 스타트할 것들이 양 이상이 되도록 하는 방식을 쓸 수도 있고 아니면은 사실은 상자가 굉장히 많고 행동도 많다면 모든 많은 쌍들에 대해서 다 그걸 스타트하도록 데이터를 얻는 것이 시간적으로 굉장히 많은 노력이 필요한 것일 수 있기 때문에 이런 식으로 모든 것들에 대해서는 하지 않지만
탐사에 의해서 정해지는 그 주류에서 벗어날 탐사만의 그런 것으로 생각했을 때는 별로 이렇게 좋아 보이지는 않는 그런 상태 행동에 대해서도 일단 일정한 확률로서 그것이 선택될 수 있도록 그렇게 하는 방식 그래서 엡실론 소프트라고 하는 엡실론 값을 이용해서 어느 확률로서 이렇게 베스트에 해당하는 현재까지 베스트에 해당하는 것이 아닌데도 선택이 될 수 있도록 베스트 행동이 아닌데도 선택이 될 수 있도록 그렇게
가능성을 열어주는 그런 방식 이런 것들로 조기 실험을 피하는 방법으로 사용할 수 있을 거예요 그래서 그 중에 탐험형 시작 익스플로린 스타트 하는 것을 다 익스플로르 하게 하는 그런 방식부터 한번 생각을 해보죠 자 그러면 아까 여기 가볼이 좀 9회 4 그렇죠 방금 살펴본 양은 데 칼로
상대 행동 가치함수 정하는, 추정하는 그런 알고리즘에서 기본적으로 어떤 정책에 대한 것을 바탕으로 거기서 만들어지는 에피소드를 가지고 학습 데이터 구하고 그 학습 데이터에서 이 값들을 추정하는 일을 한다고 했죠. 그런데 이것은 이 정책을 하나 고정을 시켰을 때 그것에 따라서 에피소드 만들고 상태무수 값들을 개선하고
그러니까 정책을 고정 입력으로 받아서 고급 가치권을 했을 때 Q값들 Q값들 Q값들 Q값들 우리가 지금 찾고자 하는 것은 뭐예요? 최적의 정책이라고 했죠 어떤 상태에서 어떤 행동을 하는 것이 좋은지 즉 여러 가지 있을 수 있는 정책 중에 Q값을 제일 크게 만들어주는 그런 정책 그렇죠? 그래서 이제
최적의 탐색을 최적의 정책을 얻고자 하는 그런 원테칼로 방식이라고 하는 것은 개개의 하나의 어떤 정책을 입력으로 받아서 하는 것이 아니라 이 자체로서 여러 가지 정책들에 대해서 평가를 해서 그 중에 제일 좋은 것을 얻어내도록 하는 방식으로 알고리즘이 만들어져야 되겠죠. 그래서 입력으로 받는 것은 일단 어떤 정책이든 그 정책에 입각해서 에피소드를 발생시키는 실제의 데이터죠. 어떤
어떤 상태에서 어떤 것 같고 실제 그거를 실전을 통해서 어떤 시뮬레이션을 통해서 어떤 상태 같더니 어떤 보상태고 이런 것들을 쭉 에피소드로 얻고 그것에서 학습 데이터 만들고 하는 방식이고요 그런데 아까도 얘기했지만 에피소드가 뭐 어떤 것들이냐에 따라서 거기에 있는 상태들이라는 것은 한정적이기 때문에 유한국의 에 참태들만 에피소드에 갖고 있기 때문에 실제 나타날 수 있는
이 시작 상태 그것들은 에피소드에 있는 것으로 한정이 되어 있는거에요. 그래서 그 에피소드 자체를 발생시키기 전에 또 어떤 상태 어떤 행동을 시작으로 할 것인지를 정하고 그리고 그거를 강제적으로 모든 상태 모든 행동들 상이 시작으로 사용될 수 있도록 그거를 미리
정해놓는거에요 맨 처음에 그걸 이제 탐험형 시작 이라고 얘기를 한건데 모든 상태 모든 행동에 대해서 강제적으로 그것이 시작 점이 될 수 있도록 에피소드에서 에피소드가 만들어지는거는 현재 어떤 갖고있는 정책에 의해서 만들어지는건데 그 정책은 이렇게 최적의 정책을 구하는 과정에서 계속 바뀌어 나갈 거고
현재 그 보다 더 좋고 더 좋은 거 뭐 이런 식으로 해서 반복하는 과정에서 더 좋은 그런 정책들을 이제 찾아 나갈 거고 그런 정책이 정해지면은 요 시작하는 것은 요구를 이용해서 모두 빠짐없이 시작점으로 사용 그 에피소드의 시작된 거로 사용이 될 수 있도록 고의 고 상태 고 액션에서 시작하는 에피소드로 그 발생이 될 수 있도록 정책에 따라서 그렇게 하자는 거죠
그래서 이제 그 시작한 상태가 모든 것 모든 액션이 다 나타날 수 있도록 늘어진 에피소드 마사 그렇게 강제를 하는 방식에 그렇죠 그리고 그의 거기서 샘플 받아서 요거 계산하는 것 똑같이 하고 그 다음에 이제 여기 그거는 아까 여기서 계산한 요구구가 동일한데 이제 그거는 하나의 정책에 따라서 국가병안을 하는 거니까 이제 거기서
실제 각각의 QSA 이것 중에서 제일 그 각서를 크게 하는 그 액션으로서 각각의 상태에서 어떤 액션을 취하는 것이 취해질 수 있는 여러 개의 액션에 대해서 이거 계산을 다 해놨는데 그 중에 어떤 액션을 취하는 것이 제일 좋은지 해가지고 그 액션이 실제로 취해질 수 있는 정책으로 되도록 정책이 계속 이 비트 문 과정에서 이것이 이제 바뀌게 될 테니까 계속 업데이트가 되는 거죠 그래서 그 중에 쭉 계속 개선이 되다가
요건이 만족하는 그런 경우에 어떻게까지 발견된 찾아진 그런 정책 중에 제일 좋은 것이 그 때까지 남아있을 거고 그거를 어탕으로 실제 몇 개가 여기에 액션으로 들어가 있느냐에 따라서 이거 데스에서 가면 액션의 최종적으로 얻어진 정책의 각각 상태에서의 액션들 여러 개가 있을 수도 있고 하니까 한가값을 주는 것은 금액입니다.
정책이라는 것은 어떤 상태에서 어떤 액션을 취할 확률 그걸로 정해진다고 했었죠 1 0으로 되는 그런 정책들도 있을 거고 아니면 1 0 사이에 어떤 값으로 있을 텐데 여기서 동으로 갈 확률은 얼마고 남으로 갈 확률은 얼마고 각각의 상태에서의 확률값을 정해주는 것 그게 이제 정책이죠 그래서 이게 확률이니까 취할 수 있는 모든 액션의 확률이 합이 1위도로
이렇게 요거를 요 값에 따라서 배분을 해주는 거죠. 그러면 그게 최적이죠. 여태까지 찾은 건 최적의 정책의 확률로서 최적 정책이 되는 거죠. 그런 방식으로 하는 것이 탐험형 시작이에요. 그래서 기본적으로 아이디어는 모든 행동상, 상태 행동상에 대해서 그것이 항상 에피소드의 등장, 첫 번째로 등장하도록 놓치는 그거를 어떤 행동상에건 빠지는 일이 없도록 모든 행동상에 대해서 규값이 계산되고 최적의 것이 되도록 하는 그런 방식입니다.
그런데 사실 있을 수 있는 행동, 있을 수 있는 상태 이런 것들이 적으면 이것을 모든 것에 대해서 시작하도록 강제하는 것이 커다란 문제는 없을 수 있는데 일반적으로 이것이 있을 상태가 굉장히 많다, 행동도 취할 수 있는 것이 많다 그러면 모든 쌍, 있을 수 있는 쌍들을 생각하면 굉장히 많은 연산을 사실은 필요로 하죠 모든 것들에 대해서 다 그걸로 시작하는 에피소드 만들어 봐야 되는 일들을 반복을 하는 거니까
그래서 이건 계산량이 사실은 굉장히 많아질 수 있는 그런 방식이에요 그래서 뭐 그거를 나름대로 조금 보완하기 위한 방법으로서 두 가지 방법 중에 엡슬론 소프트라고 하는 그런 방식을 쓸 수가 있는데 이것도 최적의 탐색을 최적의 정책을 탐색하기 위한 방법으로서 쓸 수 있는 것이죠 그런데 지금 방금 살펴본 탐험형 시작은 리피트를 하는 그런 과정에서 정책을 지금 계속 이런 식으로 업데이트하는 일을 계산하는 일을
여기 repeat해서 하는데 그 계산하는 과정에서 그 계산할 때 모든 상태 행동에 대한 에피소드들이 만들어지도록 강제를 하는 방식이라고 했어요 근데 이 엡실론 소프트라고 하는 방식은 그것과는 조금 다르게 탐험과 탐사 나름대로 균형을 맞추는 방식이라고 볼 수 있는데 자 이거는 이제 엡실론이라는 요 값을 일단 입력으로 받아가지고 어떤 확률로서
실제 맥스 값을 주는, 이것을 지금 찾아서 QSA 계산한 이런 샘플들을 가지고 계산한 가치항수, 어떤 상태 행동에 대한 가치항수 값 계산한 것 시스텐데, 그것은 지금 에피소드에 나타난 상태 가지고 한 거예요. 그런데 탐험형 시작이라는 것은 에피소드의 첫 번째 시작으로 모든 상태 행동이 다 나타나도록
에피소드를 만드는 그런 방식이고 그럼 당연히 거기서 샘플 만들 때 모든 상태에 대해서 다 규가 개선을 할 수 있는 거죠 이거는 이것과는 달리 맨 처음에 이것을 강제를 하진 않아요 여박의식은 이것도 최적의 정책을 찾고자 하는 건데 그래서 정책을 임의의 값으로 시작해서 그 정책에 따라서 에피소드를 만들고 또 정책을 이 방식으로 업데이트를 하고 하는 일들을 하는데
요구를 처음에 시작할 때 부터 이렇게 강제하는 그래서 그거에 따라서 항상 그 내는 소득가 싶어서 시작으로 하도록 그렇게 강제하는 방식으로 하지 않는다는 거예요 아까 이거는 초표 5 전에 첫 번째 그 일반적인 정책이 주어졌을 때 계산하는 것처럼 일단은 여정책 지금 이 입천 제 있는 정책이 있다면은 그거에 따라서 일단은 뭐가 시작이 되고 한 에피소드를 만들어요 그래서 여러 개의 것들이 뭐 어떤 것이 그 처음에 시작으로 될지 그거는 모르는 상태로 일단은 좀 만들어서 에피소드를 만들어서 다른 샘플을 거기서부터 수집해서 요구 계산하는 거 요구는 이제 아까 요구 방식과는 달리 아까 고전에
하나의 정책 가지고 Q값 계산하는 것처럼 에피소드 하나 만들어진 것 기반해서 그것을 가지고 얻는 방식으로 하는데 여기에서 A에 여기서는 넣을 때 이 max 값을 주는 이것을 S에서 취할 수 있는 액션으로 정하는 과정에서 정책을 업데이트를 하는 것인데 현재 정책 가지고 Q값 계산했더니 S에서 어느 정도의 정책을
어떤 액션을 취하면 제일 큰 값이 되더라 라는 그 액션, 그렇죠? 여기가 알고 맥스니까. 그거를 하는 거죠. 여기 아플렉스는 이 액션. 그거를 그냥 넣는 방식으로, 여기에 넣는 방식으로 정책을 업데이트를 하는 거죠. 개선하는, 세밀팀, 더 큰 Q값을 주는 쪽으로 여러 개 취할 수 있는 행동들 중에 제일 큰 Q값을 주는 그런 행동으로 정해지도록 하는 건데 여기서는 일단은 뭐 그런 거 당연히 제일 뭐
현재까지 봤을 때는 최적의 행동이라고 보이는 것 이거 아브맥스 그거를 맥스로 하는 Q값 가치를 계산했을 때 S에서 어떤 행동을 하는 것이 제일 큰 Q값을 주는지 그 A를 지금 이렇게 구하는 건데 이건 뭐 여기와 자율은 같죠 근데 이 방식에 따라서 그 구해진 A'이라고 한다면 요걸 맥스값으로 만들어져요
액션 행동 그것만 좀 할 수 있는 정책으로 만드는 것이 아니라 그 외에 다른 액션들 거기서 S에 대해서 취할 수 있는 맥스로 만들지 않는 다른 액션들이 있을 수 있겠죠 그것들에 대해서도 일정 부분 그 행동이 그 상태에서 실제로 수행이 될 수 있도록 하는 정책으로 이렇게
만들어져요. 여기 정책이라고 그랬죠. 어떤 s 에서 어떤 행동을 취하느냐. 근데 아까 조방식에서는 어떤 행동을 취하느냐. 맥스 값을 주는 이걸로 그냥 정해지는 데 방해서. 엑스마 소프트방식은 그것도 오케이. 확률로 주고. 그게 이제 실제로 맥스 값을 주는 거니까 일단은 우대를 하고. 주류의 액션으로 우대를 하고. 근데 그렇지 않은 것. 엑스 값을 주진 않는 지금 여태까지 만들어 놓은. 계산해 본 그 q 값 s 에서. 저 행동을 여러 개 취할 수 있는데. 제일.
큰 값을 주는 것을 Q값으로 그렇지 않은 것들은 큰 값을 주지 않는 현재까지 계산된 Q, Q 볼 때는 조금 작은 Q값을 주는 그런 행동들 S에서 취해 줄 수 있는 다른 행동들이죠 그것들에 대해서도 일정 확률로서 거기 상태에서 취해 줄 수 있도록 그 행동이 그런 정책으로서 이렇게 만들어줘요 업데이트를 하는 과정에서 그러니까 여기 이렇게 업데이트를 해서 이 맥스로 고정을 시키는
그런 액션들만 주는 방식과는 좀 다르죠 그래서 말하자면 요 부분 요게 이제 헌문하게 하는거죠 그 정책상 그런 행동도 나타날 수 있도록 하는 것이니까 그래서 이 엡슬론이라는 입력으로 받은 그 값을 바탕으로 해서 총 요게 임적으로 받아들여 되는 거예요. 임정 프라미터
그것 기반으로 어떤 확률로서 이것도 이것뿐만이 아니라 선택이 될 수 있도록 그래서 보통은 예를 들어서 엡실론이 여기서 일사의 어떤 값일 텐데 주류의 확률 주류 액션이 저 실제로 맥스마이저 하는 그 액션이 뭐 그거를 현재까지 데이터를 바탕으로 나름대로 이것이 제일 큰 가치를 주는 그런 액션이다 라고 지금 판단이 된 거니까 뭐 그것도 인정을 하긴 하는데 그것만 인정을 하는 것만 취재 액션을 얻는 것이 아닌
다른 것들도 일정 부분을 확률로서 취해질 수 있도록 일정 부분을 결정하는 것이 엡슐론 값이에요 그래서 전체 예를 들어서 10% 그래서 전체의 90% 정도는 예를 들어서 이 값의 Q값을 제일 맥시마이제하는 그런 것에 대해서 행해지도록 예를 들어서 90%의 확률을 주고 나머지에 대해서도 행해질 수는 있도록 영은 아닌 저 그런 확률로 행해질 수 있도록
이 값이 0보다 커지도록. 그래서 그거를 전체 A'인 경우는 실제 여기서 정해진 뇨. 맥스마이즈 하는 그런 argument로서의 액션이고 그렇지 않은 나머지 액션들도 있겠죠. 나머지 액션들 A'이 아닌 맥스마이즈 하는 그런 argument에 해당하는 액션이 아닌 것들도 여러 개 있을 수 있을 텐데 아무튼 그것들에 대해서도 이런 확률로서 선택이 될 수 있도록.
0이 아닌 주제를 하는거죠. 그러면 결국 A'인 것 또 아닌 것들이 여기 A, 여기 S에서 취할 수 있는 액션에 집합해 있을텐데 그 중에 이 A'에 해당하는 맥시마이즈, 요거스 맥시마이즈 하는 액션 이만큼의 확률으로써 취할 수 있게 해주고 나머지에 대해서도 예를 들면 뭐 작겠지만 취할 수 있게 0은 아니게 이렇게 하는 방식으로 하는 것이 엡션 소프트에요. 그래서 결국 요거 나머지에 대해서 요거
나머지는 각각 다 똑같은 확률이죠. 전체 S는 3수고 이건 전체 액션의 수니까 이건 항상 다른 액션들에 대해서 다 똑같은 것일 거고 이것이 아닌 다른 액션 수 A, S에 여기에 별간된 A 곱하기 이거 그다음에 요고 더하기 사실은 값이 1이 되겠죠. S에 취해줄 수 있는 모든 액션에 대해서 어떤 액션이 확률로 취해져야 할지 정해질 수 있는 정책이죠.
계속 그렇게 하고 그거를 계속 반복하는 방식으로 해요 그래서 이것과 다른 점은 여기서 시작할 때 강제를 하는 시작점이 어떤 상태에 어떤 행동이 될지 시작점이 그걸 강제를 하는 방식인데 이건 그건 아니고 여기서 각각의 상태에서 어떤 행동이 주어져 일지에 대해서 next만 하는 그런 액션뿐만 아니라 다른 것에 대해서도 허용을 해주는 그런 방식으로 하는 방식이
그래서 이 방식은 여기 탐험형 시작에 비해서는 사실은 계산하는 부분에 있어서 연산량이 훨씬 줄어들 수 있는 장점이 있죠. 이거는 모든 상태 행동, 실제 상황에서는 사실은 나타나지도 않을 수 있는 그런 어떤 상태 행동을 다 시작적으로 강제를 하는 방식이기 때문에 모든 상태 행동에 대해서 감성을 구하게 되어서 여성력이 사실은 불필요한 게 많을 수 있는데
그런 것은 안 하고 이런 방식으로 하는 것이기 때문에 연산량 측면에서 좀 더 줄일 수 있는 강점이 있고 최적의 정책을 탐색하는 방법으로 쓸 수 있는 것이다 이런 것이죠 이런 방식이다 그러면 최적의 정책을 탐색하는 앱슬런 소프트 방식 다음 영상에서 만나요.
방식 다음 지 모테 칼로 방식인데 실제 데이터를 바탕으로 에피소드 가지고 데이터로 삼아서 방식인데 이거는 기본적으로 정리를 하자면 환경 모델이 없어도 적용 가능하다 MDP가 없어도 에피소드 발생기가 있다면 못 구워가지고 여기서 실제 모델에 의해서 발생을 하는 에피소드 발생기일 수도 있고 아니면 이미 수업이 되어 있는 데이터 바둑 데이터 같은 경우라면 바둑 여태까지 쭉
그런 기본 데이터 그게 다 에피소드 역할을 하는 거죠. 그래서 그런 에피소드를 수진만 할 수 있다면 적용 가능한 방식이다. 실제 데이터를 가지고 하는 흥련 데이터를 산 그런 방식이니까. 그리고 이거는 부트 스트랩 방식이 아니다. 부트 스트랩이라고 하는 거 앞에 동쪽 프로그래밍, 다이내미 프로그래밍 방식에서 영어가 나왔을 텐데 이거는 V값, Q값 계산할 때 다른
글리드 본드에 따라서 한다면 다른 상태에 대해서 계산된 V, Q 그 값을 이용해서 그거를 바탕으로 상태의 V값 계산하고 하는 그런 방식으로 되어 있죠. 그래서 그 배열의 값들을 저장, V, Q, 배열 이런 것에 저장을 해 놓고 그거를 바탕으로 이렇게 다른 추정치 사실은 모든 중간중간에 계산된 값들은 다 추정치에 해당하는 건데 그렇죠?
그거를 계속 반복적으로 남은 값들을 가지고 자신의 값을 업데이트하고 하는 이런 과정들을 거침으로 해서 점점점점 최적의 값에 가까워지는 그런 형태로 될 텐데 그래서 사실 어떤 값을 계산하려면 다른 셀들에 있는 값, 다른 상태에 대해서 계산된 비값 이런 것들이 다 계산되어 있어야 되는 그런 방식 그게 이제 부스 트라이핑 방식이죠 매부의 도움을 쓰는 그런 것 대신에 내부적으로 실제
갖고 있는 데이터들, V 데이터 원, 그런 것들을 저장해 놓은 것을 갖다 쓰는 방식이에요. 그런 것에 비해서 이 몬테 카우로 방식은 그렇지는 않은 방식이죠. 그렇죠? 루트 트래핑 방식은 안 돼요. 실제 데이터로부터 나타나는 그 그 상태들, 이런 것들, 액션들, 상태들, 그런 것들에 대해서 갖고 있는 값들을 이용해서 계산하는 방식이라서 모든 상태에 대해서 계산이 되어야 할 것들은 다 계산이 되어야 할 것입니다.
없는 방식이죠. 그래서 이 경우는 사실 아까 얘기했지만 어떤 특정한 우리가 관심이 있는 그 상태에 대해서만도 그걸 시작점으로 하는 데이터, 학습 데이터가 있다면 그거 가지고 얻을 수 있는 것이 가능하다. 그 다음에 이게 MDP를 갖고 있지 않아도 쓸 수 있는 방식이라고 했고 그러니까 그 환경이 이 Markovs decision process에 해당하는 그런 Markovs 성질
갖지 않는다 하더라도 사실은 적응 가능한 이미 실제로 얻은 데이터를 가지고 사용을 하는 것이기 때문에 그렇죠. 그래서 이러한 나름대로의 동쪽 프로그램에 비해서 조금 장점을 가지는 그런 방식이다. 장점이라고도 할 수 있고 아무튼 모델이 제공되지 않는 환경에서도 사용 가능한 그런 방식이다. 그래서 이제 크게 강화학습의 기본적인 학습 방식으로서
동작 프로그래밍, 모태 카운터 방식에 대해서 살펴봤고 그 다음에 우리가 살펴볼 수 있는 또 다른 기본적인 강화학습 방식은 시간차 학습, Temporal Difference Learning 또는 TD Learning이라고 합니다. 이 부분은 지금 시간이 조금 걸리는 부분이라서 이 부분부터 동영상 강의로 그 전에 끝까지 해서 올려놓도록 할게요. 그래서 끝까지가 이번 기만고사
다음 주 화요일에 공지가 되는 강의실에 가서 시험을 보시는데요.