본문 바로가기

SGD2

DQN 알고리즘 - 2 DQN은 이산공간 상태변수에서만 작동하던 Q-러닝 알고리즘을 연속공간 상태변수로 확장시킨 것이었다. 일단 단순하게 Q-러닝을 바탕으로 만든 DQN 알고리즘은 다음과 같았다. [1] DQN의 파라미터를 초기화한다. 그리고 [2]-[4]를 반복한다. [2] 행동 \(\mathbf{a}_i\) 를 실행하여 천이샘플(transition sample) \(\{\mathbf{x}_i, \mathbf{a}_i, r_i, \mathbf{x}_{i+1}\}\) 를 모은다. [3] \(y_i= r(\mathbf{x}_i, \mathbf{a}_i )+ \gamma \max_{\mathbf{a}^\prime} Q_\phi (\mathbf{x}_{i+1}, \mathbf{a}^\prime )\) 를 계산한다. [4] \(\ph.. 2021. 5. 4.
SGD에서 데이터를 무작위로 추출해야 하는 이유 배치(batch) 경사하강법은 학습 데이터 전체를 사용해서 손실함수(loss function)의 그래디언트(gradient)를 계산하고 신경망 파라미터를 업데이트한다. 반면에 확률적 경사하강법(SGD, stochastic gradient descent)은 전체 데이터에 비해 훨씬 적은 수의 데이터를 무작위로 추출하고 그 데이터만으로 손실함수의 그래디언트를 계산한 후 신경망 파라미터를 업데이트한다. 확률적(stochastic)이라는 용어는 데이터를 무작위로 추출한다는 뜻에서 나온 말이다. 그러면 왜 데이터를 무작위로 추출해야 할까. 대부분 신경망 학습 알고리즘은 손실함수를 정하는 것으로 시작한다. 손실함수를 \( \mathcal{L}(\mathbf{\theta} \ ; (\mathbf{x}^{(i )}, .. 2021. 1. 4.