본 자료는 국립 창원대학교 메카트로닉스 공학부 학생을 대상으로 한 공업수학 수업 자료입니다. 본 자료는 수업의 교재인 공업수학I 개정3판 (고형준 외, 도서출판 텍스트북스) 의 내용을 재구성한 것으로 수업보조 자료 이외의 목적이 없음을 알립니다.






   최소자승법 Least Square !  
 


위 그림을 보죠. 5개의 좌표가 찍혀있습니다. 어떤 이유에서든 위와 같은 데이터를 직선으로 간단히 표현하고 싶을 때가 있습니다. 물론 직선 하나로 표현할 수 없죠. 그러나 각 에러를 최소화 하면서 직선으로 표현해도,


 즉, 간단히 직선으로 표현해도 상관없다는 판단하에 직선으로 표현하고자 할때 사용하는 대표적인 간단한 수학적 방법이 Least Square, 최소자승법입니다.


직선으로 표현하는 것은 y=ax+b의 형태를 이용하겠다는 것이고 얻은 데이터를 이용해서 위와 같은 직을 구할 수 있습니다. 


이때 미지수 a, b를 미지수 행렬 X로 정의 하고, 각 데이터를 A로 표현하면 Y=AX와 같은 표현을 사용할 수 있게 됩니다.


그리고 다시 생각해보지요.


목적은 직선으로 표현하는 것이고, 그리고 그렇게 표현된 직선은 각 데이터로 부터의 에러가 가장 작게 표현되어야할 것입니다. 그래서 위와같이 에러를 정의하고 에러의 부호를 모두 양으로 설정합니다.

 
그리고 그 에러의 제곱의 합을 구하면 어떠한 성능지표로서 사용이 가능해 질 것입니다.


그러면 최종적으로 위와 같이 에러를 함수화 할 수 있습니다. 우리는 다시 한번 이야기하지만, 저 에러를 최소화하는 a, b를 찾고 싶은 겁니다.


이때 에러의 최소값은 이차식인 경우 그 극값에서 존재할 것이고 이를 찾는 간단한 도구가 미분이라는 사실은 이미 고등학교때 배워서 알고 있습니다^^. 그런데 우린 미지수가 a, b 두개이니까 각각에 대한 편미분이 0이 되는 값을 찾으면 됩니다. 즉,


위와 같은 결론을 얻을 수 있지요. 이때, 간단히 summation의 성질을 이용하면

 
이렇게 표현이 가능해 집니다. 이때, (sum) xi 들을 행렬로 생각하면

 
위의 표현이 가능해 집니다. 물론 X는 여전히 미지수 a, b라는 사실...


이제 위 식을 사용하면 간단히 a, b를 찾을 수 있습니다.







다시

 
이 그림으로 돌아와서


이 다섯개의 좌표에

 

위와 같이 적용하고 방금전의 결론식


에 대입하면 a, b를 찾아서


라는 직선을 완성할 수 있습니다. 이렇게 구한 직선의 성능은

 
이렇게 2.7이라고 수치화 시킬 수 있습니다. 물론 단연히 이 수치가 더 작은 것이 있다면 더 좋은 성능이라고 할 수 있습니다. 



참고자료



http://pinkwink.kr/trackback/191 관련글 쓰기
  • 엘고 2009/10/11 23:07

    좌표를 수치화~~수학 학생때 너무 어렵게 생각했는데
    ~~실제 과학 연구에서 큰 도움이 되는군요^^
    날씨가 쌀쌀해지네요~건강유의하시고 활기찬 한주시작하세요^^

    • PinkWink 2009/10/12 00:08

      네.. 이번주는 특히 그것이 필요하답니다..
      활기찬... ㅎㅎㅎㅎ^^

  • 라라윈 2009/10/12 02:36

    최적의 직선을 귀하는 공식...
    요즘 열심히 머리 싸매고 있는 부분이라 도움이 많이 되었습니다. ^^
    정말 감사해요~ ^^

    • PinkWink 2009/10/12 05:42

      요즘 너무 열공하시는거 아닙니까^?^
      라라윈님께 도움을 드렸다니 저야 뭐 황송할 따름입니다^^

  • 바람처럼~ 2009/10/12 09:09

    아.... 죄송합니다 제 전공이 아니었군요 ㅋㅋ

    • PinkWink 2009/10/13 00:08

      .. ㅎㅎㅎ 그렇다고 죄송하실것까지야 있습니다..
      그럼 저도 죄송합니다.. ㅎㅎㅎ 이상한 글을 올려서..ㅋㅋ

  • 초록누리 2009/10/12 11:45

    수학에 공업수학 분야가 있나요?
    공부한지 오래되다 보니 이젠 수학 용어도 낯설어요.ㅠㅠ

    • PinkWink 2009/10/13 00:08

      공대 학부생들이 교양으로 이수해야하는 과목이지요^^

  • gk 2009/10/12 14:48

    저는 이제 인수분해도 제대로 기억이 안나는......ㅠㅠㅠㅠㅠ

    • PinkWink 2009/10/13 00:08

      전... 지난학기에 수업한것도 기억안날때 있는걸요..ㅋㅋ

  • 아고라 2009/10/12 23:07

    와 머나먼 옛날, 정말이지 흥미있던 분야인데...이제는 머리가 뒤따라가주지 않는다는..... TT
    존경스러워요...

    • PinkWink 2009/10/13 00:09

      헉.. 과분한 존경이십니다..ㅋㅋㅋ 햄스터는 잘 크고 있는지요..ㅋㅋㅋ

  • 2009/10/13 20:51

    비밀댓글입니다

    • PinkWink 2009/10/14 14:39

      저도 충분히 공감하는 문제점들이네요...^^
      항상 애쓰고 있지만
      뭔가 지식을 전달하는 선생으로서 고심합니다...
      학생들은 어쩔지 몰라도...ㅜ.ㅜ

  • 영웅전쟁 2009/10/14 20:28

    정말 까마득 하군요...
    세월은 어찌 이토록 망각의 시간 속으로만 보내는지....
    밀려둔 글들 잘 보고 갑니다.
    젊음의 그 시절이 그립지만...........

    편안한 밤 되세요.

    • PinkWink 2009/10/15 02:45

      네... 편안한 밤은 글렀습니다...
      대충봐도 딱 5시간 정도 더 공부해야할듯해요...크헉..
      이제.. 새벽이 끝날려고하는데..ㅜ.ㅜ

  • 박재완 2010/05/11 18:23

    안녕하세요 pinkwink님
    저번에 말씀드린대로 최소자승법한후 해가 안구해져서 고생중입니다.
    매트랩에서 polyfit을 사용해서는 쉽게 구할수 있는데
    PI제어기(추정기)를 이용하니까 라플라스S때문에 게인값을 구할수가 없네요
    에러 J={y - x( kp + skd + 1/ski ) }^2
    이렇게 나와서 파라미터에 대해서편미분을 해주니
    y=(kp)x + 1/s(ki)x +s(kd)x 이렇게 나오는데
    위의 최소자승법처럼 (0,0), (13,5) (30, 10) (35, 15) 이 네점을 대입해서
    kd,ki,kp를 찾으려고 하니 라플라스S 때문에 구할수가 없습니다.

    여기서 2차미분방정식을 써야하는 건지요??,, ㅜㅜ
    2차미방을 써도 복잡하고 값이 안나오던데..
    pinkwink님은 kp,ki값을 어떻게 구하셨는지...
    여차여차해서 결과는 구했는데 결과를 계산하는 방법이 증명이 안되네요..

    아 그리고 혹시 6월3일날 광주 과기원에서 하는
    KSME에 참가하시는 지요?? 참가하시면 제가 큰절이라도 올려야 할 판입니다. 'ㅁ'

    • PinkWink 2010/05/12 13:07

      http://www.pinkwink.kr/242 에 제가 유도했던 과정이 나옵니다. 전 운이 좋았는지 미지수행렬을 뽑는데 좀 간단했거든요^^
      그리고 KSME는 참석하지 않는답니다.^^
      전... 5월 말에 있는 춘천에서 열리는 학회를 가네요... 태어나서 처음으로 춘천도 구경할겸말이죠^^

  • 돼지돌이 2011/05/25 16:16

    좋은 내용 감사합니다. 어디를 가도, pinkwink 님이 정리 해놓은 자료보다 좋은 자료는 없는것 같군요 ^^
    이쯤에서 궁금한 점이 하나 발생이 하는데요... 지금은 선형성에 관련된 1차함수의 파라미터를 구하는 것(least square)인데... 만약 비선형성(2차 함수 등등)에 관련된 것이라면 어떤 방법을 사용하나요?!
    아... 그리고 궁금한 사항이 하나 더 있습니다, least square 와... least mean square의 차이는 뭔가요?!

    • PinkWink 2011/05/25 21:02

      비선형 최소자승법이라고 있습니다. 그 밖에도 비선형에 적용되는 꽤 많은 방법이 있습니다. 그리고 최소자승법과 최소평균자승법은 좀 다른 걸로 알고 있습니다.

      http://en.wikipedia.org/wiki/Least_mean_squares_filter
      http://en.wikipedia.org/wiki/Least_squares

      를 확인해보시길 바랍니다. 저도 최소평균자승에 대해서는 모른답니다.

    • 타다 2011/11/11 10:22

      Non-linear 경우에는 Gauss-Newton 이나 Levenberg-Marquardt (LM) method를 사용합니다..위키디피아에서 검색해 보시면 나와요 ^^

    • PinkWink 2011/11/11 11:13

      ㅎㅎㅎ 제가 잘 모르는 부분을 보완해주셨네요.
      감사합니다.
      (저의 지식이 어찌나 엷은지...ㅠㅠ)

  • 2011/09/24 22:36

    비밀댓글입니다

    • PinkWink 2011/09/26 09:12

      포스팅 제일 상당에 참조한 교재가 나타나 있습니다.

  • 신현기 2013/05/31 07:11

    돌고 돌아서 핑크님의 자료를 보네요.지금 교정시술후 Before와 After 이미지를 비교하는 프로그램을 짜고 있는데,원근변환이 결국 마지막에 필요하더군요. 처음에는 원근변환 행렬을 이용해서 해봤는데 잘 되지 않아서,알고 있는 4점을 이용하여 역행렬로 접근하고 있습니다. 역행렬을 구할때 소거법을 사용하는 방법과 최소자승법이 있어서 검색하던중 이렇게 방문하게 되었네요. 근데 둘 다 있어서 아주 즐겁게 보고 있습니다.

    • PinkWink 2013/06/01 19:00

      네 오랜만입니다^^
      그나저나 어마어마한 열정을 가지고 계시네요
      좋은 성과를 빕니다

  • Jin 2014/05/04 05:02

    지금 미쿡에서 선형대수 공부하고 있는 아이엄마입니다. 학생때 다른 전공하다가 수학 한번 해보고 싶어서 뛰어들었는데 애들키우면서 영어로 온라인수업 들으려니 대체 이해가 안되더군요. 특히 이 리스트 스퀘어 메소드 완전 이해안가서 다음날 대답해주는 교수님한테 이메일만 계속 보내고 있다가.. 님 블로그를 발견했는데. 제 나름대로 해석도 덧붙여서 노트도 만들고 있습니다. 정말 좋네요. : )

    • PinkWink 2014/05/04 10:23

      좋았다니 다행입니다. 좋은 성과가 있으시길 바랍니다.^^