[2주차 Day2] 04강: 행렬연산과 선형조합

pengu·2021년 5월 4일
0

KDT 배움기록

목록 보기
5/12
post-thumbnail

노션 기록

행렬 표기법과 관련 용어

행렬이란?

행렬(matrix)은 직사각형 구조에 숫자들을 담아놓은 구조이다

각 숫자들은 행렬의 요소(entry)라 부른다

다음은 3개의 행(row)와 2개의 열(column)으로 이루어진 3x2 행렬이다.

[311224]\begin{bmatrix} 3 & 1\\ 1 & -2\\ 2 & -4 \end{bmatrix}

다음과 같이 하나의 행 혹은 하나의 열을 가지는 특별한 행렬을 생각할 수 있다. 이들을 각각 행벡터(row vector), 열벡터(column vector)라 한다.

[2103][13]\begin{bmatrix} 2 & 1 & 0 & -3 \end{bmatrix} \quad \begin{bmatrix} 1 \\ 3 \end{bmatrix}

극단적으로 1x1 행렬을 생각할 수 있는데, 이는 스칼라(scalar)와 같다.

[ 4 ]\begin{bmatrix} \ 4 \ \end{bmatrix}

행렬 표기법

m×nm \times n 행렬은 다음과 같이 m×nm \times n 개의 숫자가 직사각형 구조에 채워진 형태로 표기할 수 있다.

  • 행렬 AA의 각 (i,j)(i, j)- 요소는 aija_{ij}로 나타낸다
  • 행렬 AA를 간략히 표기할 때는 A=[aij]A = [a_{ij}]로 나타낸다
  • 행렬 AA의 크기가 중요할 경우는 A=[aij]m×nA = [a_{ij}]_{m \times n}로 나타낸다

전치행렬(Transpose Matrix)

m×nm \times n 행렬 AA에 대한 전치행렬 ATA^TAA의 행을 열로, AA의 열을 행으로 가지는 m×nm \times n 행렬이다.

즉, (AT)ij=(A)ji(A^T)_{ij} = (A)_{ji}를 만족한다

A=[123456] AT=[135246]A = \begin{bmatrix} 1 & 2\\ 3 & 4\\ 5 & 6 \end{bmatrix} \\ \ \\ A^T = \begin{bmatrix} 1 & 3 & 5\\ 2 & 4 & 6 \end{bmatrix}

벡터 표기법

벡터는 아래의 x\bf x와 같이 볼드체 소문자로 표기한다

x=[x1x2xn]\bf x = \begin{bmatrix} x_1\\ x_2\\ \vdots \\ x_n \end{bmatrix}
  • 벡터라고 하면 일반적으로 열벡터(column vector)를 말한다
  • nn-벡터는 nn개의 스칼라(scalar)로 구성된 벡터를 말한다

영행렬(Zero Matrix)

행렬의 모든 요소가 0이면, 해당 행렬을 영행렬(zero matrix)라 하고 OO라고 표기한다.

A+O=O+A=AA + O = O + A = A

영행렬은 숫자 0과 같은 존재로 행렬합에 대한 항등원 역할을 한다

행렬의 합

두 행렬 AABB는 행과 열의 개수가 모두 같을 때 성립하며, 각 (i,j)(i, j)-요소의 합으로 정의된다

n x n 행렬: 정방행렬(Square Matrix)

행과 열의 개수가 모두 nn인 정사각형(square) 모양의 행렬을 nn차 정방행렬(square matrix)이라 한다

특히, aii(i=1,2,,n)a_{ii} (i = 1, 2, \cdots , n)를 행렬 AnA_n의 주대각선(main diagonal)이라 한다

항등행렬(Identity Matrix)

주대각선(main diagonal)이 1이고 나머지 요소는 모두 0인 nn차 정방행렬(square matrix)을 항등행렬(identity matrix)이라 한다

항등행렬은 숫자의 1과 같은 존재로 행렬곱에 대한 항등원 역할을 한다

행렬의 곱 ⭐

m×rm \times r 행렬 A=[aij]A = [a_{ij}]r×nr \times n 행렬 B=[bij]B = [b_{ij}]가 있을 때,

두 행렬의 곱 ABAB는 아래와 같은 m×nm \times n 행렬 C=[cij]C = [c_{ij}]를 정의한다

여기서 두 행렬의 곱 ABAB로 정의된 행렬 CC의 각 (i,j)(i, j)-요소는 다음과 같이 정의된다

왼쪽 행렬에서는 ii번째 행을, 오른쪽 행렬에서는 jj번째 열을 뽑아와서 서로 내적

따라서, AA의 열의 개수와 BB의 행의 개수가 같아야 행렬곱이 가능함

cij=ai1b1j+ai2b2j++airbrjc_{ij} = a_{i1}b_{1j} + a_{i2}b_{2j} + \cdots + a_{ir}b_{rj}


행렬의 곱에서 반드시 숙지해야할 사항

  • 행렬 CC의 각 요소 cijc_{ij}는 '곱의 왼쪽 행렬 AAii번째 행벡터'와 '곱의 오른쪽 행렬 BBjj번째 열벡터'의 내적(inner product)이다

    • 따라서, 두 행렬의 곱 ABAB에 대해 AA의 열 개수와 BB의 행 개수는 일치해야 한다

    • 일반적으로 ABBAAB \ne BA 이다 (교환법칙 성립하지 않음)
      왜냐하면 행과 열을 뽑아오는 방법이 다르기 때문이다

  • 행렬의 곱은 병렬처리(parallel processing)로 가속할 수 있다
    (각각의 연산이 독립적이기 때문)



스칼라, 벡터, 행렬, 그리고 텐서: 계층적 구조 이해하기


스칼라 → 벡터 → 행렬

스칼라는 숫자 하나로 구성되어 있다.

77

이 스칼라를 벡터로 표현하면 아래와 같이 1개의 구성요소로 이루어진 11-벡터가 된다

[ 7 ][\ 7 \ ]

이 스칼라를 행렬로 표현하면 아래와 같이 1개의 구성요소로 이루어진 1×11 \times 1 행렬이 된다.

[ 7 ]1×1[\ 7\ ]_{1 \times 1}



벡터 → 행렬

벡터는 여러 숫자가 일렬로 늘어선 구조이다 (4-vector)

[1234]\begin{bmatrix} 1\\2\\3\\4 \end{bmatrix}

이 벡터를 행렬로 표현하면 다음과 같이 여러 모양의 행렬로 표현할 수 있다.

[1234]4×1[1234]2×2[1324]2×2[1234]1×4\begin{bmatrix} 1\\2\\3\\4 \end{bmatrix}_{4 \times 1} \quad \begin{bmatrix} 1&2\\3&4 \end{bmatrix}_{2 \times 2} \quad \begin{bmatrix} 1&3\\2&4 \end{bmatrix}_{2 \times 2} \quad \begin{bmatrix} 1&2&3&4 \end{bmatrix}_{1 \times 4}
  • 표현하고자 하는 행렬의 모양은 응용문제에 따라 결정한다.

행렬 → 벡터

행렬은 사각형 구조에 여러 숫자가 행과 열로 늘어선 구조이다.

[123456]2×3\begin{bmatrix} 1&2&3\\4&5&6 \end{bmatrix}_{2 \times 3}

이 행렬은 다음과 같이 6-벡터로 표현할 수 있다

[123456][142536]\begin{bmatrix} 1\\2\\3\\4\\5\\6 \end{bmatrix} \quad \begin{bmatrix} 1\\4\\2\\5\\3\\6 \end{bmatrix}
  • 행렬을 벡터로 변환할 때, 행부터 혹은 열부터 읽을 것인지는 응용문제에 따라 결정한다

텐서

텐서(tensor)는 스칼라, 벡터, 행렬을 아우르는 개념이다.

숫자가 늘어설 수 있는 방향이 kk개면 kk-텐서로 부른다. (차원 수라고 생각하면 될 듯)

  • 0-텐서 : 스칼라
  • 1-텐서 : 벡터
  • 2-텐서 : 행렬

만일 아래의 TT의 각 요소 p(i,j)\bf p \it _{(i, j)}가 벡터라면, TT는 3-텐서로 볼 수 있다

3-텐서의 대표적인 예는 컬러영상이다. p(i,j)\bf p \it _{(i, j)}가 3-벡터이면 RGB영상을, 4-벡터이면 RGBA영상을 나타낸다고 볼 수 있다


분할행렬(Partitioned Matrix) ⭐


분할행렬(Partitioned Matrix)이란?

행렬을 조각(partition) 단위로 분할하여 생각해도 무방하다

이런 관점에서 본다면, 행렬은 부분행렬(submatrix)로 이루어진 직사각형 구조로 확장해서 생각할 수 있다 (행렬의 요소도 행렬로 볼 수 있음!)

이렇게 행렬을 구조적으로 보는 방법을 분할행렬(partitioned matrix) 또는 블록행렬(block matrix)이라 한다



분할행렬로 행렬의 곱 이해하기

두 행렬의 곱 AB=CAB= C를 아래와 같이 matrix-column vector products로 볼 수 있다.

마치 분배법칙 처럼!

AB=A[b1b2bn]=[Ab1Ab2Abn]=CAB = A \begin{bmatrix} b_1&b_2&\cdots &b_n \end{bmatrix} = \begin{bmatrix} Ab_1&Ab_2&\cdots &Ab_n \end{bmatrix} = C

예를 들면, A2×3B3×2=C2×2A_{2 \times 3}B_{3 \times 2}=C_{2 \times 2}을 다음과 같이 구조적으로 해석할 수 있다

두 행렬의 곱 AB=CAB= C를 아래와 같이 matrix-row vector products로도 볼 수 있다.

AB=[a1a2am]B=[a1Ba2BamB]=CAB = \begin{bmatrix} a_1\\a_2\\\vdots \\a_m \end{bmatrix} B = \begin{bmatrix} a_1B\\a_2B\\\vdots \\a_mB \end{bmatrix} = C

예를 들면, A2×3B3×2=C2×2A_{2 \times 3}B_{3 \times 2}=C_{2 \times 2}을 다음과 같이 구조적으로 해석할 수 있다



선형조합(Linear Combination): Ax는 A의 열벡터에 대한 선형조합

행렬을 구조적으로 보기

행렬을 구조적으로 바라보는 가장 효과적인 방법은 다음과 같다

행렬은 열벡터의 리스트이다

여기서 ai\bf a \it_i는 행렬 AAii-번째 열벡터이다. 특히 각 열벡터는 mm-벡터이기 때문에,

m×nm \times n 행렬은 mm-벡터가 nn개 있다 고 해석하면 된다

행렬 @ 벡터 연산을 구조적으로 보기

이제, AxA \bf x를 다음과 같이 구조적으로 볼 수 있다

AxA \bf x는 행렬 AA가 가지고 있는 열벡터의 선형조합이다

선형대수에서는 이처럼 벡터들에 대한 가중치 합을 특히 선형조합(linear combination)이라 부른다

정리하면,

AxA \bf x의 결과는 행렬 AA가 가지고 있는 열벡터의 선형조합으로만 한계가 지어진다


선형시스템 Ax=b를 선형조합 관점에서 바라보기⭐

예를 들어, 다음 선형시스템 문제를 푼다고 가정하자

[132123212][x1x2x3]=[193]\begin{bmatrix} -1&3&2\\1&2&-3\\2&1&-2 \end{bmatrix} \begin{bmatrix} x_1\\x_2\\x_3 \end{bmatrix} = \begin{bmatrix} 1\\-9\\-3 \end{bmatrix}

(좌항) 선형조합으로 해석한 AxA \bf x

x1[112]+x2[321]+x3[232]x_1 \begin{bmatrix} -1\\1\\2 \end{bmatrix} + x_2 \begin{bmatrix} 3\\2\\1 \end{bmatrix} + x_3 \begin{bmatrix} 2\\-3\\-2 \end{bmatrix}

(우항) b\bf b

[193]\begin{bmatrix} 1\\-9\\-3 \end{bmatrix}

행렬 AA의 열벡터를 가중치합으로 선형조합할 때 벡터 b\bf b를 만들 수 있는 가중치 조합이 존재한다면,

선형시스템 Ax=bA\bf x=b의 해는 존재한다. 그 해는 가중치 xix_i들로 구성된 x\bf x이다

위 선형시스템 문제의 해(solution)는 x=[213]\bf x = \begin{bmatrix} 2\\-1\\3 \end{bmatrix}이다. 선형조합을 통해 확인해보자.

(좌항) 선형조합으로 해석한 AxA \bf x

(2)[112]+(1)[321]+(3)[232](2) \begin{bmatrix} -1\\1\\2 \end{bmatrix} + (-1) \begin{bmatrix} 3\\2\\1 \end{bmatrix} + (3) \begin{bmatrix} 2\\-3\\-2 \end{bmatrix}

(우항) b\bf b

[193]\begin{bmatrix} 1\\-9\\-3 \end{bmatrix}



열 공간(Column Space)

행렬 A의 열벡터들에 대한 가능한 모든 선형조합의 결과를 모아 집합으로 구성할 수 있을 것이다

이들 집합을 열공간(column space)이라 하고 다음과 같이 표기한다

col(A)\rm col(\it A)

Consistent Linear System

선형시스템 Ax=bA\bf x=b가 해를 가지면(consistent), 다음을 만족한다

bcol(A)\bf b \in \rm col(\it A)

Inconsistent Linear System

선형시스템 Ax=bA\bf x=b가 해가 없으면(inconsistent), 다음을 만족한다

bcol(A)\bf b \notin \rm col \it (A)
  • 예제

    아래 행렬 AAcol(A)\rm col(\it A)은 3-차원 공간이다.

    A=[132123212]A= \begin{bmatrix} -1&3&2\\1&2&-3\\2&1&-2 \end{bmatrix}

    따라서, 어떤 3-벡터 b\bf b를 이용해 선형시스템 Ax=bA\bf x=b를 구성한다고 하더라도, 해당 선형시스템의 해는 존재한다


    아래 행렬 AAcol(A)\rm col(\it A)xyxy-평면이다.


    A=[132123000]A= \begin{bmatrix} -1&3&2\\1&2&-3\\0&0&0 \end{bmatrix}

    따라서, xyxy-평면 상의 3-벡터 b\bf b를 이용해 선형시스템 Ax=bA\bf x=b를 구성하면, 해당 선형시스템의 해는 존재한다

    그러나, xyxy-평면을 벗어난 3-벡터 b\bf b를 이용해 선형시스템 Ax=bA\bf x=b를 구성하면, 해당 선형시스템의 해는 존재하지 않는다

profile
꾸준하게

0개의 댓글