Adore__

[인공지능을 위한 선형대수] Onto / One-to-one func 본문

Basis/Linear Algebra

[인공지능을 위한 선형대수] Onto / One-to-one func

3_GreenHeart 2023. 4. 19. 15:35
728x90

Source : [BoostCourse '인공지능을 위한 선형대수' - 주재걸 교수님]

 

 

 

 

▪️Onto

 

전사 함수는 치역과 공역이 같은 함수를 말한다. 즉, y의 원소들에서 무작위로 한개를 뽑아도, 반드시 이를 가리키는 x가 존재하는 함수이다.

최소한의 필요조건 : X정의역 원소의 개수 >= Y 공역의 원소의 개수

 

하지만 반대로 X의 원소의 개수 < Y 원소의 개수인 경우 Neural Network에서 찾을 수 있다. (전사함수가 아님)

GAN, encoder -> decoder과 같은 모델 구조를 생각해보면 작은 차원에서 기하급수적인 넓은 차원으로 변환하는 과정이 많다.

이 또한 '함수'의 개념이므로, input으로부터 만들어지는 정보 (치역)가 공역의 모든 영역을 설명할 수 없다.

 

예를들어 얼굴 사진이 있고 우리가 픽셀 하나하나의 값을 선형변환을 거쳐서 표현한다고 해도, 입체적인 모든 얼굴의 공간을 커버할 수 없다는 것이다. 하지만 우리의 목적은 얼굴의 일부분 중, 가장 '얼굴'을 잘 표현하는 그 subspace를 찾아내서 학습하는 것이다.

볼을 보면 한픽셀을 기준으로 주변의 이미지 색깔은 모두 동일할 것이므로 이러한 subspace은 적절한 공간이 아니다.

반면 입술 부분을 보면, 얼굴에서 입술을 유일하게 빨강색을 갖고 있으므로, '얼굴'이라고 인식할 수 있는 좋은 subspace가 된다.

이처럼 전체의 공간을 표현하지 못해도, 그 부분 공간 중에 가장 전체를 잘 표현하는 곳을 찾는 것이 목적이다.

 

하지만 우리의 얼굴은 반듯한 평면이 아니다. 여러 곡선이 존재하기때문에, 이러한 구불구불한 평면을 학습하는 것이 중요하다.

만약 linear 함수를 거치면 평면을 표현하게 되겠지만, non-linear 함수를 거치면 곡면으로 표현할 수 있다.

따라서 linear과 non-linear를 적절하게 섞는 과정이 이 구불구불한 곡선과 평면을 잘 배우는 과정이라고 할 수 있다.

이를 수학적인 용어로 'manifold'라고 하며, 실제 데이터가 존재할 법한 subspace라고 이해하면 된다.

입력의 dimension 보다 출력 dimension 이 큰 것이 decoder

 

 

 

 

 

▪️One-to-one

 

전사 함수와 달리, 치역이 정의역과 완전히 똑같을 필요가 없다.

일대일 함수는 x가 단 하나의 y로만 향하는 경우이다.

 

하지만 마찬가지로 Neural Network에서는 이와 반대되는 구조가 있다. (일대일 함수가 아님)

만약 R3 -> R2처럼 x의 차원 > y의 차원인 경우는, 절대 일대일 함수가 될 수 없다.

이 경우 x의 벡터들은 반드시 선형 종속이다.

한 점 쏠 수 있는 여러개의 화살표가 많다면 일대일 함수 아님

 

 

어떤 치역의 원소를 골랐을 때, 여러개의 x 원소가 가능하면 일대일 함수가 아니다.

아래 그림에서 식 (A*x = b꼴)을 만족하는 x1, x2, x3 ( 2차원 상의 [5,7]벡터에 화살표를 쏠 수 있는 벡터 )가 여러개라면 일대일 함수가 아니다.

여기서 [5,7]이 치역이라는 것은, 식을 만족하는 x 벡터가 최소한 하나 이상은 있다는 것이다.

이것의 조건으로서 b는 행렬 A의 열벡터들의 span영역에 포함되어 있어야 한다.

 

3차원에서 2차원으로 변환하는 경우

 

다음으로 하나 이상의 해가 존재하냐, 아니면 무수하냐를 확인하기 위해서는 A의 열벡터들이 선형 독립인지, 선형 종속인지 확인해야 한다.

이를 이어나가서 일대일 함수와 연결지어 보면, A열벡터들이 선형 종속일 경우 하나의 y값에 대해 여러개 의 x가 존재할 수 있으므로 일대일 함수가 아니다.

일대일 함수다? = A의 열벡터들이 선형 독립이다. 차원이 3->2로 변환된다면 일대일 함수가 아니다.

 

3개의 입력노드가 두번째 node 2개에 mapping 되는 화살표가 여러개 있다. 또한 최종적으로 이 3가지 node는 하나의 node로 출력된다. 따라서 위 그래프는 일대일 함수가 아니다.

입력에서 주어진 여러 차이들이 존재하지만, feature을 추출하는 nn을 거치게 되면 마지막 node 하나로 종결된다.

이는 수명을 예측하기 위해서 의도적으로 입력값에서 유용한 정보만 남기고, 자잘자잘한 차이점들을 없애주는 과정이라고 생각하면 된다.

정보 손실이라고 할 수 있지만, 의도적으로 불필요한 정보를 없앤 것이다.

 

+ 위 그래프처럼 3 -> 2 -> 1이어도 항상 'Onto'가 된다고 말할 수 없다.

Comments