본문 바로가기

[IT/Programming]/Algorithm/Database

Machine Learninig :: Fastest learning by Quadratic approximation approach with finite equal step size through steepest descent.

반응형
# Machine Learninig :: Fastest learning by Quadratic approximation approach with finite equal step size through steepest descent. 기계학습 코드를 짜는건 최적화 문제와 관련이 있는데 이 최적화라는게 the method of Lagrange multipliers (라그랑지 승수법) 과 밀접한 관련이 있다. 보통 질문 (input) 과 정답 (output) set 를 왕창 준비한 다음 Machine Learning code (Deep Learning with Artificial Neural Networks) 로 특정 변수들 집합일 때 (처음에는 Initial guess 로 거의 무작위한 값을 넣는 경우가 많음.) error 를 구한 뒤, 변수들을 변화시켜 나가면서 이 error 를 줄여나가는 것이다. ## PH
  • 2023-12-01 : First posting.
## TOC ## Error function \mathrm{E} (\text{input}, \text{output}, \{x_i\}) 변수 set \{x_i\} 에 Constraints (제한) 이 없다고 한다면, 위 에러 \mathrm{E} 가 minimum (최소) 가 되는 조건은 \frac{\partial \mathrm{E}}{\partial x_k} (\text{input}, \text{output}, \{x_i\}) = 0 ~ \text{for all} ~ x_k 이다. 하지만 이 식만 가지고 변수 set \{x_i\} 를 찾는건 거의 불가능에 가깝기 때문에, 초기값 at \tau = 0 일 때 \{x_i (\tau)\} 를 대충 찍고 (적절히 짱구를 굴려서 적당한 이러이러한 값 정도면 되지 않을까하고 educated guess 를 넣을수록 좋다. 아님 그냥 완전 무작위 숫자들을 넣기도한다.) 이 값에서부터 \{x_i (\tau)\} 값을 변화시켜 나가면서 \mathrm{E} 를 최소화시켜 나가는 것이다. 이 때 쓰는 방법이 라그랑지 승수법인데, constraints \sum_k \bigg( \frac{d x_k}{d \tau} \bigg)^2 = 1 일 때, \frac{d \mathrm{E} (\{x_i (\tau)\})}{d \tau} 를 minimize 해야 steepest descent 경로를 따라 local minimum 으로 찾아간다는걸 알 수 있다. 위 식은 아래와 같이 풀어지므로 \frac{d \mathrm{E} (\{x_i (\tau)\})}{d \tau} = \sum_k \frac{\partial \mathrm{E} (\{x_i (\tau)\})}{\partial x_k} \frac{d x_k}{d \tau} 와 같이 표현되고, 여기서 라그랑지 승수법을 써서 언제 \frac{d \mathrm{E} (\{x_i (\tau)\})}{d \tau} 가 minimum 인지, with a constraint , 를 계산하면 다음과 같은 조건이 나온다. \frac{\partial \mathrm{E} (\{x_i (\tau)\})}{\partial x_k} + 2 \lambda \frac{d x_k}{d \tau} = 0 즉 steepest descent (에러가 최소인 곳으로 가는 경사가 가장 가파른 길) 는 \frac{d x_k}{d \tau} = - \frac{1}{2 \lambda} \frac{\partial \mathrm{E} (\{x_i (\tau)\})}{\partial x_k} 라는 결론이 나온다. \lambda 는 임의의 상수이므로 그리고 minimum 으로 가려면 \frac{d x_k}{d \tau}\frac{\partial \mathrm{E} (\{x_i (\tau)\})}{\partial x_k} 와 부호가 반대이여야 하므로 양수 \alpha (\tau) 를 도입해서 다음과 같이 나타내자. \frac{d x_k}{d \tau} = - \alpha (\tau) \frac{\partial \mathrm{E} (\{x_i (\tau)\})}{\partial x_k} 보통 minimum 근처에서는 Quadratic approximation (2차 곡면근사) 가 되므로, local minimum 에서의 변수 \{x_i (\tau_f)\} \mathrm{E} (\tau) = \mathrm{E} (\tau_f) + \frac{d \mathrm{E} (\tau)}{d \tau} (\tau_f) \cdot (\tau - \tau_f) + \frac{1}{2!} \frac{d^2 \mathrm{E} (\tau)}{d \tau^2} (\tau_f) \cdot (\tau - \tau_f)^2 + \cdots Local minimium 에선 \frac{d \mathrm{E} (\tau)}{d \tau} (\tau_f) = 0 일테니... \begin{align*} \mathrm{E} (\tau) &= \text{Const} + \frac{1}{2!} \frac{d}{d \tau} \bigg( \frac{d \mathrm{E} (\tau)}{d \tau} \bigg)\Bigg|_{\tau=\tau_f} \cdot (\tau - \tau_f)^2 + \cdots \\ &= \text{Const} + \frac{1}{2!} \frac{d}{d \tau} \bigg( \sum_k \frac{\partial \mathrm{E} (\{x_i\})}{\partial x_k} \frac{d x_k (\tau)}{d \tau} \bigg)\Bigg|_{\tau=\tau_f} \cdot (\tau - \tau_f)^2 + \cdots \\ &= \text{Const} + \frac{1}{2!} \Bigg[ \sum_{k, l} \bigg( \frac{\partial^2 \mathrm{E} (\{x_i\})}{\partial x_l \partial x_k} \frac{d x_l (\tau)}{d \tau} \frac{d x_k (\tau)}{d \tau} \bigg)\Bigg|_{\tau=\tau_f} + \bigg( \sum_k \frac{\partial \mathrm{E} (\{x_i\})}{\partial x_k} \frac{d^2 x_k (\tau)}{d \tau^2} \bigg)\Bigg|_{\tau=\tau_f} \Bigg] \cdot (\tau - \tau_f)^2 + \cdots \\ \end{align*} 여기서 \frac{\partial \mathrm{E} (\{x_i\})}{\partial x_k} \bigg|_{\tau=\tau_f} = 0 이므로 다음과 같이 간략해진다. \mathrm{E} = \text{Const} + \frac{1}{2!} \Bigg[ \sum_{k, l} \bigg( \frac{\partial^2 \mathrm{E} (\{x_i\})}{\partial x_l \partial x_k} \frac{d x_l (\tau)}{d \tau} \frac{d x_k (\tau)}{d \tau} \bigg)\Bigg|_{\tau=\tau_f} \Bigg] \cdot (\tau - \tau_f)^2 + \cdots ## 아주 간단하게 변수가 1개인 경우를 생각해보자. 이 경우 이 다음과 같이 표현된다. \mathrm{E} = \text{Const} + \frac{1}{2!} \bigg( \frac{\partial^2 \mathrm{E} (\{x\})}{\partial x^2} \Big( \frac{d x (\tau)}{d \tau} \Big)^2 \bigg)\Bigg|_{\tau=\tau_f} \cdot (\tau - \tau_f)^2 + \cdots
2차 곡선 예제. \mathrm{E}=(x-2)^2 + 1
위와 같은 Error function 이 있다고 치고, Initial guess 로 x(\tau_i) = -3 으로 잡았다고 치자. 이 때 어떻게 프로그래밍을 해서 Error function 이 최소값을 같는 x 를 찾을 수 있을까? \frac{d x}{d \tau} = - \alpha (\tau) \frac{\partial E}{\partial x} 일테니 이 수식으로 finite step by step 으로 접근해 나가야 할 것이다. 컴퓨터에서는 continuous moving 이 불가능 하니까 말이다. 여기서 잘못된 예로 \alpha (\tau)\tau 에 따라 변하지 않는 상수라고 잡고 step by step 나아간다고 해보자. \begin{align*} x (\tau_{n+1}) &:= x (\tau_{n}) - \frac{\partial E}{\partial x}\bigg|_{x=(x(\tau_{n+1})+x(\tau_{n}))/2} \times \alpha \Delta \tau \\ &:= x (\tau_{n}) - 2(x-2)_{x=(x(\tau_{n+1})+x(\tau_{n}))/2} \times \alpha \Delta \tau \end{align*} \Big( \frac{d x}{d \tau} \Big)^2 = 1 로 제한을 뒀으므로, \frac{x (\tau_{n+1}) - x (\tau_{n})}{\Delta \tau} := - 2(x-2) \Big|_{x=(x(\tau_{n+1})+x(\tau_{n}))/2} \times \alpha
x (\tau_i) = -3 이고 x (\tau_i+\Delta \tau) = -1 로 잡으면,
\frac{-1 - (-3)}{\Delta \tau} := - 2(-2-2) \times \alpha \Delta \tau = 2 가 되고, 1 = 8 \times \alpha
\alpha = 1/8 이 된다.
## RRA
  1. kipid's blog :: Method of Lagrange multipliers
    kipid's blog :: 최적화, 라그랑지 승수법 (Optimization with the Method of Lagrange multipliers)
반응형