1. 전치행렬 사용
전치 행렬: 행과 열을 교환하여 얻어지는 행렬
행렬의 값들을 주 대각선을 기준으로 위치를 바꾼 행렬을 의미한다.
transpose()
전치행렬을 쓰는 이유
print(np.transpose(arr))
print(arr.transpose())
은 너무 길어서 아래 처럼 축약해서 쓴다.
print(arr.T) #실제로는 축약한 이 코드로 쓴다.
전치를 시켜도 원본은 바뀌지 않는다.
2. Numpy로 구현된 벡터
1. 벡터: 크기와 방향이 있음
1) 가로 벡터(1차원 배열)와 세로 벡터(2차원 배열)
2) 벡터의 연산: 덧셈과 뺄셈
각각의 인덱스끼리 연산해주기 위해 넘파이를 사용한다.
3) 내적
스칼라의 곱셈
넘파이 배열에서 스칼라 곱셈은 각각 인덱스 별로 곱해진다.
내적: 벡터의 각 요소를 곱하여 모두 더한 것
1차원에서는 전치가 되어도 가로 벡터로 유지된다.
4) 벡터의 크기(길이)
피타고라스 정리 이용
np.linalg.norm(넘파이배열)
5) 합의 기호 시그마 ∑
다항식을 쪼개서 표현할 수 있다.
결국엔 1) - 5)는 가중치 w와 변수 x의 다항식을 벡터의 내적으로 계산하기 위해 배운 개념이다.
연습) 1부터 1000까지 수를 누적해서 더한 값을 구해보자
2. 미분
1) 다항식의 미분
함수의 기울기를 도출하는 방법
미분을 할 때는 어떤 변수를 기준으로 미분할 것인지 정해야 한다.
cf) 페프로파게션?? 편미분 회귀 : 그래프를 따라감 분류 : 그래프로 영역을 나눔 인공지능은 데이터로 학습한 딥러닝을 이용해서 수식을 찾아내는 분야이다. |
각각의 가중치 노드는 수식을 의미하므로 수없이 많은 수식을 구하는 것이 인공지능이다.
이를 위해서는 합성함수의 미분이 필요하다.
2) 중첩된 함수의 미분
연쇄 법칙으로 더 쉽게 미분하도록 한다. → 합성함수의 미분
3) 편미분
각각의 변수에 대해서 미분하고 더해준다.
4) 다변수의 중첩 함수의 미분
5) 합과 미분의 교환
시그마와 미분 수식을 서로 교환할 수 있다.
미분: 차원을 내리고 -> 곡선의 기울기를 찾는다. 적분: 차원을 올려준다. -> 곡선의 면적을 찾는다. |
3. Numpy로 구현된 행렬
1. 행렬
가로, 세로 데이터가 모두 포함되는 배열이다. - 이미지
여러개의 방정식의 두 개 이상의 미지수를 풀어내는 연립 방정식을 계산하기 위해 행렬을 사용한다.
1) 행렬의 곱
L X M 행렬과 M X N 행렬의 곱
행렬의 곱 = 내적
연습) 10y + 4x^2 + 10 = 0을 x =? 로 바꿔보자
풀이1)
10y + 4x^2 + 10 = 0
10y - 10y + 4x^2 + 10 -10 = -10y - 10
(4x^2)/4 = (-10y - 10)/4
x^2 = (-10y - 10)/4
x = 루트{(-10y - 10)/4}
즉,
4x = 1
4x(*4^-1) = 1(*4^-1)
나눗셈이 없는 행렬에서는 역을 곱해서 1로 만든다.
이러한 방식으로 역행렬은 행렬의 나눗셈 처럼 쓰인다고 볼 수 있다.
2) 역행렬
역행렬은 행렬의 나눗셈을 위해 존재한다. 방정식에서 나눗셈을 하기 위해 역행렬을 곱한다.
cf) 내적은 행렬의 곱을 위해 존재한다.
아래처럼 역행렬을 만들어주는 메소드(inv)가 존재한다.
from numpy.linalg import inv
를 꼭 써주자.
3) 행렬과 연립방정식
역행렬을 곱해줌으로써 각 미지수의 값을 바로 구할 수 있다.
단, 역행렬을 곱해줄 때 AB BA값이 다르게 나오므로 순서를 주의하자
연습) 다음 연립 방정식의 해를 구해보자.
x - y + 2z = 7
6x + 3z = 18
4x + 7y + 17z = 83
답은 제대로 나온다.
하지만 역행렬과 원래 행렬을 곱하면 단위행렬이 나와야 하는데, 아래와 같이 오차가 나오게 된다.
jupyter { : . 2 f } 소숫점 둘째자리에서 반올림
'Robot > 22년도 자율주행 테크니션 양성과정 일지록' 카테고리의 다른 글
[파이썬] DAY14 Numpy + Matplotlib 코드 분석 (0) | 2022.02.07 |
---|---|
[파이썬] DAY14 Matplot (0) | 2022.02.07 |
[파이썬] DAY14 파이참: open CV 환경 구축&새 프로젝트 생성 (0) | 2022.02.07 |
[파이썬] DAY13 Numpy(복습완료) (0) | 2022.02.04 |
[파이썬] DAY13 입학식코테문제 & NUMPY (0) | 2022.02.04 |