5주차. 이변수 함수의 극대 극소, 최대 최소 

 

학습목표 

이변수 함수의 극대, 극소, 최대, 최소를 구하는 방법을 학습한다. 

핵심개념 

이변수 함수의 극댓값, 극솟값, 최댓값, 최솟값, *라그랑주의 승수법 

실습실 

http://matrix.skku.ac.kr/math4ai/part2/ 

http://matrix.skku.ac.kr/Cal-Book1/Ch13/ 

 

5.1 이변수 함수의 극대, 극소(Local Maximum, Local Minimum) 

 (독립) 변수가 두 개인 함수를 이변수함수(function of two variables)라 하고, 가 이변수함수 의 정의역 내의 한 점일 때,  

 

의 적당한 근방의 모든 에 대하여 이면, 에서 극대(local maximum)가 된다고 하고, 극댓값(local maximum value)이라 한다. 

 

의 적당한 근방의 모든 에 대하여 이면, 에서 극소(local minimum)가 된다고 하고, 극솟값(local minimum value)이라 한다. 

 

만일 의 정의역 안의 모든 에 대하여 위의 부등식을 만족하면 에서 최대(absolute maximum) 또는 최소(absolute minimum)가 된다고 한다.  

 

             그림입니다.
원본 그림의 이름: CLP00001d441043.bmp
원본 그림의 크기: 가로 645pixel, 세로 456pixel 

 

위의 그림을 보면, 극솟값들 중에 가장 작은 값이 최솟값이 되고, 극댓값들 중에 가장 큰 값이 최댓값이 된다. 따라서 함수의 최대, 최소를 구하기 위해서는 먼저 극소 또는 극대를 가질 만한 후보들을 찾을 수 있어야 한다. 다음 정리는 이에 대한 힌트를 제시해준다. 

 

페르마의 임계점 정리(Fermat’s theorem on critical points)  

 이변수함수(function of two variables) 에서 극댓값(또는 극솟값)을 갖고 에서 의 1계 편도함수가 모두 존재하면, , , 즉 을 만족한다. 

 

따라서 가 극대 또는 극소를 가질만한 점에서는 (존재하는) 1계 편도함수의 값이 모두 0이어야 한다. 이와 같이 를 만족하는 점 임계점(critical point)이라 한다. 

 

 참고   의 1계 편도함수가 아예 존재하지 않는 점도 역시 임계점(critical point)에 포함된다. 그러나 우리는 이 책에서 편도함수가 항상 존재하는 경우만 살펴보기로 한다. 

 

사각형입니다.  함수 의 임계점(critical points)을 구하여라. 

풀이.  이므로 의 유일한 임계점이다.  

 

 

 그러나, 임계점(critical points)이라고 해서 반드시 극대 또는 극소를 갖는 것은 아니다. 예를 들어, 함수 의 경우, 이므로 이 함수 의 유일한 임계점이다. 그러나 에서의 함숫값 은 극댓값도 극솟값도 될 수 없다. 

 

                    그림입니다.
원본 그림의 이름: CLP00005bd40006.bmp
원본 그림의 크기: 가로 492pixel, 세로 541pixel 

 

왜냐하면 위의 그림과 같이 평면상에 의 임의의 근방(노란색)에서 함수 는 양의 값을 가질 수도, 음의 값을 가질 수도 있기 때문이다. 실제로 일 때, 이므로 축을 따라서 함수 (빨간색)가 에서 극소가 된다. 마찬가지로 일 때, 이므로 축을 따라서 함수 (녹색)가 에서 극대가 된다. 

 

 이와 같이 임계점( )이지만, 극대도 극소도 될 수 없는 안장점(saddle point)이라고 한다. 

 

 2계 편도함수를 이용하면 임계점에서 이변수함수의 극대, 극소, 안장점 여부를 판단할 수 있다. 이는 일변수 함수의 극대, 극소에 대한 2계 도함수 판정법과 유사하다.  

 

 이변수함수의 극대, 극소 판정법  

의 근방에서 이변수함수 연속인 2계 편도함수를 갖고, 의 임계점, 즉 를 만족한다고 하자. 이제 (Hessian 행렬 at ) 

 

                 

                           

 

라 하면 다음이 성립한다. 

 

이고 이면, 극솟값이다. (행렬 의 고윳값이 모두 양) 

이고 이면, 는 극댓값이다. 

이면, 는 극댓값도 극솟값도 아니다. 점 안장점이다. 

이면, 이것만으로는 가 극댓값인지, 극솟값인지 또는 의 안장점인지 판단할 수 없다. 

 

사각형입니다.  함수 의 극댓값, 극솟값 또는 안장점을 구하라. 

풀이.  이므로 임계점은 이다. 

함수 의 그래프를 그려보면 다음과 같다. 

 

 

 

이제 에서 의 헤시안(Hessian) 행렬 과 그 행렬식을 구하면 다음과 같다.  

 

 

이고 이므로 극솟값이다.    

 

사각형입니다.   의 극댓값, 극솟값, 또는 안장점을 구하라. 

 

 

따라서 임계점은 , 이다. 이제 각 임계점에서 의 헤시안 행렬 과 그 행렬식을 구하면 다음과 같다.  

 

 

, 에서 이므로 이 점들은 모두 안장점이다. 따라서 극댓값과 극솟값이 존재하지 않는다. 이를 곡면과 함께 그려보면 다음과 같다. 

 

 

사각형입니다.  점 와 평면 사이의 최단거리를 구하라. 

풀이.  먼저 평면의 방정식 으로부터 를 얻는다.  

 

 

따라서 평면 위의 임의의 점 와 점 사이의 거리는 다음과 같다. 

 

                               

 

그러나 계산의 편리를 위해 제곱하여 이변수함수 를 최소가 되도록 하는 를 구한다. 

 

 

임계점 에서 이고, 이므로 최단거리 는 다음과 같다. 

 

                                                 ■ 

 

[참고 사항] 

[행렬식]  

http://matrix.skku.ac.kr/LA-K/Ch-4/LA-Lab-kor-Ch-4.html  

http://matrix.skku.ac.kr/2018-album/LA-Sec-4-1-lab.html  

https://bite-sized-learning.tistory.com/387 

 

3개 이상의 독립변수를 갖는 다변수 함수도 이변수함수와 동일한 방법으로, 2계 편도함수를 이용하여 임계점에서 함수의 극대, 극소, 안장점 여부를 판단할 수 있다. 이를 위해서는 정사각행렬의 선행 주 소행렬식(leading principal minor)과 고윳값(eigenvalue)에 대하여 알아야 한다. 행렬식(determinant)과 고윳값에 관한 자세한 사항은 추후 선형대수학 과목에서 배운다.  http://matrix.skku.ac.kr/2015-Album/BigBook-LinearAlgebra-2015.pdf  

 

대칭행렬 에 대하여 다음과 같은 소행렬식(minor)을 각각 

  

                 

 

라 할 때, 선행 주 소행렬식(leading principal minor)이라고 한다. 예를 들어, 행렬의 선행 주 소행렬식은 다음과 같다. 

 

   그림입니다.
원본 그림의 이름: CLP000052100001.bmp
원본 그림의 크기: 가로 902pixel, 세로 120pixel 

                                                                                                        

 

 참고   행렬 의 행렬식은 그림입니다.
원본 그림의 이름: CLP000034380009.bmp
원본 그림의 크기: 가로 472pixel, 세로 130pixelA.det() 명령어를 이용하여 쉽게 구할 수 있다. 

 

정사각행렬 에 대하여 이 아닌 벡터 와 적당한 스칼라 가 존재하여 를 만족하면 고윳값(eigenvalue)이라 하고, 에 대응하는 고유벡터(eigenvector)라고 한다.  

 

 참고   행렬 의 고윳값은 그림입니다.
원본 그림의 이름: CLP000034380009.bmp
원본 그림의 크기: 가로 472pixel, 세로 130pixelA.eigenvalues() 명령어를 이용하여 쉽게 구할 수 있다. 

 

이제 변수 함수의 임계점에서의 극대, 극소, 안장점 여부를 (임계점과 Hessian 행렬, 그리고 각 임계점에서의 Hessian 행렬의 고윳값들만 코드로 찾으면) 다음과 같이 판단할 수 있다. 

 

 참고   변수 함수 가 점 에서 연속인 2계 편도함수를 갖고, 을 만족한다고 하자(즉 는 임계점). 이제  

 

     각 임계점 에서의 Hessian행렬, 을 구한다. 

 

 이때 선행 주 소행렬식(leading principal minors)이라 하면 다음이 성립한다. 

 

① 모든 에 대하여 이면, 는 극솟값이다. 

② 모든 에 대하여 이면, 는 극댓값이다. 

 

결론적으로, , , ..., 고윳값(eigenvalues)이라 하면 다음이 성립한다. 

 

③ 모든 에 대하여 이면 (고윳값이 모두 양이면), 는 극솟값이다. 

④ 모든 에 대하여 이면 (고윳값이 모두 음이면), 는 극댓값이다. 

⑤ 어떤 에 대해서는 이고 어떤 에 대해서는 이면, 의 안장점이다. 

 

◩ 열린 문제 1   

 다른 교재를 참고하여 다양한 이변수함수 (또는 3변수함수)의 극댓값, 극솟값, 또는 안장점을 (임계점과 Hessian 행렬 H, 그리고 각 임계점에서의 Hessian 행렬의 고윳값을 찾는 H.eigenvalues() 명령어를 이용하여) 구하여라. 

 

 

5.2 최댓값과 최솟값(Absolute Maximum and Absolute Minimum) 

일변수 함수 에 관한 최대, 최소 정리(Extreme Value Theorem)는 폐구간 에서 가 연속이면, 에서 최댓값과 최솟값을 갖는다는 것을 말한다. 따라서 아래와 같이 임계점뿐만 아니라 양 끝점 , 에서 의 값을 계산하여 비교함으로써 최댓값과 최솟값을 구할 수 있다. 

 

 참고   폐구간(closed interval)에서 연속인 함수 에 대하여 

① 이 구간에서 임계점(critical points)들을 찾는다. 

② 임계점들과 구간의 양 끝점에서 의 값을 계산한다. 그 중 가장 큰 값이 의 최댓값이고, 가장 작은 값이 의 최솟값이다. 

 

유사한 방법으로 이변수함수에 대해서도 다음이 성립한다. 

 

 이변수함수에 대한 최대, 최소 정리  

안의 유계인 폐집합(bounded closed set) 에서 연속이면, 에 속한 적당한 점 , 에서 최댓값 과 최솟값 을 갖는다. 

 

여기서 폐집합(closed set)이라는 것은 아래 왼쪽 그림과 같이 내부와 모든 경계점을 포함하는 집합을 말한다. 그러나 오른쪽 그림은 경계의 일부 또는 전체를 포함하지 않으므로 폐집합이 아니다. 

 

         그림입니다.
원본 그림의 이름: CLP0000195c0006.bmp
원본 그림의 크기: 가로 321pixel, 세로 158pixel        그림입니다.
원본 그림의 이름: CLP0000195c0007.bmp
원본 그림의 크기: 가로 447pixel, 세로 149pixel 

                 폐집합 (closed set)                                 폐집합이 아님 

 

그리고 에서 유계집합(bounded set)은 아래 왼쪽 그림과 같이 무한히 뻗어나가지 않고, 어떤 원판(disk)의 내부에 포함되는 집합을 말한다. 

 

    그림입니다.
원본 그림의 이름: CLP0000195c000a.bmp
원본 그림의 크기: 가로 326pixel, 세로 265pixel         그림입니다.
원본 그림의 이름: CLP00007258017b.bmp
원본 그림의 크기: 가로 334pixel, 세로 296pixel 

                        유계집합                                          유계가 아닌 집합 

 

 참고   유계인 폐집합(bounded closed set) 에서 연속인 함수 의 최댓값과 최솟값은 다음과 같이 구한다. 

의 내부에 속한 의 모든 임계점에서 의 값을 구한다. 

경계(boundary)에서 의 최댓값과 최솟값을 구한다. 

③ ①, ②로부터 얻은 값 중 가장 큰 값이 최댓값, 가장 작은 값이 최솟값이다. 

 

사각형입니다.  정사각형 에서 함수 의 최댓값과 최솟값을 구하라. 

풀이.  먼저 의 내부에서 임계점을 계산한다. 

 

 

임계점 의 내부에 있으므로 최대, 최소로 가질 수 있는 후보에 포함시킨다. 

 

이제 사각형 의 각 경계(boundary)에 해당하는 부분에서 함수 의 최댓값과 최솟값을 구해보자. 경계에서는 가 일변수 함수로 변형되므로, 앞서 학습한 일변수 함수의 최대, 최소를 구하는 방법과 마찬가지로 (경계상에서의) 임계점과 구간의 양 끝점을 후보로 포함시킨다. 

 

 

따라서 경계상에서의 임계점 , 사각형 의 끝점에 해당하는 다음 점들 

 

                     , , ,  

 

을 후보에 포함시킨다. 이제 이 점들에서 각각 함숫값을 구하면 다음과 같다. 

 

 

따라서 최댓값은 이고, 최솟값은 이다. 이를 곡면과 함께 그림으로 나타내면 다음과 같다. 

 

 

 

(*) 5.3 경사 하강법(Gradient Descent Algorithm) 

 경사하강법은 머신러닝 및 딥러닝에서 사용되는 어떤 분석 모델에서 가중치의 최적해를 구하기 위해 사용되는 비용 (Cost)을 최소화 시키는 알고리즘이다. 경사 하강법은 제약조건이 없는 최적화 (unconstrained optimization) 문제에서 다변수 함수의 기울기(경사)를 구하여 기울기가 작은 쪽으로 계속 이동시켜서 극값(극솟값)에 이를 때까지 반복시키는 것이다. 

경사하강법(Gradient Descent Method)의 알고리즘은 다음과 같다. 

 

경사하강법 알고리즘   

[단계 1]  초기 근사해  , 허용오차(tolerance) ,  , 학습률(learningrate)  를 준다.  이라 한다. 

[단계 2]   를 계산한다. 만일  이면, 알고리즘을 멈춘다. 

[단계 3]   , 이라 두고 [단계 2]로 이동한다. 

 

[참조]  http://matrix.skku.ac.kr/math4ai/gradient_descent/  

         http://matrix.skku.ac.kr/math4ai-intro/W9/  

         http://matrix.skku.ac.kr/intro-math4ai/W9/  

 

양방향 경사하강법 Code(Gradient Descent Method Algorithm)  

http://matrix.skku.ac.kr/kofac/ 

 

 

 

(*) 5.4 라그랑주의 승수법(Method of Lagrange Multipliers) 

 이제 주어진 방정식 을 만족하는 , 에 대하여 함수 의 최댓값과 최솟값을 구하는 문제에 대하여 생각해보자. 이때 제약조건(constraint), 목적함수(objective function)라 한다. 이러한 형태의 문제를 해결하는 기본적인 방법으로는 라그랑주의 승수법(method of Lagrange multipliers)이 있다.  

 

예를 들어, 방정식 을 만족하는 에 대하여 함수  

 

                                

 

를 최대, 최소가 되게 하는 의 값과 함수 의 값을 구해보자. 먼저 방정식 으로 주어지는 곡선(빨간색)과 적당한 실수 값들에 대해 등위곡선 의 그래프(검은색, 회색)를 좌표평면에 같이 그려보자.  

 

 

    그림입니다.
원본 그림의 이름: CLP0000195c0011.bmp
원본 그림의 크기: 가로 625pixel, 세로 567pixel 

  위 그림을 통해 가 방정식 으로 주어진 곡선(빨간색) 위를 움직이는 동안 가 최대, 최소가 되도록 하는 점은 이 접할 때임을 쉽게 알 수 있다. 특히 등위곡선에 적혀있는 함숫값들을 통해 는 원점으로부터 바깥쪽으로 퍼져나가는 방향으로 증가하는 함수임을 알 수 있으므로, 가 최대(파란색)가 되는 점은 축 상에 두 군데 나타나고, 최소(분홍색)가 되는 점은 축 상에 두 군데 나타난다. 

 

  앞서 학습한 바와 같이 함수 에 대하여 그래디언트(gradient) 는 등위곡선 에 직교함을 이미 알고 있다. 따라서 을 만족하는 에 대하여 함수 를 최대, 최소가 되게 하는 점 에서는 이 접하게 되므로 평행, 즉 적당한 실수 가 존재하여 을 만족하게 된다. 이러한 라그랑주의 승수(Lagrange multiplier)라 한다. 

 

그림의 왼쪽 상단의 점에서와 같이 만일 에서 가 평행하지 않으면, 가 곡선 을 따라 움직일 때, 함수 가 현재보다 증가할 여지가 있다. 실제로 이 점에서 시계 방향으로 을 따라 움직이면 함수 의 값이 증가하게 된다. 

 

라그랑주의 승수법(method of Lagrange multipliers)은 다음과 같다. 

 

 참고   라그랑주의 승수법(method of Lagrange multipliers) 

① 다음 연립방정식을 만족하는 , , (람다, lambda)의 값을 모두 구한다. 

 

                   

 

①에서 구한 모든 점 에서 의 값을 계산한다. 이 값들 중 가장 큰 값이 의 최댓값이고, 가장 작은 값이 의 최솟값이다. 

 

이제 라그랑주의 승수법을 이용하여 앞서 예로 들었던 문제를 풀어보자. 먼저 다음 연립방정식을 만족하는  , (람다, lambda)의 값을 모두 구한다. 

 

                         

 

 

그러면 점 , , , 를 얻는다. 이제 이 점들에서 의 함숫값을 구하면 다음과 같다. 

 

 

따라서 최솟값은 (이때 ), 최댓값은 (이때 )가 된다.                    ■ 

 

사각형입니다.  라그랑주의 승수법을 이용하여 곡선 에서 함수 의 최댓값과 최솟값을 구하시오. 

풀이. 먼저 라 하고, 다음 연립방정식을 만족하는  , , 의 값을 모두 구한다. 

 

                          

 

 

그러면 점 , 를 얻는다. 이때 점 을 만족하지 않으므로 제외한다. 이제 이 점들에서 의 함숫값을 구하면 다음과 같다.  

 

 

따라서 최댓값 = sqrt(2) (이때 ),  

       최솟값 (이때 )가 된다.         ■ 

 

라그랑주의 승수법은 독립변수가 3개 이상인 다변수 함수의 경우 또는 제약조건이 두 개 이상인 경우에도 유사한 방법으로 적용된다.  

 

 참고   두 개의 방정식 를 만족하는 , , 에 대하여 

함수 최댓값과 최솟값을 구하는 문제는 라그랑주의 승수법(Lagrange Multiplier Method)으로 다음과 같이 해결한다. 여기서 아래의 라그랑주의 승수(Lagrange Multiplier)라 한다. 

 

① 다음 연립방정식을 만족하는 , , , , 의 값을 모두 구한다. 

 

                   

                        

 

② ①에서 구한 모든 점 에서 의 값을 계산한다. 이 값들 중 가장 큰 값이 의 최댓값이고, 가장 작은 값이 의 최솟값이다. 

 

사각형입니다.  평면 에서 의 최솟값을 구하라. 

풀이.  라 하고, 다음 연립방정식을 만족하는 , , , , 의 값을 모두 구한다. 

 

                      

                          

 

 

그러면 임계점 를 얻는다. 이 점에서 함수 의 극값을 구하면 다음과 같다.  

 

 

따라서 최솟값 (이때 , )가 된다.  ■ 

 

참고로 라그랑주의 승수법은 대칭행렬의 고윳값(eigenvalue)과 고유벡터(eigenvector)를 구하는 문제와 깊은 관련이 있다. 

 

 참고   를 대칭인 정사각행렬이라 하고, 방정식 을 만족하는 벡터 에 대하여 함수 최대화하는 문제를 생각해보자. 이를 위해, 먼저 이라 하고 라그랑주의 승수법을 적용하자. 그러면 를 최대가 되도록 하는 는 다음을 만족해야 한다. 여기서 라그랑주의 승수(Lagrange Multiplier)이다. 

 

                               

 

을 만족하는 고윳값(eigenvalue), 에 대응하는 고유벡터(eigenvector)라 한다. 그리고 의 최댓값 에서 의 고윳값 중 가장 큰 고윳값이 된다. 차 행렬 의 (실수상에서의) 개의 고윳값은 차 다항식 의 근을 구하면 얻을 수 있으며, 를 만족하는 고윳값(eigenvalue)은 (특성) 다항식 의 해집합을 구하면 얻어진다. 

(예)  A = matrix(QQ, 2, 2, [1, 2, -6, 8] ) 

      print ( A.charpoly() ) 

      print ( A.eigenvalues() ) 

 

[참고]  그래디언트(gradient)가 가 되는 이유 

https://www.cs.ubc.ca/~schmidtm/Courses/340-F16/linearQuadraticGradients.pdf 

 

◩ 열린 문제 2   

라그랑주의 승수법을 이용하여 방정식 을 만족하는 함수 최댓값과 최솟값그림입니다.
원본 그림의 이름: mem0000553c3551.png
원본 그림의 크기: 가로 488pixel, 세로 130pixel
사진 찍은 날짜: 2014년 08월 22일 오후 9:31 코드를 활용하여 구해보시오.  

 

 

(*) 5.5 오차역전파(Back Propagation) 

 인공 신경망은 신경계의 기본 단위인 뉴런을 모델화한 것으로 신호가 들어오는 입력층(Input layer)과 입력된 신호를 출력하게 하는 출력층(Output layer)이 있다. 입력층과 출력층 사이에 있는 것을 은닉층(Hidden layer)이라 한다. 입력층에서 신호를 받으면, 미리 부여된 가중치와 계산 후 주어진 활성화 함수를 거쳐 은닉층으로 전파되고, 같은 방식으로 그 다음 층으로 전파되어 출력층에서 해당하는 결과를 내보낸다. 

 

                 그림입니다.
원본 그림의 이름: mem0000730c0010.png
원본 그림의 크기: 가로 447pixel, 세로 272pixel 

                          [그림 출처]  https://blog.lgcns.com/1359 

 

 입력값과 정답을 알고 있는 데이터가 있다고 할 때 우리의 목적은 주어진 데이터로 정답 여부를 잘 가려내도록 신경망의 (각 node 에서의) 가중치를 찾는 것이다. 초기에는 임의로 가중치를 부여해놓고, 주어진 데이터로부터 신경망을 이용하여 얻은 예측값과 미리 알고 있는 정답 간의 오차를 줄이는 방향으로 (각 node 에서의) 가중치를 점차 갱신해 나간다. 이때 계층 간의 각각의 연결이 오차에 영향을 주는 정도에 비례해서 오차를 전달해준다. 대표적인 방법이 오차 역전파법(back propagation)이다. 각 계층에 전달된 오차를 바탕으로 가중치를 갱신하는 방법으로 경사하강법(gradient descent method)오차함수를 최소화하는 문제에 적용한다.  

 

 신경망에서 오차가 일어났다는 것은 결국, 입력신호가 입력층으로부터 은닉층을 거쳐 최종 출력층으로 전파될 때, 은닉층에서의 오차가 반영된 결과라고 볼 수 있으므로 계층 간의 각각의 연결이 오차에 영향을 주는 정도, 즉 가중치에 비례해서 오차를 역으로 전달해준다. 출력층에서 얻은 오차로부터 은닉층과 출력층 사이의 가중치를 다변수함수의 연쇄법칙을 적용해 갱신한다. 

 

[참조]    http://matrix.skku.ac.kr/math4ai-intro/W13/ 

         http://matrix.skku.ac.kr/intro-math4ai/W13  

 

그림입니다.
원본 그림의 이름: 숙제.jpg
원본 그림의 크기: 가로 225pixel, 세로 225pixel
사진 찍은 날짜: 2020년 08월 26일 오후 10:34
프로그램 이름 : Adobe Photoshop CS6 (Windows) 

Week 5 과제 

위의 열린 문제를 풀어본 후, 본인이 요약/실습/질문/답변한 내용을 Q&A(문의게시판)에 공유하시오. 


Copyright @ 2022 SKKU Matrix Lab. All rights reserved.
Made by Manager: Prof. Sang-Gu Lee, Dr. Jae Hwa Lee, and Dr. Jooyeon Yoo


*This research was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government(MSIT) (No. 2021R1F1A1046714)
and by Korea Initiative for fostering University of Research and Innovation Program of the National Research Foundation (NRF) funded by the Korean government (MSIT) (No.2020M3H1A1077095).