(*이 시리즈의 내용은 모두 '인공지능 100점을 위한 파이썬 수학' 서적의 내용을 정리한 것입니다. 사진과 같은 자료들 또한 출처가 위 책임을 밝힙니다.)
MNIST 데이터로 784개의 입력과 10개의 출력이 있는 신경망에서 은닉층이 하나, 그 은닉층에 50개의 노드가 있는 신경망을 만들었을 때, 다음 그림과 같은 계산이 필요하다.
입력(784) - 은닉(50) - 출력(10)
일 때, 입력과 은닉 사이 계산을 위해 784x50개의 원소를 가진 W1 행렬이 필요하고,
은닉과 출력 사이 계산을 위해 50x10개의 원소를 가진 W2 행렬이 필요하다.
간단한 10행 1열 행렬로 2번째 값이 1이고 나머지가 0인 행렬 A는 다음과 같다.
np.array([[0], [1], [0], [0], [0], [0], [0], [0], [0], [0]])
A 행렬의 행과 열을 바꿔서 1행 10열로 나타낸 A의 전치행렬은 다음과 같다.
np.array([[0, 1, 0, 0, 0, 0, 0, 0, 0, 0]])