3.6.1 층: 딥러닝의 구성 요소
신경망의 기본 데이터 구조는 2장에서 소개한 층(layer)입니다. 층은 하나 이상의 텐서를 입력으로 받고 하나 이상의 텐서를 출력하는 데이터 처리 모듈입니다. 어떤 종류의 층은 상태가 없지만 대부분의 경우 가중치(weight)라는 층의 상태를 가집니다.4 가중치는 확률적 경사 하강법으로 학습되는 하나 이상의 텐서이며 여기에 신경망이 학습한 지식이 담겨 있습니다.
층마다 적절한 텐서 포맷과 데이터 처리 방식이 다릅니다. 예를 들어 (samples, features) 크기의 랭크-2 텐서에 저장된 간단한 벡터 데이터는 밀집 연결 층(densely connected layer)으로 처리하는 경우가 많습니다(케라스에서는 Dense 클래스에 해당합니다). 이를 완전 연결 층(fully connected layer) 또는 밀집 층(dense layer)이라고도 부릅니다. (samples, timesteps, features) 크기의 랭크-3 텐서에 저장된 시퀀스 데이터는 일반적으로 LSTM 같은 순환 층(recurrent layer)이나 1D 합성곱 층(convolution layer)(Conv1D)으로 처리합니다. 랭크-4 텐서에 저장된 이미지 데이터는 보통 2D 합성곱 층(Conv2D)으로 처리합니다.
층을 딥러닝의 레고 블록처럼 생각할 수 있습니다. 이런 비유는 케라스로 인해 생겼습니다. 케라스에서 딥러닝 모델을 만드는 것은 호환되는 층을 서로 연결하여 유용한 데이터 변환 파이프라인을 구성하는 것입니다.