Backpropagation (BP)은 neural network (NN)의 유일한 학습 알고리즘으로 1986년 Geoffrey Hinton의 논문에서 처음 제안되었고 현재까지도 그 명성을 유지하며 널리 사용되고 있습니다. 현재 가장 많이 쓰이는 deep learning (DL) 프레임워크인 Tensorflow (Keras), PyTorch 또한 BP를 기반으로 NN을 학습하고 있으니까요.
하지만 BP에는 문제점이 있습니다.
등등 많은 문제들이 있습니다. 자세한 문제의식은 이 논문에서 살펴볼 수 있습니다. 따라서 본 글에서는 본인이 고안한 GO-UP (Gradient-based optimization with Ornstein-Uhlenbeck Process)를 살펴봅니다.
먼저 gradient descent의 수식을 살펴봅시다:
$$ \theta_{t+1} = \theta_{t} - \alpha\frac{\partial L}{\partial\theta_t} $$
표준 Gaussian이 아닌 Ornstein-Uhlenbeck process (OUP)는 다음과 같습니다:
$$ \frac{\partial\theta}{\partial t}=-k\theta + \eta,\quad\eta\sim\mathcal{N}(\mu,\sigma) $$
(사실 위 수식은 조금 엄밀성과는 거리가 있습니다.) 이제 위 OUP를 discrete version으로 써 봅시다:
$$ \theta_{t+1}=\theta_t-k\theta_t+\eta_t,\quad\eta_t\sim\mathcal{N}(\mu_t,\sigma_t) $$
만약 이유는 묻지 말고 위 GD가 OUP를 따른다면 우리는 두 식을 연립할 수 있을 것입니다:
$$ \cancel{\theta_t}-\alpha\frac{\partial L}{\partial\theta_t}=\cancel{\theta_t}-k\theta_t+\eta_t,\quad\eta_t\sim\mathcal{N}(\mu_t,\sigma_t) $$
결국 우리가 얻는 식은 다음입니다:
$$ k\theta_t-\alpha\frac{\partial L}{\partial\theta_t}=\eta_t,\quad\eta_t\sim\mathcal{N}(\mu_t,\sigma_t) $$
이제 또 한 번 더 이유는 묻지 말고 $k=\alpha$로 같다고 가정하면
$$ \alpha\theta_t-\alpha\frac{\partial L}{\partial\theta_t}=\eta_t,\quad\eta_t\sim\mathcal{N}(\mu_t,\sigma_t) $$