안녕하세요, HELLO
오늘은 computre vision 분야에서 classification, segmentation 등의 목적으로 많이 활용되는 CNN을 살펴보려고 합니다. 이 중에서 커널 (kernel), 필터 (filter) 그리고 피처 맵 (feature map)에 대해서 정리하려고 합니다.
CHAPTER 1. 'CNN (Convolutional Neural Network)' 선행 지식
CHAPTER 2. '커널 (kernel), 필터 (filter)' 정리
CHAPTER 3. '피처 맵 (feature map' 정리
CHAPTER 1. 'CNN(Convolutional Neural Network)' 선행 지식
CNN(Convolutional Neural Network)은 이미지와 같은 그리드 (grid)와 같은 토폴로지 (위상, topology)로 데이터를 처리하도록 특별히 설계된 일종의 심층 학습 인공 신경망입니다. 컨볼루션 (convolutional), 활성화 (activation), 풀링 (pooling) 및 완전 연결 계층 (fully connected layer)을 포함한 여러 레이어로 구성되어, 입력 데이터에서 기능을 추출하고 순방향 전파라는 프로세스를 통해 예측합니다.
컨벌루션 레이어는 입력 데이터의 로컬 영역에 필터를 적용하고, 활성화 레이어는 네트워크에 비선형성을 도입하고, 풀링 레이어는 데이터의 공간 차원을 줄이고, 완전 연결 계층은 이전 레이어의 출력을 기반으로 최종 예측을 수행합니다. 이러한 CNN은 이미지 및 비디오 인식, 자연어 처리 및 기타 여러 애플리케이션에 널리 사용됩니다.
CHAPTER 2. '커널 (kernel), 필터 (filter)' 정리
컨볼루션 신경망(CNN)의 필터라고도 하는 커널은 컨볼루션 연산에 사용되는 작은 숫자 행렬입니다. 이미지의 특정 기능이나 패턴을 감지하도록 설계되었습니다. 필터는 이미지를 가로질러 이동하고, 요소별로 이미지의 항목과 필터의 항목을 곱한 다음 합계를 취하여 해당 컨볼루션 연산의 출력이 됩니다. 이를 통해 나온 결과는 필터에 의해 감지된 기능의 존재를 나타나게 되며, 이를 피처 맵 (feature map)이라고 합니다.
예를 들어 필터가 가장자리를 감지하도록 설계된 경우, 강도가 높은 그라디언트(예: 가장자리)가 있는 이미지 영역을 강조하여 표시됩니다. CNN에서는 여러 필터를 병렬로 사용하여 이미지에서 다양한 유형의 기능을 감지하고, 이러한 필터에서 생성된 피처 맵을 쌓아 네트워크의 다음 계층에 대한 입력을 형성합니다. 필터의 가중치는 훈련 중에 학습되어, CNN이 이미지의 중요한 특징을 자동으로 감지할 수 있도록 합니다.
CHAPTER 3. '피처 맵 (feature map' 정리
CNN(컨볼루션 신경망)에서 피처 맵 (feature map)은 입력 이미지와 필터(커널이라고도 함) 간의 컨볼루션 연산의 출력입니다. 이는 이미지에서 특정 기능이나 패턴의 존재를 나타내는 결과 값의 집합, 매트릭스입니다. 피처 맵은 이미지에서 필터를 슬라이드 하고, 이미지의 항목과 필터의 항목을 요소별로 곱하고, 해당 컨볼루션 작업의 출력이 되는 합계를 취하여 생성됩니다.
활성화 맵은 활성화 함수를 통해 전달된 피처 맵입니다. 활성화 함수는 네트워크에 비선형성을 도입하기 위해 각 컨볼루션 연산의 출력에 적용되는 비선형 함수입니다. 활성화 함수의 목적은 네트워크에 비선형성을 도입하여 입력과 출력 간의 복잡한 관계를 모델링할 수 있도록 하는 것입니다. 활성화 함수는 또한 모델에 일부 정규화를 추가하여 과적합을 줄이는 데 도움이 됩니다.
예를 들어 ReLU(rectified linear unit) 활성화 함수는 모든 음수 값을 0으로 설정하여 피처 맵에서 음수 활성화를 효과적으로 억제합니다. 부정적인 활성화가 훈련 프로세스를 방해할 수 있으므로 이는 네트워크의 전반적인 성능을 개선하는 데 도움이 될 수 있습니다. 활성화 맵은 네트워크의 다음 계층에 대한 입력으로 사용되며 최종 계층에 도달할 때까지 컨볼루션, 활성화 및 풀링 프로세스가 반복됩니다.
■ 마무리
'커널 (kernel), 필터 (filter), 피처 맵 (feature map)'에 대해서 정리해봤습니다.
그럼 오늘 하루도 즐거운 나날 되길 기도하겠습니다
좋아요와 댓글 부탁드립니다 :)
감사합니다.
'DATA_SCIENCE > Deep Learning' 카테고리의 다른 글
[딥러닝] 앙상블 모델 (Ensemble) 방법, 배깅 (Bagging), 부스팅 (Boosting), 스태킹 (Stacking) 해설, 정리, 요약 (0) | 2023.02.09 |
---|---|
[딥러닝] 딥러닝 디자인 패턴 (Design Pattern) 해설, 정리, 요약 (0) | 2023.02.08 |
[딥러닝] 데이터 증대 (Data Augmentation) 해설, 정리, 요약 (0) | 2023.02.06 |
[딥러닝] 하이퍼파라미터 최적화 (Hyperparameter Optimization) 해설, 정리, 요약 (0) | 2023.02.04 |
[딥러닝] 머신러닝, 딥러닝 기본 용어 해설, 정리, 요약 (1) | 2022.11.20 |
댓글