5장 사이파이(SciPy)로 공부하는 최적화¶
이 장에서는 함수의 값을 가장 크게 혹은 작게 만드는 입력변수의 값을 찾는 문제를 공부한다. 이러한 문제를 최적화 문제라고 한다. 모든 데이터 분석은 주어진 기준에 가장 적합한 수식을 찾는다는 점에서 일종의 최적화 문제를 푸는 과정이라고 볼 수 있다.
가장 기본적인 최적화 방법은 일정 범위의 입력변숫값들을 모두 계산하는 그리드 서치(grid search) 방법이다. 그러나 입력변수의 수가 많거나 함수 계산에 시간이 오래 걸리는 경우에는 그리드 서치 방법이 현실적으로 불가능하므로 가능한 한 적은 횟수로 함수를 계산하는 수치적 최적화 방법을 사용한다. 이 장에서는 수치적 최적화 방법 중 가장 단순한 최대경사법(steepest gradient method, 최급강하법으로 번역하기도 한다)과 이를 개선한 뉴튼 방법(Newton method)에 대해 공부한다.
현실의 최적화 문제는 보통 추가적인 제한조건이 포함된다. 제한조건은 입력변수의 값이 특정한 연립방정식을 만족해야 하는 등식 제한조건과 입력변수의 값이 특정한 연립부등식을 만족해야 하는 부등식 제한조건이 있다. 우선 라그랑주 승수법을 이용하여 등식 제한조건이 있는 최적화 문제를 푸는 방법에 대해 알아보고 라그랑주 승수의 의미를 설명한다. 부등식 제한조건을 푸는 KKT 조건에 대해서도 공부한다.
마지막으로 최적화 문제 중 실용성이 높은 LP(linear programming) 문제와 QP(quadratic programming) 문제를 소개한다.
학습 목표¶
최적화 문제의 의미와 풀이법에 대해 공부한다.
그리드 서치 방법과 단점에 대해 알아본다.
수치적 최적화 방법 중 최급강하법과 뉴튼 방법에 대해 공부한다.
라그랑주 승수법과 라그랑주 승수의 의미에 대해 알아본다.
부등식 제한조건이 있는 최적화 문제의 KKT 조건에 대해 공부한다.
사이파이(SciPy) 패키지를 사용하여 제한조건이 있는 최적화 문제를 풀 수 있다.
LP 문제와 QP 문제를 이해하고 수식으로 형식화 할 수 있다.