더북(TheBook)

4.2 첫 번째 합성곱 신경망

이미지 데이터와 레이블의 표현이 주어지면 MNIST 데이터셋을 해결하는 신경망이 어떤 종류의 입력을 받아야 하고 어떤 종류의 출력을 만들어야 하는지 알게 됩니다. 이 신경망의 입력은 크기가 [null, 28, 28, 1]인 NHWC 포맷의 텐서입니다. 출력은 [null, 10] 크기의 텐서이고 두 번째 차원은 가능한 열 개 숫자에 해당합니다. 이는 다중 분류 타깃에 대한 일반적인 원-핫 인코딩입니다. 3장의 붓꽃 예제에서 보았던 붓꽃 품종의 원-핫 인코딩과 같습니다. 이런 정보를 바탕으로 MNIST 같은 이미지 분류 작업을 위해 선택한 합성곱 신경망을 자세히 알아보겠습니다. 합성곱이란 용어가 어렵게 느껴질 수 있습니다. 하지만 이는 수학 연산의 한 종류일 뿐이며, 앞으로 자세히 살펴보겠습니다.

이 코드는 깃허브 저장소의 mnist 폴더에 있습니다. 이전 예제와 마찬가지로 다음 명령으로 예제를 실행할 수 있습니다.

> cd deep-learning-with-javascript/
> npx http-server

그다음, 브라우저를 열고 http://127.0.0.1:8080/mnist에 접속합니다.9

코드 4-1은 mnist 예제의 index.js 파일에서 가져온 것입니다. MNIST 문제를 위한 합성곱 신경망을 정의하는 함수입니다. 이 시퀀셜 모델10의 층 개수(일곱 개)는 지금까지 보았던 예제의 층 개수(한 개에서 세 개까지)보다 훨씬 많습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.