pytorch backward()
keras만 사용하다가 pytorch를 사용할 때 autograd를 사용하는 것이 익숙하지 않아서 고역이다. pytorch에서는 tensor에 대한 자동미분을 loss.backward()같은 기능을 이용해서 해주게 되는데 supervised learning같은 신경망을 학습할때에는 그렇게 신경쓰지않고 예제에 있는대로 가져다 써도 괜찮았다. 그러나 신경망 업데이트 타이밍이 알고리즘마다 제각각인 강화학습을 사용할때 autograd에 대한 이해를 잘해놓지 않으니 코딩할 때마다 매번 혼란에 빠진다. 오늘은 헷갈려서 시간을 쓴부분에 대한 정리. Pytorch를 이용한 REINFORCE 알고리즘을 구현할때 손실함수를 아래처럼 정의하고 써야했다. $$ loss = -\sum_{t=0}^{T}(log \pi (u_{t..
keep9oing
2020. 4. 23. 22:10