본문 바로가기

자연어 처리 과정

onto와 one-to-one

개요

Ax즉, linear transformation을 할 때,

n차원 벡터를 n차원 벡터로 mapping 시키는 혹은 n차원 벡터를 m차원 벡터로 mapping 시키는 함수가

onto 혹은 one-to-one이란 게 무슨 말일까?

 

onto와 one-to-one에 대해 알아보자.

 

Onto란?

왼쪽 domain과 co-domain 그림이 onto로 mapping되는 모습이다.

오른쪽 domain과 co-domain 그림은 onto로 mapping되는 모습이 아니다.

 

onto mapping이라고 표현하려면 공역이 치역과 같아야 한다.

즉, 정의역이 하나의 공역도 남김 없이 모든 공역을 mapping하고 있어야 한다.

그러면 onto로 mapping하고 있다고 말할 수 있다.

 

바로 예제 문제를 보자.

Q. 이 linear transformation은 2차원 공간에서 3차원 공간으로 이동시키고 있다. 이건 onto mapping하는 transformation일까?

+ 왜 이게 2차원 -> 3차원이냐?

-> 우리가 가진 입력벡터는 x1, x2 즉 요소가 2개로 2차원이다.

-> 그리고 출력되는 벡터는 Ax, 3 by 2 @ 2 by 1로 결과적으로 3 by 1이 나온다. 따라서 3차원이다.

 

거짓이다.

위에서 언급했던 것처럼, onto mapping의 조건은 정의역이 모든 공역을 mapping하여 공역이 치역과 같아지게 만들 수 있어야 한다.

우리가 가지고 있는 정의역은 2차원 공간이고 공역은 3차원 공간이다.

바꿔서 말하면 이 문제가 물어보고 있는 것은, "2차원 공간으로 3차원 공간을 덮을 수 있느냐?"를 물어보는 것과 같다.

그것은 불가능하기에, 거짓이다.

 

다르게 표현하자면, 우리가 가지고 있는 벡터가 3차원 전체를 span할 수 있냐를 묻는 것이다.

3차원 벡터이기는 하지만 벡터가 2개뿐이기에 3차원 위의 평면을 span할 수 있다.

따라서, 또다시 거짓이다.

 

대신, n차원 공간에서 n차원으로 이동할 때 혹은 n차원에서 m차원으로 이동할 때(m > n) onto mapping하는 transformation인지 묻는다면 그것은 참이라고 말할 수 있다.

한 가지 주의할 점이라면, matrix A에 있는 벡터가 linearly independent한지 봐야한다. dependent하다면 span하는 차원이 달라질 수 있기에 위의 문장은 틀린 문장이 될 수 있다.

 

One-to-one이란?

학교에서 일대일 함수라는 말을 들어본 적이 있을 수도 있다.

그것과 같은 개념이다.

그림으로 보자.

onto에서는 mapping 되지 않는 공역에 대해 신경을 썼다. 왜?

모든 공역이 치역이 돼야 하니까.

하지만 one to one에서는 신경쓰지 않는다.

다만, 무엇을 신경쓰냐?

각 공역을 mapping하는 정의역이 1개인지를 본다.

만약 왼쪽처럼이 아니라, 오른쪽처럼 되어 있다면?

그것은 one to one mapping이 아니다.

참고로 오른쪽은 onto도 아니다.

(공역과 치역이 다르니까.)

 

예제로 넘어가자.

Q. 이 linear transformation은 5차원 공간에서 4차원 공간으로 이동시키고 있다. 이건 one to one mapping하는 transformation일까?

 

one to one mapping이 무엇인지는 이해했다.

근데 이걸 어떻게 알 수 있을까?

one to one mapping이려면 벡터가 충족시켜야 하는 중요한 조건이 있다.

그것은 바로, 우리가 가진 벡터들이 모두 linearly independent해야 한다는 조건이다.

 

그럼 다시 말하면, one to one인지 판단하기 위해서는 우리가 가진 벡터들이 independent한지 dependent한지를 보면 된다.

우리가 가진 matrix A의 벡터들을 보자.

 

우리는 지금 4차원 벡터 5개를 가지고 있다.

여기서 바로 우리가 가진 벡터는 dependent하다는 것을 알 수 있다.

dim보다 벡터의 개수가 더 많기 때문에 dependent할 수밖에 없다.

실제로도 5v1 + v2를 하면 v4를 만들 수 있다.

 

따라서, 이것은 거짓이다.

 

이를 통해 onto와 one-to-one에 대해 알 수 있었고 그 이론을 가지고 문제도 풀어볼 수 있었다.