그림 및 예제들은 KMOOC 수업자료에서 가져왔습니다.


local minima, local minimum, global minima, global maximum



Satationary Point

단변수 함수 f(x)에서의 점 x0의 미분값이 0이라면 그 점을 stationary point, 정상점이라 정의합니다.

정상점이 주어졌을 때,

1. 2차 미분값이 양의 값을 가지면 국부 최소해가 됩니다.

2. 2차 미분값이 음의 값을 가지면 국부 최대해가 됩니다.

3. Hessian 행렬이 positive definite(convex)일 경우, 국소 최솟값이 됩니다.

4. Hessian 행렬이 negative definite(concave)일 경우, 국소 최댓값이 됩니다.

그림을 보면 Local minimum과 Local maximum을 정상점 및 2차미분값을 통해 알 수 있습니다. 

하지만 가운데 점은 최솟값인지 최댓값인지 구분하기가 어렵습니다. 

이를 안정점(saddle point)라고 부릅니다.

안정점이란, convex도 concave도 아닌 정상점을 뜻합니다.

여기서 알 수 있는 것은, 어떤 정상점에서 2차미분값이 0이거나 Hessian행렬이 영행렬일 경우에는 안장점 일수도 있고, 아닐 수도 있습니다.

(예시 확인)


binding & active

어떤 제약식이 있습니다. 그 제약식에 x0를 넣었더니 등식이 만족한다.(좌/우변이 같다)

이를 x0의 입장에서 제약식을 속박(binding)한다라고 표현합니다.

또한, 제약식의 입장에서는 x0의 지점에서 active(활성화) 또는 속박적이 된다고 표현하게 됩니다.


잠시! 우리가 convex와 concave를 따져가며 문제를 푸는 이유는 여러 가지가 있지만!

일반적으로 비선형 계획법은 두 가지 이유때문에 해를 구하기가 쉽지 않습니다.

1. convex, concave가 아닐경우

2. 실현가능한 해집합이 볼록집합이 아닐경우

하지만 위의 두 이유는 식의 특성만 잘 찾는다면 바로 풀리는 문제들입니다. 당연히 수학을 조금만 알아도 왜 우리가 convex와 concave가 

좋은지를 알 수 있습니다.


Lagrangian Function (Simple)

라그랑지안 승수법을 간단히만 설명하고 넘어가겠습니다. 다음 사진을 보시면 쉽게 이해가 가실 것입니다.

말 그대로 패널티를 주고싶다는 것입니다. 사실 panalty term의 b-g(x)는 제약식에 해당합니다.

하지만 우리가 가진 목적식이 이 제약식을 만족할 수 없다는 것이죠. 하지만 문제는 풀어야하고....

그 방법으로 제약식을 목적식으로 옮겨주는 것입니다. 

즉 제약선형계획법을 비제약선형계획법으로 변형하겠다는 것이지요.

목적식으로 옮겨서 제약을 없애는 대신에 패널티 값을 주게 됩니다. 

위의 예시는 최대화 문제이며 b-g(x)가 음의 값을 가지므로

패널티 변수인 람다가 0보다 크거나 같은 숫자를 가지게 되겟죠?

이때, 람다를 '라그랑지안 승수' 라고 부릅니다. 

라그랑지안 승수는 식변형에도 많이 사용하게 됩니다 ^^


KKT 조건(Karush-Kuhn-Tucker Conditions)

KKT에 대해서도 간단히 알아보고 넘어가도록 하겠습니다!


x0의 점이 KKT조건을 만족한다면

1. x0에 대한 라그랑지안 함수의 Gradient가 0이어야 합니다.

2. x0에서 라그랑지안 승수가 0이거나 제약식 b-g(x)가 0이어야 합니다. (쌍대이론에서의 상보여유정리와 비슷함)

3, 4. 실행 조건

그렇다면 KKT는 비선형계획법에서 어떤 의미를 가질까요??

어떠한 점 x0에서 KKT조건을 만족한다는 것은 x0이 최적해가 되기 위한 필수조건을 만족하였다는 의미입니다.

따라서, x0이 최적해가 되고싶다면 KKT조건을 전부 성립시켜야 한다는 말이죠.

그래서 KKT조건을 최적해의 필요조건이라고 합니다.

그 이유는 최적해가 아니지만 KKT를 만족하는 해가 있을수도 있기 떄문입니다. (필요충분조건이 안되는 이유)

하지만 convex거나 concave임이 이미 증명이 된 경우, 필요충분조건이 됩니다. 

어떤 x0의 지점에서 해를 찾았을 때, 여러분은 이미 그 해가 최소 local min 혹은 local max라는 것을 알기 떄문입니다. 

따라서 이때의 KKT조건은 여러분이 찾은 어떤 해의 최적성을 보장하는 충분조건이 되게 됩니다. (당연히 필수도 되겟죠?)




Reference


KMOOC


'# 기타 공부한 것들 > math' 카테고리의 다른 글

Measure theory  (1) 2018.07.26
Set theory  (0) 2018.07.26
Convexity(2)  (3) 2018.06.20
Convexity(1)  (4) 2018.06.20
Duality Thorey  (0) 2018.06.19

지난 글에서는 convex의 성질에 대해서 간단히 살펴보았습니다. 

또 마지막에 convex의 특징에 대해서 설명드렸습니다. 하지만 일일히 convex의 특징을 찾기엔 비용적으로 어려운 부분이 있으니

Hessian이라는 매트릭스를 이용하여 convex인지 아닌지를 더욱 쉽게 판별할 수 있다고 말씀드리면서 마쳤습니다.

그 방법을 알기전에 convex와 concave를 구분짓는 방법부터 살펴보겠습니다.

(기타 예제 및 그림은 KMOOC의 수업자료를 참조하였습니다.)


Convex , Concave?



미분에 대한 이해가 필요합니다. 자세한 설명은 거의 생략하였습니다.

위의 그림은 Hessian matrix, 2차편미분행렬입니다. 이 행렬은 미분을 통해 함수의 방향성을 나타낼 수 있다고 말할 수 있습니다. 

예를 들면 다음 그림과 같습니다.



오른쪽에 보이는 것은 아시는 것과 같이 등고선입니다. 또 여러분은 Gradient가 함수의 이동방향이라고 이해하실 수 있습니다. 

그렇다면 이 함수가 가지는 값이 결국 방향을 나타낼 수 있다고 말할 수 있다는 것입니다. 

이러한 방향성을 담고 있는 것이 Hessian matrix라고 이해하시면 쉽습니다.

먼저 용어부터 알고 가시겠습니다. 다변수 함수 f(x)를 가질 때,

f(x) is strictly convex over X

-> if its Hessian matrix is positive definite for any x in X

f(x) is convex over X

-> if its Hessian matrix is positive semi-definite for any x in X

f(x) is strictly concave over X

-> if its Hessian matrix is negative definite for any x in X

f(x) is concave over X

-> if its Hessian matrix is negative semi-definite for any x in X


구분은 다음 식의 조건에 따라 달라집니다.


이 식이 (h(x)라고 두겟습니다)

1. if h(x)>0, positive definite

2. if h(x) >= 0, positive semi-definite

3. if h(x) <0, negative definite

4. if h(x) <= 0, negative semi-definite 

를 만족하게끔 할 것입니다. 

(단일 변수의 경우, α 의 조건으로 결정하게 됩니다. H를 α 로 보시면 됩니다 ^.^)

다변수에서는 예를 들어보도록 하겠습니다. y = [y1, y2]라고 두었을 때,

첫번째 식과 두번째 식은 대입해보면 convex라는 사실을 알 수 있습니다. 하지만 3번쨰는 그렇지 않습니다.

convex와 concave를 결정할 때, 위의 방법과 같이 결정하게 됩니다. 하지만 이 방법은 문제가 있습니다.

일일히 수를 생각해줘야 하므로 비용이 많이 든다는 점입니다. 즉, 모든 y에 대해 전부 검사하기는 상당히 어려운 일입니다.

따라서 우리는 k-th principle minor 방법을 생각해 볼 수 있습니다. 


Principal Minor

정의는 이렇습니다.

요약하자면 k번째 소 주행렬이란, 매트릭스 H에서 (n-k)만큼의 행과 열을 제거하고 남는 수의 결정자라고 하네요.

예를 보겠습니다.

소 주행렬(principal minor)을 구하는 것은, (n-k)개의 행과 열을 삭제하는 것에서부터 시작됩니다. 

>> matrix H에서 대각행렬은 1st principal minor이 됩니다. (이 때 k 는 2)

>> 행렬 [[1,3], [7,9]](2X2 행렬) 는 2nd principal minor중 하나가 될 것입니다. (k = 1)

>> 전체 행렬은 3번째 소 주행렬이 됩니다.

다음은 선도 주행렬(leading principal minor)에 대해 살펴보겠습니다.

matrix H 가 n by n 이라는 것을 감안하면, 다음 그림과 같이 n개의 선도 주행렬을 가지게 됩니다.


바로 예를 보겠습니다.

행렬 

    에서 

>> Leading principal minors  : D1 = a, D2 = ac - b^2 (여기서 D는 determinant)

>> Principal minors               :   dev1 = a, dev1 = d, dev2 = ac-b^2

(여기서 선도 행렬과 소 주행렬의 차이를 볼 수 있습니다. 선도는 a만 고려하지만 소 주행렬은 a와 c 둘 다 고려하게 됩니다.)

이 됩니다. 거의 마지막에 다왔습니다. 


선도 및 소 주행렬식을 구하면 다음과 같은 조건으로 convex와 concave를 구별하게 됩니다.

(여기서 k는 위의 k와 같은 의미를 가집니다)

• 𝑯 is positive definite if and only if 𝐷 > 0 for all leading principal minors (선도 주행렬 판단)

 𝑯 is positive semi-definite if and only if 𝛥𝑘 ≥ 0 for all principal minors (소 주행렬 판단)

 𝑯 is negative definite if and only if  (−1) 𝑘𝐷 > 0 for all leading principal minors (선도 주행렬 판단)

 𝑯 is negative semi-definite if and only if (−1) 𝑘𝛥𝑘 ≥ 0 for all principal minors (소 주행렬 판단)

바로 예제를 살펴보고 글을 마치도록 하겠습니다. 

(다른 예제는 KMOOC의 수업자료를 참고하시길 바랍니다. 글 길이가 너무 길어져 올리지 않았습니다.)



이 예제에서 함수가 convex인 부분을 원한다면 선도행렬들이 양의 값이 되어야 하겠죠?? 

따라서 12x1 - 36 >=0 이 되는 x값부터가 convex한 부분이라고 할 수 있겠습니다.



이상으로 convex가 무엇인지 간단하게 살펴보았는데요. 

정말 쉽게 생각한다면 위의 선도 주행렬이니 소 주행렬이니 생각하지 마시고, 

convex하면 경사(기울기)를 이용한 문제를 풀기 쉽다. 

또한, 밥그릇 모양을 생각하시면 됩니다 :)


Reference


KMOOC

'# 기타 공부한 것들 > math' 카테고리의 다른 글

Set theory  (0) 2018.07.26
Local Minimum, Local Maximum  (0) 2018.06.21
Convexity(1)  (4) 2018.06.20
Duality Thorey  (0) 2018.06.19
RandomSampling과 hypothesis  (0) 2018.06.18

이 글은 convexity에 대해 정리한 글입니다.


함수가 convex하다. 여러분이 ML을 공부하다 보면 경사하강법을 많이 사용하시게 되는데요. 이때, 함수가 convex하다라고 표현이 가능하면 해의 최적값을 좀 더 빠르고 정확하게 찾을 수 있다는 것을 아실 것입니다.


실제로 유명한 GAN에서도 함수를 conex라고 가정하고 풀고 있죠. 하지만 실제로 convex한지는 증명되진 않았습니다.


여기서 나오는 convex에 대해 정리해보겟습니다.


Convex Set


다음과 같은 그림을 보시길 바랍니다.



집합 X에서 점과 점을 잡고 어떤 선을 그엇을 때, 그 선이 포함하는 점조차도 집합 X에 포함된다.


위의 말이 성립되면 그 집합은 convex하다 라고 표현할 수 있습니다. 


따라서, 위 그림에서는 첫번 째, 두번 째 그림만이 convex하다고 표현할 수 있겟네요.


Convex Set은 다음과 같은 성격을 가집니다.


정리하자면,' convex할 때 상수를 더하거나 곱해도 convex하고, 어떤 convex집합 X, Y가 만났을 때, 그 교집합도 convex하다' 라는 의미입니다.


좀 더 수식적으로 풀어보면 이렇습니다.




첫번째 그림은 두번째 그림으로 설명하겠습니다.


먼저, 빨간선을 할선(secant line)이라고 부릅니다.

 어떤 함수 f(x)에서 점 (x1, x2) 를 선택하여 할선을 그렷을 때, 실제 함수 f가 할선의 선분아래에 있으며, 임의로 다른 점 (x1, x2)을 선택했을 때도 선분 아래에 있다면 convex정의가 성립됩니다.


convex와 strictly convex의 차이는 등호(=)의 차이입니다. 

예를 들어, 두번 째 그림의 경우, 파란색 점 (x1, x2)를 선분으로 그린다고 생각해 봅시다. 그럴경우엔 실제 함수 f와 완벽히 일치하게 됩니다. 이때, convex의 정의인 <=는 성립하지만, <는 성립하지 않게됩니다. 완벽하게 동일하니까요. 그래서 밑 함수는 convex이지만 strictly convex는 아닙니다.



위 그림에서 Linear함수는 완벽히 convex하다고 할 수 있습니다.


다음은 convex의 몇 가지 특징입니다.



함수 -f(x)가 convex하다면 실제함수 f(x)는 concave(오목함수)하다고 표현합니다.


두번째는, 실제함수 f가 convex할 경우, αf(x) 또한 convex이며 α >= 0입니다.




1.  convex하다면 접선 위에 있어야 한다는 것입니다. 다변수의 경우 빨간색으로 표시된 변수처럼 기울기로 표시하면 되겠습니다.

2. 실제 함수 f(x)의 2차미분값이 0보다 크거나 같아야 convex하다는 것입니다. 이를 positive semi-definite라고 표현합니다.(뒤에서 설명)


어떤 Model에서 함수가 convex하다는 것을 증명하는 것은 정말 중요합니다. 그만큼 계산이 쉬워지고 해도 찾기가 상당히 쉬워집니다. 하지만 실제로 convex를 찾으려면 실험도 많이 해봐야하고, 값도 일일히 찾아봐야하는데는 비용이 너무 많이 들겁니다. 

그래서 이용하는 것이 Hessian에서 2차미분 값을 이용하는 방법이 있습니다. -> 다음 글에서 이어나가도록 하겟습니다.



감사합니다


Reference


KMOOC

'# 기타 공부한 것들 > math' 카테고리의 다른 글

Set theory  (0) 2018.07.26
Local Minimum, Local Maximum  (0) 2018.06.21
Convexity(2)  (3) 2018.06.20
Duality Thorey  (0) 2018.06.19
RandomSampling과 hypothesis  (0) 2018.06.18

이 글은 Duality Problem에 대해 간단히 정리한 글입니다.


Duality Theroy


우리는 선형계획에서 optimum(최적값)을 찾기를 원합니다. 또, 만약 최적값을 찾게 되었다면 그에 대한 검증이 필요합니다.


어떤 최적값에 대한 검증에는 하한, 상한으로 검증하게 됩니다. 이 방법이 Dual, 쌍대 문제입니다.


예를 들어서, 밑과 같은 선형문제가 있다고 생각해봅시다.






이 문제에서 각 등식에 y1, y2와 같은 변수를 곱해서 목적식과 비슷하게 만들어주면 간단히 상한을 구할 수 있습니다.(해보시길..)


쌍대 문제로 바꾸게 되면 다음 그림처럼 바뀌게 됩니다.


왜 이런 그림이 나오는지는 다음 그림으로 설명되어질 수 있습니다.


상한을 구하는게 목적인 것을 생각해보면 제약식이 왜 저런 형태를 띄고 있는지를 알 수 있으며, 목적식 또한 그 의미를 알 수 있을 것입니다.


Primal(원문제) 가 최대식이라면 Dual 은 최소로 바뀌게 됩니다. 반대로 Primal이 최소식이라면 Dual은 최대로 바뀌게됩니다.


또한, 하한을 구하기위해 몇 번의 곱셈을 하다보면 Dual의 Dual은 Primal이라는 것을 알 수 있습니다.


즉, 위의 그림과 같이 쌍대문제로 전환하여 W를 구하게 되면 원문제 Z의 상한이 된다는 의미입니다.


Duality Problems : Primal <-> Dual


쌍대 문제에서는 3가지 속성이 존재합니다.


1. 약쌍대성

- > 만약 최대화 문제일 때, 쌍대문제를 통해 값을 도출하였다면 이 값은 원문제의 최적해에 대해 상한이 됩니다.


2. 강쌍대성

-> 쌍대 문제에서의 최소 상한값이 원 문제에서의 optimum값과 같다는 정의입니다.


3. 상보여유정리



상보여유정리는 쉽게 말씀드리자면 다음과 같습니다. 만약 쌍대변수의 값 (그림에서 y1, y2, y3, y4를 의미)이 0이 아닌 경우, 원 문제의 제약식은 등식을 만족해야 합니다.


-> 그림에서 y1, y2가 0이 아닌 양수임을 볼 수 있습니다. 이 의미는 원문제에서 1, 2번째 제약식이 등식을 만족한다는 뜻입니다.(직접 x1, x2의 값을 넣어보십시오). 또한 3, 4번째는 상대변수의 값이 0이 되므로 원문제에서 3, 4번째 제약식은 등식이 성립하지 않습니다.


감사합니다.





Reference


KMOOC 


'# 기타 공부한 것들 > math' 카테고리의 다른 글

Set theory  (0) 2018.07.26
Local Minimum, Local Maximum  (0) 2018.06.21
Convexity(2)  (3) 2018.06.20
Convexity(1)  (4) 2018.06.20
RandomSampling과 hypothesis  (0) 2018.06.18

분야에 상관없이, 항상 데이터셋이 중요하고 그 안에 있는 여러 데이터의 분포가 중요하다고 생각합니다.


이 글은 통계의 아주 기초인 Random Sampling과 가설검정에 대해 간단히 정리한 글입니다.





Random Sampling


우리가 배우는 통계나 확률에서는 간단한 예시를 들어 설명하기 때문에 분포라던가 평균, 분산에 대해서 알기 쉽습니다. 하지만 현실에선 구하기도 어려울 뿐더러 알 방법이 거의 없죠. 그래서 분포를 추정하기 위해 하는 것이 Sampling 기법입니다. 

물론 Sampling을 통해 실제 분포와 내가 아는 분포를 100%는 아니지만 어느정도 가깝게 근사시키는 방법은 여러가지가 있습니다. (글 외의 내용)



예를 들어봅시다. 우리가 모르는 어떤 모집단이 있다고 가정하겠습니다.


우리는 전체 모집단의 '무언가'(보통 평균 또는 분산) 를 알고 싶습니다. 하지만 전체 모집단에 대해서 아는 것이 없기 때문에 Sampling을 진행하게 됩니다. 이를 무작위 표본이라고 정의합니다.


무작위 표본은 두 가지 특성을 가집니다.


1. 동일한 분포인가? Yes 

-> 우리가 뽑은 샘플-1 과 샘플-2는 구별될 수 없기 때문입니다.

예를 들어서, 성인 100명의 키를 측정한다고 했을때, 샘플을 뽑아서 측정을 해보면 거의 차이가 없을 것입니다.


2. 독립적인가? No 

-> 각 샘플들은 독립적이지 않습니다. 왜냐하면 모집단에 영향을 끼칠 수 있기 때문이죠. 하지만 무작위 표본의 특성은 독립적이어야 합니다. 이는 모집단이 매우 커졋을 때 해결할 수 있습니다.


정리하자면, Random Sampling은 독립적이고 동일한 분포를 갖는 동일한 모집단에서 선택된 표본입니다.


설명한 것은 가장 기초인 Random Sampling이고, machine learning에 자주 사용되는 Gibbs Sampling, MH 알고리즘 등은 추후에 쓰도록 하겠습니다.





Hypothesis


어떠한 방법을 통해 모집단의 평균, 분산이 아닌 표본의 평균과 분산을 알게 되었다면, 가설을 통해서 이를 검정할 수 있어야합니다. 


가설은 두 가지로 정의됩니다.


1. 귀무가설 H0

2. 대립가설 또는 연구가설 H1


우리가 알고싶은 어떤 가설에 대해 연관있는 무작위 표본을 선택하여야 합니다. 무작위 표본을 선택하라는 의미는 반복적으로 실험하라는 의미와 동일합니다.


예를 들어, 표본 평균을 검정하게 된다면 밑과 같은 식을 사용하게 됩니다.



이 식은 표본크기와 분산에 영향을 받게 됩니다. 또한, 이를 신뢰구간이라 부릅니다.


쉽게 설명하자면, 표본을 100개 뽑앗을 때, 이러한 표본들은 일정한 구간을 가지게 될 것이고 평균을 가지게 될 것입니다.. 또한, 우리가 설정한 유의수준이 95%라고 가정하였을 때, 표본 평균이 100개 중 95개가 내가 정한 일정한 구간안에 들어와 있음을 의미합니다.


신뢰구간이 표본크기와 분산에 영향을 받는 이유입니다.


표본크기가 클수록, 분산이 작을수록 내가 설정한 신뢰구간에 '무언가'가 많이 분포되어 있어 귀무가설이 힘을 얻고, 그렇지 않다면 연구가설이 힘을 얻는 것이라고 생각해볼 수 있습니다.



-> 파란색 구간은 우리가 설정한 신뢰구간, 막대바는 표본의 신뢰구간(중간은 평균이라고 생각하면 될 것 같네요)



이 신뢰구간은 표본의 크기가 크면 클수록 정규분포를 따르게 됩니다. 예를 들어, 95%의 유의수준에서는 k값이 1.96이 되죠.

표본의 크기가 작으면서 normal하지 않을때는 t분포를 따르게 됩니다. 이를 t-statistics라고 부를 수 있습니다. 다음 그림과 같이 n-1의 자유도를 가집니다.




검정을 하고 나면 주로 p-value를 관찰하여 판단하게 됩니다. 


p-value : 우리가 설정한 귀무가설에 반하여 극단적인 값이 나올 확률


예를 들어 보겠습니다.


유의수준 95%에서


H0 : A가 맞다.

H1 : A가 아니다.

라고 가설을 설정한 뒤, 검정을 시행할 것입니다.


첫번 째 경우는 p-value가 0.2가 나왔을 경우입니다.

 p-value가 0.2라는 뜻은 우리의 모집단에서 A가 아닌 것이 나올 확률이 20%라는 의미로 이해하면 쉽습니다. 따라서, 유의수준 95%에 비해 극단적인 확률값이 아니므로 귀무가설을 기각할 수 없습니다. (귀무가설 자체가 연구가설을 포함하고 있는 가설인 셈이죠)


두번 째 경우는 p-value가 0.001이 나왔을 경우입니다.

p-value값이 0.001이 라는 것은 우리의 모집단에서 A가 나올 확률이 0.1%라는 것입니다. 하지만 test결과, 모집단에서 A가 나왓기 때문에 우리의 모집단이 가지고 있는 귀무가설이 이를 설명할 수 없다는 것이죠. 따라서, 귀무가설을 기각하고 새로운 가설을 설정해야 합니다.

정리하자면,

이는 유의수준 95%에 비해 상당히 극단적인 값이 나왔으므로, 우리의 모집단에서 설정한 귀무가설이 연구가설을 포함하고 있지 않다고 설명할 수 있습니다. 따라서 귀무가설을 기각할 수 있습니다.


(쉽게 설명하려고 한 것이 오히려 더 헷갈리게 하는 것일 수 있습니다. 다른 블로그도 참조하시면 좋을 것 같습니다^^. )



이상으로 기초중의 기초인 Random Sampling과 가설에 대해 설명해 보았습니다. 추가로 1종과오와 2종과오를 간단히 설명하면서 글을 마치겟습니다.




1종 과오 & 2종 과오


1종 과오 : 귀무가설이 참이지만 이를 기각한 것.

2종 과오 : 귀무가설이 참이 아니지만 이를 기각하지 못한 것.


보통 1종과오를 생산자 과오, 2종과오를 소비자 과오라고 부릅니다. 예를 들면,


양품인데 불량이라고 판정을 함 -> 1종 과오 : 불량으로 인식하여 양품 하나를 버리게 되므로 생산자에게 손해가 가는 것이죠.

불량인데 양품이라고 파정을 함 -> 2종 과오 : 불량품이 양품으로 판정되기 때문에 소비자에게 피해가 가게 됩니다.




감사합니다.

'# 기타 공부한 것들 > math' 카테고리의 다른 글

Set theory  (0) 2018.07.26
Local Minimum, Local Maximum  (0) 2018.06.21
Convexity(2)  (3) 2018.06.20
Convexity(1)  (4) 2018.06.20
Duality Thorey  (0) 2018.06.19