728x90
반응형
미분(differentation)이란?
- 변수의 움직임에 따른 함수값의 변화를 측정하기 위한 도구
- 즉, 미분은 함수 f의 주어진 점 (x, f(x))에서의 접선의 기울기 값을 구하게 해줌
- sympy 라이브러리를 이용하면 파이썬 코드로도 미분을 구현할 수 있음 - diff() 함수 이용
- 접선의 기울기를 알면 어느 방향으로 점을 움직여야 함수값이 증가 및 감소하는지 알 수 있다!
- 딥러닝에서 차원(축)이 매우 크게 증가할 때는, 어느 방향으로 움직여야 오차가 줄어드는지 알기 어려움
- 따라서 미분을 이용해 함수값이 증가 혹은 감소할 것인지 파악하여 이동
미분값(기울기값)이 음수인 경우 (f'(x) < 0)
→ 왼쪽으로 이동 시 함수값 증가 (x + f'(x) > x)
→ 오른쪽으로 이동 시 함수값 감소 (x - f'(x) < x)
미분값(기울기값)이 양수인 경우 (f'(x) > 0)
→ 왼쪽으로 이동 시 함수값 감소 (x - f'(x) < x)
→ 오른쪽으로 이동 시 함수값 증가 (x + f'(x) > x)
(함수의 극대값) 함수를 증가시키고 싶다면 미분값이 양수든 음수든 더해주면 됨 → Gradient Ascent
(함수의 극소값) 함수를 감소시키고 싶다면 미분값이 양수든 음수든 빼주면 됨 → Gradient Descent
(여기서 함수는 보통 오차값을 계산하는 함수임! 따라서 오차값이 작아지는 방향은 미분값을 빼주는 방향)
- 보통 극값에 도달하면 움직임을 멈춤 (극값에서는 미분값이 0이므로)
만약 변수가 벡터라면?
- * 벡터가 입력인 다변수 함수의 경우, 편미분(partial differenctiation)을 사용
- 특정 방향의 벡터만 고려하는 것! → i번째 방향(축)에서만의 변화율을 계산할 수 있게 됨
- 즉 하나의 변수만 변수로 고려하고 나머지는 상수로 취급하는 것
변수가 여러개, 즉 벡터라면 기울기는 어떻게 계산하는가?
- 편미분을 통해서 계산한 기울기값도 여러개!
- 즉, Gradient Vector을 생성
- Gradient Vector을 사용함으로써 경사하강/경사상승법에 사용할 수 있음 → ▽f 로 표시
- ▽f 는 임의의 점에서 가장 빨리 증가하는 방향과 같음
- -▽f 는 임의의 점에서 가장 빨리 감소하는 방향과 같음
본 포스트는 부트코스 내 네이버 부스트캠프 AI Tech 5기 강의를 토대로 작성되었습니다
728x90
반응형