[딥러닝수학] 경사하강법

Deok Jong Moon·2022년 3월 5일
0
post-thumbnail
post-custom-banner

book title : 딥러닝을 위한 수학
pages : 118 ~ 125
key concepts :

  • 경사하강법 목적
    : 어떤 2변수함수 L(u,v)L(u, v)가 주어졌을 때 L(u,v)L(u, v)값을 최소로 할 수 있는 (u,v)(u, v) (uminvmin)(u_{min} v_{min}) 을 구한다

  • 여기서 u,vu, v는 2차원 평면에서 나타낼 때 L(u,v)L(u, v)의 최소 지점을 향해 움직이는데, 이 이동량은 벡터로 나타낼 수 있다.

    • 그리고 벡터는 방향크기를 갖고 있다.
    • 그래서 이 벡터가 어디로, 얼마나 향해 가는지에 따라 L(u,v)L(u, v)가 최소값을 향해 얼만큼의 방향으로 얼만큼의 양만큼 가는지로 해석할 수 있다.
  • 그럼 방향을 어떻게 정할까?

    • L(u,v)L(u, v)가 최소가 되려면 그것의 변화량이 음수 방향이면 됨
    • 만약 변화량이 00이면 L(u,v)L(u, v)는 줄어들지 않고 그대로 있음
    • 그럼 그것의 변화량(dL)(dL)을 구하자
    • 이 때 전미분 공식 사용 (변화량이 엄청 작다는 전제하에)
    • dL=Lu(u,v)du+Lv(u,v)dv=Ludu+LvdvdL = L_u(u, v)du + L_v(u, v)dv = \frac{\partial L}{\partial u}du + \frac{\partial L}{\partial v}dv
    • 그런데 이것은 벡터의 내적으로 볼 수 있음.
    • 즉, dL=(Lu,Lv)(du,dv)dL = (L_u, L_v) \cdot (du, dv)
    • 그런데 위의 내적 공식은 두 벡터의 절댓값(크기)와 각도값을 이용해서 나타낼 수도 있는데,
    • dL=(Lu,Lv)(du,dv)cosθdL = |(L_u, L_v)||(du, dv)|\cos{\theta} 가 된다.
    • 여기서 (du,dv)(du, dv), 즉 두 변수의 변화량은 일정하다고 가정하면,
    • dLdL에 영향을 주는, 즉 L(u,v)L(u, v)을 줄이기 위한 변화량에 영향을 주는 방향은 cosθcos{\theta} 밖에 없다.
    • 그런데 dL=(Lu,Lv)(du,dv)cosθdL = |(L_u, L_v)||(du, dv)|\cos{\theta} 의 값이 0보다 더 작게 되려면 θ\theta는, 즉 절댓값을 곱하는 두 벡터의 각도는 90°90\degree를 넘어서 아예 반대 방향일 때 제일 그 값을 낮게 만들 수 있다.
    • 그래서 방향은 (Lu,Lv)(L_u, L_v) 벡터(편미분벡터)의 반대 방향으로 결정! ((du,dv)(du, dv)는 일정하다고 전제했으니)
  • 그럼 크기는 어떻게 정할까?

    • 이건 L(u,v)L(u, v)의 최소값(global minima)에서 멀면 많이 가는 게 좋고
    • 가까우면 조금씩 가는 게 좋다.
    • 그러니 이것은 각 학습 시마다 계산되는 편미분 벡터의 크기에 그냥 적절한 수를 곱해주자
  • full batch descent는 비교적 local minima에 빠질 가능성이 크단다.

    • 반면 SGD는 local minima에 안 빠지게 해줄 수 있단다.
    • 왜 그럴까?(아래는 나의 생각)
    • 생각해보면 full batch descent는 L(u,v)L(u, v)의 곡면 모양이 변하지 않는다.
    • 그래서 가중치 초기값이 운 나쁘게 생성되면 그 바뀌지 않는 곡면에서 local minima에 빠질 수 있다.
    • 그런데 SGD는 L(u,v)L(u, v) 의 곡면 모양이 계속 조금씩 바뀐다.
    • 그래서 local minima의 위치도 바뀌고, 편미분벡터의 방향도 full batch descent와 같은 timestep에서 비교하면 이리저리 더 바뀌는 것이다.
    • 하지만 그 덕에 local minima에는 덜 빠질 수 있는 것...!

오늘 편미분벡터(gradient vector)의 역방향으로 가면 왜 제일 빠르게 global minima로 향하는 것인지 더 알게 되었다.
이 때 전미분을 사용한 방법을 이번에 처음 알게 되었는데, 수식 교체적인 논리로 저런 원리를 끄집어 낸 것이지만, 좀 더 명확하게 납득할 수 있었다!

profile
'어떻게든 자야겠어'라는 저 아이를 닮고 싶습니다
post-custom-banner

0개의 댓글