벡터(vector)의 정의 

1) 숫자를 원소로 가지는 리스트 또는 배열

#리스트
x = [1,2,3]

#배열
x = np.array([1,2,3])

행 벡터:

 

열 벡터:

2) 공간에서의 한 점

 

3) 원점으로부터 상대적 위치

   0~1 사이의 값을 곱하면 방향은 그대로이고 길이만 변하며, 음수를 곱할 경우 반대 방향이 된다. (스칼라곱 = 각각의 구성 성분에 스칼라를 곱하는 것, 길이가 변하게 됨)

 

행렬(matrix)의 정의

1) 벡터를 원소로 가지는 2차원 배열

X = np.array([[1,2,3],
		[4,5,6],
              [7,8,9]])

2) 공간에서의 여러 점들 (데이터의 모임)

3) 벡터 공간에서 사용되는 연산자 (다른 데이터를 연결) -> 행렬곱을 통해 벡터를 다른 차원의 공간으로 보낼 수 있다. (행렬 곱셈 부분 참고)


덧셈/뺄셈

같은 모양을 가지면 계산 가능

벡터:

  • 벡터는 원점으로부터 상대저 위치를 표현. 벡터의 덧셈/뺄셈은 다른 벡터로부터 상대적 위치이동을  표현

행렬:

 

성분곱(Hadamard product)

  • 같은 모양을 가지면 계산 가능 

벡터:

행렬: 

 

내적 (inner product)

벡터: 

  • 두 벡터의 성분곱의 합
  • 두 벡터의 유사도 측정에 사용

 

행렬:

  • i번째 행벡터j번째 행벡터 사이의 내적을 성분으로 가지는 행렬을 계산 
  • X의 행(m)의 개수와 Y의 행(m)의 개수가 같아야 한다.
  • numpy: inner(X, Y)

행렬 곱셈

  • i 번째 행벡터j번째 열벡터 사이의 내적을 성분으로 가지는 행렬을 계산
  • X의 열(n)의 개수와 Y의 행(m)의 개수가 같아야 한다.
  • numpy: X @ Y 

  • n x m 크기의 행렬에 m크기의 벡터를 곱할 경우 n크기의 벡터를 계산할 수 있다. 
  • m은 곧 차원을 의미함으로 벡터를 m차원의 공간에서 n차원의 공간에 보낸다고 표현할 수 있다.

  • 위 행렬곱에서 단지 p가 1로 바뀌었을 뿐이다.
  • 행렬곱을 통해 패턴을 추출하거나 데이터를 압축할 수 있다. 
  • 모든 선형변환은 행렬곱으로 계산할 수 있다.

 

역행렬

  • 어떤 행렬의 연산을 거꾸로 되돌리는 행렬
  • 1) 행(m)과 열(n)의 크기가 같고 2)행렬식(determinant)이 0이 아닌 경우에만 계산이 가능

  • 그림의 예시에서 A의 크기는 2 x 2, A의 역행렬의 크기도 2 x 2로 동일
  • numpy: np.linalg.inv( X )
  • A 행렬과 A 역행렬을 곱할 경우 항등행렬이 계산된다.

  • identity matrix(항등행렬, I) = 대각원소들이 1이면 나머지 원소들은 0인 정방행렬, 임의의 행렬 A를 항등행렬에 곱할 경우 output으로 A 행렬이 그대로 나온다.
  • 넘파이로 계산할 경우 그림에서 보듯히 정확이 0은 아니지만 0에 매우 가까운 값이 표기될 수도 있다.

 

+ Recent posts

티스토리 친구하기