[24.01.29]
3주차 14차시 - 벡터와 행렬
1. 벡터Vector란 ??
1) 숫자를 원소로 가지는 리스트List 또는 배열Array을 말한다.
2) 좀 더 본질적으로는, N차원 공간에서 원점으로부터 특정 위치에 있는 점의 상대적 위치를 의미한다.
3) 벡터는 모양이 같으면 사칙연산이 가능하다. 숫자를 곱해주면 벡터의 길이만 변하는데, 이를 스칼라곱이라 한다.
1.1 벡터간 덧, 뺄셈
: 벡터는 원점으로부터 특정 점까지의 상대적 위치를 표현하는 것이다
=> 그러므로 두 벡터의 덧, 뺄셈은 특정 점의 상대적 위치 이동을 표현한다.
1.2 벡터의 노름Norm
1) Norm은 임의의 차원 d에서, 원점에서부터 벡터까지의 거리를 의미한다.
** L1, L2 norm은 단순 계산식으로도 구할 수 있지만, L2 norm은 np.linalg.norm으로도 구현 가능하다. **
2) L1 Norm은 각 성분의 변화량의 절대값의 총합이다.
3) L2 Norm은 각 성분의 변화량의 절대값 제곱의 총합의 제곱근이다.
=> "피타고라스 정리를 이용해 계산된 유클리드 거리"
1.3 Norm이 다른 이유??
: 노름의 종류에 따라 기하학적 성질이 달라지기 때문!
=> ML에서는 여러 성질들이 필요할 수 있으므로 L1, L2 노름 둘 다 사용한다.
1.4 두 벡터 사이 거리 구하기
: 두 벡터 사이의 거리, 즉 두 점 사이의 거리는 어떻게 구하면 좋을까?
=> L1, L2 norm을 통해 계산 가능하다.
1.5 두 벡터 사이의 각도 구하기
: L2 norm을 통해 계산 가능하다(L1 norm으로는 불가).
=> L2 norm이 d차원에서 정의되었기 때문에 2차원을 넘어선 d차원에서도 계산 가능하다.
1.6 내적Inner Product
2. 행렬Matrix이란?
1) 벡터를 원소로 가지는 N차원 배열을 말한다.
2) 행렬은 행Row과 열Column이라는 인덱스Index를 갖는다.
3) 행렬의 특정 행(열)을 행(열)벡터라 한다.
4) 전치행렬(Transpose matrix)이란 행과 열의 인덱스가 바뀐 행렬을 말한다.
2.1 행렬을 이해하는 방법(1)
: 행렬은 특정 공간에서의 여러 점들을 나타낸다(벡터는 하나의 점)
=> 행벡터 x_i는 i번째 데이터(행)를 의미한다
=> 행렬의 원소 x_ij는 i번째 데이터의 j번째 값을 의미한다
2.2 행렬의 연산
: 같은 모양을 가진 행렬끼리는 연산이 가능하다. 덧셈, 뺄셈, 성분곱, 스칼라곱 등.
2.3 행렬의 곱셈
** numpy에서는 행렬 간 곱셈을 @ 연산자를 사용하여 할 수 있다. **
2.4 행렬을 이해하는 방법(2)
: 행렬은 벡터공간에서 사용되는 연산자Operator라고도 볼 수 있다.
=> 행렬곱을 통해 벡터를 다른 차원으로 보낼 수 있기 때문. => 선형변환Linear Transform
=> 행렬곱을 통해 특정 패턴을 추출하거나 데이터를 압축할 수 있음.
2.5 역행렬inverse matrix
** numpy에서 linalg.inv() 함수로 역행렬 계산 가능 **
** 만약 역행렬을 계산할 수 없다면? 유사역행렬pseudo-inverse matrix 혹은 무어-펜로즈Moore-penrose 역행렬을 이용한다
행, 열의 개수가 달라도 되지만 어떤 것이 더 개수가 많은지에 따라 계산 방법이 달라지니 주의해야 한다
numpy에서 linalg.inv() 함수로 계산 가능하다 **
2.5.1 응용. 연립방정식 풀기
'STUDY > 부스트코스 - AI 엔지니어 기초 다지기' 카테고리의 다른 글
[AI 엔지니어 기초 다지기] 12일차 (0) | 2024.01.31 |
---|---|
[AI 엔지니어 기초 다지기] 11일차 (0) | 2024.01.30 |
[AI 엔지니어 기초 다지기] 9일차 (2) | 2024.01.25 |
[AI 엔지니어 기초 다지기] 8일차 (0) | 2024.01.24 |
[AI 엔지니어 기초 다지기] 7일차 (0) | 2024.01.23 |