-
전사함수와 일대일함수(인공지능을 위한 선형대수, 20210511)선형대수 2021. 5. 11. 14:20
학습목표
- 전사함수와 일대일 함수를 이해한다.
- 실제로 Neural networks에서 어떻게 응용될 수 있는지 확인한다.
Definition을 해석해보면
$T : \mathbb{R}^n \to \mathbb{R}^m $으로 매핑되는 변환 $T$에 대해서, onto라고 불리기 위해서는 각각의 $\mathbb{R}^n$(치역)에 속하는 $b$의 값이 $\mathbb{R}^m$에 포함되는 정의역의 image(상, 혹은 output)에 적어도 하나는 포함되어야 한다. $ \mathbb{R}^n $의 원소는 $ \mathbb{R}^m $의 정의역의 결과값의 원소와 최소한 하나는 대응되어야 한다는 말이다. 공역 = 치역이 되는 경우가 ONTO인 것이다.
예를 들어, 3차원 벡터를 2차원 벡터로 보내는 어떤 변환 $T : \mathbb{R}^3 \to \mathbb{R}^ 2$을 생각할 때, $\mathbb{R}^2$가 되는 모든 집합은 공역이다. 이 중에서 실제로 변환되는 값의 집합인 치역은 공역의 부분집합이며, 치역이 가장 커질 수 있을 경우는 공역과 똑같아지는 경우이다. 이렇게 똑같아지는 경우가 ONTO이다. 아래의 그림으로 부연설명하자면, B의 전체집합은 공역이며, A와 대응되는 $ [3, 5, 7, 9] $는 치역이다. 이런 경우는 치역이 공역과 같지않으므로 ONTO라고 할 수 없다. 그러므로 공역의 원소개수보다 정의역의 원소 개수가 많아야 ONTO가 될 가능성이 있다고 할 수 있다.
그렇다면 정의역과 공역의 dimension에 대해서 생각해보자. 2가지 경우를 생각해볼텐데,
1. $T : \mathbb{R}^3 \to \mathbb{R}^2$
2. $T : \mathbb{R}^2 \to \mathbb{R}^3$
이 두 가지 경우 중에 하나는 절대 ONTO가 될 수 없는 경우가 있다. 결론부터 말하자면, 1번은 가능성이 있지만 2번은 절대 ONTO가 될 수 없다. 2번이 왜 되지 않는지 간단하게 수학적으로 알아보자. 2번의 경우를 간단하게 표현하여 2차원을 3차원으로 변환하는 T가 있고 아래와 같은 두 개의 식을 만들 수 있다고 가정하자.
$T(\begin{bmatrix} 1 \\ 0 \end{bmatrix}) = \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix}, $ $T(\begin{bmatrix} 0 \\ 1 \end{bmatrix}) = \begin{bmatrix} 4 \\ 5 \\ 6 \end{bmatrix}$
아래의 선형변환의 조건에 따라서
$ \mathbb{R}^2$의 해는 그 결과값인 [1,2,3], [4,5,6]으로 표현할 수 있다. 바꿔 말하면 $\mathbb{R}^2$의 Span은 3차원 [1,2,3], [4,5,6]으로 표현할 수 있다라는 말이 되며, 이 말은 [1,2,3], [4,5,6]의 Span은 $\mathbb{R}^2$의 Span과 같다는 말이 된다. 그렇기 때문에
$T : \mathbb{R}^2 \to \mathbb{R}^3$의 경우에는 공역이 3차원인데 반해 치역(이 경우에는 Span이 치역에 해당)이 2차원이므로 ONTO(전사)가 될 수 없다.
이제 Nueral Net에서 한 번 생각해보자. 아래의 사진의 경우 입력노드는 2개 출력노드는 3개이다. 이런 형태를 띄는 것이 인코더, 디코더, GAN등이 있다. 오토인코더에서 노드 개수(벡터의 dimension)를 줄였다가(인코딩) 다시 늘리는 과정(디코딩) 중 아래의 사진은 디코더의 구조를 간단히 나타낸 것이다. 디코딩 과정에서는 적은 개수의 노드를 Input으로 받아서 노드의 개수를 늘리게 되는데, 이 말은 저차원의 벡터를 고차원의 벡터로 선형변환한다는 말과 같다. 그렇다면 2개의 Input에서 나오는 치역은 공역을 뒤덮을 수가 없다. 즉 아래의 변환을 수행하는 T는 전사함수가 될수가 없다.
얼굴사진을 디코딩하는 것을 예로 들어보자. 볼에 빨간색, 초록색, 파란색 등이 오는 이미지는 존재하지 않는다. 무의미한 픽셀들을 제외하고 유의미한 얼굴 이미지만 존재할 수 있는 subspace를 잘 배우는 것이 학습의 과정이다라고 한다.
이번엔 one-to-one에 대해서 알아보자. one-to-one은 ONTO일 필요가 없다. one-to-one은 아래의 그림처럼 ONTO가 아니어도 되지만, 치역과 매핑이 된 정의역이 딱 하나씩만 있어야 한다는 것이다. 만약 3이라는 치역의 원소를 만드는(매핑되는) 정의역의 원소가 1과 2가 존재한다면(화살이 2개라면) 이것은 one-to-one이 될 수 없다.
다시 one-to-one의 정의역과 공역의 dimension에 대해서 생각해보자. 아래의 두 개의 경우에서 절대 one-to-one이 되지 않는 경우가 있다.
1. $T : \mathbb{R}^3 \to \mathbb{R}^2$
2. $T : \mathbb{R}^2 \to \mathbb{R}^3$
위에 언급했던 ONTO와 반대로 1번이 one-to-one이 되지 않는다. $T : \mathbb{R}^3 \to \mathbb{R}^2$를 예를 들어 식으로 표현해보면 다음과 같다.
$T(\begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix}) = \begin{bmatrix} 1 \\ 2 \end{bmatrix}, $ $T(\begin{bmatrix} 0 \\ 1 \\ 0 \end{bmatrix}) = \begin{bmatrix} 4 \\ 5 \end{bmatrix}, $ $T(\begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix}) = \begin{bmatrix} 5 \\ 8 \end{bmatrix} 식1$
이전 강의에서 배웠던 것처럼 위의 3개의 값들은 $T : y=\textbf{A}\textbf{x}$로 나타내질 수 있다. 즉,
$ Ax = $ $\begin{bmatrix} 1 & 4 & 5 \\ 2 & 5 & 8 \end{bmatrix} \cdot$ $\begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} 식2$
이며, 매핑이 되고 난 값 [1,2], [4,5], [5,8]들의 선형결합으로 $T$를 나타낸 것이다. 위의 식을 본다면 2차원 공간 안에 3개의 벡터 ( $x_1, x_2, x_3$ )이 주어진 것을 알 수 있다. 그리고 2차원 공간 안에 3개의 벡터가 존재한다면 벡터는 (Linear dependent)선형 종속이 된다.
우리는 계속 $T : \mathbb{R}^3 \to \mathbb{R}^2$에 대해서 이야기하고 있다. 위의 식2에서 아래와 같은 가정이 주어졌다고 하자.
$\begin{bmatrix} 1 & 4 & 5 \\ 2 & 5 & 8 \end{bmatrix} \cdot$ $\begin{bmatrix} x_1 \\ x_2 \\ x_3 \end{bmatrix} =$ $\begin{bmatrix} 5 \\ 7 \end{bmatrix}$
만약 [5,7]을 만드는 해가 하나라면 one-to-one일 것이고, 여러 개라면 one-to-one이 안 될 것이다. 이것은 $Ax = b$라고 하는 선형방정식 꼴이다. 이전에 배웠던 것처럼 이것은 A의 역행렬을 양쪽에 곱해서 x의 값을 찾는 형태로 문제를 풀 수 있었다. 또한 $b$에 해당하는 $\begin{bmatrix} 5 \\ 7 \end{bmatrix}$는 $\begin{bmatrix} 5 \\ 7 \end{bmatrix} \in $ $Span \{ \begin{bmatrix} 1 \\ 2 \end{bmatrix},$ $ \begin{bmatrix} 3 \\ 4 \end{bmatrix}, $ $ \begin{bmatrix} 5 \\ 8 \end{bmatrix} $ $\}$을 만족한다.
여기서 x의 해가 유일하냐 유일하지 않냐를 결정하는 것은 바로 $Ax = b$ 식에서 matrix $A$가 선형독립인지, 선형종속인지에 따라 결정된다. 선형독립이라면 해는 unique할 것이고 반대의 경우라면 해가 무수히 많을 것이다.
그렇기 때문에 one-to-one이냐 아니냐 답을 하기 위해서는 결국 matrix $A$가 선형독립이냐 종속이냐를 묻는 질문과 동일하다. 그리고 이 말은 위에서 주어졌던 3개의 식에 대한 값이었던 [1, 2], [3, 4], [5, 8]이 선형독립이냐 종속이냐를 묻는 질문과도 동일하다.
지금까지는 조금은 추상적일 수 있는 내용들을 이야기하였는데 이번에는 one-to-one과 ONTO를 Neural Net에서 이야기해보자. 몸무게, 키, 흡연유무를 2개의 Layer를 가지고 있는 Neural Network가 있다. over-weighted 노드는 Weight변수가 증가할수록 증가하고 Height가 감소할 수록 증가하는 형태이다. 그리고 Tall_and_smoking노드도 Height와 Is_smoking변수를 가지고 만들어진 변수라고 할 수 있다.
그리고 one-to-one을 한 번 생각해보자. 만약 over-weighted가 100이고 Tall_and_smoking이 3(100, 3)이면 학습된 가중치들을 바탕으로 Life-span을 계산한다. 그러면 (100, 3)을 output 벡터에 실제로 mapping되는 값(Weight, Height, Is_smoking)이 오직 하나만 존재할까? 답은 '아니다'이다. 만약 Height - Weight가 over-weighted를 만드는 식이라고 했을 때, 170 - 70도 100, 180-80도 100을 출력한다. 그렇게 때문에 출력벡터와 매핑이 되는 정의역은 여러 개가 존재한다. 그래서 one-to-one이 될 수 없다.
의도적으로 유용한 정보만 남기고, 입력값에서의 자잘자잘한 차이점들을 없애주는 작업을 하는 것이라고 생각할 수도 있다. 어떻게 보면 정보를 손실하는 과정이다.
'선형대수' 카테고리의 다른 글
Least Squares Problem (인공지능을 위한 선형대수, 20210513~20210514) (0) 2021.05.14 선형변환 with Neural Networks(인공지능을 위한 선형대수, 20210507) (0) 2021.05.07 선형변환(인공지능을 위한 선형대수, 20210505) (0) 2021.05.07 부분공간의 기저와 차원(인공지능을 위한 선형대수, 20210504) (0) 2021.05.04 선형독립과 선형종속(인공지능을 위한 선형대수, 20210503) (0) 2021.05.03