일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- RNN
- 자바스크립트
- 부스트캠프
- Beyond Linear Neural Networks
- NomadCoder
- 부스트캠프aitech3기
- Sequential Model
- 모각공
- JavaScript
- r
- summarise( )
- 정규표현식
- 네이버커넥트재단
- group_by( )
- regex
- convolution 역전파
- 네이버커넥트
- Filter
- 베이즈통계학
- 역전파알고리즘
- Multi-Layer Perceptron
- col_names
- 생활코딩
- LinearNeuralNetwork
- 부스트캠프 aitech3기
- regular expression
- dplyr
- Convolution
- aitech
- mutate( )
- Today
- Total
clear_uncertainty
네이버 부스트캠프 모각공 캠페인 2일차 - 행렬이 뭐예요? 본문
네이버 부스트캠프 모각공 캠페인 2일차 - 행렬이 뭐예요?
SOidentitiy 2021. 11. 9. 23:44
모든 설명 및 자료의 출처는 네이버 부스트코스의 <[부스트캠프 AI Tech 3기] Pre-Course>입니다.
(https://www.boostcourse.org/onlyboostcampaitech3/joinLectures/329424)
<핵심만 담은 AI를 위한 수학 지식>
행렬이 뭐예요?
행렬(matrix)은 벡터를 원소로 가지는 2차원 배열입니다.
array 함수를 사용해, 행렬을 코딩할 수 있습니다.
numpy 에서 행벡터를 원소로 가지는 2차원 배열로 이해를 하는 것이 행렬의 곱셈을 이해하기 수월합니다.
x1 행벡터는 m개의 원소 성분을 가진 행벡터입니다.
행렬은 행(row)와 열(column)이라는 인덱스(index)를 가집니다.
전치행렬
전치행렬(transpose matrix) 은 행과 열의 인덱스가 바뀐 행렬을 말합니다.
m개의 행과 n개의 열로 이뤄진 행렬은 n개의 행과 m개의 열로 이뤄진 행렬로 바뀝니다.
행렬을 이해하는 방법
벡터가 공간에서 한 점을 의미한다면 행렬은 여러 점들을 나타냅니다.
행렬의 행벡터 x(i)는 i번째 데이터를 의미합니다.
행렬의 x(ij)는 i번째 데이터의 j번째 변수의 값을 말합니다.
행렬은 벡터를 원소로 가지는 2차원 배열이고, 행렬끼리 같은 모양을 가지면 덧셈과 뺄셈을 계산할 수 있습니다.
행렬의 성분곱과 스칼라곱 또한 벡터와 똑같습니다.
행렬 곱셈
행렬의 곱셈은 벡터의 곱셈과 다릅니다.
행렬 곱셈(matrix multiplication)은 i번째 행벡터와 j번째 열벡터 사이의 내적을 성분으로 가지는 행렬을 계산합니다.
위와 같은 행렬곱셈때문에 순서가 매우 중요해집니다. 수의 곱셈과 달리 순서가 바뀌면 결과 또한 바뀝니다.
X의 첫번째 행과, Y의 첫번째 열의 곱셈의 합이 XY 행렬곱의 첫번째 행의 첫번째 열입니다.
마찬가지로 X의 첫번쩨 행과, Y의 두번째 열의 곱셈의 합이 XY 행렬곱의 첫번째 행의 두번째 열입니다.
행렬도 내적이 있을까?
numpy 의 np.inner은 i번째 행벡터와 j번째 행벡터 사이의 내적을 성분으로 가지는 행렬을 계산합니다.
수학에서 말하는 내적과는 다르므로 주의해야합니다.
↑np.inner에서 행하는 내적
행렬을 이해하는 방법(2)
행렬은 벡터공간에서 사용되는 연산자(operator)로 이해할 수 있습니다.
Z와 X라는 두 벡터를 A의 행렬을 통해 연결시켜줄 수 있습니다.
행렬을 이용해서 두 벡터를 연결해 줄 수 있고, 하나의 m차원에 있는 벡터를 n차원에 있는 벡터로 mapping 시켜줄 수 있습니다.
행렬곱을 통해 패턴을 추출할 수 있고, 데이터를 압축할 수도 있습니다.
역행렬
어떤 행렬 A의 연산을 거꾸로 되돌리는 행렬을 역행렬(inverse matrix)라고 부릅니다.
역행렬은 행과 열 숫자가 같고 행렬식(determinant)이 0이 아닌 경우에만 계산할 수 있습니다.
np.linalg.inv 를 통해 행렬의 역행렬을 구할 수 있습니다.
만약 역행렬을 계산할 수 없다면(행과 열의 개수가 다른 경우 등) 유사역행렬(pseudo-inverse) 또는 무어-펜로즈)Moore-Penrose) 역행렬 A+을 이용합니다.
numpy 에서 np.linalg.pinv 를 통해 유사역행렬을 구할 수 있다.
역행렬이 원행렬과 곱할때 순서와 상관없이 항등행렬이 나온 것과 달리
유사역행렬은 원행렬과 곱할 때 순서가 중요해지니 주의해야합니다.
응용1: 연립방정식 풀기
np.linalg.pinv를 이용하면 연립방정식의 해를 구할 수 있습니다.
응용2: 선형회귀분석
np.linalg.pinv를 이용하면 데이터를 선형모델(linear model)로 해석하는 선형회귀식을 찾을 수 있다.
출처
'네이버 부스트캠프 - AI Tech 3rd > 핵심만 담은 AI 수학 지식' 카테고리의 다른 글
네이버 부스트캠프 모각공 캠페인 8일차 - CNN 첫걸음 (0) | 2021.11.17 |
---|---|
네이버 부스트캠프 모각공 캠페인 8일차 - 베이즈 통계학 맛보기 (0) | 2021.11.17 |
네이버 부스트캠프 모각공 캠페인 7일차 - 딥러닝 학습방법 이해하기 (0) | 2021.11.17 |
네이버 부스트캠프 모각공 캠페인 6일차 - 경사하강법 - 순한맛 (0) | 2021.11.14 |
네이버 부스트캠프 모각공 캠페인 1일차 - 벡터가 뭐예요? (0) | 2021.11.08 |