1. 인공지능(AI)의 최적화 알고리즘
1. Gradient Descent Algorithm
(참고 : https://ko.wikipedia.org/wiki/경사_하강법)
- 경사 하강법 : 1차 근삿값 발견을 위한 최적화 알고리즘.
- 기본 개념 - 함수의 기울기(경사)를 구하고 + 경사의 반대 방향으로 계속 이동시켜 극값에(limit) 이를 때까지 반복하는 것.
- 경사하강법 하는 순서
- 최적화 할 함수 $f(x)$ 에 대해, 랜덤한 값 $x0$ 를 먼저 정한다.
- 현재 $x_i$ 가 주어졌을 때, 그 다음으로 이동할 점인 $x_{i+1}$ 은 다음과 같다: $x_{i+1} = x_i - \gamma_{i}\Delta f(x_i)$
- 여기서, $\gamma_{i}$ 는 learning_rate 임.
- 평가 및 장단점
- 모든 차원, 모든 공간에서 적용 가능함. 무한 차원에서도 쓰일 수 있음.
- (단점) 극값으로 이동하기 위해 매우 많은 단계를 거쳐야 함. 함수의 곡률에 따라 같은 위치에서 시작했어도 전혀 다른 결과를 보일 수 있다.
- 여러 가지의 Gradient Descent
- BGD(Batch Gradient Descent) : 데이터 전체를 쭉 보고 에러를 구한 뒤 한 번에 Gradient Descent 를 적용하여 model parameter 를 업데이트 함.
- 전체 데이터에 대해 오차를 계산하기 때문에 수렴이 안정적임. 모든 경우의 수를 다 계산해서 방향을 정하기 때문에.
- 한번 업데이트하는데, 학습 시간이 오래 걸린다.
- local minimum 을 빠져나오기 힘들다. (업데이트 주기가 느리므로)