반응형
numpy를 이용하여 행렬을 계산 할 수 있다.
이때
a = np.array([1,2])
b = np.array([3,4])는 행렬의 계산이 아니고 그냥 각 행/열에 맞게 계산을 하는 것이다.
즉, [3,8]이 결과로 나온다.
이와 다르게 수학시간에 배운 행렬의 곱셈 연산을 np.dot()함수가 지원해준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #기본적인 numpy에서 볼 수 있는 형태 import numpy as np tmp = [i for i in range(0,10)] x = np.array(tmp) print(x) np.ndim(x) # 배열의 차원 수 확인 가능 현재 1차원이니 출력이 1로 나온다. x.shape # 배열의 형상 반환 (10,) y = np.array([[1,2],[2,3],[5,6]]) np.ndim(y) # 2차원이니 2 출력 y.shape # 3행 2열이니 (3,2) 튜플 출력 | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 행렬의 곱 a = np.array([[1,2],[3,4]]) b = np.array([[5,6],[7,8]]) c = np.dot(a,b) # 행렬 곱은 dot로 가능하다. d = a * b # d는 행렬 곱이 아닌 각 행,열의 위치에 맞는 인덱스끼리 곱하는 과정이다. print(c) print(d) np.ndim(c) # 2 c.shape # (2,2) | cs |
아래는 행렬의 곱을 응용하여 신경망에 적용해보는 방법이다.
행렬의 성질을 이용하면 신경망을 만들어내는 데 이용 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 | # 신경망에 행렬의 곱 적용 x = np.array([5,10]) w = np.array([[1,3,5],[2,4,6]]) print(w) w.shape y = np.dot(x,w) print(y) | cs |
반응형
'Applied > Artificial Intelligence' 카테고리의 다른 글
항등 함수와 소프트맥스 함수 (0) | 2019.06.11 |
---|---|
심층 신경망 구현 예제 (0) | 2019.06.05 |
활성화 함수(Activation Function) (0) | 2019.06.03 |
퍼셉트론 (Perception) 알고리즘 (0) | 2019.06.02 |