선형 변환은 벡터를 다른 벡터로 변환하는 행렬 연산입니다. 이 연산은 입력 벡터의 각 요소에 대해 일정한 비율로 가중치를 곱하고, 이를 합산하여 새로운 벡터를 생성합니다.
선형 변환은 다음과 같은 형태로 표현됩니다:
“`
y = A * x
“`
여기서 `x`는 입력 벡터, `y`는 출력 벡터, `A`는 변환 행렬입니다. 변환 행렬 `A`는 입력 벡터의 차원과 출력 벡터의 차원을 결정합니다. 일반적으로 `A`의 크기는 `(m, n)`이며, `m`은 출력 벡터의 차원, `n`은 입력 벡터의 차원을 나타냅니다.
각각의 출력 벡터 요소 `y[i]`는 입력 벡터 `x`의 각 요소와 변환 행렬 `A`의 해당 요소들의 곱을 합산하여 계산됩니다. 즉, 다음과 같은 계산을 수행합니다:
“`
y[0] = A[0,0]*x[0] + A[0,1]*x[1] + … + A[0,n-1]*x[n-1]
y[1] = A[1,0]*x[0] + A[1,1]*x[1] + … + A[1,n-1]*x[n-1]
…
y[m-1] = A[m-1,0]*x[0] + A[m-1,1]*x[1] + … + A[m-1,n-1]*x[n-1]
“`
이렇게 선형 변환은 입력 벡터의 각 성분과 변환 행렬의 해당 성분들을 곱하여 출력 벡터를 생성하는 과정을 수행합니다. 이러한 선형 변환은 다양한 분야에서 사용되며, 이미지 처리, 컴퓨터 그래픽스, 머신 러닝 등 다양한 응용 분야에서 중요한 개념입니다.
물체의 크기를 조절하는 선형 변환 예시로 가로 세로가 각각 1M인 사각형을 가로 2M 세로 3M인 사각형으로 변환하는 계산을 생각해 보겠습니다.
이를 위해 변환 행렬 A를 구해야 합니다. 변환 행렬 A는 다음과 같습니다:
“`
A = [[2, 0],
[0, 3]]
“`
여기서 첫 번째 행은 가로 길이에 대한 변환, 두 번째 행은 세로 길이에 대한 변환을 나타냅니다.
입력 벡터는 (가로 길이, 세로 길이)로 표현되며, 입력 벡터를 변환 행렬 A와 곱하여 출력 벡터를 얻을 수 있습니다:
“`
출력 벡터 = A * 입력 벡터
“`
이제, 입력 벡터 (1, 1)M을 변환하면 다음과 같이 계산됩니다:
“`
출력 벡터 = [[2, 0],
[0, 3]] * [1, 1]
= [2*1 + 0*1, 0*1 + 3*1]
= [2, 3]
“`
따라서, 입력으로 주어진 사각형의 가로 길이가 2M로, 세로 길이가 3M로 변환된 것을 알 수 있습니다.
선형 변환은 입력 벡터의 각 성분에 대해 일정한 비율로 곱하여 크기를 조절하는 연산입니다. 이를 통해 다양한 형태의 변환을 수행할 수 있습니다.
선형 변환은 고차원 벡터를 다른 차원의 벡터로 매핑하는 연산입니다. 이 연산은 입력 벡터의 각 차원에 대해 선형 함수를 적용하여 출력 벡터를 생성합니다.
간단한 예를 들어 설명해보겠습니다. 2차원 공간에서의 선형 변환을 생각해봅시다. 입력 벡터는 (x, y)로 표현되고, 선형 변환은 입력 벡터를 다른 차원의 출력 벡터로 변환합니다. 이때, 선형 변환은 행렬과 벡터의 곱으로 표현됩니다.
예를 들어, 다음과 같은 선형 변환을 생각해봅시다:
“`
x_new = a * x + b * y
y_new = c * x + d * y
“`
여기서 a, b, c, d는 변환을 결정하는 상수입니다. 이 선형 변환은 2차원 공간에서의 벡터를 다른 2차원 공간으로 매핑합니다. 입력 벡터 (x, y)를 이 선형 변환에 적용하면 출력 벡터 (x_new, y_new)가 생성됩니다.
일반적으로, 선형 변환은 입력 벡터와 변환 행렬의 곱으로 나타낼 수 있습니다. 입력 벡터를 x로 표현하고 변환 행렬을 A로 표현하면, 출력 벡터는 다음과 같이 계산됩니다:
“`
output = A * x
“`
여기서 A는 M x N 크기의 행렬이며, M은 출력 벡터의 차원 수, N은 입력 벡터의 차원 수입니다.
선형 변환은 벡터 공간에서 매우 중요한 개념으로, 다양한 분야에서 사용됩니다. 예를 들면, 이미지 처리에서는 합성곱 연산이 선형 변환의 일종으로 볼 수 있습니다. 또한, 행렬 곱셈은 신경망의 계층 연산에서 주로 사용되는 선형 변환입니다.
물건을 사기 위해 돈을 갖고 있는 상황을 생각해봅시다. 이때, 선형성을 유지하는 변환과 비선형성을 갖는 변환을 비교해보겠습니다.
1. 선형성을 유지하는 변환 예시:
가지고 있는 돈의 양이 두 배로 증가할 때, 구매할 수 있는 물건의 가격도 두 배로 증가합니다. 예를 들어, 10달러를 가지고 있을 때는 5달러짜리 물건 하나를 살 수 있습니다. 그러나 돈이 20달러로 두 배로 증가하면, 10달러짜리 물건 두 개를 살 수 있게 됩니다. 이 경우 돈의 양과 구매 가능한 물건의 가격은 비례 관계에 있으며, 일정한 비율로 변환됩니다.
2. 비선형성을 갖는 변환 예시:
가지고 있는 돈의 양이 증가할수록 구매할 수 있는 물건의 가격 변동 비율이 변하는 경우를 생각해봅시다. 예를 들어, 10달러를 가지고 있을 때는 5달러짜리 물건 하나를 살 수 있습니다. 그러나 돈이 20달러로 두 배로 증가하면, 물건의 가격이 갑자기 15달러로 상승하여 하나의 물건밖에 살 수 없게 됩니다. 이 경우 돈의 양과 구매 가능한 물건의 가격은 비례하지 않으며, 변환 비율이 일정하지 않습니다.
위 예시에서 첫 번째 예시는 선형성을 유지하는 변환을 보여주고 있습니다. 돈의 양이 증가하면 구매 가능한 물건의 가격도 일정한 비율로 증가합니다.
두 번째 예시는 비선형성을 갖는 변환을 보여주고 있습니다. 돈의 양이 증가함에 따라 구매 가능한 물건의 가격 변동 비율이 변하므로 선형성을 유지하지 않습니다.
따라서, 선형성을 유지하는 변환은 입력 값의 크기에 비례하여 일정한 비율로 변환되는 반면, 비선형성은 입력 값의 크기에 따라 변환 비율이 달라지는 경우를 말합니다.