16. Gradient Descent

2023. 11. 9. 15:47NAVER AI Tech/Python & AI math

핵심은 미분. 미분 = 기울기!!

- 기울기를 통해 loss가 최적해에 수렴하는 방향을 알 수 있다.

- 구현 시 Gradient Descent 결과가 최적해(=극점)에 도달했을 때 기울기가 0 이므로 해당 지점에 도착했을 대 종료 조건이 필요하다.(정확히 0일 확률은 드물기 때문에 어느정도 오차범위를 설정해주어야 한다.)

 

현재 지점(var)에서 기울기가 양수

- 오른쪽으로 가면 상승, 왼쪽으로 가면 하강. 따라서 좌표상 왼쪽으로 이동해야하므로 var - (learning rate * grad)

현재 지점(var)에서 기울기가 음수

- 오른쪽으로 가면 하강, 왼쪽으로 가면 상승. 따라서 좌표상 오른쪽으로 이동해야 하므로 var - (learning rate * grad)

- 이때 grad는 기울기. 기울기의 속도를 가지고 learning rate만큼 step을 이동한다~ 

 

Gradient Descent : 모든 데이터를 가지고 경사하강 진행.

- 단 지역해에 빠질 위험이 있으므로 Weight 초기 설정이 중요

- 경험적으로 초기 설정을 0이 아닌 random 난수로 설정했을 때 더 성능이 좋다고 알려져있음

 

Stocahstic Gradient Descent : 데이터 중 하나의 데이터를 추출하여 경사하강 진행

 

Mini-batch Gradient Descent : 모든 데이터가 아닌 일부 데이터를 추출하여 경사하강 진행

- 지역해에 빠질 확률이 적을 수 있고 수렴속도가 훨씬 빠르다.

- 매번 다른 미니배치를 추출.

 

'NAVER AI Tech > Python & AI math' 카테고리의 다른 글

15. (Math) scalar, vector, matrix, tensor에 대한 정리  (0) 2023.11.09
14. Pandas  (0) 2023.11.08
13. Numpy  (0) 2023.11.08
12 (Python) Data Handling  (0) 2023.11.08
11. (Python) File, Exception, Log에 대해서...  (0) 2023.11.08