선형시스템 및 선형변환(3)

Temmie Chang (포인세티아)·2022년 2월 16일
0

선형변환 (Linear Transformation)

함수의 요소
정의역(Domain) : 입력에 들어갈 수 있는 모든 값의 집합
공역(Co-domain) : 타겟값이 될 수 있는 모든 값의 집합
상(Image) : 함수의 결과값
치역(Range) : 공역 중에 실제 함수의 결과값으로 쓰이는 것들의 집합

정의역에 해당하는 값은 무조건 함수 결과값을 '하나만' 가져야함

선형 변환 : 어떤 함수가 선형이고, 정의역에서 2개 원소를 뽑아서
정의역의 벡터를 대입했을때나, 함수를 통과한 후치역의 벡터를 대입했을때 결과가 같다면
이를 선형 변환이라고 할 수 있다.

bias(상수) 텀이 들어가면 위 조건을 만족하지 않을 수도 있지만
차원을 늘리는 방식(트릭)을 사용하면 선형 변환이 가능하다.

일반 벡터 = 기저벡터*계수의 선형결합으로 나타낼 수 있다.

기저벡터를 변환, 계수의 선형결합으로 나타낼 수 있다 = 선형 변환이 가능하다

선형성을 만족하는 변환 -> 행렬과 입력벡터의 곱으로 나타낼 수 있다

벡터의 변환이 선형변환이다 -> 입력벡터와의 곱으로 나타낼 수 있다.

기저벡터와 선형변환벡터의 출력은 순서대로 Standard벡터의 열을 구성한다.
이들을 합치면 Standard 행렬를 구할 수 있다.
따라서 행렬들의 곱인 Ax와 같은 형태로 나타낼 수 있다

참고하면 좋은 깃허브 블로그 https://colah.github.io/posts/2014-03-NN-Manifolds-Topology/

2차원으로 변환이 되는 레이어 A (계수들의 집합)

멀쩡한 좌표로 환원하면 grid를 기울어진 평행사변형으로 바꿔줄수 있음
이 때 2차원 좌표계로 벡터를 바꿔봤을때 찌그러지지 않으면 선형변환

Bia term(상수)은 좌표계의 이동에 해당(별로 중요치 않다), 선형 결합의 계수를 그냥 1이라고 해주면 되니까
-> Affine Transformation이라고하지만 선형 변환과 거의 유사

결과적으로 계수들의 행렬 A와 입력값 x(bia term의 경우 1이들어온다고 가정)의 열벡터 곱으로 나타낼 수 있다.

ONTO (전사; 전체에 다 사영을 시켰다.)

공역 = 치역 인경우 ONTO상태라고 한다.
치역이 가장 큰 상태가 된다.
정의역의 개수 > 공역의 개수 여야 ONTO가 될 수 있다 (정의역은 하나의 값만을 가지기 때문에)
적어도 공역의 모든 원소들은 함수의 결과값에 해당해야한다.

때문에 정의역의 차원이 공역의 차원보다 작으면? - ONTO가 될 수 없다.
차원의 치역은 결국 span이 되는데
2차원 평면으로 3차원 공간을 전부 채울수는 없으므로..

ex) 2개 노드에서 3개 노드를 가기 (gan의 incoder, maxpooling등 파라미터를 줄이는 경우)

전체 공역의 공간 중에 타겟 벡터에 해당하는 유의미한 선형변환을 찾아내는 것 = 학습
(선형의 특성을 가진 것들만 해당)

구불구불한거 (manifold) = 비선형의 특성을 가지는 것들

ONE-TO-ONE (일대일 함수)

치역 = 공역일 필요는 없지만
여러 개의 입력에 대한 결과값이 같지 않을 때.
정의역이 3차원, 치역이 2차원인 경우 차원의 차이로 인해 일대일 함수가 될 수가 없다.

3차원의 기저벡터 3개로 2차원의 벡터를 만드는 과정은
a(기저벡터)x(입력값) = b(결과 벡터)
기저벡터의 개수 > 결과 벡터의 차원 이면 lineare independent일 가능성이 큼 (x의 해가 무한히 많다)
One-to-One 은 선형 의존임과 동치이다.

x -> y -> z 로 이루어진 노드를 가정해보면

x(입력값 벡터)에서 y(유의미한 Feature의 벡터)
y(유의미한 Feature들의 벡터)에서 z(유의미한 타겟값)을 찾아내는 것

차원이 작아지는 경우 = 불필요한 정보는 걸러내는 작업에 해당

0개의 댓글