A^-1 이 존재하려면 모든 b 값에 대해 하나의 Ax = b 가 있어야 한다.
x, y 가 유요한 해라고 할 때, 임의의 실수 a에 대해
z = ax + (1 - a)y
도 유요한 해이다.
방정식의 해가 몇 개인지 분석할 때는 A 의 열들을 원점에서부터 나아갈 수 있는 서로 다른 방향들로 간주하고, 그 방향 중 실제로 b 에 도달하는 것이 몇 개인지 세면 된다.
이러한 방식에서 x 의 각 성분은 해당 방향으로 얼마나 멀리 나아가야 하는지를 나타낸다. 즉, 각 x_i 은 열 i 의 방향으로의 진행 거리를 나타낸다.
이런 종류의 연산을 일차결합 linear combination 이라고 부른다. 공식으로 표현하자면, 벡터 집합의 일차결합은 다음처럼 각 벡터 v 에 해당 스칼라 계수르 모두 더한 것이다.
주어진 벡터 집하의 일차결합으로 얻을 수 있는 모든 점의 집합을 그 벡터 집합의 생성공간 span 이라고 부른다.
연립일차방정식 Ax = b 에 해가 있는지는 b 가 A 의 열들의 생성공간에 속하는지로 판정할 수 있다.
그러한 특정한 생성공간을 A 의 열공간 또는 치역이라고 부른다.
따라서 모든 b 에 대해 일차연립방정식 Ax = b 에 하나의 해가 존재하려면, A 의 열공간이 R^m 전체와 같아야 한다.
만일 R^m 의 어떤 점이 그 열공간에 존재하지 않는다면, 그 점에 해당하는 b 에 대해서는 방정식에 해가 존재하지 않을 가능성이 있다.
A 의 열공간이 R^m 전체와 같아야 한다는 요구조건은 곧 A 의 열이 적어도 m 개여야 하다는, n >= m 이어야 한다는 요구조건으로 이어진다.
만일 그렇지 않다면 열공간의 차원 수가 m 보다 작을 것이기 때문이다.
3*2 행렬을 생각 목표 벡터 b 는 3차원이지만 x 는 2차원일 뿐으므로 R^3 차원의 2차원 평면에서만 해를 찾게 된다. 방정식의 해는 만일 b 가 그 평면에 있으면, 오직 그럴 때만 존재한다.
행렬의 중복성을 일차종속이라고 부르고, 일차결합 벡터가 하나도 없는 집합을 일차독립이라고 부른다.
정리하자면, 행렬은 반드시 정방행렬이어야 핳며, 모든 열이 일차독립이어야 한다.
노름
벡터의 크기를 측정해야 하는 경우 노름이라고 부르는 함수를 이용해서 측정한다.
L^p 로 표기하는 노름의 정의는 다음과 같다.
일반적으로 노름은 벡터를 음이 아닌 값으로 사상하는 함수이다.
직관적으로 이해하자면, 벡터 x 의 노름은 원점에서 점 x 까지의 거리이다.
노름은 다음과 같은 성질들을 만족하는 임의의 함수 f 이다.
- f(x) = 0 => x = 0
- f(x+y) <= f(x) + f(y) (삼각부등식)
- f(ax) = |a|f(x)
p=2 인 노름을 유클리드 노름이라고 부른다. 첨자를 생략하는 경우가 많다.
또한, 주어진 벡터의 크기를 제곱 L^2 노름으로 측정하는 경우도 흔하다. x^T x 로 계산할 수 있다.
L^2 노름 자체보다 제곱 L^2 노름이 다루기 편하다.
x 의 각 성분에 대한 미분은 오직 x 의 해당 성분에만 의존하기 때ㅜㅁㄴ,
L^2 노름의 모든 미분은 벡터 전체에 의존한다.
많은 경우 제곱 L^2 노름은 원점 부근에서 아주 느리게 증가하기 때문에 바람직하지 않다. 기계 학습 응용에선 0과 같은 성분과 0이 아닌 성분을 구분하는 것이 중요한 것들이 많다.
최대 노름 L^INF 는 벡터에서 크기가 가장 큰 성분의 절댓값이다.
행렬의 크기를 구해야 할 때도 있다.
프로베니우스 노름
고윳값 분해
수학적 대상 중에는 그것을 구성요소들로 분해해서, 표현 방식과는 무관하게 보편적인 어떤 성질을 찾아내어 더 잘 이해할 수 있는 것들이 있다.
가장 널리 쓰이는 행렬 분해 방법의 하나는 고윳값 분해 eigendecomposition 이다. 행렬을 일단의 고유벡터들과 고윳값들로 분해한다.
정방행렬 A 의 고유벡터는 하나의 0 이 아닌 벡터 v 인데, A 와 곱해도 v 의 축척만 변한다는 조건을 만족한다.
Av = lambda v
여기서 스칼라 lambda 를 고유벡터에 대응되는 고윳값 eigenvalue 라고 부른다.
v 가 A 의 고유벡터이면 비례한 벡터 sv 도 A 의 고유벡터, sv 의 고윳값은 v 의 고윳값과 같다.
행렬 A 에 일차독립인 n 개의 고유벡터들이 있으며, 이들에 대응되는 고윳값들이 있다고 하자.
이고유벡터들을 열마다 하나씩 연결해서 행렬 V 를 만들 수 있다.
마찬가지로 고유값들로 하나의 벡터를 만들 수 있다. 이때, A 의 고윳값 분해 eigendecomposition 은 다음과 같이 정의된다.
기존 행렬을 고윳값들과 고유벡터들로 분해할 필요가 있는 경우가 많다.
행렬을 분해하면 행렬의 특정 성질을 분석하는 데 도움이 된다.
특잇값 분해
Singular Value Decomposition 은 행렬을 특이 벡터 singular vector 들과 특잇값 singular value 들로 분해한다.
특이값 분해는 A 가 세 행렬의 곱으로 표현된다.
U 와 V 는 둘 다 직교행렬로 정의된다.
행렬 D 는 대각행렬로 정의된다.
D 의 주대각 성분을 행렬 A 의 특잇값 singular value 라고 부른다.
A 의 특잇값 분해를 A 의 함수의 고윳값 분해로 표현할 수 있다. A 의 좌특이벡터는 AA^T 의 고유벡터이다. A 의 우특이 벡터는 A^TA 의 고유벡터이다.
가장 유용한 특징으로 SVD 를 이용하면 역행렬의 정의를 비정방행렬에도 부분적으로나마 일반화할 수 있다는 것이다.
무어-펜로즈 유사역행렬
정방행렬이 아닌 행렬에는 역행렬이 정의되지 않는다.
A 의 유사역행렬은 다음과 같이 정의된다.
하지만 실제로 쓰이는 알고리즘들은 위 정의가 아니라 다음과 같은 정의에 기초한다.
UDV 는 A 고윳값 분해이다.
대각행렬 D 의 유사역행렬 D^+ 는 D 의 0이 아닌 성분의 역수를 취하고 그 결과를 전치해서 구할 수 있다.
A 가 행보다 열이 많은 행렬일 때, 여러 가능 해 중 유클리드노름이 최소인 해를 얻게 된다.
행이 더 많은 행렬일 경우 y 와 최대한 가까운 Ax 에 해당하는 x 를 얻게 된다.
행렬식
정방행렬의 행렬식은 행렬을 실수 스칼라로 사상하는 함수, 모든 고윳값을 곱한 것과 같다.
행렬식의 절댓값은 주어진 행렬을 곱했을 때 공간이 얼마나 확장, 축소되는지를 나타내는 측도라고 할 수 있다.
주성분분석
'ml_interview' 카테고리의 다른 글
확률적 생성 모델(시그모이드 함수의 등장??!?) (0) | 2024.07.09 |
---|---|
추론과 결정(생성 모델) (0) | 2024.07.09 |
퍼셉트론 알고리즘 (0) | 2024.07.09 |
수치 계산 (0) | 2024.07.02 |
확률론과 정보 이론 (0) | 2024.07.02 |