기계학습심화 - 6. Neural Networks, Convolution

현종혁·2024년 4월 21일

기계학습심화

목록 보기
7/8

CNN 계층

위의 그림은 CNN 중 하나인 AlexNet의 계층 구조이다.
물론 저 아이를 꽃으로 판별하긴 했지만.. 꽃 같은 아이 하하하~

CNN에는 크게 4개의 계층이 있다. 하나씩 알아보자.

Fully Connected Layer

Fully Connected Layer에서는 input 데이터를 stretch한다.

이런 FC는 너무 많은 파라미터를 요구한다.
이에 대한 해결책으로 Locally Connected Layer, 더 나아가 Convolutional Layer가 있다.

Convolutional Layer에서는 다른 위치의 데이터에 같은 파라미터를 공유한다.
이때 파라미터는 학습된 가중치이다.

Convolution을 거친 결과벡터의 크기는
H(input - filter + 1) x W(input - filter + 1) x 1 이다.

filter를 이동하는 단위를 Stride라고 한다.
Stride까지 고려한 결과벡터의 크기는
⌊ (input - filter + 1) / Stride ⌋ + 1 이다. (⌊⌋는 내림 연산 기호)

Convolution 연산에서 모서리 쪽에 있는 데이터들은 중앙 쪽에 있는 데이터들에 비해 영향력이 적어진다.

이러한 문제를 해결하기 위한 방법이 바로 Zero-Padding이다.

위의 그림은 Zero-Padding을 2로 준 경우이다.
Zero-Padding의 크기는 'filter의 크기 - 1' 로 구할 수 있다.

이런 식으로 여러가지 filter를 사용해서 Convolution 연산을 수행할 수 있다.

0개의 댓글