벡터의 표현
고등 교과과정에서의 정의
n벡터는 크기와 방향을 가진 물리량으로 다음과 같이 표현될 수 있다.
좌표계 없이 표현
v : 화살표로 표현
v의 크기 : 화살표의 길이 측정
v의 방향 : 화살표의 방향 측정
좌표계 도입하여 표현
v = ( v₁, v₂, ..., vn )
v의 크기
벡터의 내적
좌표계 없이 표현
u * v = ||u|| ||v|| cosΘ
좌표계를 도입해 표현
u * v = u₁v₁ + u₂v₂ + ... + unvn
두 벡터 u, v간 내적이 0이면 두 벡터는 직교(orthogonal) 이다.
u * v = 0 ⇔ u⊥v
u방향으로의 전진은 v 방향에서 전혀 측정되지 않는다. 그 반대도 마찬가지이다.
투영(projection)
두 벡터 u, a가 있을 때, 벡터 u를 a위에 투영한 벡터를
라 하고 다음과 같이 구한다.
길이 방향 기저 a에 대한 좌표값
벡터 u를 a 위에 투영하고 남은 보완 벡터 (complement vector)는
이다.
이 때, 투영 벡터와 보완 벡터는 직교 한다.
또, 투영 벡터와 보완 벡터를 더하면 원래의 벡터로 돌아온다.
직교행렬(Orthogonal Matrix)
직교행렬이란? 주어진 행렬의 모든 열벡터가 서로 직교하는 행렬을 말한다.
ex)
| 2 2 -4 |
| 2 1 7 |
| 6 -1 -1 |
정규직교행렬(orthonormal matrix)이란? 주어진 행렬이 직교행렬이고 모든 열벡터의 크기가 1인 행렬이다.
선형시스템에서의 직교행렬 이용
선형시스템 Ax = b에서 행렬 A가 직교행렬이면, 해 x는 역행렬 A^-1의 계산 없이 다음과 같이 구할 수 있다.
x의 i번째 요소는 투영으로 계산할 수 있다. 즉, 벡터 b를 행렬 A의 각 열벡터 ai에 투영한 연산
으로부터
임을 계산할 수 있다.
그리고 x의 i번째 요소와 j번째 요소의 계산은 독립적이므로 x의 계산은 병렬처리가 가능 하다.
ex)
| 1 4 | | x₁ | = | 6 |
| -2 2 | | x₂ | | -2 |
x₁ = 1*6 + (-2)*(-2) / 1^2 + (-2)^2 = 10 / 5 = 2
x₂ = 4*6 + 2*(-2) / 4^2 + 2^2 = 20 / 20 = 1
선형시스템에서 정규직교행렬(=회전행렬)의 이용
x의 i번째 요소는 내적(inner product)로 계산할 수 있다. 즉, 벡터 b를 행렬 A의 각 열벡터 ai에 투영한 연산
로부터
xi = b*ai
임을 계산할 수 있다.
이 또한 마찬가지로 병렬처리가 가능하다.
QR 분해 : A = QR 주어진 행렬에서 정규직교행렬 추출
QR 분해란? 아래의 형태를 갖는 두 행렬의 곱으로 나누는 행렬분해이다.
A Q R
| * * * | | * * * | | * * * |
| * * * | = | * * * | | 0 * * |
| * * * | | * * * | | 0 0 * |
Ax = b => (QR)x = b => Q(Rx) = b => Qy = b (단, Rx = y )
선형시스템을 다음과 같이 두 단계로 간단히 해결할 수 있다.
1) 내적(inner product) : y 구하기
Q y = b
| * * * | | y₁ | | * |
| * * * | | ... | = | * |
| * * * | | yn | | * |
2) 후방대치법(Back-substitution) : x 구하기
R x = y
| * * * | | x₁ | | y₁ |
| 0 * * | = | ... | = | ... |
| 0 0 * | | xn | | yn |
QR 분해는 그람-슈미트 과정 (Gram-Schmidt process)을 행렬로 코드화한 것이다.
Q : 행렬 A에서 정규직교성을 추출한 행렬
R : 행렬 A에서 정규직교성 추출 후 남은(residual), upper triangular matrix(상삼각행렬)
QR 분해는 어디에 활용되는가?
빠른 계산 : 선형시스템 Ax = b의 해를 구할 때 정규직교행렬 Q를 이용한 계산 부분은 병렬처리로 빨리 계산할 수 있다. R은 병렬처리할 수 ㅇ벗다.
b가 자주 업데이트되는 경우 : 선형시스템 Ax = b에서 행렬 A는 고정되어 있고, b는 자주 변하는 문제가 있을 때 미리 QR로 분해해두면 b가 업데이트될 때마다 해 x를 실시간으로 구할 수 있다.
QR 분해 vs LU 분해
LU 분해는 병렬처리할 수 없다.
QR 분해는 Q 행렬이 꽉찬 구조를 가진 행렬이라 메모리 사용량이 많다.
특이값 분해(SVD, Singular Value Decomposition)
Amxn = Umxm Dmxn (V^T)nxn
| * * * | | * * * * | | * 0 0 | | * * * |
| * * * | = | * * * * | | 0 * 0 | | * * * |
| * * * | | * * * * | | 0 0 0 | | * * * |
| * * * | | * * * * | | 0 0 0 | | * * * |
행렬 U, D, V는 다음과 같은 의미가 있다.
U : m차원 회전행렬 (정규직교행렬)
D : n차원 확대축소 (확대축소 크기에 따른 정렬 형태)
V : n차원 회전행렬 (정규직교행렬)
ex)
그림출처 : 프로그래머스 스쿨
U, D, V의 열벡터를 순서대로 p개 취한다면, 강한 응집성을 가지는 p개의 방향으로 수선의 발을 내린 A의 근사치 A'를 재구성할 수 있다. (근사치를 취한 값도 원래의 행렬과 똑같은 형태를 띄게 되지만, 의미 있는 정보만이 남아있게 된다.)
그림출처 : 프로그래머스 스쿨
주성분분석(Principal Com ponent Analysis, PCA)
주성분분석이란? 데이터의 공분산행렬(covariance matrix)에 대한 고유값 분해에 기반을 둔 직교분해이다.
K개의 n차원 데이터
가 있을 때, 데이터의 중심 m과 공분산행렬 C는 다음과 같이 구한다.
공분산행렬에 대한 주성분분석은 아래와 같다.
Cnxn = Wnxn Dnxn (W^T)nxn
| * * * | | * * * | | λ₁ 0 0 | | * * * |
| * * * | = | * * * | | 0 ... 0 | | * * * |
| * * * | | * * * | | 0 0 λn | | * * * |
W : n차원 회전행렬
D : n차원 확대축소
집합(Set)
연산에 닫혀 있는 집합
집합이 연산이 닫혀 있다는 것은? 집합에서 임의의 원소를 뽑아 연산을 수행한 결과가 여전히 집합의 원소로 있다면, 해당 집합은 연산에 닫혀 있다고 한다.
ex)
{ x|x ∈ R } 실수 집합
위 집합은 덧셈 연산과 곱셉 연산 모두 닫혀 있다.
{ -1, 0, 1 }
위 집합은 덧셈 연산에는 닫혀 있지 않지만 곱셈 연산에는 닫혀 있다.
공간(space)
공간이란? 두 연산에 닫혀 있는 집합
덧셈 연산에 닫혀 있다.
스칼라 곱 연산에 닫혀 있다.
모든 n벡터 집합 R^n은 n차원 벡터 공간(vector space)이라 부를 수 있다.
열공간(Column Space)
행렬 A의 열벡터들에 대한 가능한 모든 선형조합의 결과 를 모아 집합으로 구성할 수 있다. 이 집합을 열공간이라 하고 다음과 같이 표기한다.
col(A)
Consistenent Linear System
Inconsistent Lienar System
최소제곱법(least squares method)
최소제곱법이란? 해가 없음에도 불구하고 할 수 있는 최선을 구하는 것이다.
행렬 A가 정의하는 열공간에서 목표 b를 만들 수 없을 때, 가장 b와 유사한 벡터는 열공간에 투영한 지점일 것이다.
즉, 달성가능한 최선의 목표 proj_wb를 생각할 수 있다. (이제 ^는 윗 첨자 _는 아랫첨자를 표시하는데 사용하겠다...)
최소제곱법은 원래의 선행시스템 Ax = b가 아닌 다음의 선형시스템을 해결한다.
Ax' = b' (단, b' = proj_wb)
이 방법은 목표 b와 달성가능한 목표 b'의 차이를 나타내는 벡터 ( b - b' )의 제곱길이를 최소화시키는 의미 를 가지기 때문에 최소제곱법이라 불리운다.
최소제곱법 해를 구하는 법
주어진 선형 시스템의 양변에 전치행렬 A^T를 곱하면 최소제곱법의 해룰 구할 수 있다.
Ax = b
⇒ A^T Ax' = A^Tb
⇒ x' = ( A^T A )^-1 A^Tb
최소제곱법으로 구한 해는 원래의 선형시스템을 만족하는 해는 아니나, 다음을 만족하는 근사해가 된다.
Ax' = proj_wb
최소제곱법 응용
2차원 공간에 m개의 정점 (({(x_i, y_i)}^m)_i=1)이 그림과 같이 있을 때, 이를 잘 설명할 수 있는 직선 y = mx + b를 구하는 문제를 생각해 보자. 이를 선형회귀(linear regression) 문제라 한다.
선형회귀 문제는 다음과 같이 최소제곱법으로 풀 수 있다.
1) 선형시스템 구성 : 직선이 각 정점을 모두 지나간다고 가정하고 선형시스템 Ax = b 구성 (단, 해는 존재 X)
2) 최소제곱법 적용 : A^TAx' = A^Tb를 생각하고, x' = | m' | 를 구한다.
| b' |
통계학(statistics)
통계학이란? 데이터 수집(collection), 구성(organization), 분석(analysis), 해석(interpretation), 표현(presentation)에 관한 학문
통계학의 구분
기술통계학 (descriptive statistics) - 수집, 구성, 표현
추측통계학 (inferential statistics) - 분석, 해석
개념 정의
모집단 (population)
어떤 질문이나 실험을 위해 관심의 대상이 된느 개체나 사건의 집합
ex) 전교 남학생의 키
모수 (parameter)
표본 (sample)
도수(Frequency)
도수란? 어떤 사건이 실험이나 관찰로부터 발생한 횟수
표현 방법
도수분포표 (Frequency Distribution Table)
막대그래프 (Bar graph)
히스토그램 (Histogram) (막대그리프와 비슷한 형태지만 순서가 중요하고, 막대끼리 띄워진 부분이 없음)
상대도수
도수를 전체 원소의 수로 나눈 것
줄기-잎 그림
양적 자료를 줄기와 잎으로 구분하는 것이다.
그림출처 : www.safetygo.com/xe/index.php?mid=column&listStyle=viewer&category=392&document_srl=12470
줄기-잎 그림 예시
그림에 나타난 데이터는 18, 19, 19, 20, 20, 20, 21 ... , 61, 64이다.
분포도와 데이터값을 바로 알 수 있다.
평균 (mean)
전체 데이터를 더한 후 데이터의 갯수만큼 나눈 것
x₁ + x₂ + ... + x_n / n = 1/n (n(sigma)i=1)x_i
모평균 μ (population mean)
모집단 전체 자료일 경우
표본 평균 xbar
모집단에서 추출한 표본일 경우
중앙값(Median)
평균의 경우 극단 값의 영향을 많이 받는다. 이를 보완하기 위한 것이 중앙값 이다.
중앙값이란? 주어진 자료를 높은 쪽 절반과 낮은 쪽 절반으로 나누는 값, 자료를 순서대로 나열했을 때 가운데 있는 값을 의미
자료의 수가 n일 때,
n이 홀수면 (n+1)/2번째 자료값
n이 짝수면 n/2번째와 n/2+1번째 자료값의 평균
분산 (Variance)
편차의 제곱의 합을 자료의 수로 나눈 값 이다. (편차란? 값과 평균의 차이)
자료가 모집단일 경우는 모분산(population variance)
σ^2 = 1/N(N(sigma)i=1)(x_i - μ)^2
자료가 표본일 경우는 표본분산(sample variance) scipy 모듈의 분산은 표본분산을 이용하는 것이다.
s^2 = 1/n-1(n(sigma)i=1)(x_i - xbar)^2
표준편차 (Standard Deviation)
분산의 양의 제곱근 이다.
모표준편차(population standard deviation)
σ = root(1/N(N(sigma)i=1)(x_i - μ)^2)
표본표준편차(sample standard deviation)
s^2 = root(1/n-1(n(sigma)i=1)(x_i - xbar)^2)
범위(Range)
자료를 정렬하였을 때 가장 큰 값과 가장 작은 값의 차이
사분위수 (Quartile)
전체 자료를 정렬했을 때 1/4, 1/2, 3/4 위치에 있는 숫자
사분위범위 (IOR, interquartile range)
Q₃ - Q₁
z-score
어떤 값이 평균으로부터 몇 표준편차 떨어져있는지를 의미하는 값
모집단의 경우
z = x - μ / σ
표본의 경우
z = x - xbar / s