옵티마이저 2

옵티마이저(Optimizer) (2/2)

💡 'Deep Learning from Scratch'와 'CS231N'을 참고하여 작성 (각 절의 넘버링은 지난 게시물에서 이어집니다) 2. 옵티마이저 지난 게시물에서는 SGD의 문제점으로 지적되었던 여러 가지 가운데 스텝 방향을 개선한 옵티마이저에 대하여 알아봤습니다. 오버슈팅(overshooting)으로 안장점(saddle point)과 지역 최솟값(local minima)을 통과하며 전역 최솟값(global minimum)을 찾던 SGD+Momentum, NAG를 직접 구현해보았습니다. 이번 게시물에서는 파라미터가 갱신된 정도에 따라 스텝 사이즈를 조정하며 학습을 진행하는 AdaGrad류의 옵티마이저에 대해 알아보겠습니다. 2.5 Adaptive Gradient (AdaGrad) AdaGrad는 ..

기초/인공지능 2021.09.02

옵티마이저(Optimizer) (1/2)

💡 'Deep Learning from Scratch'와 'CS231N'을 참고하여 작성 신경망(neural network)의 학습 목적은 손실 함수(loss function)의 값을 최대한 낮추는 매개변수(parameter)를 찾는 것이었습니다. 이는 곧 매개변수의 최적값을 찾는 문제이며, 이를 최적화 문제(optimization)라 합니다. 최적의 매개변수를 찾기 위해서는 학습 데이터들을 이용해 기울기(gradient)의 값을 구하고, 그 값을 기준으로 나아갈 방향을 결정해야 합니다. 이번 게시물에서는 최적의 매개변수를 찾는 방법인 옵티마이저에 대해 알아보겠습니다. 1. 기울기 학습 데이터를 이용하여 기울기를 구하기 위해서는 각 변수들에 대한 편미분을 동시에 계산해야 합니다. $$ f(x_0, x_1..

기초/인공지능 2021.08.31