Fully Connected Layer (FCL, 완전 연결 계층)

김고은·2022년 10월 6일
0

Fully Connected Layer, 완전 연결 계층

"완전 연결되었다"는 뜻은 한 층(layer)의 모든 뉴런이 그 다음 층(layer)의 모든 뉴런과 연결된 상태를 말한다.
1차원 배열의 형태로 평탄화된 행렬을 통해 이미지를 "분류"하는데 사용되는 계층이다.
Fully connected layer를 Dense layer라고도 한다.
.
.
code

model = keras.Sequential()
model.add(layers.Flatten(input_shape = (28,28)))
model.add(layers.Dense(128, activation='relu'))
model.asdd(layers.dense(10, activation='softmax'))

위의 code에서는 Flatten을 통해 흑백 이미지, 2차원 벡터의 행렬을 1차원 배열로 평탄화하고, Relu 함수로 뉴런을 활성화하고, softmax함수로 이미지를 분류하는 것까지가 Fully connected layer라고 할 수 있다.

Fully connected layer의 한계

: 3차원 컬러 이미지의 정보 손실

여기서 중요한 것은 fasion mnist에서 사용한 이미지는 "흑백"이미지라는 거이다. 흑백이미지는 흑과 백의 명암으로만 이미지가 구성되기 때문에 RGB를 사용하는 컬러이미지와 달리 벡터를 1차원 행렬로 변환시키는데 아무런 어려움이 없다.

앞서 본 train_images가 3차원 넘파이 배열로 나타난 것도 바로 그 이유이다.
(60000,28,28)에서 60000은 이미지의 개수를 뜻하고, 그 뒤의 28, 28은 가로, 세로의 크기를 의미한다.

만약 이 이미지가 RGB필터의 픽셀값을 가진 컬러 이미지였다면, (6000, 3, 28, 28)의 차원 넘파이 배열로 나타났을 것이다. (여기서 3은 RGB의 채널의 개수를 의미한다.)

이 경우, 단순히 3차원 이미지를 1차원으로 평탄화하면 공간 정보가 손실될 수 밖에 없으며, 이럴 경우 정보 부족으로인해 이미지를 분류하는 데 한계가 생길 수 밖에 없다.

Ref: https://dsbook.tistory.com/59
profile
veloger

0개의 댓글