경사 하강법 (gradient descent)
최적의 해법을 찾을 수 있는 일반적인 최적화 알고리즘
아이디어 : 비용 함수를 최소화하기 위해 반복해서 파라미터 조정해가는 것.
제시된 함수의 기울기로 최소값을 찾아내는 머신러닝 알고리즘
1. 특정 파라미터 값으로 시작
: 가중치 W1에 대한 시작점을 선택한다.
2. 비용 함수 (Cost function) 계산
: 모델을 구성하는 가중치 W의 함수
3. 반복 학습 (iteration)
: 과정을 n번 반복하며 최소값으로 수렴. (스텝의 크기가 중요)
-> numeric analysis에서의 수치적 접근법과 같다. ( ex) Bisection algorithm etc..)
4.2.1 배치 경사 하강법
경사 하강법을 구현하기 위해 각 모델 파라미터에 대한 비용 함수의 그레디언트를 계산해야 한다.
편도 함수 (partial derivative)
: 비용함수를 미분해서 미분값(기울기)의 변화를 관찰한다.
각 모델 파라미터마다 편도함수를 모두 담고 있다
그러므로 이 알고리즘을 배치 경사하강법 (batch gradient descent)라고 부른다.
np.random.seed(42)
theta = np.random.randn(2,1) # 무작위 초기값
plt.figure(figsize=(10,4))
plt.subplot(131); plot_gradient_descent(theta, eta=0.02)
plt.ylabel("$y$", rotation=0, fontsize=18)
plt.subplot(132); plot_gradient_descent(theta, eta=0.1, theta_path=theta_path_bgd)
plt.subplot(133); plot_gradient_descent(theta, eta=0.5)
plt.show()
왼쪽 그림 : 학습률이 너무 낮다. 최적점에 도달하겠지만 시간이 오래 걸릴 것으로 예상된다.
가운데 그림 : 학습률이 적당하다. 점과 일치하며 최적점에 수렴한 것으로 보인다.
오른쪽 그림 : 학습률이 너무 높아 최적점에서 멀어지며 발산한다.
그러므로 적절한 학습률을 찾기 위해 그리드 탐색을 반복 횟수를 제한하며 사용해야한다.
다음으로는 확률적 경사하강법과 미니배치 경사 하강법에 대해 포스팅하겠다.
참고 문헌 :
https://book.naver.com/bookdb/book_detail.nhn?bid=16328592
핸즈온 머신러닝
머신러닝 전문가로 이끄는 최고의 실전 지침서 텐서플로 2.0을 반영한 풀컬러 개정판 『핸즈온 머신러닝』은 지능형 시스템을 구축하려면 반드시 알아야 할 머신러닝, 딥러닝 분야 핵심 개념과
book.naver.com
'공부하는 습관을 들이자 > Machine Learning For Study' 카테고리의 다른 글
Hands-on ML : 4. 3 다항회귀 및 4.4 학습곡선 (0) | 2022.05.19 |
---|---|
Hands-on ML : 4. 2 확률적 경사하강법, 미니배치 경사 하강법 (0) | 2022.05.18 |
Hands-on ML : 4. 선형 회귀 및 계산 복잡도 (시간복잡도, 공간복잡도) (0) | 2022.05.12 |
Hands-on ML : 2.1 실제 데이터로 작업&2.2 큰 그림 보기 (0) | 2022.03.24 |
Hands-on ML : 1.5 머신러닝의 주요 도전 과제 &1.6 테스트와 검증 (0) | 2022.03.23 |