지금까지 벡터가 무엇인지에 대해 알아보고, 행렬과 벡터의 곱에 대해서 공부했다.
벡터란 상수배(곱셈 규칙)와 덧셈 규칙이 정의되는 원소들이고, 이들의 집합에 이 연산들이 정의된 집합을 벡터 공간이라고 했다.
여기서 상수배와 덧셈 규칙이 정의되는 원소들은 '선형성을 가진다'고 할 수 있다.
행렬은 벡터를 또 다른 벡터로 변환시키는 일종의 연산자로 볼 수 있다. 특히 행렬과 벡터의 곱은 행렬의 열벡터들을 얼마나 선형결합 시킬 것인가 라는 의미로 볼 수 있다.
전의 행렬의 곱에 대한 또 다른 시각편에서 이런 해석이 행벡터와 열벡터 간의 내적으로 해석될 수 있다고 했다.
실제로 식도 동일하다. 하지만 '내적'이라는 용어와 계산 방법을 모른다고 생각하고 오직 행렬의 곱셈만이 주어진 상태라고 해보자
보통 '벡터'라고 하면 열벡터를 벡터라고 본다. 이것은 일종의 수학적 관례라고 한다. 변화가 되는 대상을 열 벡터로 보자고 관례로 잡아둔 것이라고 한다.
반면, 행벡터는 열벡터에 대한 함수이다.
?? 먼소리지? 는 전에 배운 행렬곱에 대한 또 다른 시각에서 그랬다. 실제로 맞는 말인거 같기도 하다.
함수의 모양에 대해 f(x)라는 고정관념을 가지고 있어 이해하기 어려웠지만 값을 받아 정해진 값을 반환하는 것이 딱 함수이다.
-> 원 글의 댓글들을 살펴보는 도중 이 고정관념과 관련된 댓글이 있어서 더 쓰자면 위 글에서
'함수의 모양에 대해 f(x)라는 고정관념을 가지고 있어 이해하기 어려웠지만'은 수학에서는 '입력과 출력간의 관계를 기술하는 규칙' 이지만 컴퓨터 공학에서는 '프로그래밍에서의 함수처럼 일련의 과정을 수행하는 하나의 블럭'으로 여겨진다.
나는 후자로 이해를 해서 그냥 그런가보다 하고 넘겼는데 댓글에서 자기가 알고있는 수학적 함수와 다르게 컴퓨터 공학적 함수에 더 가까운 것 같다고 했다.
-> 자연스러운 것이라고 글쓴이 분이 답해주셨고 수학에서 이런 컴퓨터 공학적 함수를 범함수라고 한다고 알려주셨다.
-> 벡터를 입력받아 스칼라를 출력해주는 함수
좀 보는 관점에 따라 그럴수도 있다는 것을 깨달은 것 같다.
행벡터는 열벡터를 입력으로 받는 함수라고 했다.
그럼 함수를 시각화할 수 있지 않을까?
-> 이 말은 임의의 입력 x에 대해 함수의 출력f(x)를 대응시킨 좌표들을 좌표계에 나열한 것이다.
y=x^2을 -2<=x<=2 범위에서 시각화 하는 것은 x값에 따른 y값을 좌표계에 나타낸 것이다.
그럼 [2 1]이라는 행벡터를 시각화 한다고 하면 [x y]^T에 대해 함수의 대응값들을 좌표계에 나열하면 된다.
그럼 수식은 이렇게 된다.
행벡터는 열벡터를 입력으로 받고 스칼라값을 출력하므로 여러가지 출력에 대한 함수를 하나의 x,y평면에 나타낼 수도 있을 것이다.
가령 2x + y = 1을 만족하는 x,y쌍을 나타내면 y = -2x + 1 이라는 선 위에 모두 표시할 수 있다.
이렇듯 여러 스칼라 출력값에 대한 결과를 한 번에 표시하기 위해 등고선의 아이디어를 차용하자
이처럼 동일한 스칼라 출력값을 가지는 x,y순서 쌍들을 하나의 선으로 연결하자.
임의의 벡터v가 [2 1]이라는 함수를 통과했을 때(v와 [2 1]을 곱할 때) 출력값을 시각화 할 수 있다.
2x + y = C라고 했을 때 위의 빨간 수가 C값이다.
2x + y = C의 출력값이 -3~4에 해당되는 x,y 순서쌍을 한 선에 표시했다.
이를 풀어서 그림으로 보면 이런 모양이다.
그래서 선은 선 위에서 끝나는(종점을 가지는) 벡터들의 집합이라고 할 수 있다.
벡터의 내적은
처럼 두 벡터와 그 사잇각에 따른 결과라고 알고있다.
또한 v2를 v1에 정사영한 것이라는 것도 알 수 있다.
위에서 여러 그림중 출력 스칼라 값이 4인 경우에서 임의의 벡터[1 2]를 그려보면
여기서 출력 스칼라 값이 4라는 것은 뭔 의미일까?
행벡터 [2 1]을 그리고 2x + y = 4라는 점까지의 거리를 생각해보자
보면 2x + y = C에 해당하는 선들은 모두 행벡터 [2 1]에 수직이다.
그 이유는 행벡터가 점선으로 표현한 함수들에 대한 법선 벡터 역할을 하기 때문이다.
그림에서 빨간색으로 표시된 길이는 직사각형의 넓이 공식으로 구할 수 있다.
열벡터의 정사영 길이 * 행벡터의 길이 = 내적 값 이 일치함을 알 수 있다.
-> 벡터 [1 2]를 행벡터[2 1]에 정사영 시킨 것 = d
그림에서 볼 수 있듯 벡터의 내적을 계산할 때에는 2x + y = 4 선 위에 있는 어떤 벡터도 행벡터[2 1]과의 내적 계산은 4가 된다.
이는 다시 말해 열벡터의 정사영 길이가 내적 계산에 이용되기 때문임을 기하학적으로 확인할 수 있다.
행벡터도 열벡터와 마찬가지로 벡터의 정의를 만족하며 선형성을 가진다.
따라서 행벡터도 일반적인 벡터라고 생각할 수 있는 것이다.
근데 이런 선형성을 만족하는지 알아보는 것이 왜 중요할까? 그것은 행벡터가 처리 대상인 데이터가 아니라 함수임에도 선형성을 가진다면 일반적인 벡터에 적용할 수 있다고 알려진 모든 메서드들을 적용할 수 있기 때문이라고 한다.
-> ?? 행벡터를 데이터로 보는 것이 아니라 함수로 보는 시각에서도 선형성을 가진다면 모든 메서드들을 적용할 수 있는 것
이라고 이해하면 될 듯 하다.
그림 8에서처럼 스칼라 출력값을 등고선을 이용하여 표현했을 때, 이를 다시 보면 주어진 행벡터에 대해 어떤 열벡터와 연산 후 출력된 스칼라 값을 생각하는 방법은 해당 열벡터가 등고선 몇 개를 통과했는가와 같다고 할 수 있다.
따라서, 행벡터의 길이가 길어진다면(스칼라배 해서) 등고선의 간격이 더 좁아지는 것과 같은 효과를 내게 된다는 것을 알 수 있다.
그 반대의 경우는 등고선의 간격이 넓어지는 것을 알 수 있다.
-> ?? 먼소리지?
가령 행벡터를 1/2배 했다고 한다면 1/2(2x + y) = C
2x + y = 2C이니 점선간의 거리가 더 멀어지는 것이 맞다.
더 멀어진 상태에서도 열벡터는 그대로이기 때문에 지나는 점선이 줄어들 것이다.
이게 맞는듯
=> 엄밀히 말하면 내적의 결과가 n배가 된 것이 행벡터의 크기가 n배 된건지 열벡터의 크기가 n배 된 것인지 알 수는 없다. 그러나 열벡터가 그대로라는 가정 하에 맞는 말이다.
행벡터 간의 합이 의미하는 것은 두 개의 서로 다른 등고선이 합해져 새로운 등고선을 만들어낼 수 있음을 의미한다.
새롭게 만들어 지는 등고선은 두 개의 서로 다른 등고선이 표방하는 행벡터들이 합쳐져 얻은 새로운 행벡터에 수직하도록 생성된다.
벡터에 대해 정의할 때 스칼라배와 벡터 간의 합에 대해 정의가 되는 것들을 벡터로 정의한다고 했고, 이 벡터는 벡터 공간을 이룬다고 했다.
따라서 행벡터에 대한 선형 함수로 생각할 수 있는 행벡터들도 일반적인 벡터로 간주할 수 있다는 것을 알 수 있다.
이 때, 덧셈 법칙과 곱셈 법칙이 정의된 행벡터들로 구성된 집합을 행공간이라고 부른다.
지금까지 행벡터를 행벡터라고 불렀기 때문에 당연히 벡터라고 생각하고 있지만 엄밀한 잣대를 들이댐으로써 새로운 개념의 벡터에 대해 생각해볼 수 있는 것이다.
행공간은 열공간에 대응되는 공간이라는 의미에서 쌍대공간이라고 불린다.
정의는 다음과 같다고 한다.
이해는 못하지만.. ㅎㅎ
Ref : https://angeloyeo.github.io/2020/09/09/row_vector_and_inner_product.html