더북(TheBook)

합성곱 신경망에서 flatten 층을 어떤 목적으로 사용할까요? 이 층은 이어지는 밀집 층을 위한 준비 단계에 해당합니다. 2장과 3장에서 배웠듯이 밀집 층은 작동 방식 때문에 일반적으로 (배치 차원을 제외하고) 1D 텐서를 입력으로 받습니다(2.1.4절 참조).

코드 4-1에 있는 다음 두 라인은 합성곱 신경망에 두 개의 밀집 층을 추가합니다.

model.add(tf.layers.dense({units: 64, activation: 'relu'}));
model.add(tf.layers.dense({units: 10, activation: 'softmax'}));

왜 하나가 아니고 밀집 층 두 개일까요? 3장에서 본 보스턴 주택 예제 및 피싱 URL 감지 예제와 같은 이유입니다. 비선형 활성화 함수를 사용한 층을 더 추가하면 신경망의 용량이 늘어나기 때문입니다. 사실 합성곱 신경망이 다음 두 개의 모델로 구성된 것으로 볼 수 있습니다.

입력 이미지에서 시각적 특성을 추출하는 conv2d, maxPooling2d, flatten 층

추출된 특성을 사용해 숫자 클래스를 예측하는 두 개의 밀집 층으로 구성된 MLP(이것이 두 개의 밀집 층의 근본적인 역할입니다.)

딥러닝에서 많은 모델이 특성 추출 층과 그다음에 최종 예측을 위한 MLP를 두는 패턴을 따릅니다. 오디오 신호 분류에서부터 자연어 처리 모델까지 이 책에서 이와 같은 예제를 많이 보게 될 것입니다.

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