② CNN에서 합성곱층이나 최대 풀링층을 거치면 주요 특성만 추출되고 완전연결층에 전달됩니다. 합성곱층이나 최대 풀링층은 2차원 데이터를 다루지만, 이 데이터를 완전연결층에 전달할 때는 1차원으로 바꾸어야 합니다. 이때 사용되는 것이 플래튼(flatten)입니다. 여기에서 ConvNet를 사용하지는 않지만 이미지를 1차원 데이터로 변형하기 위해 사용합니다.
③ 합성곱층에서 특성 맵을 만들고, 풀링층에서는 차원을 감소시킵니다. 차원이 감소된 특성 맵은 밀집층(dense layer)의 입력으로 사용되고 그 결과가 출력층과 연결됩니다. 여기에서는 입력층과 출력층을 연결하기 위해 밀집층(Dense)을 사용합니다.
단순한 심층 신경망에서는 이미지의 공간적 특성들이 무시되는 단점이 있었습니다. 하지만 합성곱 신경망에서 밀집층을 사용하게 되면 밀집층 직전의 입력과 그 후의 출력만 완전연결층으로 만들기 때문에 이미지의 공간 정보를 유지할 수 있습니다.
ⓐ 첫 번째 파라미터: 출력 값의 크기로 노드 개수를 의미합니다.
ⓑ activation: 활성화 함수를 설정합니다.
④ 과적합을 방지하기 위한 방법으로 특정 노드를 0으로 만듭니다. 또한, (...)는 입력 데이터의 20% 노드들을 무작위로 0으로 만들라는 의미입니다. 드롭아웃은 ‘8장 성능 최적화’에서 자세히 다룹니다.
⑤ 출력층의 노드 개수는 열 개이고, 활성화 함수는 소프트맥스를 사용합니다.