* 기울기
slope : 기울기
= 세로의 증가량 / 가로의 증가량 -> 선이 가파른 정도
slope = Δy / Δx
= change in y / change in x
= Δvertical / Δhorizontal
수평선의 기울기 : x가 증가해도 y의 증가량은 0 -> 수평선의 기울기는 0이다.
y = 2x + 3은 기울기와 y절편(x가 0일 때 y의 값)을 이용하여 나타낸 일차함수
즉 위의 식에서 기울기는 2, y절편은 3
일반화하면 y = mx + b에서 기울기는 m, y절편은 b
* 그래프의 평균변화율 : average rate of change
그래프의 순간적 변화율은 미분으로 구할 수 있다.
평균변화율은 점과 점 사이 직선의 기울기를 통해 구할 수 있다.
즉 어떤 그래프가 (x1, y1), (x2, y2)라는 좌표를 가진다면
이 그래프의 x가 x1<=x<=x2일 때의 평균 변화율은 (y2-y1)/(x2-x1)
위의 것들은 고등학교에서 배운 것들을 한번 되짚어볼 겸
칸아카데미에서 제공하는 선형대수학 이전의 과정들을 훑다가 기록해둘 만한 것들을 기록해둔다.
이제부터 본격적으로 선형대수학 과정 시작!
일단 목표는 3~4주 안에 선형대수학 과정을 끝내는 것!
시작하기 전 나의 위치 : 문과생, 벡터에 대한 간단한 개념은 있으나 그뿐.
칸아카데미 선형대수학을 공부하는 이유 : 머신러닝 분야의 논문을 읽고 이해하는 데에 있어 내가 잘 알지 못하는 선형대수학의 개념들이 이해에 큰 걸림돌로 작용했다. MIT선형대수학을 공부할까 했지만 칸아카데미 선형대수학을 먼저 공부한 것이 MIT 선형대수학을 공부하는 데에 많은 도움을 주었다는 한 블로그를 읽고 칸아카데미의 선형대수학 과정을 선택했다.
1. 벡터와 공간 - 1) 벡터
* 선형대수학을 위한 벡터란?
vector는 magnitude(크기)와 direction(방향)을 가진다.
강의에서는 속도가 speed와 방향을 가지는 것에 빗대어 설명해주셨다. (빗대어?라는 말이 정확할지는 모르겠다. 나는 속도가 vector의 일종이라는 뜻으로 이해했다.)
vector는 보통 소문자 v 위에 수평 화살표를 그려넣어 표기한다.
보통 vector를 설명할 때 scalar와 함께 설명하는 듯한데, (이건 예전 고려대학교 빅데이터 과정을 수강할 때 고려대학교 교수님께 들은 것...)
당시 교수님께서 scalar는 크기만 있지만 vector는 크기와 방향을 가지고 있다고 그 차이를 설명해주셨다.
시작점과 상관없이 크기와 방향만 같으면 모두 같은 벡터!
vector = (x, y) = [x, y] 수치상으로는 이렇게 나타낼 수 있다.
나는 [x, y] 형태로 되어 있는 걸 가장 많이 접했지만...(python의 넘파이 배열)
* 실좌표공간
R2(=IR2) : 2차원 실수좌표공간 (real coordinate space)
- all possible real-valued 2-tuple으로 이루어져 있다!
여기서 tuple이라고 하는 건 ordered list of numbers, 즉 순서를 가지는 숫자들의 배열
Rn : n차원 실수좌표공간
* 대수와 그래프를 이용한 벡터의 덧셈
두 벡터를 더한다는 것은 이동과 같다.
벡터 a와 벡터 b를 더하면 벡터 a의 시작점과, 벡터 a의 끝점에서 벡터 b를 시작시킨 것의 끝점을 화살표로 이은 것과 같은 벡터가 생긴다!
(cf) 벡터의 시각화는 화살표 형식으로)
* 벡터와 스칼라의 곱셈
어떤 벡터에 +3이라는 양수의 스칼라를 곱하면 방향은 변하지 않고 크기만 변한다.
즉 한 벡터에 양수의 스칼라를 곱하면 크기만 변한다. scalar의 곱은 벡터를 확대한다.
그러나 만약 음수의 스칼라를 곱한다면 벡터의 방향이 뒤집힌다.
벡터끼리 뺀 것은 두 벡터의 끝점끼리 잇는 것으로 나타낼 수 있다.
* 단위 벡터란? unit vector?
이때부터 조금 이해가 안 가는 게 생기기 시작했다.
단위 벡터라고 하는 것이 결국 1의 크기를 가진 벡터인데,
만약 v가 Rn의 0이 아닌 벡터이면,
v와 같은 방향을 가지는 단위 벡터는 다음 수식과 같다.
여기서 갑자기 못 보던 게 튀어나왔다.
||v||가 뭐지? 수식 상으로는 v=(x, y) 일 때
||v|| = x의 제곱과 y의 제곱을 더한 것에 루트를 씌운 것이었다.
어디서 봤다 했더니 피타고라스 정리였다.
즉...||v||는 v의 크기!
정리하면 v의 단위 벡터는 v를 v의 크기로 나눈 것.
이렇게 하면 v와 방향은 같지만 크기는 1인 벡터를 구할 수 있다!
그런데 왜 단위 벡터를 만들지?
"단위 벡터는 벡터를 곱하려고 할 때 매우 유용하다. 벡터의 곱은 벡터의 크기를 가져오는 것과 연관된다. 그리고 만약 이것이 단위 벡터인 경우 곱셈은 정말로 단순해진다. 벡터를 단위 형태로 변환하는 것을 Normalizing이라고 하고 벡터의 요소들을 크기로 나누어서 구할 수 있다." (출처 : 네이버 블로그 Why am I here? Where am I going?)
* 벡터의 덧셈과 뺄셈
그냥 넘파이 array를 가지고 더하고 빼고 했던 것처럼 더하고 빼면 되는 거 아닌가? 했던 내 단순한 생각이 예제를 풀면서 무너졌다.
두 벡터의 크기, 및 세타만 주고 더하라는 문제.
삼각함수를 활용하여 두 벡터의 값을 구한 뒤 더하는 문제였다.
삼각함수가 전혀 기억이 나지 않았던 (cos, sin, tan이라는 이름 정도는 기억난다....) 나는 곧바로 검색했다.
sinθ = h(=y)/r(반지름)
cosθ = 밑변의 길이(=x)/r
tanθ = sinθ/cosθ = y/x
각각 x와 y에 대한 식으로 정리하면
x = r*cosθ
y = r*sinθ
벡터에 적용하게 되면
x = 벡터의 크기*cosθ
y = 벡터의 크기*sinθ
예제들은 이를 이용해서 벡터의 덧셈과 뺄셈을 하는 문제가 대부분이었다.
* 직선의 매개변수 표현
v = (2,1)이고 S = { cv | c∈R }이면
S는 원점을 지나는 동일선상에 존재한 벡터의 집합 (set of colinear vectors)
여기서는 기울기가 1/2인 직선
x = (2,4)일 때 이 S에 존재하는 모든 vector에 x를 더한다면 (2,4)를 지나면서 S에 평행한 선이 된다.
즉 L = { x+tv | t∈R }
왜 y = mx+b라는 식을 사용하지 않을까?
y = mx+b는 R2에서 가능한 식이다. 3차원, 4차원, ... 50차원에 존재하는 직선을 이 식으로 표현할 수 있을까? 아님.
그에 비해 L = { x+tv | t∈R } 는 모든 차원에 적용될 수 있는 general한 정의
a = (2, 1) b = (0, 3)이라는 두 벡터가 있을 때
(2, 1)과 (0, 3)의 두 좌표를 지나는 직선을 어떻게 L을 활용하여 표현할 수 있을까?
즉 이 직선을 나타내는 벡터는 무엇일까?
다른 말로 하면 어떤 벡터가 임의의 스칼라를 이용하여 직선에 있는 다른 벡터를 표현할 수 있을까?
(2, 1)과 (0, 3)을 지나는 벡터는 b-a = (-2, 2)
{ t(b-a) | t∈R } 는 구하고 싶은 직선과 기울기는 같지만 (t) 위에서 기술한 두 좌표(2, 1)과 (0, 3)를 지나지는 않는다.
우리가 원하는 직선을 얻기 위해서는...
L = { t(b-a) + a | t∈R }
a와 b 중 어떤 것을 구해주든 상관은 없다. 어차피 동일한 결과가 나온다.
한편 L을 매개변수를 이용하여 정의할 수 있다.
x = 0-2t
y = 3+2t
차원이 확장되는 것에 상관없이 general하게 적용 가능.
'공부 > 칸아카데미 선형대수학' 카테고리의 다른 글
1. 선형대수학 - 2) 선형결합과 생성 (0) | 2019.09.05 |
---|