2.3 신경망의 톱니바퀴: 텐서 연산
컴퓨터 프로그램을 이진수의 입력을 처리하는 몇 개의 이항 연산(AND, OR, NOR 등)으로 표현할 수 있는 것처럼, 심층 신경망이 학습한 모든 변환을 수치 데이터 텐서에 적용하는 몇 종류의 텐서 연산(tensor operation)(또는 텐서 함수(tensor function))으로 나타낼 수 있습니다. 예를 들어 텐서 덧셈이나 텐서 곱셈 등입니다.
첫 번째 예제에서는 Dense 층을 쌓아서 모델을 만들었습니다. 케라스의 층은 다음과 같이 생성합니다.
keras.layers.Dense(512, ="relu")
이 층은 행렬을 입력으로 받고 입력 텐서의 새로운 표현인 또 다른 행렬을 반환하는 함수처럼 해석할 수 있습니다. 구체적으로 보면 이 함수는 다음과 같습니다. (W는 행렬이고, b는 벡터입니다. 둘 모두 층의 속성입니다.17)
output = relu(dot(W, input) + b)
좀 더 자세히 알아보겠습니다. 여기에는 3개의 텐서 연산이 있습니다.
Note ≣
이 절은 선형대수학(linear algebra)을 다루지만 어떤 수학 기호도 사용하지 않습니다. 수학에 익숙하지 않은 프로그래머는 수학 방정식보다 짧은 파이썬 코드를 보는 것이 수학 개념을 이해하는 데 훨씬 도움이 됩니다. 앞으로도 계속 넘파이와 텐서플로 코드를 사용하여 설명합니다.