미분
그래프 상에서 직관적으로 본다면 함수 를 미분한 결과는 해당 점에서의 접선의 기울기이다.
이를 DL에서는 어떤 방식으로 활용을 하는 것일까?
딥러닝에서 와 라는 변수로 이루어진 함수의 최종 목표(?)라고 하면 결국은 최소값 (Global minimum)을 구하는 것이라고 볼 수도 있을 것이다 (물론 정확한 표현은 아니고 위의 그림과는 연관이 없다).
그렇기 위해선 임의의 값으로 시작된 와 는 Global minima에 다다르기 위해 값을 변화시켜야 한다.
이때 필요한 것이 위의 미분이라고 볼 수 있다.
구한 기울기가 양수냐 음수냐에 따라서 이동해야할 방향성이 정해지기 때문이다.
여기서 두 가지 개념이 나오는데 경사 상승법과 경사 하강법이다.
경사 하강법
말 그대로 경사가 하강하는 방향으로 이동하는 방법이다.
좌표 값에 기울기를 빼주는 방식으로 계산하다.
•
기울기가 양수일 경우
좌표 - ( (+) 기울기) : 기울기가 양수라는 것부터가 global minima의 우측에 있다는 뜻이니 음의 방향으로 이동하면서 가까워지게 된다
•
기울기가 음수일 경우
좌표 - ( (-) 기울기) : 위의 상황과 반대니 극값의 좌측에 위치해있을 것이고 양의 방향으로 이동하면서 가까워지게 된다.
경사 상승법
이는 경사 하강법과 반대로 좌표 값에 기울기를 더해주는 방식을 통해 경사가 상승하는 방향으로 이동한다.
자세한 내용은 경사 하강법과 단순히 반대기 때문에 생략한다.
위의 경우는 변수가 스칼라(Scalar)일 경우였다.
그렇다면 변수가 벡터(Vector)일 경우는 어떻게 할까? 예를 들면 의 꼴처럼 말이다.
그냥 단순히 편미분을 통해 계산하면 된다.
각 변수별로 편미분해서 생긴 Gradient Vector를 경사 하강법에 적용할 수 있다.
Gradient Vector
변수가 두개인 삼차원 공간에서 각 좌표마다 Gradient(낮은 곳에서 높은 곳으로)에 음수를 취한 값을 나타내면 위와 같다. 각 지점에서 가장 빨리 감소하게 되는 방향의 의미도 가진다.
Vision분야에서 다루는 이미지에도 당연히 Gradient가 있다.
이런 특징을 이용한 알고리즘도 존재한다.