안정민 2025. 3. 11. 14:52

2.0  서론

추상적인 개념 (intuitive concepts) 을 구체화 할 때 가장 보편적인 방법 

=> 개념을 구성하는 객체 집합 (object, symbol) 과 객체를 조작할 수 있는 규칙 집합 (set of rules)를 건설해나가는 것

=> 이것을 algebra 라고 함

 

Linear Algebra 라는 것은 따라서 벡터라는 객체를 다루는 규칙 집합을 알아가는 학문임

벡터는 geometric vector을 의미하며, 문자 위에 작은 화살표 표시를 함으로써 표기한다

 

벡터는 [두 벡터 간의 덧셈 연산] 이 가능한 객체이며 [스칼라곱] 이 가능한 특수한 객체이다

이 두 연산이 가능한 객체를 벡터라고 할 수 있다고 정의한다

이와 같은 벡터 객체의 종류는 다음과 같다

 

(1) geometric vectors 기하학적 벡터

기하학적 벡터는 그림에서 볼 수 있듯이, 최소 이차원의 평면에 나타내어질 수 있는 방향성을 가진 선분이다 (directed segment)

두 개의 기하학적 벡터는 더해질 수 있으며, 더해진 값은 또 다른 벡터를 표상한다

또한 하나의 벡터에 스칼라곱을 실행한 결과값 또한 하나의 벡터로 나타내어진다 (λ→x, λ ∈) : 원래 벡터가 scaled 된다고 이야기함

geometric vector을 통해 방향과 크기에 대한 직관을 적용한 수학적 연산을 진행해나갈 수 있게 된다

 

 

(2) 다항식

다항식도 벡터이다 : 두 다항식은 서로 더해져 새로운 다항식을 만들어낼 수 있고, 스칼라배가 가능하다

조금 unusual 하긴 하지만 다항식 역시 벡터로 간주가 가능하다

그러나 기하학적 벡터와는 많이 다름 => 기하학적 벡터는 구체적인 그림, 다항식은 추상적인 개념

그러나 두 개념 모두 벡터에 해당이 된다고 볼 수 있음

 

 

(3) 음성 시그널

 

(4) 실수 집합 ℝ^n 의 요소

세 개의 숫자로 이루어진 숫자 예제, 이는 행렬로 나타내어짐

이처럼 나타내어지는 행렬들은 모두 각각의 행렬끼리의 elementwise 덧셈이 가능하며, 스칼라곱이 가능하다

벡터를 ℝ^n 내의 요소로 간주하면 대략적으로 컴퓨터에서 실수 배열과 대응됨

많은 프로그래밍 언어가 배열 연산을 자원하기 때문에 벡터 연산이 포함된 알고리즘을 편리하게 구현 가능하다

 

 

수학에서 중요한 개념 중 하나는 '닫힘 (closure)' 

=> 내가 제안한 연산을 통해 얻을 수 있는 전체 결과 집합은 무엇인가?

=> 벡터의 경우, 가장 작은 벡터 집합에서 시작하여 벡터를 서로 더하고 scaling 함으로써 얻을 수 있는 결과 집합은 무엇인가?

이는 vector space 라는 개념을 만들어낸다.

벡터 공간 (vector space) 이란 따라서 벡터의 연산을 통해 얻을 수 있는 전체 결과 집합 (닫힌 공간) 이라고 정의내릴 수 있다

 

Linear Algebra는 머신러닝에서 중요한 역할을 가진다

 

 

2.1  System of Linear Equations

선형 연산 시스템은 선형대수학에서 중요한 역할을 함

=> 많은 문제들이 선형 연산으로 형식화되고, 선형대수학이 이를 해결하기 위한 솔루션을 줌

 

붉은 색으로 박스가 되어있는 식은 전형적인 선형방정식의 형태이고

이 식에서의 x1, x2, x3... xn 는 방정식의 미지수로 설정되어있는 요소들이다

선형 방정식 시스템은 다음과 같은 종류가 있을 수 있다

 

(1) 해를 가지지 않는 경우

첫 번째 방정식과 두 번째 방정식을 더하게 되면 2*x1+ 3*x3 = 5 가 되는데, 이는 세 번짜 방정식과 모순되기 때문이다

 

(2) 유일해를 가지는 경우

첫 번째 방정식과 세 번째 방정식을 통해 x1의 값이 1이라는 것을 얻게 된다

첫 번째 방정식과 두 번째 방정식을 더하여 x3의 값이 1이라는 것을 알게 되고, x2의 값은 자동으로 1이 된다

따라서 위 방정식은 (1, 1, 1) 의 해를 유일하게 가진다

 

(3) 무수히 많은 해를 가지는 경우

첫 번째 방정식과 두 번째 방정식을 더하면 세 번째 방정식과 동일하므로, 

세 번째 방정식은 중복된 방정식으로 간주할 수 있고, 첫 번째 식과 두 번째 식만 고려하면

여기서 x3 = a (a는 실수 집합 내의 원소) 의 자유변수로 두게 된다면, 가능한 해의 집합을 정리할 수 있다

 

일반적으로 실세계 연산에서는, 단 하나의 해를 가지는 경우보다 무수히 많은 해를 가지게 되는 경우 혹은 해가 없는 경우가 많다

즉, 선형방정식으로 해를 구할 수 없는 상황들이 많은데

이럴 때 우리는 Linear Regression을 활용하여 문제를 해결 가능하다

 

두 개의 변수 x1, x2 를 가지는 선형 방정식의 경우 

각각의 선형 방정식은 x1x2_평면 상의 직선을 정의하게 된다

선형 방정식 시스템의 해는 모든 방정식을 동시에 만족해야 하기 때문에, 해의 집합은 두 직선의 교점 (교집합) 이 된다

그리고 이 교집합은 [직선, 모든 해가 겹침], [한 점, 유일해], [공집합, 두 직선이 평행] 의 3가지 형태를 가질 수 있음

 

세 개의 변수 x1, x2, x3을 가지는 선형 방정식 시스템의 경우

각 선형 방정식은 3차원 공간에서 하나의 평면을 정의하게 된다

이 평면들을 교차시키게 되면, 즉 모든 선형 방정식을 동시에 만족하는 해를 찾으면 다음 4가지 형태를 가질 수 있음

=> [평면, 모든 해가 겹침], [직선], [한 점], [공집합, 해 없음, 세 평면이 공통된 교점을 갖지 않음]

 

조금 더 시스템적으로 잡근하기 위해 우리는 계수 벡터 (coefficient matrice)를 하나의 행렬로 묶어 계산할 것이다

그리고 이를 조금 더 보기 좋게 정리하면 다음과 같아진다

 

 

 

2.2 Matrices

행렬 (matrix)은 선형대수학에서 아주 중요한 역할을 담당 => 선형방정식을 간략하게 나타내줌 + 선형방정식을 대변하기도 함

행렬의 정의는 다음과 같음


💡  행렬 (Matrix)

m, n이 모두 실수집합 내의 변수일 때,
(m, n) 매트릭스 A는 m 개의 행과 n개의 열을 가지는, 내부에 a_ij의 요소들을 가지는 직사각형 모양의 도식 체계이다 


 

일반적인 관례에 따라 (1, n) 행렬은 '행' 이라고 부르고, (m, 1) 행렬은 '열' 이라고 부른다

이러한 특별한 행렬의 경우 각각 '행벡터', '열벡터' 라고 불리게 된다

 

 

하나의 행렬은 벡터 공간에서 행렬을 다루기 쉽도록 하나의 벡터로 변환이 가능하다

=> 벡터화 (vectorization)

신경망의 경우 행렬을 벡터로 변환하면 뉴런의 가중치를 하나의 긴 벡터로 처리할 수 있어 연산이 효율적이므로 자주 사용

대표적인 방법은 행렬을 열벡터로 펼치는 방법이다

즉, 주어진 행렬 A의 모든 열을 위에서 아래로 차례로 쌓는 것

a ∈ ℝ^mn, 즉 크기가 (m, n)인 행렬에서 크기가 (m*n, 1)인 열벡터로의 변환이 가능하다

 

 

2.2.1 Matrix Addition and Multiplication

차원이 동일한 두 행렬 A, B를 더하면 (element-wise sum) 결과는 다음과 같다

 

앞 행렬의 열차원과 뒷 행렬의 행차원이 동일한 두 행렬 A, B를 곱한 행렬 C는 다음과 같이 계산된다

즉, 원소 c_ij를 계산하려면 행렬 A의 i 번째 행과 행렬 B의 j번째 열에 해당하는 원소들을 각각 element-wise하게 각각 곱한 뒤, 그 값을 모두 합한 값으로 cell에 할당하게 된다

이와 같이 행렬의 곱셈은 element-wise 곱셈을 수행하는 것이 아니라 위와 같은 방식을 따르게 되는데,

이를 행과 열의 내적 (dot product) 라고 부르게 된다

또한 곱셈을 수행하고 있다는 것을 명확하게 나타내어야 하는 경우, '·' 기호를 활용하여 곱셈을 명시적으로 나타냄 => A·B

 

다만 행렬은 서로 근접한 차원이 동일한 경우에만 곱셈이 성립한다

즉, 앞 행렬의 열차원과 뒷 행렬의 행차원이 동일해야만 곱셈을 수행할 수 있다

이와 같은 경우 B·A 연산은 m==n 인 경우에만 성립하며, m과 n이 다를 경우에는 수행할 수 없게 된다

**그러나 element-wise multiplication을 수행해야하는 경우도 존재하는데, 이는 아다마르 곱셈 (Hadamard product) 라고 불린다

이와 같이 행렬의 곱셈은 element-wise로 진행되지 않기 때문에 교환법칙이 성립하지 않는다 (not commutative)

 

항등 행렬 (identity matrix)의 정의는 다음과 같다


💡  항등 행렬 (identity matrix)

모든 대각원소들이 1 이며 나머지 원소들이 0인 정방행렬



 

 

이와 같은 특징들을 모두 종합하여 행렬의 특성을 요약하면 다음과 같다 :

(1) 결합법칙 (associativity) 이 성립한다 : (AB)C == A(BC)

(2) 분배법칙 (distributivity) 이 성립한다 : (A+B)C == AC + BC

(3) 항등행렬과의 곱셈 : Im·A == A·In ​== A

 

 

2.2.2 Inverse and Transpose

💡  역행렬 (inverse matrix)

(n,n) 차원의 정방행렬 A가 있고, 동일한 차원의 정방행렬 B가 있을 때,
A·B == In == B·A 를 만족하는,
즉, A의 앞이든 뒤든 곱하면 항등행렬이 결과값으로 나오는 행렬 B가 있다면

우리는 이 행렬 B를 행렬 A의 역행렬 (inverse) 이라고 부르고, A^-1 이라고 표기한다

 

즉 역행렬이란 본래 행렬과 곱하였을 때와 역으로 곱하였을 때의 그 결과값이 항등행렬 (I) 인 행렬을 의미한다

A·B 와 B·A 모두 항등행렬을 만족해야 함

 

모든 행렬이 역행렬을 가지는 것은 아니다.

  • 역행렬이 존재하는 경우 : 행렬 A는 정칙 (regular), 가역 (invertible), 비특이 (nonsingular) 행렬이라고 한다
  • 역행렬이 존재하지 않음 : 행렬 A는 비가역 (non-invertible), 특이 (singular) 행렬이라고 부른다

그리고 행렬의 역행렬이 존재할 경우, 단 하나만의 역행렬이 존재하는 유일성을 만족한다

즉, 하나의 행렬에 대해 최대 하나의 역행렬이 존재할 수 있다

 

 

본래 행렬 A의 차원이 (2, 2)의 정방행렬이라면 역행렬 A^-1 를 구하는 과정은 공식화가 가능하다

이때 분모가 a_11 * a_22 − a_12 * a_21 != 0 조건을 만족해야 한다

 

** 이후에 자세한 설명이 나오겠지만 여기서 a_11 * a_22 − a_12 * a_21 는 위 행렬의 행렬식 (deteminant) 

=> 이후에 이 행렬식으로 행렬이 가역행렬인지 아닌지 판별

 


💡  전치 행렬 (transpose matrix)

(n,m) 차원의 행렬 A 와 (m, n) 차원의 행렬 B에 대해서
 행렬의 모든 원소에 대해  a_ij == b_ji  가 만족한다면 B는 A의 전치행렬이라고 부르며, B= A⊤ 라고 표기한다

 

역행렬과 전치행렬에 대해 다음 공식이 성립한다

역행렬은 분배법칙 성립 안 하고 전치행렬은 가능

 

💡  대칭행렬 (symmetric matrix)

A= A⊤ 가 성립하는 정방행렬을 대칭행렬이라고 부른다

 

여기서 주의해야 할 점은 대칭행렬이 될 필수적인 조건은 반드시 정방행렬이어야 한다는 것이다

 

 

2.2.3 Multiplication by a Scalar

행렬에 스칼라 λ 를 곱하게 된다면 element wise의 방식으로 각각의 행렬 요소들이 λ 의 크기만큼 scaling이 된다

즉 λ*A = K, K_ij = λ * a_ij 가 모든 요소에 대해 성립한다

따라서 결합법칙과 분배법칙이 모두 성립한다

 

 

2.2.4 Compact Representations of Systems of Linear Equations

위와 같은 선형식 시스템이 존재한다고 하였을 때

우리는 행렬 법칙을 고려한 행렬식으로 위 다항식 시스템을 아래와 같이 조금 더 compact 하게 나타낼 수 있게 된다

여기서 x1 이 첫 번째 열을 scaling 하고, x2가 두 번째 열, x3가 세 번째 열을 scaling한다는 것에 주목해야 한다

=> 행렬의 내적을 통해 각각의 다항식이 완성이 된다는 것을 이해

 

이와 같이 선형방정식 시스템 (연립방정식 !) 은 행렬 형식으로 나타내게 되면 Ax= b 의 꼴을 갖추게 된다