Linear Transformation & onto, ono-to-one의 개념

Transformation

  • Domain(정의역) : 입력값으로 가질 수 있는 모든 값들의 집합
  • Co-domain(공역) : 출력값으로 가질 수 있는 모든 값들의 집합
  • Image(상) : 입력이 주어졌을때의 출력값을 의미
  • Range(치역) : 정의역에 있는 각각의 x에 의해 mapping되어진 모든 출력값의 집합

  • 공역과 치역의 차이는 공역은 출력값으로 가질 수 있는 모든 값들의 집합인데 반해, 치역은 주어진 정의역에 대한 출력값을 모아놓은 집합이라고 할 수 있다.

  • 또한, 함수의 정의역과 치역의 관계는 일대일 대응 관계를 갖는 경우, 특정한 정의역에 대한 함수값은 unique하게 정의된다.

Transformation의 개념

Linear Transformation

  • 1) x(solution)를 구하는 관점

    • System equation의 x(solution)을 구하는 것
    • linear combination of column vectors로 보아 x(scalar coefficient)로 보는 것
  • 2) 선형변환의 관점

    • n차원 공간의 벡터를 m차원이라는 다른 차원의 공간으로 변형하는 것과 같다.

선형변환의 관점에서 보는 Ax=b

  • 어떤 function 또는 mapping이 linear라고 한다면, 아래의 수식이 보장되어야 한다.

선형변환의 개념

example

  • 아래 대각행렬은 C > 1 : Streching, C < 1 : Contracting
  • 90도 변환 행렬
  • y=x reflection (y=x 대칭)

linearity가 보장되는 연산 또는 수식은 행렬식으로 바꿀 수 있다.

  • example 1) differentiation $ \frac{d}{dt} $ of polynomial
    • 적분도 동일하게 선형변환을 통해 바꿀 수 있다.
  • $y=3x+2$에 대해 linearity가 보장되는지 확인해보면 다음과 같다.
  • 이렇게 bias를 포함한 선형식은 linearity를 보장하지 않는데, 이를 변형시켜 linearity를 만족시킬 수 있게 할 수 있다.

  • 위의 변환은 아래와 같이 1차원에서 1차원으로의 변환이었지만, domain을 다르게 가지게 하여 2차원에서 1차원으로의 변환을 하면 linearity를 보장한다.

  • 아래와 같이 만들어 주고 나서 살펴보면
  • 먼저, 입력벡터에 대해 계산해 주면 아래와 같이 된다. T(3 x_{1} + 4 x_{2})를 계산하는 것과 동일하다.
  • 원래 입력벡터에 대입하여 계산하면 다음과 같은 계산을 할 수 있으며, linearity를 갖는 것을 확인 할 수 있다.
  • 이 처럼 n차원 벡터를 m차원 벡터에 mapping해주는 것으로도 해석 할 수 있다.

벡터들간의 Transformation

  • 아래 그림과 같이 basis vector들을 입력으로 받은 선형 변환의 결과를 알고 있다면 선형변환하는 행렬 A를 알아낼 수 있다.
    • Standard Basis vector가 아닌 다른 Basis 벡터로 변환된 결과이라면 행렬 A를 알아내지 못할 수 있다.

행렬의 Transformation - 01

행렬의 Transformation - 02

행렬의 Transformation - 03

  • 모든 Basis vector들에 대한 transformation 결과를 알고 있다면 행렬 A 를 몰라도 vector space내의 어떠한 transformation 결과도 찾을 수 있다.
  • Neural Network에서 FC Layer에서 가중치와 입력값의 내적과 bias term에 의한 선형 변환을 기하하적으로 볼 수 있다. 아래에서 선형변환이 사용된 것은 정사각형 모양으로 이루어져 있던 칸을 평행사변형 모양으로 변형되는 데 사용되어졌으며, 중심이 이동되는 것은 bias에 의한 것이고, 연산의 결과값이 작은 부분은 activation function을 통과하며 더 줄어들기 때문에 찌그러지는 것을 확인 할 수 있다.

Wx+b의 변환

Neural Network에서의 선형변환

  • 또한, layer의 연산에서 bias term이 존재하므로 그냥 계산하게 되면 linearity를 만족하지 않는 Affine 공간으로의 확장이 이루어진다. transformation을 할 수 없기에 언급한 것과 같이 차원을 하나 더 늘려 linear transformation 형태로 계산할 수 있게 된다. 이처럼 행렬의 곱으로 계산을 할 수 있어 많은 연산량을 효율적으로 할 수 있게 되었다.

bias term을 갖는 layer의 연산에서 linear transformation

Onto

  • 전사함수라고 하며 공역=치역인 상태가 Onto라고 얘기 할 수 있다. 좀 더 자세히 설명하자면 적어도 $ x \in R^{n} $ 의 하나의 원소에 대한 치역이 $ b \in R^{m} $ 에 존재하는 경우에 $ R^{n} \rightarrow R^{m} $ 가 onto $ R^{m} $ 이라고 할 수 있다.
  • 예를들어, $ R^{2} \rightarrow R^{3} $ 은 2차원의 basis vector들의 linear combination으로 2차원 평면을 Span할 수 있다. 허나 3차원으로 변환을 해준다면 기존의 2차원에서의 Span 범위인 초평면만을 커버 할 수 있기 때문에 3차원의 일부 공간만을 치역으로 같는다. 그렇기에 일반적으로 입력차원이 출력차원보다 더 높은 경우에 Onto가 될 가능성이 있지만, 반대로 입력차원보다 출력차원이 더 높은 경우 Onto가 절대 될 수 없다.

Onto의 개념

One-to-One

  • 일대일 함수를 의미하며 Onto일 필요는 없다. 즉, 공역 중에 mapping이 되지 않는 것이 있어도 된다는 의미이다. 하지만 Domain하나에 공역의 원소 중 하나가 mapping되어야 한다. 중복된 치역을 갖아서는 안된다. 결국 linearly independent한 경우와 동치가 된다.

One-to-One의 개념

  • 그렇다면 과연 이런 Onto와 One-to-One 개념이 Neural Networks에서는 어떻게 적용되어지고 해석되는지 살펴볼 것이다. 우선 아래와 같은 FC Layer가 있다고 가정해보자.

FC layer

  • 수명을 예측하기 위해서 필요한 정보들만 남기고 의도적으로 불필요한 정보를 버리는 정보 손실이 일어나는 과정이라고 해석할 수 있다. 예를 들어 아래 구조는 One-to-One이 되지 않는다. 간단히 $ over-weighted = Height - Weight $이라고 할 경우 over-weighted=100이라고 고정 할 경우 앞 층에서 $over-weighted=100$ 을 만들 수 있는 Weight와 Height의 조합은 너무나도 많기 때문이다. 그러므로 처음 입력에서는 차이가 존재하는 정보였지만 층을 지나면서 불필요한 정보를 버리고 필요한 정보만을 가지게 되는 것이라고 볼 수 있다.

FC layer에서의 One-to-One

  • 이러한 개념은 Neural Network에서 AutoEncoder의 Decoder 구조에서도 동일하게 적용될 수 있다. 일반적으로 Decoder단의 입력보다 Decoder단의 출력이 더 높은 차원을 갖기 때문에 해당 Layer들의 연산이 Onto가 될 수 없다. 허나 그렇다면, 학습에는 문제가 없을지 의문이 갈테지만 선형변환이나 비선형변환을 통해 Onto가 되진 않더라도 기존의 Span 범위내에 있는 것들을 학습하는 것이기 때문에 학습에는 크게 문제가 없다. 예를 들어, 사람의 얼굴을 다시 복원하는 Task라면, 사람의 얼굴들이 같는 공통적인 특징들의 Span 범위내에서만 학습을 하는 것이지 입술이 까만 사람이 섞여있다거나, 얼굴 일부분이 빨간색으로 되어있다거나 하는 일반적이지 않은 범위를 학습하는 것이 아니기 때문이다. (manifold learning)

FC layer에서의 Onto

Linear transformation에서 행렬 A의 열벡터가 모두 linearly independent하다면, One-to-One이 된다. 또한, 벡터 $ x \in R^{n} $ 인 경우 onto $ R^{m} $ 이 되려면 행렬 A의 column space의 span이 $ R^{m} $ 이어야 한다.

Linear transformation에서의 onto와 one-to-one의 관계

onto과 one-to-one 예시 - 01

onto과 one-to-one 예시 - 02