렐루 함수 은닉층에 시그모이드 함수를 활성화 함수로 사용했다. 출력층은 이진 분류일 경우에는 시그모이드 함수를 사용하고, 다중 분류일 경우에는 소프트맥스 함수를 사용했다. 렐루 함수는 주로 합성곱층에 적용되는 활성화 함수로, 합성곱 신경망의 성능을 더 높여준다. 렐루 함수는 0보다 큰 값은 그대로 통과시키고 0보다 작은 값은 0으로 만든다. 렐루 함수 구현 넘파이의 maximum() 함수를 사용하면 간단하게 구현할 수 있다. import numpy as np def relu(x): return np.maximum(x, 0) x = np.array([-1, 2, -3, 4, -5]) relu(x) 텐서플로가 제공하는 렐루 함수는 relu()이다. 출력은 Tensor 객채이므로 numpy로 변환해야 한다. ..
합성곱 합성곱(convolution) 연산과 교차 상관(cross-correlation) 연산에 대해 알아야 한다. 합성곱은 두 함수에 적용하여 새로운 함수를 만드는 수학 연산자이다. 합성곱은 글보다는 그림으로 이해하는 것이 쉽다. 배열 뒤집기 두 배열 x와 w가 있다고 가정하고 두 배열 중 원소수가 적은 배열 w의 원소 준서를 뒤집어 보면 위와 같다. 뒤집은 배열은 reverse의 약자인 r을 사용하여 w^r이라고 표현한다. 첫 번째 합성곱 왼쪽 끝자리에 맞춰 놓고 원소끼리 곱한 후 더한다. 즉, 점 곱 연산을 수행한다. 두 번째 합성곱 w^r을 오른쪽으로 한 칸 이동하여 각 배열 원소끼리 곱한 후 더한다. 나머지 합성곱 같은 방식으로 오른쪽 끝에 도착할 때까지 수행한다. 이것이 합성 곱이다. 수식으로..