• Daum
  • |
  • 카페
  • |
  • 테이블
  • |
  • 메일
  • |
  • 카페앱 설치
 
카페정보
카페 프로필 이미지
Europa Universalis
카페 가입하기
 
 
 
카페 게시글
검색이 허용된 게시물입니다.
학술게시판 공학 알파고의 일부 원리 - 1
메가스콤네노스 추천 0 조회 1,196 16.03.11 20:44 댓글 22
게시글 본문내용
 
다음검색
댓글
  • 16.03.11 21:04

    첫댓글 잘 읽었습니다. 어떻게 이런것들을 알고계신지 궁금합니다.

  • 작성자 16.03.11 21:57

    예전부터 기계학습에 관심을 가지고 있었어가지고 이런저런 공부를 해왔습니다.

  • 16.03.11 21:39

    이걸 보니까 생물의 진화도 이것과 유사하게 진행되었을지도 모르겠다는 생각이 드는군요.

  • 작성자 16.03.11 22:00

    MDP의 확률론적인 특징은 확실히 그런 점에서 매우 흥미롭습니다. 저희가 살아가는 세계는 매우 불확실한 곳이고 같은 행동을 했건만 매우 다른 결과가 나올 수도 있으니까요.

  • 16.03.12 22:18

    실제로 인간 아기는 외부세계에 대한 일종의 통계적 분석을 통해 세상에 대해 학습한다고 합니다.

  • 작성자 16.03.13 07:21

    @첝 흥미로운 사실이네요.

  • 16.03.12 07:41

    벨만 방정식의 d값에 대해 좀 더 자세히 알 수 있는 자료가 있을까요? U(s1)을 고려할 때 U(s2)를 너무 크게 고려하지 않도록 하려고 시간가치 비슷한걸 부여한 정도인 건 알겠는데 구체적으로 d값이 어떻게 정해지는지에 대한 원리가 궁금하네요.

  • 작성자 16.03.12 10:34

    d값을 시간가치와 비슷한 것으로 보신 것은 정확합니다. 우선 유틸리티 값을 정의하는데 있어 나타나는 무한한 지평선 문제(Infinite Horizon)라는 것부터 언급해보겠습니다.

    동전이 하나 있습니다. 동전을 튕긴다면 님은 무조건 백원을 얻습니다. 앞면이 나오던 뒷면이 나오던간에요. 동전을 튕기지 않는다면, 님은 무조건 오십원을 얻습니다. 튕기던 튕기지 않던 무조건 님은 이득을 봅니다. 단지 얻는 이득의 총량이 달라질 뿐이지요. 그렇다면 이 세계에서 님이 내릴 수 있는 최적의 행동은 무엇일까요? 당연히 동전을 튕기는겁니다. 동전을 튕긴다면 백원을 얻고 동전을 튕기지 않으면 오십원을 얻으니까요.

  • 작성자 16.03.12 10:35

    @메가스콤네노스 문제는 이 세계에는 시간제한이 없다는겁니다. 님은 원하신다면 동전을 백번 튕길수도, 천번, 만번, 천만번, 무한한 숫자의 행동을 취하실 수 있습니다. 아무 제한이 없으니까요. 모든 상태에서 동전을 튕기는 전략을 p1이라 하고 모든 상태에서 동전을 튕기지 않는 전략을 p2이라 합시다. 아무 제한이 없는 무한한 지평선의 세계에서 p1을 택할시 예상되는 유틸리티값과 p2을 택할시 예상되는 유틸리티 값에 차이점이 존재할까요? 둘 다 무한인데도요? p1이 p2보다 유리한건 분명한데, 둘 다 예상가치가 무한에 다다르니 사실상 비교가 불가능합니다. 이걸 바로 무한한 지평선 문제라 합니다.

  • 작성자 16.03.12 10:38

    @메가스콤네노스 이 무한한 지평선 문제는 다른 부작용과도 이어집니다. 승리의 직전에 도달했을 때 승리를 취해서 게임을 끝내는 올바른 결정을 하는 대신 게임을 끝내지 않고 계속 시간만 끄는 기괴한 결정을 내리는 식으로요. 인공지능의 목적은 보상을 최적화하는거고, 승리를 취한다면 더 이상 보상을 얻을 수 없지만 승리를 취하지 않으면 계속 보상을 무한히 누적시킬 수 있으니 무한한 지평선의 세계에서 인공지능은 승리를 취하지 않는게 이득입니다. 이것은 무조건 해결해야만하는 아주 큰 문제입니다.

  • 작성자 16.03.12 10:42

    @메가스콤네노스 그래서 도입 된 d값은 이렇게 정의됩니다.

    0 <= d < 1

    1보다 작고 0보다 크거나 같은 숫자. 벨만 방정식에서 보이다시피, d값이 0이라면 수식의 오른쪽 부분이 모두 다 사라집니다. 미래의 가치를 아예 눈꼽만큼도 보지 않는거죠. d값이 1이라면 없는거나 다름 없고 그렇다면 뒤에 곧 후술할 기하급수를 이용할 수 없으니 d값은 1보다 작아야합니다. d값이 1보다 작다면, 벨만방정식의 특수한 구조에 의해 아주 재밌는 일이 일어납니다. 벨만 방정식의 안에 이미 유틸리티 함수가 들어있잖아요? 그런데 벨만 방정식 안에 포함되어있는 유틸리티 함수에도 역시 d값이 들어있습니다.

  • 작성자 16.03.12 10:44

    @메가스콤네노스 그럼 벨만방정식 안에 포함되어있는 유틸리티 함수 안에 포함되어있는 유틸리티 함수 안에 역시 d값이 들어있고, 무한반복. 끊임없이 자기자신을 호출하는 재귀적인 함수이기 때문에 d값은 꾸준히 호출되고 또 호출되면서 계속 제곱이 되어갑니다. 그런데 d는 1보다 작은 숫자죠? 그렇다면 d는 꾸준히 계속 작아집니다. 벨만방정식 안에서 유틸리티 함수가 호출되는 것은 미래의 예상가치를 산출하기 위해서인데, 방정식 구조상 그 예상가치의 예상가치가 또다시 산출되게 되고, 결국엔 예상가치의 예상가치의 예상가치 역시 또 산출되며 이것이 무한히 반복됩니다. 그런데 예상가치가 산출 될 때마다 d값이 꾸준히 계속 적용되니

  • 작성자 16.03.12 10:46

    @메가스콤네노스 결국엔 d값이 0에 수렴하게되고 d값이 0에 수렴하고나면 사실상 그것이 지평선의 끝이 되버립니다. 무한한 지평선이 유한한 지평선으로 바뀌는거죠. 하지만 이 지평선은 계속 위치를 바꿉니다. s1에서 s2로 넘어가서 다시 s2에서부터의 예상가치를 산출하게되면, 여전히 동일한 거리에 유한한 지평선이 놓여집니다. 아무리 이동해도 상태와 지평선간의 거리가 바뀌지 않는거죠. 아주 큰 장점입니다.

  • 작성자 16.03.12 10:59

    @메가스콤네노스 그럼 이제 유틸리티 값을 이렇게 정의해봅시다.

    U(s1, s2, s3, s4 ~~~) = ∑d^t * R(st)
    t=0

    st는 t번째 상태 s를 일컫는거고, R(st)는 t번째 상태 st의 즉각보상을 뜻합니다. 그냥 모든 상태에 대해 즉각보상 값을 다 더한건데, 매번 d값을 제곱해가면서 서서히 줄여나갔습니다. 그럼 이건 기하급수를 이용해, R(m)를 각 상태가 얻을 수 있는 최대의 보상값이라 할 시, 이렇게 정리할 수가 있습니다.
    ∞ ∞
    ∑d^t * R(st) <= ∑d^t * R(st) = R(m) / (1 - d)
    t=0 t=0

  • 작성자 16.03.12 10:58

    @메가스콤네노스 이렇게 d와 기하급수를 이용해 유틸리티 함수의 무한한 지평선 문제를 해결하고나면 결국 벨만방정식을 유도할 수 있게 됩니다.

  • 작성자 16.03.12 11:01

    @메가스콤네노스 여기서 핵심은, 유틸리티 값의 최고값은 모든 상태에 대해 최대보상 R(m)을 넣은겁니다. 즉, 유틸리티 값이 어떻게 되던간에 모든 유틸리티 값은(댓글창에는 시그마를 제대로 쓰기가 힘드네요; 아래에 t=0 넣고 위에 무한기호 넣어서 보세요) ∑d^t * R(st) 보다 작거나 같습니다. 그런데, 유틸리티 함수라는게 얻을 수 있는 가~~장 높은 값이, 무한이 아니라 유한입니다. 기하급수에 의해 정의되었으니까요. 그럼 무한한 지평선 문제가 해결되는겁니다.

  • 16.03.12 11:46

    @메가스콤네노스 결국 무한한 지평선 문제를 해결하기 위해 0<=d<1으로 설정한다는 건데, 그렇다면 효용함수의 d값은 사람이 처음 설정한 임의의 값이 계속 남게 되는건가요? 아니면 딥러닝 과정에서 적절한 d값을 컴퓨터가 추론하면서, 최초에 사람이 설계한 효용함수보다 좀 더 적절한 d값을 갖도록 효용함수를 수정해 나가는 프로세스가 추가적으로 있는건가요?

  • 작성자 16.03.12 11:52

    @halvarian 보통은 여러 다양한 d값을 시험해보고 가장 적당한 값이 구해지면 그걸 쭉 사용합니다. 알파고는 어떤지 잘 모르겠는데, 아마 비슷할겁니다.

  • 16.03.12 11:55

    @메가스콤네노스 그렇군요! 설명 감사합니다. 다음 글도 기대하겠습니다 ^^

  • 작성자 16.03.12 12:04

    @halvarian 감사합니다 ㅎㅎ

  • 작성자 16.03.12 15:24

    @halvarian 아 근데 기계학습에 관심이 가셔가지고 좀 더 자세히 배워보고 싶으시다면 class central 들어가서 기계학습 강의 괜찮은거 찾아 들어보세요. 좋은거 많습니다.

  • 16.03.12 22:19

    대학 들어갔을 때 나도 이런 걸 했어야하는데... ㅠㅠ

최신목록