5주차. 이변수 함수의 극대 극소, 최대 최소
5.1 이변수 함수의 극대, 극소(Local Maximum, Local Minimum)
(독립) 변수가 두 개인 함수를 이변수함수(function of two variables)라 하고, 가 이변수함수 의 정의역 내의 한 점일 때,
① 의 적당한 근방의 모든 에 대하여 이면, 는 에서 극대(local maximum)가 된다고 하고, 를 극댓값(local maximum value)이라 한다.
② 의 적당한 근방의 모든 에 대하여 이면, 는 에서 극소(local minimum)가 된다고 하고, 를 극솟값(local minimum value)이라 한다.
만일 의 정의역 안의 모든 에 대하여 위의 부등식을 만족하면 는 에서 최대(absolute maximum) 또는 최소(absolute minimum)가 된다고 한다.
위의 그림을 보면, 극솟값들 중에 가장 작은 값이 최솟값이 되고, 극댓값들 중에 가장 큰 값이 최댓값이 된다. 따라서 함수의 최대, 최소를 구하기 위해서는 먼저 극소 또는 극대를 가질 만한 후보들을 찾을 수 있어야 한다. 다음 정리는 이에 대한 힌트를 제시해준다.
따라서 가 극대 또는 극소를 가질만한 점에서는 (존재하는) 1계 편도함수의 값이 모두 0이어야 한다. 이와 같이 를 만족하는 점 를 의 임계점(critical point)이라 한다.
함수 의 임계점(critical points)을 구하여라.
풀이. 이므로 이 의 유일한 임계점이다.
그러나, 임계점(critical points)이라고 해서 반드시 극대 또는 극소를 갖는 것은 아니다. 예를 들어, 함수 의 경우, 이므로 이 함수 의 유일한 임계점이다. 그러나 에서의 함숫값 은 극댓값도 극솟값도 될 수 없다.
왜냐하면 위의 그림과 같이 평면상에 의 임의의 근방(노란색)에서 함수 는 양의 값을 가질 수도, 음의 값을 가질 수도 있기 때문이다. 실제로 일 때, 이므로 축을 따라서 함수 (빨간색)가 에서 극소가 된다. 마찬가지로 일 때, 이므로 축을 따라서 함수 (녹색)가 에서 극대가 된다.
이와 같이 임계점( )이지만, 극대도 극소도 될 수 없는 를 의 안장점(saddle point)이라고 한다.
2계 편도함수를 이용하면 임계점에서 이변수함수의 극대, 극소, 안장점 여부를 판단할 수 있다. 이는 일변수 함수의 극대, 극소에 대한 2계 도함수 판정법과 유사하다.
함수 의 극댓값, 극솟값 또는 안장점을 구하라.
풀이. 이므로 임계점은 이다.
함수 의 그래프를 그려보면 다음과 같다.
이제 에서 의 헤시안(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)이라고 한다. 예를 들어, 행렬의 선행 주 소행렬식은 다음과 같다.
정사각행렬 에 대하여 이 아닌 벡터 와 적당한 스칼라 가 존재하여 를 만족하면 를 의 고윳값(eigenvalue)이라 하고, 를 에 대응하는 의 고유벡터(eigenvector)라고 한다.
이제 변수 함수의 임계점에서의 극대, 극소, 안장점 여부를 (임계점과 Hessian 행렬, 그리고 각 임계점에서의 Hessian 행렬의 고윳값들만 코드로 찾으면) 다음과 같이 판단할 수 있다.
다른 교재를 참고하여 다양한 이변수함수 (또는 3변수함수)의 극댓값, 극솟값, 또는 안장점을 (임계점과 Hessian 행렬 H, 그리고 각 임계점에서의 Hessian 행렬의 고윳값을 찾는 H.eigenvalues() 명령어를 이용하여) 구하여라.
5.2 최댓값과 최솟값(Absolute Maximum and Absolute Minimum)
일변수 함수 에 관한 최대, 최소 정리(Extreme Value Theorem)는 폐구간 에서 가 연속이면, 는 에서 최댓값과 최솟값을 갖는다는 것을 말한다. 따라서 아래와 같이 임계점뿐만 아니라 양 끝점 , 에서 의 값을 계산하여 비교함으로써 최댓값과 최솟값을 구할 수 있다.
유사한 방법으로 이변수함수에 대해서도 다음이 성립한다.
여기서 폐집합(closed set)이라는 것은 아래 왼쪽 그림과 같이 내부와 모든 경계점을 포함하는 집합을 말한다. 그러나 오른쪽 그림은 경계의 일부 또는 전체를 포함하지 않으므로 폐집합이 아니다.
폐집합 (closed set) 폐집합이 아님
그리고 에서 유계집합(bounded set)은 아래 왼쪽 그림과 같이 무한히 뻗어나가지 않고, 어떤 원판(disk)의 내부에 포함되는 집합을 말한다.
유계집합 유계가 아닌 집합
정사각형 에서 함수 의 최댓값과 최솟값을 구하라.
풀이. 먼저 의 내부에서 임계점을 계산한다.
임계점 은 의 내부에 있으므로 최대, 최소로 가질 수 있는 후보에 포함시킨다.
이제 사각형 의 각 경계(boundary)에 해당하는 부분에서 함수 의 최댓값과 최솟값을 구해보자. 경계에서는 가 일변수 함수로 변형되므로, 앞서 학습한 일변수 함수의 최대, 최소를 구하는 방법과 마찬가지로 (경계상에서의) 임계점과 구간의 양 끝점을 후보로 포함시킨다.
따라서 경계상에서의 임계점 , 과 사각형 의 끝점에 해당하는 다음 점들
, , ,
을 후보에 포함시킨다. 이제 이 점들에서 각각 함숫값을 구하면 다음과 같다.
따라서 최댓값은 이고, 최솟값은 이다. 이를 곡면과 함께 그림으로 나타내면 다음과 같다.
(*) 5.3 경사 하강법(Gradient Descent Algorithm)
경사하강법은 머신러닝 및 딥러닝에서 사용되는 어떤 분석 모델에서 가중치의 최적해를 구하기 위해 사용되는 비용 (Cost)을 최소화 시키는 알고리즘이다. 경사 하강법은 제약조건이 없는 최적화 (unconstrained optimization) 문제에서 다변수 함수의 기울기(경사)를 구하여 기울기가 작은 쪽으로 계속 이동시켜서 극값(극솟값)에 이를 때까지 반복시키는 것이다.
경사하강법(Gradient Descent Method)의 알고리즘은 다음과 같다.
[참조] 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)이 있다.
예를 들어, 방정식 을 만족하는 에 대하여 함수
를 최대, 최소가 되게 하는 의 값과 함수 의 값을 구해보자. 먼저 방정식 으로 주어지는 곡선(빨간색)과 적당한 실수 값들에 대해 등위곡선 의 그래프(검은색, 회색)를 좌표평면에 같이 그려보자.
위 그림을 통해 가 방정식 으로 주어진 곡선(빨간색) 위를 움직이는 동안 가 최대, 최소가 되도록 하는 점은 와 이 접할 때임을 쉽게 알 수 있다. 특히 등위곡선에 적혀있는 함숫값들을 통해 는 원점으로부터 바깥쪽으로 퍼져나가는 방향으로 증가하는 함수임을 알 수 있으므로, 가 최대(파란색)가 되는 점은 축 상에 두 군데 나타나고, 최소(분홍색)가 되는 점은 축 상에 두 군데 나타난다.
앞서 학습한 바와 같이 함수 에 대하여 의 그래디언트(gradient) 는 등위곡선 에 직교함을 이미 알고 있다. 따라서 을 만족하는 에 대하여 함수 를 최대, 최소가 되게 하는 점 에서는 와 이 접하게 되므로 와 는 평행, 즉 적당한 실수 가 존재하여 을 만족하게 된다. 이러한 를 라그랑주의 승수(Lagrange multiplier)라 한다.
그림의 왼쪽 상단의 점에서와 같이 만일 에서 와 가 평행하지 않으면, 가 곡선 을 따라 움직일 때, 함수 가 현재보다 증가할 여지가 있다. 실제로 이 점에서 시계 방향으로 을 따라 움직이면 함수 의 값이 증가하게 된다.
라그랑주의 승수법(method of Lagrange multipliers)은 다음과 같다.
이제 라그랑주의 승수법을 이용하여 앞서 예로 들었던 문제를 풀어보자. 먼저 다음 연립방정식을 만족하는 , 와 (람다, lambda)의 값을 모두 구한다.
,
그러면 점 , , , 를 얻는다. 이제 이 점들에서 의 함숫값을 구하면 다음과 같다.
따라서 최솟값은 (이때 ), 최댓값은 (이때 )가 된다. ■
라그랑주의 승수법을 이용하여 곡선 에서 함수 의 최댓값과 최솟값을 구하시오.
풀이. 먼저 라 하고, 다음 연립방정식을 만족하는 , , 의 값을 모두 구한다.
,
그러면 점 , 를 얻는다. 이때 점 은 을 만족하지 않으므로 제외한다. 이제 이 점들에서 의 함숫값을 구하면 다음과 같다.
따라서 최댓값은 = sqrt(2) (이때 ),
최솟값은 (이때 )가 된다. ■
라그랑주의 승수법은 독립변수가 3개 이상인 다변수 함수의 경우 또는 제약조건이 두 개 이상인 경우에도 유사한 방법으로 적용된다.
평면 과 에서 의 최솟값을 구하라.
풀이. 와 라 하고, 다음 연립방정식을 만족하는 , , , , 의 값을 모두 구한다.
,
그러면 임계점 를 얻는다. 이 점에서 함수 의 극값을 구하면 다음과 같다.
따라서 의 최솟값은 (이때 , )가 된다. ■
참고로 라그랑주의 승수법은 대칭행렬의 고윳값(eigenvalue)과 고유벡터(eigenvector)를 구하는 문제와 깊은 관련이 있다.
[참고] 의 그래디언트(gradient)가 가 되는 이유
https://www.cs.ubc.ca/~schmidtm/Courses/340-F16/linearQuadraticGradients.pdf
라그랑주의 승수법을 이용하여 방정식 을 만족하는 함수 의 최댓값과 최솟값을 코드를 활용하여 구해보시오.
(*) 5.5 오차역전파(Back Propagation)
인공 신경망은 신경계의 기본 단위인 뉴런을 모델화한 것으로 신호가 들어오는 입력층(Input layer)과 입력된 신호를 출력하게 하는 출력층(Output layer)이 있다. 입력층과 출력층 사이에 있는 것을 은닉층(Hidden layer)이라 한다. 입력층에서 신호를 받으면, 미리 부여된 가중치와 계산 후 주어진 활성화 함수를 거쳐 은닉층으로 전파되고, 같은 방식으로 그 다음 층으로 전파되어 출력층에서 해당하는 결과를 내보낸다.
[그림 출처] 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
위의 열린 문제를 풀어본 후, 본인이 요약/실습/질문/답변한 내용을 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).