기타 지식

교양보다는 어려운 딥러닝 : Deep Q Network

당신이 문외한이라면 이 글을 읽기 이전에 읽으면 좋습니다.

https://www.dogdrip.net/308403472

전공기초보다는 교양수업에 가까운 정도로 쓰려고 했지만,

어느정도 수치적인 이야기가 나올 수 밖에 없네요.

전공기초 수준으로 복잡하게 다루진 않으려고 진심을 다해 전합니다.

 

0. Deep Q Network 란?

Q learning의 Q함수 학습에 deep learning 도입한 모델.

끝.

 

1. 왜 둘을 연결한게 도움이 되는가?

Q learning은 state 별 action의 가치(Q)를 산정하는 함수 (Q 함수)를 학습하는 것이 목적입니다.

함수라고 하지만 (state, action) 의 Q를 저장하는 그냥 표에 불과합니다.

그래서 일반적인 함수랑 달리 Q러닝시에는 (state, action)을 모두 저장할 수 있는 메모리가 필요합니다.

문제는 어지간한 문제는 이 (state, action) 영역이 너무 방대해서 Q(state, action) 함수를 학습하기 힘들죠.

 

예를 들어, 바둑의 state는 19*19 칸에 돌이 흑/백/공백 인 상황이고, action도 19*19 칸 중 한곳에 놔두기입니다.

이 경우 Q함수의 학습해야 하는 영역은 state가 3^(361), action이 361 겠네요.

이 방대한 영역을 학습하는 것은 불가능합니다.

근데 딥러닝은 충분한 성능의 비효율적인 함수인 점을 착안해서

이를 19*19 공간이 -1 0 1의 3가지 state를 가지는 정보로 축소한 뒤,

충분히 큰 복잡도의 deep learning을 학습하면 어떨까?

-> 상당히 효율적인 것을 발견합니다. (알파고)

 

물론 바둑은 사람이 학습하기에도 어려우니 사람에게 쉬운 예를 들자면

1.jpg

DQN이 처음 논문으로 나온 atari breakout의 경우를 봅시다.

action은 간단합니다. 왼쪽, 오른쪽, 가만히 있기.

문제는 state입니다.

가로로 14개, 세로로 8개의 블록이 있고, 공의 좌표와 진행방향, 막대의 좌표가 있겠죠.

아타리 시절의 게임이니까 320 240이라고 가정합시다.

공의 속력은 일정하니 진행방향이... 8개라고 가정하고,

막대의 좌표는 320이라고 합시다.

 

Q 함수가 처리해야 할 state는, 14*8개의 블럭이 있고 없고 (2^112)... 이미 굉장히 큰 숫자입니다.

GPT-3이라는 모델에서 파라메터가 1.7억개라고 어마어마하게 비싼 모델이라고 하는데

1.7억이라고 해봐야 2^30(=10억)도 안되는 상대적으로 몹시 작은 숫자네요.

 

하여간 그래서 Q 학습이 수학적으로는 완전하더라도 공학적으로 무용하다고 생각했는데,

갑자기 딥마인드에서 Q학습을 이용해 인간보다 나은 성능의 ai를 만들어냅니다.

그러니 구글이 관심을 가지고 인수해서 알파고를 만들고 그랬습니다.

 

인간 입장에서는 참 이해가 안 됩니다.

112개의 벽돌이 어떻게 있는지 다 다른 state를 지정해야 하는가? 싶지만

생각보다 컴퓨터라는게 멍청해서 어쩔 수 없습니다.

 

2. Q learning이 이론상 완벽하다고?

2-0. 이 단락을 설명하기 위한 가상의 게임 Froze Lake

예가 없으면 수식만 가지고 설명해야 하는데, 그건 글에 취지에 어긋나니

아주 간단한 가상의 게임을 토대로 설명합니다.

3.png

Froze Lake는 16개의 칸은 각각 S(시작-말), F(빙판), H(물), G(도착지)로 설정될 수 있습니다.

말은 S에서 시작해서 G에 도착하는 것이 목표이고, H에 도착하면 패배합니다.

F는 (S,G모두 해당) 게임 설정인 미끌림 계수에 따라서, 입력한 방향과 그 좌/우 방향으로 미끌립니다.

미끌림 계수가 0.7일 때 아래로 키를 누른다면 70%확률로 아래방향 움직이거나

10%확률로 왼쪽, 10%확률로 오른쪽으로 미끌리거나, 10%확률로 미끌렸지만 원래방향으로 움직입니다.

누른 방향의 반대로 움직이지 않는 것이 핵심입니다.

좌표는 왼쪽 아래 H가 (0,0)이고, G를 (3,0)이라고 하겠습니다.

 

가능한 state의 숫자는?

4^16 = 2^32 = 40억.

헉. 너무 큽니다.

그러니 이 방법은 적절하지 않습니다.

 

+ 사실 벽돌깨기도 기존에는 이런식으로 state 축소를 했었습니다.

다만 벽돌깨기는 state 숫자 이외에 지연된 보상 이라는 문제로 인해서 학습이 아주 어려웠습니다.

 

이 게임의 기본 가정은 빙판과 물, 도착지가 게임 중에 바뀌지 않습니다.

벽돌깨기엔 사용할 수 없는 가정이죠.

그러니 실제로는 말의 좌표만 가정하면 됩니다.

state는 16개가 되겠네요. action은 4개입니다.

 

일단은 미끌림 계수는 0(항상 원하는 방향으로 이동함) 입니다.

 

2-1. Q함수의 학습방식

Q함수가 의미하는 것은 간단합니다.

Q(state, action)은 state에서 action을 하면 얼마만큼의 가치를 얻느냐 입니다.

이 게임에서는 G에 도달하면 1, H에 도달하면 -1, 이외에서는 0이라고 가정합시다.

우연히 2,0 지점에서 오른쪽으로 갔습니다.

ai는 1점을 얻고 게임이 끝났습니다.

이번 학습을 통해 Q( (2,0) , 우) 가 학습되었습니다.

딥러닝에서는 경사하강법 1번이 학습 1번이라면, Q러닝에서는 게임을 한번 시작해서, 종료되면 Q함수를 업데이트 하고, 이게 1번의 학습입니다.

 

어? Q( (2,0) , 상), Q( (2,0) , 하), Q( (2,0) , 좌) 는 학습하지 않나요?

그러면 더 빠를 것 같은데!

두가지 이유로 학습하지 않습니다.

1) 지금은 가상의 게임이므로 시뮬레이션을 돌리기에 2,0으로 돌아가서 4가지 액션을 다 할 수 있지만

실제 게임을 돌리는 경우 그럴 수 없겠죠?

만약에 다른 선택을 했다면 해당 액션의 점수가 학습될겁니다.

2) 지금은 작은 게임이므로 그런식으로 모든 탐색을 하여도 부담이 되지 않지만

바둑을 그런식으로 학습한다고 생각해보면, 살펴봐야 할 수가 너무 많습니다.

 

2번째 학습은 (2,1)에서 시작한다고 가정해봅시다.

지금은 백지상황이기 때문에, 모든 Q영역이 0으로 되어있어서 (3,1)로 가면 -1점을 받는지 모릅니다.

그런데 이전의 학습으로 (2,0)으로 간다면, Q( (2,0), 우 ) 가 1점인 것을 알고 있습니다.

(2,1)에서 아래쪽으로 간다면, 가장 점수가 높은 '우' 액션을 고를 것이 당연하므로, 아래쪽으로 가는 것의 점수는 1점입니다.

ai는 학습되지 않은 다른 지점으로 이동하는 것을 선택하지 않고 아래쪽으로 갑니다.

Q ( (2,1), 하) 와, Q ( (2,0), 우) 가 학습 될 것 입니다.

 

어? 뭔가 이상한데요?

라고 생각한다면 훌륭합니다.

제가 설명을 반대로 했습니다.

지금의 설명은 어떠한 state에서 어떠한 action을 선택하면,

무슨 state로 이어지는지 알고있다는 전제하에 이야기 했습니다.

당연히 학습이 끝난다면 모델은 그 값을 알게 되겠지만, 실제로 학습이 진행되는 방식은 그렇지 않습니다.

 

실제로는 학습은 시작점에서 시작합니다.

그리고 모든 값이 0이므로 랜덤으로 아무 방향을 고릅니다.

(0,3)에서 오른쪽을 골랐습니다.

state는 (1,3)이 됩니다.

그리고 랜덤으로 아무 방향을 고릅니다.

(1,3)에서 아래쪽을 골랐습니다.

state는 (1,2)가 되고 H에 빠져 -1점을 얻고 게임이 끝났습니다.

Q ( (1,2), 하 ) = -1점이 되고, Q ( (0,3), 우 ) 를 고르면 state가 1,2로 바뀌므로

1,2에서 고를 수 있는 액션 중 가장 높은 점수인, (아직 학습되지 않은) 0점이 됩니다.

 

즉, 앞에서 말했던 "이전의 학습으로 (2,0)으로 간다면, Q( (2,0), 우 ) 가 1점인 것을 알고 있습니다." 는

이전의 학습이 아니라 이번의 학습 에서 (2,1)에서 아래쪽을 골라 (2,0)에 갔기 때문에 알 수 있는 정보입니다.

제가 2번째 학습이라고 했지만, 실제로는

(0,3) -> (1,3) -> (2,3) -> (2,2) -> (2,1) -> (2,0) -> (3,0) 이라는 학습에서

Q( (2,0), 우)가 학습된 후에 Q( (2,1), 하 ) 가 학습되는 것을 의미합니다.

딥러닝처럼 뒤에서부터 학습이 됩니다.

신기한 공통점이네요.

 

이렇게 진행되기 때문에 보통은 +에 도달하기 전에 만난 수 많은 -를 피하는 방향으로 학습하게 됩니다.

 

음. 잘 이해가 안 될 수 있지만, 공식을 쓰지 않고 설명하려니 어렵네요.

 

2-2 Q함수의 좀 더 자세한 학습방식

앞에서 "(2,1)에서 아래쪽으로 간다면, 가장 점수가 높은 '우' 액션을 고를 것이 당연하므로, 아래쪽으로 가는 것의 점수는 1점" 라고 말했습니다.

1점을 얻는데 걸리는 액션의 수가 많은게 좋을까요? 적은게 좋을까요?

당연히 적은게 좋습니다.

그래서 미래의 보상은 어느정도 감소해서 반영합니다.

 

이는 2가지 방법이 있고, 모두 씁니다.

첫번째 방법은 미래의 보상의 점수를 줄입니다.

Q(s,a)=r(s,a)+ γ * max (Q(s′,a))

맨날 감마를 뒤집어진 r로만 보다가 y처럼 생긴걸 보니 낯설지만

이렇게 학습하게 됩니다.

여기서 감마(γ)가 미래의 보상을 얼마나 반영할 지를 의미하는 값입니다.

 

(0,3) -> (1,3) -> (2,3) -> (2,2) -> (2,1)(좌) -> (1,1) -> (1,0) -> (2,0) -> (3,0)

로 학습했다고 생각해봅시다.

(2,0)(우) 의 경우에는 바로 1점을 얻게 되므로 max ( Q( (2,0) , a) )의 경우엔 1점이 됩니다.

Q( (1,0), 우) 의 경우에는 감마(0.9라고 정했습니다.)를 곱한 0.9점,

Q( (1,1), 하) 는 0.81점, Q( (2,1), 좌) 는 0.73점, Q( (2,2), 하) = 0.65점 입니다.

이후 학습에서

(0,3) -> (1,3) -> (2,3) -> (2,2) -> (2,1)(하) -> (2,0) -> (3,0)

를 하게 되었다고 합시다.

max ( Q( (2,0) , a) )의 경우는 변함없이 1점이지만,

Q( (2,1), 하) 는 0.9점이 되면서 max( Q( (2,1), a) )가 0.73점에서 0.9점으로 바뀌었습니다.

따라서 Q( (2,2), 하) = 0.81 점이 되었습니다.

(2,1)에서 좌는 0.73점, 하는 0.9점이므로 앞으로 ai는 (2,1)에 도달하면 아래쪽을 고르며 짧은 경로를 선택합니다.

 

두번째 방법은 액션 자체에 -를 부여합니다.

보통 초기 학습은...

(0,3)(상) -> (0,3)(좌) -> (0,3)(하) -> (0,2)(상) -> (0.3) .....

같은 짓거리를 하게 됩니다.

이때 방문했던 state를 또 방문하면 -를 주거나, 단순히 액션 자체에 -를 주면 다음 학습에서는 그러지 않습니다.

 

2-3 랜덤은?

기존의 딥블루나 디퍼블루의 경우에는 체스 ai입니다.

몬테 카를로 탐색 트리 라는걸 써서 경우의 수를 모두 탐색하는 식으로 해결했는데요

만약 Froze Lake의 미끄러짐 처럼 체스말이 미끌린다면 경우의 수 탐색이 어떻게 될지.. 음.

알파스타는 전장의 안개로 가려진 상대의 행동을 어느정도 감안해서 움직이지만,

몬테카를로 서치트리가 그런 기능이 있는지 모르겠네요.

 

그러면 Q러닝은 어떻게 처리하나요?

신경쓰지 않아도 됩니다.

다만 랜덤 환경도 실제 환경과 같게 해서 학습하면 됩니다.

Froze Lake의 미끌림 계수를 0.3으로 학습시키고 1짜리 환경에 던지면 반칙입니다.

현실에 쓸 모델을 학습 시킬 경우에 시뮬레이션을 잘 만들어야 하는 이유입니다.

 

미끌림 계수가 0인 경우에는 시작점인 (0,3)에서 아래쪽과 오른쪽 모두 같은 수의 액션을 거치고 (2,1)에 도착하기에 같습니다만...

미끌림 계수가 1인 경우에는, 사실상 선택한 액션의 반대방향을 가지 않는 점을 제외하면 무작위 걸음입니다.

이 경우에는 최적 전략이 달라집니다.

3.png

(1,3)으로 갈 경우, (2,2)->(2,1) 로 이동하는 구간에서 66%확률로 죽습니다.

 

어? 앞에서 "Q( (2,1), 하) 는 0.9점이 되면서 max( Q( (2,1), a) )가 0.73점에서 0.9점으로 바뀌었습니다. 따라서 Q( (2,2), 하) = 0.81 점이 되었습니다." 라는데

그러면 Q( (2,1), 하) 는 66%확률로 -1점, 33%확률로 0.81 점으로 왔다갔다하나요?

 

그래서 사실 Q러닝시 Q함수 업데이트 공식은 아래와 같습니다.

Q(s,a)= (1-θ) * Q(s,a) + θ * (r(s,a)+ γ * max (Q(s′,a)))

θ는 학습률을 의미합니다.

학습률이 100%라면 한번에 새로 학습한 값으로 Q함수 값을 바꾸는 지조없는 학습모델이고

0에 가까울수록 학습을 하는데 오래 걸리게 됩니다.

보통은 0.05 (5%) 정도의 값으로 합니다.

이러면 확률적으로 발생하는 이벤트에 대해서 충분히 많이 경험한다면 기대값으로 수렴하게 됩니다.

여담이지만 딥러닝은 어차피 움직임이 그다지 빠르지 않아서,

충분히 큰 모델에 대해서는 θ가 없더라도 Q함수가 기대값에 수렴한다고 가정합니다.

 

(0,2)로 갈 경우 (2,1)에 도착하는 것 까지는 100% 생존이 가능합니다.

(0,3)(좌) -> (0,2)(좌) -> (0,1)(상) -> (1,1)(하) 로 움직이면 적어도 H에 빠지지 않습니다.

미끌림이 1인 경우에는 (2,1)은 33%확률로 죽습니다. ( (2,2)로 돌아가는 경우가 있는 좌 는 고려하지 않습니다.)

따라서 미끌림이 0일때는 (2,1)과 (1,0)이 동점이지만, 미끌림이 1일 때는 (1,0)이 최고점이 됩니다.

 

어? 앞에서 액션 자체에 -를 준다고 했는데, 제자리에 있는 선택을 ai가 학습할까요?

성급하게 움직이다가 H에 빠지지 않을까요?

 

결론부터 이야기하면,

액션 패널티가 -0.1이고, 미끄러짐 1일 때 Frozen Lake의 학습결과 Q함수는 아래와 같습니다.

Q(2,0)(좌) = 1/3 + (Q(2,1) - 0.1)/3 + (-0.1)/3

Q(2,1)은 아래 두 값중 하나로 결정됩니다.
Q(2,1)(하) = (Q(2,0)-0.1)/3 + (Q(1,1) - 0.1)/3 + (-1)/3

Q(2,1)(좌) = (Q(2,0)-0.1)/3 + (Q(1,1) - 0.1)/3 + (Q(2,2) -0.1)/3

Q(2,2)-0.1 > -1 이면 Q(2,1)은 왼쪽으로 움직이는..

즉 -1로 성급하게 움직이는 것보다 -0.1의 움직임 벌점을 선택합니다.

-1점을 선택하는게, 결과적으로는 수십번의 미끌어짐을 통해 -0.1을 쌓는 것 보다 더 가격이 싼데도 그럽니다.

인간들도 지금 당장 손해를 피하기 위해 선택을 반복하다가 더 나쁜 선택을 하게 되는 것처럼...

물론 이 경우에는 -가 더 쌓였지만, 이는 ai보고 학습 잘 하라고 준 기분나쁨이지

실제로 벌점이 아니니 가장 +가 많은 점수를 향합니다.

역시 ai는 인간보다 낫습니다.

 

3. 이걸 왜 설명한거야

일단은 Q러닝이 Q함수를 업데이트 하면 정답에 도달한다는 것을 이해해야 합니다.

기계학습에는 지도학습, 비지도학습이 존재하는데, Q러닝은 보다싶이 비지도학습입니다.

그런데 딥러닝 자체는 세간의 인식과 달리 지도학습입니다.

딥러닝에 쓰일 정답지를 자동으로 만드는 딥러닝(GAN이 대표적)이 존재하는 거지,

정답이 존재해야지 학습을 할 수 있습니다.

그러니 정답이 먼저 정답인지를 이해해야 아 그렇군 하고 넘어갈 수 있습니다.

사실 0번 까지만 알고 넘어가도 상관 없을지도 모르겠네요.

 

하여간 2번단락의 내용은 길기만 하고 많이 부실하긴 하지만

Q러닝을 하면 이상적인 Q함수를 만들 수 있다는 걸 납득해야 합니다.

 

그 뒤는 별거 없습니다.

사실 이상적인 Q함수가

Q(s,a)= (1-θ) * Q(s,a) + θ * (r(s,a)+ γ * max (Q(s′,a)))

를 통해서 만든다는 것을 동의 한다면,

2.png

이렇게 딥러닝 모델을 만들고,

output인 Q(s,a)를 이상적인 Q함수로 가는 중간 과정인

(1-θ) * Q(s,a) + θ * (r(s,a)+ γ * max (Q(s′,a)))

로 학습을 시키면

언젠가 딥러닝 모델은 이상적인 Q함수를 짠 하고 내놓을 겁니다.

아마도 DQN을 쓴 것 중 가장 유명한 알파고의 경우

 

판후이와의 대결에서의 알파고는 1202개의 CPU와 176개의 GPU를 사용했다. 2016년 3월의 이세돌 九단과의 대결에서는 GPU대신 48개의 TPU를 사용했다. 마스터 버전과 제로 버전에서는 대폭 줄여 4개의 TPU만을 사용했다.

 

라고 하는데 점점 더 DQN(아마도 정책망이라고 부르는 부분)의 비중을 높히고 후처리를 줄인 다음,

DQN에 쓰인 딥러닝 모델의 크기도 줄인게 아닌가 싶네요.

 

4. DQN의 미래

DQN의 경우에는 3가지 문제가 있습니다.

1) 아무리 딥러닝으로 Q함수 학습 부담을 줄인다고 해도 여전히 학습해야 하는 영역이 너무 넓습니다.

2) Q러닝의 1회 학습에 딥러닝은 1회 액션마다 1번씩 학습해야 합니다. 즉 280수짜리 바둑은 Q러닝 1번 학습하는데 딥러닝을 280번 학습해야 합니다.

3) 이상적인 Q함수의 중간값이 적절한지에 대한 의문을 가질 수 있습니다.

 

실제로 3번의 문제는 부분적으로 사실이라고 합니다.

자주 방문하지 못하는 터미널 단계의 state의 경우에는 매 학습마다 너무 과도하게 반영되는 문제가 있습니다.

Q(s,a)= (1-θ) * Q(s,a) + θ * (r(s,a)+ γ * max (Q(s′,a)))

4.png

그래서 모델을 2개 만들어서 학습하는 double Q 러닝이란게 나왔습니다.

 

또 다른 접근법이 있습니다.

Dueling Q 러닝이라는 것으로 Q함수를 Value와 Adventage로 2개로 나눈 다음

Value와 Adventage로 나눠서 상대적으로 좋은 state로 향하게 하는 겁니다.

5.png

Value는 state 자체를 평가하는 상대적인 값이고, adventage가 action에 따른 변동되는 Q값입니다.

위 그림의 장애물이 없는 경우 adventage는 딱히 관심을 가질거리가 없습니다.

뭘 해도 Q값이 바뀔 여지가 없으니까요.

하지만 Value는 앞의 길에 관심을 가지네요.

Value와 adventage에 대해서 자세히 알고 싶어도 설명할 자신이 없네요.

 

위의 두가지를 조합하면 이전글에서 언급했던 D3QN입니다.

 

 

5. 마치며

이런 글은 사실 대중에게 쓰는 글 보다

면접관한테 설명하는게 더 쉽습니다.

 

21개의 댓글

호에엥 공부할 시간이 부족해요 스토커만 없었으면 스트레스 받고 빡쳐있을시간에 책한권 읽었을거시와요

0
2021.06.20

나도 공부해 본 경험있는 사람으로서 여기 있는 내용 한 번 보고 이해하는 사람은 거의 없을 듯...그래도 설명하느라 수고했으니 ㅊㅊ

0
@퍄퍄존슨

Q러닝 배울때 정말 딥러닝이 얼마나 간단한 블랙박스인지

참 은혜로운 방법론임...

0
2021.06.20

재밌게 잘 읽었어요~

인공지능쪽 분야는 잘 모르지만

이런거 훑어보기만 하면 재밌네

직접 공부해서 파고들면 힘들겠지만;

 

근데 글은 4달 텀으로 씀?

그럼 다음에 10월에 쓸 글 기대하겠음!

0
@흔한닉네임

한가할때 쓰는거라 부정기 연재입니다.

0

시발 내가 이해도 안되는데 왜 다 읽었지

0
@만나서반갑습니다

2가지만 기억하세요

dqn이란 : q러닝+딥러닝

q러닝이 뭔데 : 어떤 상태에서 최적의 액션을 알아서 찾는 학습

0
2021.06.20

머신러닝 너무 어려움....... 4학년에 인공지능 전공 교수가 새로와서 수업 들어봤는데 ㅅㅂ ..... 뉴럴넷 드가기도 전부터 어렵더라;;;

0
@headfish

놀랍게도 뉴럴넷이 가장 쉬운 알고리즘입니다.

뉴럴넷 전에 knn svm q러닝 등등 여러개를 배울텐데...

뉴럴넷보다 성능도 떨어지는게 엄청 어렵죠

그리고 q러닝을 설명하는 2챕터도

생략한 내용이 설명한 수준으로 있습니다만

해당부분은 딥러닝을 적용하면서 고려할 필요가 없어서 생략했죠

0
2021.06.26
@월급받으며개드립하기

knn svn 까지 배우긴 했는데.. 실습은 하지 않았음.. 이론만 했는데 존나 어렵더라... 특히 2차원을 3차원으로 바꾼다는거 자체를 이해하지 못했음...

0
2021.06.20

호오...RL제어 하고있는데 반가운 주제구먼요 다만 제어입장에선 online으로 해야해서 에피소드를 막 돌리고 그럴순없다..

0
@어헛우훗

exploration이 몹시 제한되겠네요.

0
2021.06.20
@월급받으며개드립하기

안한다고 봐야합니다

0

이거 나온지 좀 된걸로 알고있는데 다음단계는 무슨모델임?

0
@히오스브론즈5티어

내가 있던 연구실에선 20년 8월 기준으로는 D3QN의 파인튜닝적인 이야기만 하고 있었음.

여러 방법론 적용해봤지만 아직 같은 비용의 D3QN 보다 성능이 좋은게 없어서 D3QN 의

1) 학습영역을 줄이는 방법

2) 딥러닝 속도 향상

0
ric
2021.06.20

어디서 주워듣기로 dqn이 좋긴 좋은데 시간문제 때문에 현실 서비스에선 그냥 mc쓰는 경우가 많다고 하더라고.

dqn이 학습말고 실행(inference)단계에서도 하드웨어 성능 많이 타는 편이야? 아님 학습이 오래걸려서 그러는 거임?

0
@ric

mc가 몬테카를로 라면 경우에 따라선 그게 효율적일 수도 있지?

근데 실행단계에서는 그냥 행렬곱이라서

몬테 카를로랑 달리 if로 인한 파이프라인 분기예측 실패가 발생하지 않으니까

Q함수가 몹시 복잡해서 뉴럴넷이 깊어져야 하지만, 경우의 수가 발산하지 않는 한정적인 케이스에서나 그렇고

보통은 안 그럼.

알파고에서도 DQN 자체는 0.1초 밖에 안 걸린대. 그래서 DQN 돌리면서 몬테카를로를 하는 짓을 할 수 있던거고

0
ric
2021.06.20
@월급받으며개드립하기

이야기 해준 친구가 트랜스포머/lstm도 못쓰겠다고 하는 거 보면 모델 크기문제일 수도 있겠네.

0
@ric

트랜스포머는 뭔지 모르겠고 lstm은 이런데 쓰는게 아닌데

애당초 기계학습은 인간이 짠 몬테카를로 로는 목표 성능이 나오지 않을때 하는거라

네가 뭘 잘못 이해하고 있거나 걔가 뭘 잘못 생각한거라고 밖에 생각나는게 없네.

 

lstm이랑 dqn이 동시에 적용된다면 이전의 스테이트를 입력받아서 q러닝 하겠다는 건데

q러닝 자체가 어떻게 도달했는지에 관계없이 현 상황으로 액션을 평가하는거라 그럴 이유가 없고

미스테리~

0
ric
2021.06.20
@월급받으며개드립하기

아아, 한 프로그램에 다 적용하는게 아니라 lstm이랑 dqn랑 별개건이야.

서비스 만드는거 여럿 하는 친구인데 그냥 자기가 개발하는 환경에서 신경망 적용하기 힘들다고 투덜거리던 중에 나온거라 ㅋㅋ

(lstm은 아마 언어처리 관련쪽 개발하던거...)

기존 방식은 성능이 불만족스럽고, 신경망은 모델이 커서 탑재가 힘들고, 난감하다고 그러던 걸로 기억함.

0

요즘은 policy gradient를 쓰던데 이게 또 DQN이랑 접점이 얼마없는 학습법이라서 다때려치우고 싶었던적이 기억남

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
5244 [기타 지식] 최근 지각변동이 일어나는 국내 항공업계 (수정판) 9 K1A1 12 15 시간 전
5243 [기타 지식] 도카이촌 방사능 누출사고 실제 영상 21 ASI 2 5 일 전
5242 [기타 지식] 웹툰 나이트런의 세계관 및 설정 - 지구 2부 20 Mtrap 6 5 일 전
5241 [기타 지식] 100년을 시간을 넘어서 유행한 칵테일, 사제락편 - 바텐더 개... 5 지나가는김개붕 1 7 일 전
5240 [기타 지식] 오이...좋아하세요? 오이 칵테일 아이리쉬 메이드편 - 바텐더... 3 지나가는김개붕 2 8 일 전
5239 [기타 지식] 웹툰 나이트런의 세계관 및 설정 - 지구 1부 30 Mtrap 12 8 일 전
5238 [기타 지식] 칵테일의 근본, 올드 패션드편 - 바텐더 개붕이의 술 이야기 15 지나가는김개붕 14 9 일 전
5237 [기타 지식] 웹툰 나이트런의 세계관 및 설정 - 인류 2부 22 Mtrap 14 9 일 전
5236 [기타 지식] 웹툰 나이트런의 세계관 및 설정 - 인류 1부 13 Mtrap 20 9 일 전
5235 [기타 지식] 서부 개척시대에 만들어진 칵테일, 카우보이 그리고 프레리 ... 3 지나가는김개붕 5 14 일 전
5234 [기타 지식] 모던 클래식의 현재를 제시한 칵테일편 - 바텐더 개붕이의 술... 4 지나가는김개붕 2 15 일 전
5233 [기타 지식] 브라질에서 이 칵테일을 다른 술로 만들면 불법이다, 카이피... 5 지나가는김개붕 1 16 일 전
5232 [기타 지식] 럼, 라임, 설탕 그리고 다이키리 편 - 바텐더 개붕이의 술 이... 2 지나가는김개붕 6 17 일 전
5231 [기타 지식] 1999년 도카이촌 방사능누출사고 대량 방사능 피폭 피해자들 ... 9 ASI 5 18 일 전
5230 [기타 지식] 진짜 레시피는 아무도 모르는 칵테일 싱가포르 슬링편 - 바텐... 3 지나가는김개붕 2 18 일 전
5229 [기타 지식] 통계로 보는 연애 상황에서 외모의 중요성 8 개드립에서가장긴... 11 20 일 전
5228 [기타 지식] 추울 수록 단맛이 유행한다, 위스콘신 스타일 올드 패션드편 ... 1 지나가는김개붕 8 21 일 전
5227 [기타 지식] '얼마나 걸릴까?'를 찾는데 걸린 시간은.. 1 동부전선이상무 5 22 일 전
5226 [기타 지식] '누구나 아는' 노래에 대한 이야기 9 동부전선이상무 20 26 일 전
5225 [기타 지식] 알코올 중독에 빠질 수 있는 칵테일, 브랜디 알렉산더편 - 바... 2 지나가는김개붕 5 28 일 전