--- title: Noisy Networks For Exploration tags: DQN --- [논문 원본](https://arxiv.org/pdf/1706.10295.pdf) 이 논문은 효율적인 exploration을 위해 네트워크 파라미터에 확률(stochasticity)을 넣는 방법을 제안한다. ## 문제 제기 Exploration은 오래 전부터 강화학습에서 많이 연구되어 왔지만 그에 따른 문제점들이 존재한다. - **$\epsilon$-greedy, entropy regularization** : 상태와는 상관없이 policy를 uniform하게 smoothing하기만 한다. large-scale behavioural patterns을 만들기 힘들다. - **optimism in the face of uncertainty** : 작은 state-action space, linear function으로 제한되어 있다. - **intrinsic motivation term** : environment reward와 weight 조절을 사람이 잘 해주어야 한다. - **evolutionary algorithm, blackbox algorithm** : 데이터 효율성이 좋지 않고, 긴 시간의 interaction이 필요하다. - **variational inference, flat minima search** : explicit distribution을 가지고 있어야 한다. - **Thompson sampling** : 파라미터의 distribution이 posterior distribution의 근사값에 수렴해야 한다. 그 외에도 network 영역을 복제한다거나 Gaussian Noise를 더하는 등 많은 방법들이 있지만, 복잡하거나, 학습이 불가능하다는 한계가 있다. ## 해결 방안 그래서 논문에서는 이러한 문제들의 대안으로 **NoisyNet**을 제안한다. 이 방법의 핵심 insight는 weight vector를 한 번 변화 시키는 것이 여러 step에 걸쳐 일관적(consistent)이고 복잡하면서도(complex), 상태에 따른 변화(state-dependent change)를 일으킬 수 있다는 것이다. 기존의 neural network에서 linear layer는 다음과 같이 계산했다. $$ y = wx + b $$ NoisyNet의 linear layer는 파라미터를 $\theta \overset{def}{=} \mu + \Sigma \odot \epsilon$ 의 형태([Reparameterization trick](https://datascienceschool.net/view-notebook/c5248de280a64ae2a96c1d4e690fdf79/#The-reparameterization-trick))로 바꾸어 학습 파라미터를 $\zeta \overset{def}{=} (\mu,\Sigma)$로 변환한다. $$ y \overset{def}{=} (\mu^w+\sigma^w \odot \epsilon^w)x + \mu^b + \sigma^b \odot \epsilon^b $$ - $\mu^w, \sigma^w \in \mathbb{R}^{q\times p}$ - $\mu^b, \sigma^b \in \mathbb{R}^{q}$ <div style="text-align:center"> <img src=https://i.imgur.com/m0T6Eet.png> </div> $\epsilon$는 고정된 범위의 zero-mean noise로, 어떤 shape와 값을 가지냐에 따라 두 가지로 나뉜다. 1. Independent Gaussian noise : 모든 weight에 각각 가우시안 노이즈 파라미터를 가진다. A3C에 사용. ($\epsilon^w \in \mathbb{R}^{q\times p}, \epsilon^b \in \mathbb{R}^{q}$) 2. Factorised Gaussian noise : 출력에 독립적인 노이즈를 가진다. DQN에 사용. 파라미터 수가 작아지기 때문에 계산 비용이 줄어드는 효과가 있다. ($\epsilon^w \in \mathbb{R}^{p}, \epsilon^b \in \mathbb{R}^{q}$) $\sigma$와 동일한 shape를 가져야 하기 때문에, 외적을 해준다. ($\epsilon^w \leftarrow \epsilon^w\times\epsilon^b$) 또한, 분포에 따라 나오는 기대값이 동일하게 하기 위해서 다음과 같이 한다. (하지만 bias의 $\epsilon$은 동일하지 않다.) \begin{matrix} \epsilon^w_{i,j}&=&f(\epsilon_i)f(\epsilon_j) \\ \epsilon^b_j&=&f(\epsilon_j) \end{matrix} 그렇게해서 구한 loss는 $$ \nabla \bar L(\zeta) = \nabla \mathbb{E}[L(\theta)]=\mathbb{E}[\nabla_{\mu, \Sigma} L(\mu + \Sigma \odot \epsilon)]$$ ## 의문점 deterministic 최적의 정책으로 가기 위해서는 노이즈가 없는 것이 좋다. 그렇다면 노이즈가 0이 될 것인가를 실험해본다. $$ \bar \Sigma = \frac{1}{N_{\text{weights}}}\sum_i|\sigma_i^w| $$ <div style="text-align:center"> <img src=https://i.imgur.com/q9mP3GQ.png></div> 어떤 것은 증가하고 어떤 것은 감소하는 양상을 보인다. 문제마다 다르다고만 결론을 낸다. ## 결론 자동으로 noise를 조절한다고는 하지만 특별한 이론적 기반이나 탄탄한 실험이 별로 없어 아쉬움이 남는다. ### 오늘의 배움 - Introduction은 중요하다. 문제를 어떻게 제기하고 기존 방법(역사)들, 그에 대한 해결, 성능, 결과가 잘 압축되어 있다. - 실수는 중요하다. 완벽하게 한 것은 기억에 남지 않는다. tight하게 공부하고 실수하고 기억하자. - 과몰입 금지. 지금 방법이 과연 효율적인지 고민하고 수정하자. - 젊음을 가지고서 오만하지 말자. 자기 관리를 철저히 하자. - 내가 일하고 있다는 것을 티내자. 부산스럽게. 결과물이 나오지 않으면 내가 잘했는지 아무도 모른다. - 커뮤니케이션. 논문에 관해 메일을 보내는 것을 망설이지 말자. ## 정리하면서 드는 질문 사항 - local dithering perturbation을 정확히 어떻게 해석하면 좋을까? - DQN은 Factorized Gaussian noise를 사용하고 A3C는 Independent Gaussian Noise를 사용하는 이유는? - Independent Gaussian Noise와 Factorized Gaussian Noise를 비교하라 하셨는데, gaussian 분포에 따라 x가 나온다면...기댓값을 $\mathbb{E}[x]$로 보고 계산하면 되는건가..