1. Welcome to Module 5!
- 최적의 평균과 분산을 구하는 방법에 대해 생각해보자.
- 어떤 함수에 대해 임의의 x값을 대입하고 그 미분계수를 통해 반복적으로 최적의 x값을 찾아나갈 수 있다.
이때 함수값을 미분계수로 나눈 값을 빼는 방식을 '반복(iterate)'하면 된다. - 이런식으로 과정을 반복하는 방법을 'Newton-Raphson'이라고 부른다.
- 시작값을 잘못 설정하면 위와 같이 closed loop에 갇힐 수 있다.
- 혹은 너무 작은 미분계수를 갖는 점에서 시작하면 x의 변화량이 거의 없어서 의미 없는 학습을 반복하게될 가능성이 있다.
2. Newton-Raphson in one dimension (Quiz)
- 도함수 구하기
다항함수에 대해 미분을 수행한 결과를 직접 입력하면 된다. - Newton-Raphson의 첫 iteration 결과 기록하기
왜인지는 모르겠는데 직접 계산하면 정확한 값이 나오지 않는다.
퀴즈에 포함된 코드를 이용하여 답을 도출했다. - 특정 x에서의 결과 특징 파악하기
시작점에 따라 해당 method가 converge되기까지 걸리는 반복횟수가 다르다.
값이 수렴하지 않는 x = 3.1과 같은 값들에 대해 scipy 라이브러리의 optimize 함수를 이용할 수 있다.
3. Gradient Descent
- 1차원을 넘어서는 차원에 대해서도 Newton-Raphson의 idea를 적용할 수 있다.
여러 변수들의 값을 미분계수와의 계산을 통해 반복적으로 조정하는 것이다.
산 위에서 시작점을 찾아가는 과정으로 비유할 수 있다. - 이때 변수가 여러 개이므로 미분계수를 모아놓은 gradient vector를 이용한다.
따라서 계산도 vector와 함께 이뤄져야 한다.
이때 r hat을 unit vector로 가정하면 내적의 정의에 따라 gradient vector의 크기를 구할 수 있게 된다. - 하지만 이는 움직이는 방향은 배제된 상태이다.
어쨌든 시작점(최저점)으로 내려가기 위해서는 방향 정보가 필요하므로 우리는 각 step에 대해 구해진 gradient vector를 일정한 계수(scalar)와 곱하여 빼는 방식을 이용하도록 한다.
이 idea는 Newton-Raphson으로부터 착안한 것으로 보인다.
4. Gradient descent in a sandpit
- jupyter notebook 환경에서 핸드폰의 위치를 찾는 게임을 통해 위에서 배운 개념들을 적용해본다.
선택적인 과제로 개념을 시각화해놓은 자료이다. - 최저점을 찾아가는데 있어서 깊이(크기)정보만 주어지는 것은 큰 의미가 없다는 것을 확인할 수 있다.
이를 해결하기 위해 특정값(scalar)을 곱하는 방식을 이용할 수 있다. - step size를 정하는 방식으로 Hessian method를 이용하면 이를 보다 효율적으로 개선할 수 있다.
- 두 방식을 모두 이용하는 Hybrid method도 있다.
5. Checking Newton-Raphson (Quiz)
- starting point와 specified root가 주어진 그래프를 보고 Newtown-Raphson을 적용했을 때 starting point가 specified root로 converge될 수 있는 그래프를 고르는 문제.
- 정확히 어떤 경우가 옳고 그른 것인지 판단하는 기준을 아직 정확히는 모르겠다.
출처: Coursera, Mathematics for Machine Learning: Multivariate Calculus, Imperial College London.
'Multivariate Calculus > 5주차' 카테고리의 다른 글
Lagrange multipliers (0) | 2022.10.22 |
---|