뉴턴법/뉴턴-랩슨법의 이해와 활용(Newton's method)

기계학습 2013.04.26 18:56

뉴턴법/뉴턴-랩슨법 하면 대부분 방정식의 근사해를 구하는 방법 정도로 알고 있지만 뉴턴법을 확장하면 연립방정식의 해, 나아가서는 비선형(non-linear) 모델의 파라미터를 구하는 문제까지 확장될 수 있습니다.

뉴턴법/뉴턴랩슨법 뿐만 아니라 가우스-뉴턴법, 비선형 최소자승법은 모두 연관된 내용이기 때문에 이들을 한꺼번에 알아두면 좋을 것 같습니다. 그러면 구체적인 예와 함께 이들을 하나씩 살펴보도록 하겠습니다.


1. 뉴턴법(Newton's Method)의 이해

2. 뉴턴법(Newton's Method)의 특징 및 제약사항

3. 뉴턴법의 활용

4. 가우스-뉴턴 방법을 이용한 연립방정식의 근사해 구하기

5. 가우스-뉴턴 방법을 이용한 비선형 최소자승법

6. 비선형 최소자승법 예제: 원 근사


1. 뉴턴법(Newton's Method)의 이해


뉴턴법(Newton's method)은 뉴턴-랩슨법(Newton-Raphson method)이라고도 불리는데, 방정식 f(x) = 0의 해를 근사적으로 찾을 때 유용하게 사용되는 방법이다.


예를 들어, 아래와 같이 x에 대한 7차 방정식이 있는데 이건 머 인수분해도 안되고 도저히 정상적인 방법으로는 해를 구하기 힘들다. 이럴 때 사용해 볼 수 있는 방법이 뉴턴법이다.



뉴턴법은 기본적으로는 f'(a)가 x = a에서의 접선의 기울기라는 미분의 기하학적 해석을 이용한다. f(x) = 0인 x를 찾고 싶은데 그러한 해를 전혀 모른다고 하자.


그럴 땐, 일단은 아무값이나 x = a를 넣고 f(a)의 값을 살펴본다. 만일 f(a)>0이고 f'(a)>0라면 f(x) = 0이 되는 x는 a보다 작은 값일 것이다 (머리 속으로 그래프를 그려보시길..). 따라서 다음에는 a보다 작은 값을 넣고 함수값을 살펴본다. 그런데, 해가 a보다 작은 곳에 있다는 것은 알겠는데 얼마나 값을 줄여야 하는 걸까? 만일 x=a에서의 |함수값|이 작고 접선의 기울기가 가파르다면 바로 근처에 해가 있을 것이고, 반대로 |함수값|이 크고 접선 기울기가 완만하다면 멀리 떨어진 곳에 해가 존재할 것이다.


뉴턴법(Newton's method)/뉴턴-랩슨법(Newton-Raphson method)은 현재 x값에서 접선을 그리고 접선이 x축과 만나는 지점으로 x를 이동시켜 가면서 점진적으로 해를 찾는 방법이다.


아래 그림을 예로 들면, 만일 처음에 x = x1에서 시작했다면 그 다음 x값은 x2가 될 것이고, x2에서 다시 접선을 그려보면 점차 실제 해에 가까워지는 것을 확인할 수 있다. 이와 같은 과정을 계속 반복하다보면 해를 찾을 수 있다는 게 뉴턴법(Newton's method)이다.


뉴턴법(Newton's method)/뉴턴-랩슨법(Newton-Raphson method)을 수식화하면 아무 값이나 초기값 x1에서 시작해서 다음 수식에 따라 수렴할 때까지 계속 x를 이동시켜 나간다 이다.

종료 조건은 x 값의 변화가 거의 없을 때까지이다. 즉, |xt+1 - xt|이 매우 작은 값이면 뉴턴법을 종료하고 x = xt+1이 해, 즉 f(xt+1) = 0 라고 생각하는 것이다.


2. 뉴턴법(Newton's Method)의 특징 및 제약사항


뉴턴법은 물론 만능이 아니다. 해가 없으면 당연히 못 찾는 것이고, 해가 있더라도 뉴턴법으로 해를 못 찾을 수도 있다. f(x)가 연속이고 미분가능해야 한다는 조건도 필요하다. 만일 f(x) = 0인 해가 여러 개 있다면 뉴턴법은 그중 하나의 해를 찾아줄 뿐이다. 또한 해가 여러 개인 경우에는 초기값 x1을 어떻게 주느냐에 따라서 뉴턴법으로 찾아지는 해가 달라질 수 있다.


특히나 뉴턴법을 사용할 때 가장 어려운 점 중의 하나가 초기값을 어떻게 선택하느냐이다. 똑같은 문제라 하더라도 초기값을 잘 주면 금방 해를 찾을 수 있지만 잘못 주면 시간이 오래 걸리거나 아에 해를 찾지 못할 수도 있다. 생각할 수 있는 한 방법은 먼저 일정한 간격으로 x값을 변화시키면서 함수값의 변화를 본 후 함수값의 부호가 바뀌는 구간마다 보간법(interpolation)으로 초기값을 잡는 것이다.


3. 뉴턴법의 활용


뉴턴법/뉴턴-랩슨법은 위와 같이 (i) 방정식 f(x) = 0의 해를 구할 때, (ii) 서로 다른 두 함수 g(x)와 h(x)의 값이 같게 되는 x를 구할 때 (f(x) = g(x) - h(x)로 놓고 f(x) = 0인 x를 구한다), (iii) f(x)의 최소값 또는 최대값을 구할 때 활용될 수 있다. 일반적으로 함수는 극점에서 최대값 또는 최소값을 가지므로 f'(x) = 0인 x를 뉴턴법으로 구한 후 f(x)에 대입하면 f(x)의 최대값/최소값을 구할 수 있다. f'(x) = 0인 x는 xn+1 = xn - f'(x)/f''(x)로 구한다.


위에 나열한 것들은 뉴턴법의 일반적인 활용법들이고 이런 거 외에도 그냥 알아두면 어딘가는 써 먹을 데가 있을 것이라 생각합니다. 예를 들어, 카메라에서 왜곡보정된 영상좌표를 구할 때에도 뉴턴법이 활용될 수 있습니다.


4. 가우스-뉴턴(Gauss-Newton) 방법을 이용한 연립방정식의 근사해 구하기


(가우스-뉴턴 방법에 대한 내용은 조금 어려울 수 있으니 글 끝 부분에 있는 원 근사 예제와 함께 보면 좋을 것 같습니다)


연립방정식의 근사해를 구할 때는 가우스-뉴턴(Gauss-Newton) 방법을 사용하는데, 가우스-뉴턴 방법은 뉴턴법을 연립방정식으로 확장한 것으로 볼 수 있다. 다음과 같이 변수의 개수가 n, 식의 개수가 m개인 (m>=n) 다변수 연립방정식이 있다고 하자 (기본적으로 연립방정식은 변수가 여러 개 일때 사용하는 것임).


위 연립방정식을 행렬 표현으로 바꾸기 위해 X = (x1, .., xn), F(X) = (f1(X), ..., fm(X))라 놓으면 위 식은 F(X) = 0와 같은 행렬식 형태가 된다. 즉, 위에서 설명한 뉴턴법을 똑같이 적용할 수 있는 형태가 된 것이다. 이 때, F는 F: Rn -> Rm인 다변수 다차원 함수로 볼 수 있으며 이에 대한 미분은 Jacobian 행렬로 표현된다 (아래와 같은 행렬을 Jacobian 행렬이라 부른다)



이제 F를 함수, X를 변수로 보고 원래 뉴턴법 식을 그대로 쓰면 다음과 같은 형태가 될 것이다.



그러나, 행렬(J)로 직접 나눌 수는 없기 때문에 물론 위 식은 잘못된 수식이다. 대신, F/J는 JP = F인 P를 구함으로써 계산할 수 있다. 즉, 연립방정식에 대한 뉴턴법 수식은 다음과 같다.




계산 방법을 좀더 부연 설명하면, 현재의 X 추정값에 대해 J와 F값을 계산한 후에 JP = F인 P를 구한다. 구한 P를 이용해서 X = X - P로 X를 업데이트한다. 업데이트된 X로 J, F를 다시 계산하고 P도 구한다. 이와 같은 과정을 X가 수렴할 때까지 반복한다 이다. 참고로, JP = F인 P는 최소자승법을 이용하면 P = (JTJ)-1JTF와 같이 계산된다.


정리하면, 가우스-뉴턴(Gauss-Newtorn) 방법은 어떤 초기값(해에 대한 초기 추정치) X0를 시작점으로 다음과 같이 X를 갱신함으로써 근사해를 찾는 방법이다.



수학적 유도) 참고로 F(X) = 0인 X를 구하는 문제는 테일러 급수 를 이용하면 다음과 같이 유도할 수 있습니다. 테일러 급수에 대한 내용은 테일러 급수의 이해와 활용 (Taylor series)을 참조하기 바립니다.  매 가우스-뉴턴 단계에서 F(X)를 테일러 급수를 이용하여 근사시키면 F(X) ~ F(Xk) + J(Xk)(X-Xk)가 됩니다 (2차 이상의 항은 무시했을 때). 따라서, 현재 단계에서 F(X) = 0으로 만드는 X는  F(X k ) + J(X k )(X-X k ) = 0인 X이며, 이것을 X에 대해 풀면 X = Xk - J-1F (J의 역행렬이 존재하는 경우), X = Xk -  (J T J) -1 J T F (J의 역행렬이 존재하지 않는 경우 pseudo inverse를 이용)가 됩니다.


5. 가우스-뉴턴 방법을 이용한 비선형 최소자승법


최소자승법의 이해와 다양한 활용예 (Least Square Method)에서 설명한 내용은 선형 최소자승법 (linear least square method)에 대한 내용이었습니다. 비선형 least square 문제에 대해서는 여기서 설명드린 가우스-뉴턴 방법을 적용하면 파라미터를 추정할 수 있습니다. 다만, 선형 least square 문제는 해가 유일하게 결정되지만 비선형 least square 문제는 해가 근사적으로 구해지며, 초기값에 따라 해를 구하지 못할 수도 있습니다.


관측값을 (xi, yi), 모델 파라미터를 β = ( β1,  β2, ...,  βm) , 모델을 y = f(x, β)라 할때, 알다시피 최소자승법은 residual인 ri = yi - f(xi, β)들의 제곱합을 최소로 하는 모델 파라미터 β를 찾는 방법입니다.


이는, 원래는 다음과 같은 연립 방정식을 푸는 문제이기 때문에 앞서 설명한 '가우스-뉴턴법을 이용한 연립방정식의 근사해 구하기'를 이용해서 β를 구할 수 있습니다 (구체적 예는 아래의 원 근사 예제 참조).



6. 비선형 최소자승법 예제: 원 근사


2차원 평면 상의 점  (x1, y1), ..., (xm, ym)을 근사하는 원 방정식을 구하는 문제를 가우스-뉴턴 방법으로 한번 구해보겠습니다. 이 경우, residual은 다음과 정의됩니다.



그러면, 가우스-뉴턴 방법을 적용하기 위한 행렬들은 다음과 같이 계산됩니다.


,



이제 X를 적당한 값으로 초기화한 후에, 가우스-뉴턴 방법을 반복적으로 적용하면 원하는 원의 방정식을 구할 수 있게 됩니다.


by 다크 프로그래머

  • 이전 댓글 더보기
  • 2014.03.11 11:32 ADDR 수정/삭제 답글

    비밀댓글입니다

    • BlogIcon 다크pgmr 2014.03.11 21:41 신고 수정/삭제

      글쎄요.. 저도 막상 예가 잘 떠오르지는 않는데요, 위 글 중에서 나온 원을 구하는 문제도 한 예가 될 것 같습니다.

  • 슛골인 2014.03.29 16:56 신고 ADDR 수정/삭제 답글

    감사합니다. 죄송하지만, 스샷 찍어서 인쇄 해서 공부 하고 있습니다.
    좋은 자료 다시 한번 감사합니다.

    • BlogIcon 다크pgmr 2014.03.30 23:02 신고 수정/삭제

      제가 불편을 드린 것 같네요.. 인터넷 익스플로러의 경우에는 메뉴 항목에서 인쇄를, 크롬의 경우에는 Ctrl+p 키를 누르면 바로 인쇄가 가능합니다. 특히 크롬의 경우에는 pdf 파일로도 저장할 수 있으니 좀더 좋은 것 같습니다. ^^

  • BlogIcon siu 2014.04.27 12:19 신고 ADDR 수정/삭제 답글

    감사합니다 완전 이해되었어요!

  • jahong 2014.06.10 17:03 신고 ADDR 수정/삭제 답글

    뉴톤법에 의한 방정식의 근사해를 구할때 도함수값 f'(a)는 x=a에서의 접선의 기울기임을 알겠는데
    가우스-뉴톤방법을 이용한 연립방정식의 근사해 구하기에서 jacobian matrix는 무엇을 의미하는 건가요? 혹 접평면의 법선벡터인가요?

    • BlogIcon 다크pgmr 2014.06.10 19:15 신고 수정/삭제

      야코비언 행렬은 다변수 벡터함수에 대한 일차미분입니다. 좀더 자세한 내용은 http://darkpgmr.tistory.com/132 글을 참조하시기 바랍니다.

  • 다크팬 2014.10.23 01:56 신고 ADDR 수정/삭제 답글

    너무 잘 봤습니다.. 그런데 이해가 잘 안가는 부분이 있어서요. 처음 부분에 <만일 x=a에서의 |함수값|이 작고 접선의 기울기가 가파르다면 바로 근처에 해가 있을 것이고, 반대로 |함수값|이 크고 접선 기울기가 완만하다면 멀리 떨어진 곳에 해가 존재할 것이다> 함수값이 크고 기울기가 가파르다면 이 말에서요.. 제가 2차 함수를 생각했는데. 저희가 원하는 x의 값은 기울기가 0인 지점이잖아요. 기울기가 점차 완만해지면서 결국 x의 값이 구해질텐데, 기울이가 가파르다면이라는 말이 이해가 잘 안가서요 .ㅠㅠ

    • BlogIcon 다크pgmr 2014.10.23 08:09 신고 수정/삭제

      안녕하세요. 뉴턴법은 기본적으로 방정식 f(x) = 0의 해를 x_new = x - f(x)/f'(x)를 통해 점진적으로 찾는 방법입니다. 그런데 이를 응용하면 f(x)의 극소, 극대점을 찾는데도 뉴턴법을 적용할 수 있습니다. 왜냐하면 f(x)의 극점은 f'(x) = 0인 x를 찾는 것과 같기 때문에 g(x) = f'(x)라 놓고 g(x) = 0인 해를 뉴턴법으로 찾으면 되기 때문입니다. 즉, x_new = x - g(x)/g'(x) = x - f'(x)/f''(x)로 해를 구하면 됩니다.
      제가 본문에서 설명한 부분은 원래의 뉴턴법 즉, f(x) = 0의 해를 구하는 원리가 x_new - f(x)/f'(x)인 이유를 설명한 것입니다. 말씀하신 이차함수의 극소점을 구하는 문제는 뉴턴법을 응용하여 적용하는 경우인데 원래의 뉴턴법에 대한 설명을 그대로 적용하려고 하니 문제가 발생한 것으로 보입니다. f(x)의 극소값을 구할 때에는 기울기(f')와 곡률(f'')을 가지고 해석을 해야 할 것입니다.

  • Alz 2015.01.10 00:24 신고 ADDR 수정/삭제 답글

    너무 잘봤습니다. 3년동안 제대로 이해하지못한것이 다크프로그래머님의 포스트를 읽고 이제야 이해가 되는 느낌입니다. 감사합니다!

  • BlogIcon 고등학생 2015.01.16 23:17 신고 ADDR 수정/삭제 답글

    안녕하십니까. 고등학교를 재학하고 있는 학생입니다. 소논문 자료를 찾던 중 이 블로그에 포스팅 된 글이 좋아 인용을 하려고 하는데 괜찮겠습니까 ?

  • 초보직장인 2015.03.23 16:04 신고 ADDR 수정/삭제 답글

    정보보안학과를 나와 1년간 영상처리관련 개발업무를 하고있는데 한분야의 영상처리만 하다보니까 지겹고 더 많이 공부하고 싶어 여러 포스트를 보고있는데 정말 존경스럽습니다.

    • BlogIcon 다크pgmr 2015.03.24 06:46 신고 수정/삭제

      지겨울 때 잠깐씩 다른 걸 둘러봐도 괜찮겠네요. 감사합니다.

  • 고등학굥 2015.04.23 19:44 신고 ADDR 수정/삭제 답글

    혹시 어떻게 뉴턴랩슨법을 이용하여 비선형도형의 지름을 구할 수 있는지 증명이 가능합니까?

    • BlogIcon 다크pgmr 2015.04.23 22:07 신고 수정/삭제

      비선형도형의 지름이란 것이 어떤건가요?

  • 2015.04.28 21:51 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 고등학생 2015.04.29 19:27 신고 ADDR 수정/삭제 답글

    어떤 이유로 뉴턴랩슨법이 많은 해 중 1개의 해밖에 구하지 못하는 것입니까?

    • BlogIcon 다크pgmr 2015.04.30 06:57 신고 수정/삭제

      좋은 질문입니다. 뉴턴법 식이 xt+1 = xt - f(xt)/f'(xt) 인데 만일 해에 도달했다면 f(xt) = 0이 되기 때문에 xt+1 = xt가 되어서 더이상 x가 변하지 않게 됩니다. 즉, 해를 찾게되면 그 자리에서 멈춰버리기 때문에 다른 해가 존재할 경우에는 다른 해를 찾을 수 없게 됩니다. 물론 시작점을 다르게 해서 뉴턴법을 여러 번 실행하면 하나 이상의 해를 찾을 수도 있습니다.

    • 다크짱! 2016.04.11 15:43 신고 수정/삭제

      안녕하세요?
      뉴턴법의 문제점은 1개의 해 밖에 찾지 못하며, 하나 이상의 해를 찾을 때엔 시작점을 다르게 해야한다. 라고 정리할 수 있을 것 같은데
      가우스 뉴턴법은 이러한 문제에서 해결된건가요?

    • BlogIcon 다크pgmr 2016.04.11 17:14 신고 수정/삭제

      아니요.. 동일한 문제가 존재합니다.

  • 공돌이 2015.11.26 22:17 신고 ADDR 수정/삭제 답글

    여기 블로그에 좋은 자료 많네요...
    덕분에 많은 도움이 되고 있어요...(감사감사 ^^)

    헌데 보다가 궁금한게 있어서 그러는데,
    5번 내용에 '제곱의 합을 최소로 하는 문제'를 '연립방정식을 푸는 문제'로 바뀌는 부분에서
    맨 마지막 연립방정식이 왜 저렇게 구성이 되는 건가요??
    개인적인 생각으로는 '제곱의 합으로 표현된 식을 베타에 대해 편미분을 한 식들이 0이다'로 연립방정식이 구성이 되어야 하지 않나 싶은데... 왜냐면 최소값은 그레디언트가 제로인 부분이니까요...
    아닌가요??

    • BlogIcon 다크pgmr 2015.11.27 14:28 신고 수정/삭제

      네, 말씀하신 내용이 맞습니다.

    • BlogIcon 다크pgmr 2015.11.29 00:21 신고 수정/삭제

      보다 정확히 말하면 말씀하신 내용도 맞고 윗 글 내용도 맞습니다. 말씀하신 내용은 E(p)를 최소화시키기기 위해 E'(p) = 0 (p가 다차원일 경우에는 ∇E(p) = 0)인 p를 구한다는 것으로서 최적화 기법의 가장 기본적인 원리입니다. 그리고 윗 글 5번 내용은 그러한 목적을 달성시키기 위한 한 방법입니다.

  • 공돌이 2015.11.27 20:50 신고 ADDR 수정/삭제 답글

    그럼 6번 내용의 F 행렬도 달라져야 하는거죠??

    그러니까 6번 내용의 행렬 표기를 그대로 사용하자면,
    새로운 F' = transpose(J)*F 가 되고,
    이 새로운 F'에 대해서 가우스-뉴턴방법으로 풀어야 한다로 말이죠...

    • BlogIcon 다크pgmr 2015.11.29 00:15 신고 수정/삭제

      그렇진 않습니다.. 6번 내용은 어떤 최소자승 문제를 가우스-뉴턴법으로 풀어가는 과정에 대한 글입니다. 생각하고 계시는 방법 즉, f(x)를 최소화시키고 싶을 때 f'(x) = 0인 x를 찾는 것은 최적화 문제에 대한 가장 기본적인(일반적인) 풀이 방법입니다. 그리고 가우스 뉴턴법은 그러한 목적을 달성하기 위한 구체적 방법들 중 한가지입니다 (단, 가우스-뉴턴법은 일반적인 최적화 문제에는 적용할 수 없으며 목적함수가 에러의 제곱합 형태로 주어지는 문제 즉, 최소자승문제(least squares problem)에만 적용될 수 있음). 가우스-뉴턴법에 대한 보다 자세한 내용에 대해서는 http://darkpgmr.tistory.com/142 글을 참조해 보시기 바랍니다.

  • 공돌이 2015.12.03 09:08 신고 ADDR 수정/삭제 답글

    말씀해주신 'http://darkpgmr.tistory.com/142' 글도 보면서 나름 이해키로는
    E(p) = rT(p) r(p)를 최소화 시키는 p를 찾음에 있어서 (p는 다차원)
    1) ∇E(p) = 0으로 연립방정식을 구성해서 해를 구하는 방법을 뉴턴법이라 하고,
    2) r(p) = 0으로 연립방정식을 구성해서 해를 구하는 방법을 가우스-뉴턴법이라고 하는 것 같네요.

    그럼 제가 지금까지 댓글로 얘기 했던게 뉴턴법이였던 거구요.

    근데 가우스-뉴턴법이라는게 알쏭달쏭하네요. 왜 'E(p) = rT(p) r(p)를 최소화 시키는 p를 찾는 문제'가 ' r(p) = 0를 만족하는 연립방정식을 푸는 문제'가 되는지를요. E(p) = rT(p) r(p) = 0라는 보장도 없는데 말이죠.

    만약 E(p) = rT(p) r(p) = 0 라는 보장이 있다면 r(p) = 0로 연립방정식을 꾸리는 것은 당연한데, (왜냐면 그럴 수 밖에 없으니까요) 근데 그런 보장도 없는데 r(p) = 0로 연립방정식을 꾸려도 된다는 것이 이해하기가 쉽지가 않네요 ^^;;

    • BlogIcon 다크pgmr 2015.12.03 10:43 신고 수정/삭제

      표현상의 조금 문제가 있었던 것 같습니다. 본문의 표현을 '이는, 다음과 같은 연립 방정식을 푸는 문제로 볼 수 있기 때문에'에서 '이는, 원래는 다음과 같은 연립 방정식을 푸는 문제이기 때문에'로 수정하였습니다.
      그리고 적어주신 1), 2)의 뉴턴법, 가우스-뉴턴법의 이해에 대해 정정 설명을 드리면, 우리가 주어진 관측 데이터들로부터 모델의 파라미터를 구하는 문제 자체가 연립방정식 문제이며 이러한 연립방정식 문제를 최적화 기법으로 푸는 방법들 중 하나가 뉴턴법, 가우스-뉴턴법 등이라고 표현하는 것이 좀더 적절할 것 같습니다.

  • 다크짱! 2016.04.11 15:46 신고 ADDR 수정/삭제 답글

    다크프로그래머님! 포스팅 항상 잘 보고있습니다. 감사드려요!!
    혹시 Gradient 나 Newton의 최적화를 통한 파라미터를 구하는 소스코드가 있을까요?

    • BlogIcon 다크pgmr 2016.04.11 17:17 신고 수정/삭제

      전 없습니다만 인터넷에 찾아보면 많이 있을 것으로 추측합니다.

  • 채니 2016.12.31 21:17 신고 ADDR 수정/삭제 답글

    논술 준비하는 고등학생입니다 좋은 글 감사해요 새해에도 행복한 일만 가득하시길

  • 제이 2017.02.22 09:51 신고 ADDR 수정/삭제 답글

    안녕하세요 다크프로그래머님
    글을 보다가 궁금증이 생겨 질문드립니다.

    fitting model을 정해 놓은 상황

    예를 들면
    만약, 여러가지 데이터들을
    y = c/((a-x)^2 + b) + d 혹은 다른 어떠한 모델로 graph fitting을 하려 할 때는 어떤 방식을 써야 하는지요?

    • BlogIcon 다크pgmr 2017.02.22 14:00 신고 수정/삭제

      안녕하세요. 글에 있는 예들도 모두 fitting model이 정해져 있는 경우의 예들입니다.. 즉, 동일한 방식으로 하시면 됩니다. 먼저 error(residual)를 정의하고 정의한 에러 함수를 모델의 각 파라미터 변수(a,b,c,d...)로 편미분만 할 수 있으면 됩니다. 그러면 F(데이터들의 에러값 벡터), J(에러함수에 대한 1차 편미분 행렬)가 얻어지고, 파라미터 벡터 X에 대한 적당한 초기값으로 시작해서 X = pinv(J(X))*F(X)를 계속 돌리면 됩니다.

  • BlogIcon 지환 2017.04.19 10:19 신고 ADDR 수정/삭제 답글

    안녕하세요 다크프로그래머님
    포스팅 잘 보았습니다. 글을 보다가 공부하는 부분이 겹쳐서 조심스레 질문해봅니다.
    혹 이 뉴턴법을 통해서 얻은 해가 유일하다는 것은 보일 수 없는건가요?
    g(x) = x- f(x) 일때 f(x) 의 해를 x의 fixed point 을 통해 구하는데 이것의 유일성을 보이려고
    뉴턴법을 사용할 수 없는 건가요? (fixed point 의 유일성은 |g`(x)|<1 을 보여야 합니다.)

    • BlogIcon 다크pgmr 2017.04.19 16:13 신고 수정/삭제

      뉴턴법은 g(x) = 0의 해를 구하는데 사용할 수 있는 방법이고 이러한 x가 유일하다는 것은 뉴턴법과는 별개의 문제로 보입니다. 그런데, |g'(x)|<1이면 fixed point의 유일성이 보여지는 건가요? 1차미분 절대값이 1보다 작다고 해서 해가 유일하다는 것은 선뜻 이해가 가지 않습니다.. 어쨌든 뉴턴법으로 해의 유일성을 보이기는 힘들다고 생각합니다.

  • 옵티멀 2017.09.28 22:00 신고 ADDR 수정/삭제 답글

    블로그 잘보고 있습니다. 감사합니다.

    제가 이해하기론 뉴턴법은 함수1개 일때 최적 변수를 구하는것이고 가우스 뉴턴법은 함수 여러개일때 최적 변수값을 구하는거라고 생각이 드는데 맞는건가요?

    그렇다면 뉴턴법의 함수가 linear든 nonlinear든 상관 없는거죠? nonlinear케이스에 대해선 가우스뉴턴법만 언급을 하셔서 궁금합니다.

    • BlogIcon 다크pgmr 2017.09.28 23:43 신고 수정/삭제

      뉴턴법이나 가우스-뉴턴법이나 기본적인 특성은 거의 비슷합니다. 다만, 뉴턴법은 함수 형태에 국한되지 않고 일반적으로 적용할 수 있는 방법이고 가우스-뉴턴법은 least squares 문제(함수가 에러 제곱합 형태인 문제)에만 적용할 수 있는 방법이라는 차이만 있습니다. linear, nonlinear는 둘다 아무 관계없습니다.

  • 찐감자 2017.11.16 11:41 신고 ADDR 수정/삭제 답글

    안녕하세요. 블로그를 통해 정말 많은 도움을 받고있습니다. 유익한 포스팅 항상 감사합니다.

    너무 초보적인 내용일까봐 두렵지만, 본문 내용 중에 이해를 못하는 부분이 있어서 질문드립니다.
    본문 마지막 항목인 원근사 예제에서 residual이 sqrt((x-a)^2 + (y-b)^2) - r 로 정의된다고 나와있는데, 최소제곱법을 공부한 내용으로는 residual^2 = (y-f(x))^2 이라 residual은 r^2 - ((x-a)^2 + (y-b)^2)와 같은 모양이 되어야 할 것 같은데 본문과 같은 형태가 되는 이유를 모르겠습니다. residual을 정의하는 과정이 궁금합니다.

    • BlogIcon 다크pgmr 2017.11.16 14:33 신고 수정/삭제

      안녕하세요. residual의 의미는 데이터가 모델에서 벗어난 정도를 나타내는 용어로서 그 구체적인 계산은 거리를 어떻게 정의하느냐에 따라서 조금씩 달라질 수 있습니다. http://darkpgmr.tistory.com/143에 있는 내용과 같이 문제의 목적에 따라서 residual error를 다양한 방식으로 정의할 수 있습니다. 원근사 예제의 경우에는 저처럼 잡을수도 있고 residual error를 말씀하신 방식으로 잡을 수도 있습니다. 어떤 것도 틀린 것은 아닙니다. 저처럼 잡을 경우에는 residual이 데이터와 원과의 수직거리의 의미를 갖게 됩니다. 그리고 찐감자님이 말씀하신 것처럼 잡게 되면 (이 경우 기하학적 의미가 명확하진 않은데요) 데이터 포인트, 원의 중심, 그리고 데이터 포인트에서 원에 내린 접선의 접점 이렇게 세 점이 이루는 직각삼각형의 한 변의 길이 제곱의 의미가 됩니다. 즉, 데이터 포인트에서 원에 그은 접선의 길이를 residual로 잡는 셈이 됩니다. 어떤 방식을 써도 큰문제는 없지만 블로그에 적힌 방식이 기하학적으로는 좀더 직관적인 것 같습니다. 좋은 질문 감사합니다.

    • 찐감자 2017.11.16 17:09 신고 수정/삭제

      이해가 되었습니다! 설명 감사합니다. 앞으로도 유익한 포스팅 잘부탁드립니다.