본문 바로가기

경사하강법2

경사하강법(Gradient Descent) 손실(Loss) 함수를 정의하는 이유는 손실의 변화 정도를 살피기 위해서이다. 손실을 최소화하는 방향으로 목적 함수의 파라미터를 조절해나가야 한다는 목적을 갖고있기 때문에 손실의 변화 정도를 살피기 위하여 손실 함수를 정의하고 미분하여 기울기의 크기와 방향을 살피게 된다. 게다가 L2 손실로 손실 함수를 정의한다면, convex optimization problem이 되기 때문에 손쉽게 solution을 구할 수 있게 된다. 손실이 줄어드는 방향으로 model param이 이동한다. 이 때 이동 보폭은 정하기 나름이다. 특성이 많아서 차원이 높은 모델일 경우 똑같은 보폭이라 할지라도 발산할 가능성이 있다. 따라서 보폭을 줄여야 한다. 참고로 신경망은 그릇이 아니라 계란판처럼 생겼다. 따라서 초기값이 무엇.. 2018. 12. 23.
기울기 어떤 함수의 기울기를 얘기할 때 대상이 되는 함수는 보통 여러 개의 특성을 갖고 있을 것이다. 즉 다변수 함수다. 따라서 어떤 함수의 기울기는 벡터다. 각각의 특성에 대한 기울기를 한 번에 나타내는 좋은 표기법이기 때문이다. 즉 기울기는 모든 독립 변수에 대한 편미분의 벡터라고 할 수 있으며 다음과 같이 표기한다. 어떤 함수가 다음과 같고, 그 기울기도 다음과 같이 주어져 있다고 해보자. 위 함수가 손실 함수라고 할 때, 손실을 줄이는 방향으로 기울기값이 감소하려면 어떤 (x,y)의 방향으로 이동해야 할까? 미분을 해야 알 수 있다. 미분은 방향성과 크기를 알려주는 좋은 척도이기 때문이다. 이 기울기를 이용하여 손실을 줄여나가는 방법이 경사하강법(Gradient Descent)이다. 기울기는 벡터다. 벡.. 2018. 12. 23.