728x90
반응형
Convolution
특정한 패턴의 특징이 어디서 나타나는지 확인하는 도구
Filter
특정 위치의 값만 그대로 가져와서
위치별로 특정한 패턴의 유무를 가져올 수 있음
filter set은 3차원 형태로 된 가중치의 모음
filter set 하나가 이미지 한 장을 만듦 (feature map)
그럼 filter set 개수만큼 feature map을 생성
Feature map
filter를 통과한 이미지
tf.keras.layers.Conv2D
1. filter set을 몇개 사용할 것인가
-> filter 3개 -> feature map 3개 -> 3채널/3차원의 feature map
-> Flatten으로 픽셀 단위로 n 채널을 한 줄로 바꾸어 이용
2. filter set의 사이즈 == kernel_size
-> filter 이미지 한 장의 변의 길이
3. activaiton으로 활성화 함수 지정하기
+) Conv2D는 3차원을 입력값으로 받음 - [28, 28, 1]
tensorflow를 만든 사람들이 그렇게 정했기 때문에 [28, 28]이 아닌 [28, 28, 1]로 해야하며
독립 변수도 reshape 하여 (60000, 28, 28, 1)로 해야했음
마지막이 1인 이유는 흑백이기 때문
컬러라면 rgb 3채널로 3을 적어야 함
Conv2D(3, kernel_size=5, activation='swish')
Conv2D(6, kernel_size=5, activation='swish')
- 입력: 28x28 크기의 흑백 이미지
- 5x5의 filter set 3개. 입력이 흑백이니 여기서도 (1)
- filter set에 의해 생성된 각각의 feature map
- featur map의 크기는 filter의 사이즈만큼 줄어듦
- filter가 5x5이면 4만큼 줄고 3x3이면 2만큼 줄어듦
- featur map의 크기는 filter의 사이즈만큼 줄어듦
- 앞서 feature map의 개수만큼 filter set의 채널 수 결정 (3)
- feature map 하나를 만들 때 filter set 하나는 그 앞의 feature map 전체를 보고 생성됨
- filter 하나를 만들 때 이전 feature map 전체를 탐색한다는 점!
이렇게 컴퓨터는 이 과정을 통하여,
숫자 판단에 가장 좋은 feature map을 6개 찾게 됨
실습
Convolution의 연산 방식
728x90
반응형
'Machine Learning > [Kaggle Course] ML (+ 딥러닝, 컴퓨터비전)' 카테고리의 다른 글
[생활코딩/CNN] MaxPool2D (0) | 2021.07.29 |
---|---|
[생활코딩/CNN] Flatten (0) | 2021.07.20 |
Data Augmentation - boost classifier (0) | 2021.04.12 |
Custom Convnets (Convolutional Blocks) (0) | 2021.04.10 |
The Sliding Window (0) | 2021.04.10 |