코딩하는 해맑은 거북이

인공지능(AI) 기초 다지기 (6) 본문

AI

인공지능(AI) 기초 다지기 (6)

#CJE 2022. 12. 19.
본 게시물의 내용은 '인공지능(AI) 기초 다지기(부스트코스)' 강의를 듣고 작성하였다.
해당 글은 3-1. Numpy / 벡터 & 행렬 3가지 파트를 다룬다.
1. Numerical Python - Numpy
2. 벡터가 뭐에요?
3. 행렬이 뭐에요?

 

1. Numerical Python - Numpy

추후 업데이트 예정

2. 벡터가 뭐에요?

- 숫자를 원소로 가지는 리스트(list) 또는 배열(array)
- 공간에서 한 점을 나타낸다.
- 원점으로부터 상대적 위치를 표현한다.
- 벡터에 숫자를 곱해주면(스칼라곱) 길이만 변한다.
- 벡터끼리 같은 모양을 가지면 덧셈, 뺄셈, 성분곱(Hadamard product) 연산을 할 수 있다.

성분곱(Hadamard product)

- 두 벡터의 덧셈은 다른 벡터로부터 상대적 위치이동을 표현한다.
- 벡터의 노름(Norm)은 원점으로부터의 거리를 말한다.
L1-노름 : 각 성분의 변화량의 절대값을 모두 더한다.
L2-노름 : 피타고라스 정리를 이용해 유클리드 거리를 계산한다.

노름(Norm)
L1-노름
L2-노름

- 노름의 종류에 따라 기하학적 성질이 달라진다. 머신러닝에선 각 성질들이 필요할 때가 있으므로 둘다 사용한다.

- L1, L2-노름을 이용해 두 벡터 사이의 거리를 계산할 수 있다. → 벡터의 뺄셈 이용

- 두 벡터 사이의 거리를 이용해서 각도를 계산할 수 있다. 단, L2-노름만 가능하다. → 제2 코사인 법칙 이용

분자를 쉽게 계산하는 방법 - 내적(inner product)

- 내적은 정사영(Orthogonal projection)된 벡터의 길이와 관련 있다.

- 내적은 정사영의 길이를 벡터 y의 길이 ||y|| 만큼 조정한 값이다.

 

3. 행렬이 뭐에요?

- 행렬(matrix)은 벡터를 원소로 가지는 2차원 배열
- 행렬은 행(row)과 열(column)이라는 인덱스(index)를 가진다.
- 행렬의 특정 행(열)을 고정하면 행(열)벡터라 부른다.
- 전치행렬(transpose matrix)은 행과 열의 인덱스가 바뀐 행렬
- 벡터가 공간에서 한 점을 의미한다면 행렬은 여러 점들을 나타낸다.
- 행렬의 행벡터 \(x_i\)는 i번째 데이터를 의미
- 행렬의 \(x_{ij}\)는 i번째 데이터의 j번째 변수의 값을 말한다.
- 행렬끼리 같은 모양을 가지면 덧셈, 뺄셈, 성분곱(Hadamard product) 연산을 할 수 있다.
- 행렬의 모든 성분에 숫자를 곱해주는 스칼라곱 연산이 가능하다.
- 행렬 곱셈(matrix multiplication)은 i번째 행벡터와 j번째 열벡터 사이의 내적을 성분으로 가지는 행렬을 계산한다.

행렬 곱셉(matrix multiplication)

- 행렬에서 numpy의 np.inner (내적)은 i번째 행벡터와 j번째 행벡터 사이의 내적을 성분으로 가지는 행렬을 계산한다.
(수학에서 말하는 내적과는 다름)

내적(inner product)

- 행렬은 벡터공간에서 사용되는 연산자(operator)로 이해한다.
- 행렬곱을 통해 벡터를 다른 차원의 공간으로 보낼 수 있다.
- 행렬곱을 통해 패턴을 추출할 수 있고 데이터를 압축할 수도 있다.

- 역행렬은 어떤 행렬 A의 연산을 거꾸로 되돌린 행렬이다. \(A^{-1}\)라 표기한다.
역행렬은 행과 열 숫자가 같고 행렬식(determinant)이 0이 아닌 경우에만 계산할 수 있다.
cf) numpy.linalg.inv로 구할 수 있음

- 만일 역행렬을 계산할 수 없다면 유사역행렬(pseudo-inverse) 또는 무어-펜로즈(Moore-Penrose) 역행렬 \(A^+\)을 이용한다.
cf) numpy.linalg.pinv로 구할 수 있음

n, m 차이에 따라 계산방법이 달라짐

- 응용1 : 연립방정식 풀기
np.linalg.pinv를 이용하면 연립방정식의 해를 구할 수 있다.

- 응용2 : 선형회귀분석
np.linalg.pinv를 이용하면 데이터를 선형모델(linear model)로 해석하는 선형회귀식을 찾을 수 있다.
cf) sklearn의 LinearRegression과 같은 결과를 가져올 수 있다. 단, y절편(intercept)항을 직접 추가해야 한다.

 

'AI' 카테고리의 다른 글

인공지능(AI) 기초 다지기 (8)  (0) 2022.12.23
인공지능(AI) 기초 다지기 (7)  (0) 2022.12.19
인공지능(AI) 기초 다지기 (5)  (0) 2022.12.18
인공지능(AI) 기초 다지기 (4)  (0) 2022.12.17
인공지능(AI) 기초 다지기 (3)  (0) 2022.12.13
Comments