CNN(Convolutional Neural Network)는 이미지 인식, 음성 인식, 자연어 처리 등 다양한 응용 분야에서 사용되는 딥러닝 모델입니다.
컨볼루션 계층(Convolutional Layer)은 CNN 모델의 핵심 구성 요소 중 하나로, 이미지나 음성, 텍스트 등의 입력 데이터에서 특징을 추출하는데 사용됩니다. 컨볼루션 계층의 작동 방식은 다음과 같습니다
필터(Filter) 사용: 컨볼루션 계층은 필터라는 가중치 행렬을 사용합니다. 필터는 입력 데이터의 일부 영역에 대해 가중치를 곱한 후 합하는 연산을 수행하며, 이를 통해 입력 데이터에서 특정 패턴을 찾아낼 수 있습니다.
슬라이딩 윈도우(Sliding Window): 컨볼루션 계층에서는 필터를 입력 데이터에 슬라이딩 윈도우(Sliding Window) 방식으로 적용합니다. 이는 필터를 입력 데이터에서 일정 간격으로 이동시켜 각 위치에 대해 필터를 적용하는 것을 의미합니다. 이렇게 필터를 적용하면 입력 데이터에서 여러 가지 특징을 추출할 수 있습니다. 슬라이딩 윈도우를 이동시키면서 필터를 적용하면, 입력 데이터의 전체 영역에 대해 특징을 추출할 수 있습니다.
출력 계층 : 컨볼루션 계층에서는 이러한 필터 적용 과정을 통해 출력 계층(Output Layer)을 생성합니다. 출력 계층은 입력 데이터에서 추출한 특징을 담고 있는 행렬입니다. 이 행렬은 입력 데이터의 특징을 더 잘 나타내는 표현으로, 다음 계층에서 이를 사용하여 이미지를 분류하거나, 다른 특징을 추출하는데 사용합니다.
패딩(Padding)과 스트라이드(Stride) : 컨볼루션 계층에서는 패딩과 스트라이드라는 개념을 사용할 수 있습니다. 패딩은 입력 데이터의 외곽에 임의의 값을 추가하여 계산 결과를 보정하는 것을 의미합니다. 스트라이드는 슬라이딩 윈도우를 이동시키는 간격을 의미합니다. 이들을 적절히 설정하면 컨볼루션 계층에서 특징을 더 잘 추출할 수 있습니다.
요약하면, CNN은 입력 데이터를 컨볼루션 계층, 풀링 계층, 완전 연결 계층을 거치면서 이미지의 특징을 추출하고 분류하는 과정입니다.