본문 바로가기

심층 학습 (아인 굿펠로, 오슈아 벤지오, 에런 쿠빌)

2. 선형대수

선형대수 linear algebra 는 과학과 공학 전반에서 널리 쓰인다. 

2.1 스칼라, 벡터, 행렬, 텐서

  • 스칼라 : 선형대수가 다루는 다른 대상들은 대부분 여러 개의 수로 이루어진 배열이지만, 스칼라는 그냥 하나의 수이다. 스칼라 변수는 이탤릭으로 표기, 이름으로는 흔히 영문 소문자를 사용한다. 스칼라 변수를 도입할 때는 그 변수가 나타내는 수들의 종류도 명시한다. 
  • 벡터 : 벡터는 여러 개의 수를 특정한 순서로 나열한 것이다. 벡터에 있는 특정한 하나의 수, 즉 벡터의 한 성분은 벡터 안에서의 그 성분의 위치를 뜻하는 색인을 이용해서 지칭한다. 일반적으로 벡터 자체는 굵은 영문 소문자로 표기한다. 벡터의 개별 성분을 지칭할 때는 굵지 않은 이탤릭으로 표기하고 해당 성분의 색인을 아래 첨자 형태로 표기한다. 벡터에 담긴 수들의 종류도 명시, 모든 성분이 실수 집합에 속하고 성분들의 개수가 n 인 벡터는 데카르트 곱으로 R 을 n 번 거듭제곱해서 나온 곱집합에 속한다. 그러한 곱집합을 R^n 으로 표기한다. 벡터의 성분들로 직접 명시할 때는 다음처럼 대괄호 쌍 안에서 성분들을 하나의 열로 나열한다. 
    • 종종 벡터의 일부 성분들을 함께 지칭해야 할 때가 있다. 그럴 때는 해당 성분들의 색인들을 담음 집합을 사용한다. 예를 들어 x_1, x_3, x_6 을 지칭할 때는 집합 S = {1, 3, 6} 을 정의하고 x_S 라고 표기한다. 
  • 행렬 : 행렬은 수들을 2차원으로 배열한 것이다. 따라서 특정한 한 성분을 지칭하려면 하나가 아니라 두 개의 색인이 필요하다. 일반적으로 행렬 자체는 A 처럼 굵은 영문 대문자로 표기한다. 행렬의 개별 성분을 지칭할 때는 행렬 이름을 굵지 않은 이탤릭 소문자로 표기하고 그 다음에 해당 성분의 두 색인을 쉼표로 구분해서 아래 첨자 형태로 표기한다. 
    • 행렬에서 수직 좌표성분이 i 인 성분들을 한꺼번에 지칭할 때는 수평 좌표성분에 : 를 지정한다. 예를 들어 A_i,: 은 A 에서 수직 좌표가 i 인 수평 성분들을 뜻한다. 그러한 성분들을 A 의 i 번째 행이라고 부른다. 
  • 텐서 : 축이 셋 이상인 배열을 사용해야 할 때도 있다. 2차원 행렬을 일반화해서, 수들의 배열을 임의의 개수의 축을 가진 정규 격자 형태로 배치한 것을 가리켜 텐서라고 부른다. 개별 성분은 좌표쌍을 이용해서 표기한다. 

 

행렬에 대한 중요한 연산 하나는 전치 transpose 이다. 한 행렬의 전치, 즉 전치행렬은 원래의 행렬을 주대각을 대칭으로 반사한 것인데, 여기서 주대각이란 해열의 제일 왼쪽 위 성분에서 제일 오른쪽 아래 성분 방향으로의 대각선을 말한다. 행렬 A 의 전치를 A^T 로 표기한다. 

 

벡터는 열이 하나인 행렬이라 할 수 있다. 따라서, 벡터를 전치하면 행이 하나인 행렬이 된다. 종종 벡터의 성분들을 본문 문단 안에 표기할 때는 그런 1행 행렬을 사용하되, 표준적인 열벡터를 만들기 위해 전치 연산도 적용한다. 

스칼라는 성분이 하나인 행렬이라 할 수 있다. 따라서 스칼라의 전치는 스칼라 자기자신이다.

 

두 행렬의 형태가 같으면 더할 수 있다. 행렬의 덧셈은 그냥 대응되는 성분들을 더한 것이다. 

심층 학습의 맥락에서는 좀 덜 표준적인 표기법도 사용한다. 심층 학습에서는 행렬과 벡터를 더해서 또 다른 행렬을 산출하는 연산도 허용한다. 

벡터를 여러 장소에 암묵적으로 복사하는 것을 가리켜 벡터 뿌리기 broadcasting 라고 부른다. 

 

2.2 행렬과 벡터의 곱셈

행렬에 관한 가장 중요한 연산 중 하나는 두 행렬의 곱셈이다. 행렬 A 와 B 를 곱한 결과, 행렬곱 matrix product 는 또 다른 행렬 C 이다. 이러한 행렬곱이 정의되려면 A 의 열 수 가 B 의 행 수와 같아야 한다. 

행렬곱을 나타낼 때는 둘 이상의 행렬을 연달아 표기한다. 

C = AB

표준적인 정의에서, 두 행렬의 행렬곱은 그냥 두 행렬의 대응 성분들을 곱한 것이 앙니다. 그냥 성분들끼리 곱하는 연산도 있는데, 그런 연산을 성분별 곱 element-wise product 또는 아다마르 곱 Hadamard product 라고 부르고 A ◎ B 로 표기한다.

 

차원이 같은 두 벡터 x 와 y 의 내적 dot product 은 행렬 곱 x^T y 이다. 그리고 행렬곱 C = AB 에서 각 성분 C_i,j 는 A 의 행 i 와 B 의 열 j 의 내적에 해당한다. 

 

행렬 곱셈은 비가환적이다. 하지만 두 벡터의 내적은 교환법칙을 만족한다. 

 

행렬곱의 전치를 단순하게 구할 수 있다.

(AB)^T = B^T A^T

이 공식과 스칼라의 전치가 자기 자신이라는 점을 이용하면 항등식을 증명할 수 있다.

x^T y = (x^T y)^T = y^T x

 

일차연립방정식을 다음처럼 행렬과 벡터로 표현할 수 있다.

Ax = b

A 는 알려진 행렬, b 는 알려진 벡터, x 는 방정식을 풀어서 알아내고자 하는 미지수들로 이루어진 벡터이다. 

행렬 벡터 곱 표기법을 이용하면 일차연립방정식을 좀 더 간결하게 표현할 수 있다.

 

2.3 단위행렬과 역행렬

선형대수에는 A 의 여려 값에 대해 Ax = b 를 해석적으로 풀 수 있는 강력한 수단이 있다. 

행렬의 역 matrix inversion 이 바로 그것이다.

행렬의 역을 설명하려면 먼저 단위행렬이라는 개념을 정의해야 한다. 단위행렬은 그것에 어떤 벡터를 곱해도 원래의 벡터가 그대로 나오는 행렬이다. 이처럼 n 차원 벡터를 그대로 보존하는 단위행렬을 I_n 으로 표기한다. 

 

단위행렬의 구조는 간단하다. 주대각 성분들만 1이고 다른 모든 성분은 0이다. 

행렬 A 의 역행렬 또는 행렬 역원을 A^-1 로 표기하고 다음과 같이 정의한다.

A^-1 A = I_n

이제 연립방정식을 다음과 같이 풀 수 있다.

Ax = b

A^-1 Ax = A^-1 b

I_n x = A^-1 b

x = A^-1 b

 

이러한 풀이는 A^-1 을 구할 수 있을 때만 가능하다. 

A^-1 이 존재한다고 할 때, 그것의 닫힌 형식을 구하는 알골지므이 여러 개 있다. 

그러나 기본적으로 A^-1 은 이론상의 도구로 유용할 뿐이다. 대부분의 소프트웨어 응용 프로그램에서 실제로 사용하지는 말아야 한다. 디지털 컴퓨터로는 A^-1 을 제한된 정밀도로만 표현할 수 있기 때문에 대체로 b 의 값들을 활용하는 알고리즘들이 x 를 좀 더 정확하게 추정할 수 있다.

 

2.4 일차종속과 생성공간

A^-1 이 존재하려면, 모든 b 값에 대해 식에 정확히 하나의 해가 있어야 한다. 일부 b 값에 대해서는 해가 하나도 없거나 무한히 많아도 역행렬이 존재할 수 있다. 그러나 특정 b 에 대해 해의 개수가 둘 이상, 무한대 미만인 경우가 있어서는 안 된다. 

x, y 가 둘 다 유효한 해라고 할 때, 임의의 실수 alpha 에 대해 

z = alpha x + (1 - alpha)y

도 유효한 해이다. 

방정식의 해가 몇 개인지 분석할 때는, A 의 열들을 원점에서부터 나아갈 수 있는 서로 다른 방향들로 간주하고, 그 방향 중 실제로 b 에 도달하는 것이 몇 개인지 세면 된다. 이러한 방식에서 x 의 각 성분은 해당 방향으로 얼마나 멀리 나아가야 하는지를 나타낸다. 즉, 각 x_i 은 열 i 의 방향으로의 진행 거리를 나타낸다.

일반화하자면, 이런 종류의 연산을 일차결합 linear combination 이라고 부른다. 

주어진 벡터 집합의 일차결합으로 얻을 수 있는 모든 점의 집합을 그 벡터 집합의 생성공간 span 이라고 부른다.

 

일차연립방정식 Ax = b 에 해가 있는지는 b 가 A 의 열들의 생성공간에 속하는지로 판정할 수 있다. 그러한 특정한 생성공간을 A 의 열공간, 또는 치역이라고 부른다.

 

따라서, 모든 b ∈ R^m 에 대해 일차연립방정식 Ax = b 에 하나의 해가 존재하려면, A 의 열공간이 R^m 전체와 같아야 한다. 만일 R^m 의 어떤 점이 그 열공간에 존재하지 않는다면, 그 점에 해당하는 b 에 대해서는 방정식에 해가 존재하지 않을 가능성이 있다. 

A 의 열공간이 R^m 전체와 같아야 한다는 요구조건은 곧 A 의 열이 적어도 m 개여야 한다는 다시 말해 n >= m 이어야 한다는 요구조건으로 이어진다. 

그런데 n >= m 은 모든 점에 대해 해가 있을 필요조건일 뿐, 충분조건은 아니다. 일부 열들이 중복될 수도 있기 때문이다. 

이러한 종류의 중복성을 공식적으로 일차종속 linear dependence 라고 부른다. 반대로 일차결합 벡터가 하나도 없는 벡터 집합을 일차독립 linear independence 라고 부른다. 

 

행렬에 역이 존재하려면, 모든 b 값에 대해 식의 해가 최대 하나만 존재해야 한다는 조건이 추가된다. 그러려면 행렬의 열이 많아야 m 개이어야 한다. 그렇지 않으면 각 해를 매개변수화하는 방법이 여러 개가 된다.

 

정리하자면, 행렬은 반드시 정방행렬 square matrix 인 행렬이어야 하며, 모든 열이 일차독립이어야 한다. 정방행렬이고 열들이 일차종속인 행렬을 특이 행렬 singular matrix 라고 부른다.

 

A 가 정방행렬이 아니거나, 정방행렬이지만 특이 행렬일 때도 방정식을 푸는 것이 여전히 가능할 수 있지만, 행렬의 역을 이용한 해법으로 반드시 해를 구할 수 있다는 보장은 없다.