머신러닝 선형대수 - [1] 수의 표현
1. 스칼라
스칼라는 숫자 하나를 의미한다.
스칼라는 italic체로 작성하며 보통 소문자 변수 이름을 붙인다. 스칼라를 도입할 때는 어떤 종류의 숫자인지 명시하는데 예를 들어 다음과 같이 명시한다.
- 실수값 스칼라를 정의하면서 \(s \in R \)를 선의 기울기로 정하거나
- 자연수 스칼라를 정의하면서 \(n \in N \)을 단위 수로 정할 수 있다.
2. 벡터
벡터는 숫자의 정렬된 리스트, 배열이며 순서대로 배열된다. 이 순서에 따라 인덱스로 각 숫자를 식별할 수 있다.
벡터의 표현
일반적으로 벡터의 이름은 \( \mathbf{x} \)와 같이 굵은 italic체의 소문자로 표기하고 벡터의 요소(element)는 아래 첨자(subcript)와 함께 이탤릭체로 표기하여 식별한다.
벡터는 다음과 같이 표현할 수 있다.
\[\mathbf{x} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix} \in \Bbb{R}^n\]벡터의 타입과 크기
벡터에 어떤 종류의 숫자가 저장되어 있는지 표기해야 하며 다음과 같이 \(\Bbb{R}^n \) 타입과 크기에 대한 표기를 할 수 있다.
- 이는 벡터의 각 요소가 \( \Bbb{R} \) 에 속한다는 뜻이다.
- 벡터에 n개의 요소가 있는 경우 벡터의 \( \Bbb{R} \)에 데카르트 곱을 n번 취하여 형성된 집합에 속한다.
- 이를 \( \Bbb{R}^n \) 이라고 한다.
벡터의 요소(element)
벡터의 요소는 real, binary, integer, etc 등이 가능하며, 벡터 x의 첫 번째 요소는 \(x_1 \), 두 번째 요소는 \(x_2 \) 등과 같이 표현한다.
벡터의 인덱스 집합
가끔 벡터의 요소(element)집합에 대해 인덱싱이 필요할 때가 있다. 이럴 때 인덱스를 포함하는 집합을 정의하고 집합을 아래 첨자로 작성한다.
- 예를 들어 \(x_1, \space x_2, \space x_3 \)에 접근하려면 집합 \(S\)를 \(S = \lbrace 1, 3, 6 \rbrace \) 이와 같이 정의하고 \(x_s \)로 작성한다.
벡터의 여집합 표현
’-‘기호를 사용하여 집합의 여집합을 인덱싱 할 수 있다.
- \( x_{-1} = \)\( \space x_1 \)을 제외하고 \( x \)의 요소를 모두 포함하는 여집합
- \( x_s = \) \( s \)의 요소를 제외하고 \( x \)의 요소를 모두 포함.
Column Vector와 Row Vector
열 벡터(Column Vector)
- n차원의 벡터는 일반적으로 열 벡터(Column Vector)이다. 즉, nx1 크기의 행렬이다.
행 벡터(Row Vector)
- 행 벡터는 보통 전치(transpose)로 작성된다.
Zero Vector, Ones Vector, Standard Unit Vectors
[1] Zero Vector
- 영벡터는 성분이 모두 0인 벡터를 뜻한다. \( 0_n \) 으로 나타낼 수 있다.
[2] Ones Vector
- Ones 벡터는 성분이 모두 1인 벡터를 뜻한다. \( 1_n \) 으로 나타낼 수 있다.
[3] Standard Unit Vector
- 벡터의 성분 중 하나만 1이고 나머지는 다 0인 것을 의미한다.
벡터의 sparse와 density
Sparsity
- 벡터가 sparse 하다는 것은 벡터가 0이 많다는 것을 의미한다.
- 이는 컴퓨터에서 호율적으로 저장하고 조작하는 것이 가능하다.
- \( nnz(x) \)는 nonzero인 항목의 숫자이다.
- 예시) zero vectors, standard unit vectors
Density
- dense는 0이 아닌 것으로 꽉 채워진 것을 뜻한다.
3. 행렬
기본 설명
- 행렬은 2차원 숫자 배열이므로 각 요소는 하나가 아닌 두 개의 인덱스로 식별된다.
- 일반적으로 행렬에는 \(\pmb{A}\)와 같이 굵은 italic체로 대문자 변수 이름을 붙인다.
- 실수값 행렬 A의 높이가 m이고, 너비가 n인 경우, 우리는 \(\pmb{A} ∈ \Bbb{R}^{m×n} \)이라고 말한다.
- 일반적으로 행렬의 요소는 굵은 글꼴이 아닌 이탤릭체로 이름을 사용하여 식별하고 인덱스는 쉼표로 구분하여 나열한다.
- 예를 들어 \( A_{1,1} \)은 A의 왼쪽 위 항목이고 Am,n은 오른쪽 아래 항목이다.
- 가로 좌표에 “:”를 작성하면 세로 좌표가 i인 모든 숫자를 식별할 수 있다.
- 예를 들어 \( A_{i,:} \) 는 수직좌표를 가진 A의 수평단면을 나타낸다 즉, i행의 모든 값을 식별할 수 있다고 생각하면 된다.
행렬의 기본 표현
\[\pmb{A} = \begin{bmatrix} 1 \quad 6 \\ 3 \quad 4 \\ 5 \quad 2 \end{bmatrix} \in \Bbb{R}^{3 \times 2}\]- 행렬은 굵은 italic체로 표현한다. (서적 Bengio - Deep Learning 기준)
행렬의 Notation
Square Matrix (rows = columns)
정방 행렬이라고도 부른다.
\[\pmb{A} = \begin{bmatrix} 1 \quad 6 \\ 3 \quad 4 \\ \end{bmatrix} \in \Bbb{R}^{n \times n}\]Rectangular matrix (rows != columns)
직사각형 행렬이라고도 부른다.
\[\pmb{A} = \begin{bmatrix} 1 \quad 6 \\ 3 \quad 4 \\ 5 \quad 2 \end{bmatrix} \in \Bbb{R}^{m \times n}\]Transposd matrix
전치 행렬이라고도 부른다.
- 주 대각선을 가로질러 미러링한 것과 같이 생각하면 된다.
\( A_{i,j} \) 행렬 성분
- 행렬 A의 i,j번째 성분
- e.g. \( A_{2,1} = 3\)
i행의 행 벡터
- 행렬 A의 i번째 행 벡터
- \( A_{i,:} \)
- e.g. \(A_{2,:} = \begin{bmatrix} 3 \quad 4 \end{bmatrix}\)
i번째 열 벡터
- 행렬 A의 i번째 열 벡터
- \( A_{:,i} \)
- e.g. \(A_{:,2} = \begin{bmatrix} 6 \\ 4 \\ 2 \end{bmatrix}\)
행렬의 전치
\[\pmb{A} = \begin{bmatrix} A_{1, 1} \quad A_{1, 2} \\ A_{2, 1} \quad A_{2, 2} \\ A_{3, 1} \quad A_{3, 2} \\ \end{bmatrix} \Rightarrow \pmb{A}^T = \begin{bmatrix} A_{1, 1} \quad A_{1, 2} \quad A_{1, 3} \\ A_{2, 1} \quad A_{2, 2} \quad A_{2, 3} \\ \end{bmatrix}\]- 행렬의 전치는 주 대각선을 가로지르는 거울 이미지로 생각할 수 있다.
행렬에서 중요한 연산 중 하나는 전치이다. 행렬의 전치는 행렬의 왼쪽 위 모서리에서 시작하여 아래쪽과 오른쪽으로 이어지는 주 대각선이라고 하는 대각선을 가로지르는 행렬의 거울 이미지이다.
행렬 \( \pmb{A} \)의 전치를 \( \pmb{A}^T \)로 나타내며 다음과 같이 정의한다.
\[(\pmb{A}^T)_{i,j} = A_{j,i} \\\]벡터와 스칼라의 전치
벡터의 전치
벡터는 열이 하나만 있는 행렬로 생각할 수 있다. 따라서 벡터의 전치는 행이 하나만 있는 행렬이다. 때로는 text의 element를 행 행렬로 작성한 다음, 전치 연산자를 사용하여 표준 column vector로 변환하는 방식으로 벡터를 정의할 때도 있다.
\[x = \begin{bmatrix} x_1, x_2, x_3 \end{bmatrix} ^T\]스칼라의 전치
스칼라는 하나의 항목만 있는 행렬로 생각할 수 있다. 이를 통해 스칼라가 그 자체로 전치임을 알 수 있다. \[ a=a^T \]
텐서(Tensor)
행렬보다 더 많은 차원을 가지고 있으면 tensor라고 한다.
- 텐서는 이와 같은 폰트로 표현한다: \(\mathsf{A} \)
- 텐서\(\mathsf{A} \)의 원소를 식별하려면 \(A_{i,j,k}\)로 작성한다.
출처
Bengio, et.al. - Deep Learning
주재걸 - 선형 대수
학교 강의 자료