다음은 모델 최적화의 핵심 내용인 경사 하강법을 알기 전에 하강법에 대해 알고 넘어가자.

 

모델이 어떻게 작동하는지에 대해 알기 위해 메커니즘을 알고 넘어가야 한다.

  • 먼저 모델의 input이 주어지면 인풋값을 바탕으로 아웃풋을 산출함
  • input 값을 받아서 output 값을 추출하는 것을 '예측'이라고 함
  • 예측 값이 실제 값과 얼마나 차이가 나는지 아는 것이 중요
  • 실제 값과 예측 값의 차이를 나타내는 척도가 Loss Function
  • 실제 값과 예측 값의 차이가 작으면 작을 수록 학습이 잘 되고 있다는 것
  • w라는 변수를 가지고 있는 모델을 거쳐서 나온 예측 값을 Loss Function에 넣었을 때 값이 작게 나오면 학습이 잘 되고 있는 것
  • 그렇기 때문에, Loss Function의 값이 작게 나오게 하기 위한 w를 구해서 모델에서 사용하는 w값을 update 함
  • 위 이미지의 과정(점점 좋은 w값을 찾는 것)을 반복하는 것을 '최적화'라고 함
  • 모델의 파라미터를 최적화하는 것을 최적화라고 하는데, Loss Function의 값을 작게 만들어주는 w를 찾는 과정이라고 볼 수 있음
  • 일반적으로 초기의 값은 임의로 주어짐
  • 가끔 Loss Function에서 min이 아닌 max를 구하는 로직이 있는데, 이럴 때 당황하지 말고 -max(loss)를 취해주자
  • max(loss) = -min(loss)

 

목적 함수(Objective Function)

  • Loss Function을 작게 하는 모델의 변수를 구하는 것이 목적
  • 그래서 위 함수를 목적 함수라고 부름
  • 목적함수를 기준으로 해서 w값을 계속 갱신함

 

하강법(Descent Method)

  • 주어진 지점으로부터 더 작은 곳으로 이동하려는 방법을 하강법이라고 함
  • 그림의 오른쪽 지점에서 미분을 하면 양수의 기울기가 나오고, 왼쪽 지점에서 미분을 하면 음수의 기울기가 나옴
  • w 지점이 내려가는 방향의 부호와 접선의 기울기가 항상 다름
  • 이 부등호를 만족하는 방향으로 간다면, 항상 아래쪽으로 향할 수 있음

 

  • 하강법의 단점 - 초기 위치에 따라서 도착 지점이 달라질 수 있음(local min에 도착할 수 있음)
  • 우리의 목표는 global min으로 가는 것임
  • 딥러닝에서 global min으로 가도록 하는 것은 매우 힘든 일

 

  • 보통 경사 하강법을 주로 사용함
  • 속도는 느리지만 좀 더 정확한 계산을 원한다면 뉴턴 방법을 사용함

 

경사 하강법(Gradient Descent)를 살짝 맛보고 넘어가 보자.

  • 앞의 내용들을 통해서 경사 하강법이 나옴
  • 경사 하강법을 사용할 때는 이전 변수(w)에서 step size(µ)에 이전 변수의 gradient 값(▽f(w))을 빼서 다음 step으로 가게 함

 

 

 

 

내용에 문제가 있으면 댓글로 알려주세요!

 

출처 : 인프런 - 실전 인공지능으로 이어지는 딥러닝 개념 잡기(딥러닝 호형)

+ Recent posts