📌 이 글은 권철민님의 딥러닝 CNN 완벽 가이드를 바탕으로 정리한 내용입니다.
목차
- 일반 Dense Layer에서 Image Classification시 주요 문제
- 이미지의 크기가 커질수록 너무 많은 weight가 필요
- Feature Extraction 기반의 Image Classification 메커니즘
- ML과 DL의 차이
- Deep Learning CNN 구조
- CNN Classification Network 구조
- 이미지 필터
- 이미지 필터링 적용 예
- 이미지 배열에 Convolution 연산 적용하기
일반 Dense Layer에서 Image Classification시 주요 문제
대상이 전체 이미지 상에서 고정적이지 않고 가변적으로 존재한다.
또한 0이 아닌 유형인 피쳐들이 들어가 있다. (ex. 벽, 사람, 차, 잔디)
이미지의 크기가 커질수록 너무 많은 weight가 필요
은닉층을 1000개만 해도 500x500x1000 하면 2500만개의 weight가 필요하다.
Feature Extraction 기반의 Image Classification 메커니즘
피쳐들을 기반으로 해서 Image Classification을 적용한다.
ML과 DL의 차이
Feature extraction에서 전통적인 머신러닝의 경우 피쳐들을 뽑아내는 별도의 로직이 설정해야 한다. 그후 classification을 거친다. 그러나 가변적이기 때문에 feature를 뽑아내기가 어렵다.
반면 딥러닝의 경우 유연성이 뛰어나서 universal한 feature를 뽑아낼 수 있다.
Deep Learning CNN 구조
Feature Extractor 부분에서
그림처럼 하나의 뉴런이 하나의 Receptive field (개별적인 공간(검정 사각형))을 담당을 한다.
그러면서 자동차를 대표하는 이미지들의 Feature들을 뽑아낸다.
이런 피쳐들이 모여서 특징적인 Feature map 이라는 것이 만들어진다.
그러면 Feature map을 기반으로 해서 여기에 Dense layer 같은 것을 붙인다.
CNN Classification Network 구조
CNN의 구조는 크게 Feature Extractor와 Classifier로 구성 된다.
Feature Extractor에서 최적의 Feature를 추출하고,
Classifier에서 최적의 Feature 추출을 위한 최적의 weight 값을 계산한다.
이미지 필터
필터는 우리가 흔히 와꾸를 보정할 때 쓰는 카메라 앱에 있는 필터와 같은 의미이다.
이미지 필터링 적용 예
행렬로 표현한 이미지의 픽셀 값에 대해서, 필터가 순차적으로 슬라이딩하면서 새로운 픽셀 값을 생성한다.
그게 우리가 사진 찍을 때 적용하는 필터다. 난 상남자라 필터 같은거 안쓴다. 그런건 하남자나 쓰는 것. 물론 여자는 제외 ㅎ
이미지 배열에 Convolution 연산 적용하기
원본 이미지의 픽셀값으로 나타난 행렬에 3 by 3 필터를 적용시킨다.
3 0 -1
1 0 -5
3 0 -2
= 2-4+1 = -1
2 0 -4
3 0 -2
2 0 -3
= -2+1-1 = -2
이렇게 하나씩 슬라이딩 하면서 Convolution 연산이 적용된다.
연산 출력 결과는 6x6 → 4x4 가 나온다.
아래 그림을 보면 훨씬 이해가 잘 될 것이다.
이렇게 순차적으로 Convolution 연산을 진행한다.
이렇게 Convolution 연산을 진행하면 이미지가 작아지기 때문에
zero padding 이라는 것을 진행한다.
0값을 넣어서 미리 사이즈를 키워주는 방법이다.
이 방법에 대해선 다음 포스팅에서 알아보자.
'🖼 Computer Vision > CNN' 카테고리의 다른 글
CNN - Stride, Padding, Pooling (0) | 2022.02.15 |
---|---|
CNN - Kernel & Feature map (0) | 2022.02.15 |
CNN - Callback (0) | 2022.02.14 |
CNN - Fashion_MNIST 분석 (0) | 2022.02.12 |
Fashion_mnist 예측 모델 구현하기 (0) | 2022.01.27 |